chattr加锁文件引起yum更新时报错管理

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-02/140239.htm

在缺省情况下,当你登陆到linux系统,它会告诉你该linux发行版的名称、版本、内核版本、服务器的名称。
为了不让这些默认的信息泄露出来,我们要进行下面的操作,让它只显示一个”login:”提示符。
删除/etc/issue和/etc/issue.net这两个文件,或者把这2个文件改名,效果是一样的。
mv /etc/issue /etc/issuebak
mv /etc/issue.net /etc/issue.netbak

阿里云CentOS服务器初始化设置

以阿里云服务器为例

一、挂载硬盘

1、磁盘分区

fdisk -l#查看设备,一般可以看到设备名为/dev/xvdb

fdisk /dev/xvdb#对磁盘进行分区

输入n#创建新分区

输入p#创建主分区

输入1#创建第一个主分区

输入w#保存并执行以上命令,创建分区

待上面的命令执行完成之后,使用fdisk -l查看,会看到类似

/dev/xvdb1的分区

说明分区成功。

2、磁盘格式化

mkfs.ext4 /dev/xvdb1#对分区进行格式化

说明:ext4是CentOS6.x默认的分区格式,CentOS5.x请使用ext3

待格式化完成之后(根据分区大小,格式化需要的时间不同,请耐心等待),对分区进行挂载

3、挂载磁盘

例如:要把/dev/xvdb1挂载到/data目录

mkdir -p /data#创建目录

mount /dev/xvdb1 /data#挂载

df -h#查看挂载结果

vi /etc/fstab#设置开机自动挂载,在最后一行输入以下代码

/dev/xvdb1 /data ext4 defaults 0 0

:wq!#保存退出

mount -a#使分区设置立即生效

二、创建SWAP分区

说明:默认阿里云服务没有swap分区,512M的云服务器安装php
5.6的时候会提示内存不足,安装失败!

强烈建议,不论内存有多大,都增加swap分区。

在512M的阿里云服务上增加1024M的swap空间

具体操作:

1、dd if=/dev/zero of=/tmp/swap bs=1M count=1024#创建1024M的文件块

2、mkswap /tmp/swap#创建swap文件

3、swapon /tmp/swap#激活swap文件

4、swapon -s#查看swap

5、修改/etc/fstab文件,增加以下内容,让系统引导时自动启动

vi /etc/fstab#在最后添加下面代码

/tmp/swap swap swap default 0 0

:wq!#保存退出

系统运维 www.osyunwei.com
温馨提醒:qihang01原创内容版权所有,转载请注明出处及原文链接

三、系统内核优化

1、CentOS 5.x CentOS 6.x CentOS 7.x

vi /etc/security/limits.conf#在最后一行添加以下代码

* soft nproc unlimited

* hard nproc unlimited

* soft nofile 655350

* hard nofile 655350

:wq!#保存退出

2、CentOS 5.x CentOS 6.x CentOS 7.x

vi /etc/profile#在最后一行添加以下代码

ulimit -SHn 655350

ulimit -SHu unlimited

ulimit -SHd unlimited

ulimit -SHm unlimited

ulimit -SHs unlimited

ulimit -SHt unlimited

ulimit -SHv unlimited

:wq!#保存退出

source /etc/profile#使配置立即生效

ulimit -a#查看设置

3、CentOS 6.x(CentOS 5.x和CentOS 7.x不需要设置此项)

vi /etc/security/limits.d/90-nproc.conf#在最后一行添加以下代码

* soft nproc unlimited

* hard nproc unlimited

* soft nofile 655350

* hard nofile 655350

:wq!#保存退出

4、

CentOS 5.x

sed -i “s/net.ipv4.ip_forward = 0/net.ipv4.ip_forward = 1/g”
‘/etc/sysctl.conf’

echo -e “net.core.somaxconn = 262144” >> /etc/sysctl.conf

echo -e “net.core.netdev_max_backlog = 262144” >>
/etc/sysctl.conf

echo -e “net.core.wmem_default = 8388608” >> /etc/sysctl.conf

echo -e “net.core.rmem_default = 8388608” >> /etc/sysctl.conf

echo -e “net.core.rmem_max = 16777216” >> /etc/sysctl.conf

echo -e “net.core.wmem_max = 16777216” >> /etc/sysctl.conf

echo -e “net.ipv4.route.gc_timeout = 20” >> /etc/sysctl.conf

echo -e “net.ipv4.ip_local_port_range = 1025 65535” >>
/etc/sysctl.conf

echo -e “net.ipv4.tcp_retries2 = 5” >> /etc/sysctl.conf

echo -e “net.ipv4.tcp_fin_timeout = 30” >> /etc/sysctl.conf

echo -e “net.ipv4.tcp_syn_retries = 1” >> /etc/sysctl.conf

echo -e “net.ipv4.tcp_synack_retries = 1” >> /etc/sysctl.conf

echo -e “net.ipv4.tcp_timestamps = 0” >> /etc/sysctl.conf

echo -e “net.ipv4.tcp_tw_recycle = 1” >> /etc/sysctl.conf

echo -e “net.ipv4.tcp_tw_reuse = 1” >> /etc/sysctl.conf

echo -e “net.ipv4.tcp_keepalive_time = 120” >> /etc/sysctl.conf

echo -e “net.ipv4.tcp_keepalive_probes = 3” >> /etc/sysctl.conf

echo -e “net.ipv4.tcp_keepalive_intvl = 15” >> /etc/sysctl.conf

echo -e “net.ipv4.tcp_max_tw_buckets = 200000” >>
/etc/sysctl.conf

echo -e “net.ipv4.tcp_max_orphans = 3276800” >> /etc/sysctl.conf

echo -e “net.ipv4.tcp_max_syn_backlog = 262144” >>
/etc/sysctl.conf

echo -e “net.ipv4.tcp_wmem = 8192 131072 16777216” >>
/etc/sysctl.conf

echo -e “net.ipv4.tcp_rmem = 32768 131072 16777216” >>
/etc/sysctl.conf

echo -e “net.ipv4.tcp_mem = 94500000 915000000 927000000” >>
/etc/sysctl.conf

echo -e “net.ipv4.ip_conntrack_max = 25000000” >>
/etc/sysctl.conf

echo -e “net.ipv4.netfilter.ip_conntrack_max = 25000000” >>
/etc/sysctl.conf

echo -e “net.ipv4.netfilter.ip_conntrack_tcp_timeout_established =
180” >> /etc/sysctl.conf

echo -e “net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait = 1”
>> /etc/sysctl.conf

echo -e “net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait =
60” >> /etc/sysctl.conf

echo -e “net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait =
120” >> /etc/sysctl.conf

CentOS 6.x

sed -i “s/net.ipv4.ip_forward = 0/net.ipv4.ip_forward = 1/g”
‘/etc/sysctl.conf’

echo -e “net.core.somaxconn = 262144” >> /etc/sysctl.conf

echo -e “net.core.netdev_max_backlog = 262144” >>
/etc/sysctl.conf

echo -e “net.core.wmem_default = 8388608” >> /etc/sysctl.conf

echo -e “net.core.rmem_default = 8388608” >> /etc/sysctl.conf

echo -e “net.core.rmem_max = 16777216” >> /etc/sysctl.conf

echo -e “net.core.wmem_max = 16777216” >> /etc/sysctl.conf

echo -e “net.ipv4.route.gc_timeout = 20” >> /etc/sysctl.conf

echo -e “net.ipv4.ip_local_port_range = 1025 65535” >>
/etc/sysctl.conf

echo -e “net.ipv4.tcp_retries2 = 5” >> /etc/sysctl.conf

echo -e “net.ipv4.tcp_fin_timeout = 30” >> /etc/sysctl.conf

echo -e “net.ipv4.tcp_syn_retries = 1” >> /etc/sysctl.conf

echo -e “net.ipv4.tcp_synack_retries = 1” >> /etc/sysctl.conf

echo -e “net.ipv4.tcp_timestamps = 0” >> /etc/sysctl.conf

echo -e “net.ipv4.tcp_tw_recycle = 1” >> /etc/sysctl.conf

echo -e “net.ipv4.tcp_tw_reuse = 1” >> /etc/sysctl.conf

echo -e “net.ipv4.tcp_keepalive_time = 120” >> /etc/sysctl.conf

echo -e “net.ipv4.tcp_keepalive_probes = 3” >> /etc/sysctl.conf

echo -e “net.ipv4.tcp_keepalive_intvl = 15” >> /etc/sysctl.conf

echo -e “net.ipv4.tcp_max_tw_buckets = 200000” >>
/etc/sysctl.conf

echo -e “net.ipv4.tcp_max_orphans = 3276800” >> /etc/sysctl.conf

echo -e “net.ipv4.tcp_max_syn_backlog = 262144” >>
/etc/sysctl.conf

echo -e “net.ipv4.tcp_wmem = 8192 131072 16777216” >>
/etc/sysctl.conf

echo -e “net.ipv4.tcp_rmem = 32768 131072 16777216” >>
/etc/sysctl.conf

echo -e “net.ipv4.tcp_mem = 94500000 915000000 927000000” >>
/etc/sysctl.conf

echo -e “net.nf_conntrack_max = 25000000” >> /etc/sysctl.conf

echo -e “net.netfilter.nf_conntrack_max = 25000000” >>
/etc/sysctl.conf

echo -e “net.netfilter.nf_conntrack_tcp_timeout_established = 180”
>> /etc/sysctl.conf

echo -e “net.netfilter.nf_conntrack_tcp_timeout_time_wait = 1”
>> /etc/sysctl.conf

echo -e “net.netfilter.nf_conntrack_tcp_timeout_close_wait = 60”
>> /etc/sysctl.conf

echo -e “net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 120”
>> /etc/sysctl.conf

/sbin/sysctl -p#使配置立即生效

cat /var/log/secure#查看系统设置是否正确,没有error提示说明设置正确

备注:

CentOS 5.x中模块名是ip_conntrack

CentOS 6.x中模块名是nf_conntrack

在/etc/sysctl.conf优化时,在CentOS 6.x中要把

net.ipv4.netfilter.ip_conntrack_max 这种参数

改成net.netfilter.nf_conntrack_max

四、系统安全设置

1、创建普通账号

useradd osyunwei#创建普通账号

passwd 123456#设置密码

2、禁用root直接登录

vi /etc/ssh/sshd_config#编辑

找到PermitRootLogin,将后面的yes改为no

:wq!#保存退出

3、给系文件加锁,防止未经许可的删除或添加

chattr +ia /etc/passwd

chattr +ia /etc/shadow

chattr +ia /etc/group

chattr +ia /etc/gshadow

chattr +ia /etc/services

lsattr /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/services
#显示文件的属性

注意:执行以上权限修改之后,就无法添加删除用户了。

如果再要添加删除用户,需要先取消上面的设置,等用户添加删除完成之后,再执行上面的操作

chattr -ia /etc/passwd

chattr -ia /etc/shadow

chattr -ia /etc/group

chattr -ia /etc/gshadow

chattr -ia /etc/services

4、开启防火墙

yum install iptables#安装防火墙 yum install wget 先安装下载工具

chkconfig iptables on#设置开机启动

vi /etc/sysconfig/iptables#编辑,添加以下代码

# Firewall configuration written by system-config-firewall

# Manual customization of this file is not recommended.

*filter

:INPUT ACCEPT [0:0]

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT [0:0]

-A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT

-A INPUT -p icmp -j ACCEPT

-A INPUT -i lo -j ACCEPT

-A INPUT -m state –state NEW -m tcp -p tcp –dport 22 -j ACCEPT

-A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT

-A INPUT -s 192.168.1.1/24 -m state –state NEW -m tcp -p tcp –dport
3306 -j ACCEPT

-A INPUT -j REJECT –reject-with icmp-host-prohibited

-A FORWARD -j REJECT –reject-with icmp-host-prohibited

COMMIT

# Iptables For OsYunWei.Com Date 2015/05/22

service iptables start#启动防火墙

备注:-s 192.168.1.1/24 表示只允许这个ip段访问3306端口,可以根据需求修改

4、修改ssh默认端口

把ssh默认远程连接端口22修改为222

vi /etc/ssh/sshd_config

在端口#Port 22下面增加Port 222

:wq!#保存退出

vi /etc/ssh/ssh_config

在端口#Port 22下面增加Port 222

:wq!#保存退出

/etc/init.d/sshd restart#重启sshd服务

vi /etc/sysconfig/iptables#编辑

把22端口修改为222

:wq!#保存退出

/etc/init.d/iptables restart#重启防火墙,使配置生效

五、修改主机名称

这里设置主机名为:www.osyunwei.com

1、hostname “www.osyunwei.com”#设置主机名为www.osyunwei.com

2、

vi /etc/sysconfig/network#编辑配置文件CentOS 5.x CentOS 6.x

HOSTNAME= www.osyunwei.com#修改localhost.localdomain为www.osyunwei.com

:wq!#保存退出

vi /etc/hostname#编辑配置文件CentOS 7.x

www.osyunwei.com#修改localhost.localdomain为www.osyunwei.com

:wq!#保存退出

3、vi /etc/hosts#编辑配置文件

127.0.0.1 www.osyunwei.com
localhost#修改localhost.localdomain为www.osyunwei.com

:wq!#保存退出

六、同步系统时间

yum install -y ntp#安装ntp

ntpdate cn.pool.ntp.org#执行时间同步

hwclock –systohc#系统时钟和硬件时钟同步

CentOS 5.x

echo -e “0 0 * * */sbin/ntpdatecn.pool.ntp.org > /dev/null”
>> /var/spool/cron/root#添加计划任务

CentOS 6.x

echo -e “0 0 * * */usr/sbin/ntpdatecn.pool.ntp.org > /dev/null”
>> /var/spool/cron/root#添加计划任务

service crond restart#重启服务

七、安装基础软件包

yum install -y apr* autoconf automake bison cloog-ppl compat* cpp curl
curl-devel fontconfig fontconfig-devel freetype freetype*
freetype-devel gcc gcc-c++ gtk+-devel gd gettext

gettext-devel glibc kernel kernel-headers keyutils keyutils-libs-devel
krb5-devel libcom_err-devel libpng* libjpeg* libsepol-devel
libselinux-devel libstdc++-devel libtool*

libgomp libxml2 libxml2-devel libXpm* libtiff libtiff* libX* make
mpfr ncurses* ntp openssl openssl-devel patch pcre-devel perl
php-common php-gd policycoreutils ppl telnet

t1lib t1lib* nasm nasm* wget zlib-devel

至此,CentOS服务器初始化设置设置完成。

一、注释掉系统不需要的用户和用户组
注意:不建议直接删除,当你需要某个用户时,自己重新添加会很麻烦。
cp /etc/passwd /etc/passwdbak #修改之前先备份
vi /etc/passwd #编辑用户,在前面加上#注释掉此行
#adm:x:3:4:adm:/var/adm:/sbin/nologin
#lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
#sync:x:5:0:sync:/sbin:/bin/sync
#shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
#halt:x:7:0:halt:/sbin:/sbin/halt
#uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
#operator:x:11:0:operator:/root:/sbin/nologin
#games:x:12:100:games:/usr/games:/sbin/nologin
#gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
#ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin #注释掉ftp匿名账号
cp /etc/group /etc/groupbak #修改之前先备份
vi /etc/group#编辑用户组,在前面加上#注释掉此行
#adm:x:4:root,adm,daemon
#lp:x:7:daemon,lp
#uucp:x:14:uucp
#games:x:20:
#dip:x:40:
二、关闭系统不需要的服务
service acpid stop chkconfig acpid off #停止服务,取消开机启动
#电源进阶设定,常用在 Laptop 上
service autofs stop chkconfig autofs off
#停用自动挂载档桉系统与週边装置
service bluetooth stop chkconfig bluetooth off #停用Bluetooth蓝芽
service cpuspeed stop chkconfig cpuspeed off
#停用控制CPU速度主要用来省电
service cups stop chkconfig cups off #停用 Common UNIX Printing System
使系统支援印表机
service ip6tables stop chkconfig ip6tables off #禁止IPv6
####################################################################################################
如果要恢复某一个服务,可以执行下面操作
service acpid start chkconfig acpid on
三、禁止非root用户执行/etc/rc.d/init.d/下的系统命令
chmod -R 700 /etc/rc.d/init.d/*
chmod -R 777 /etc/rc.d/init.d/* #恢复默认设置
系统运维www.osyunwei.com
温馨提醒:qihang01原创内容版权所有,转载请注明出处及原文链接
四、给下面的文件加上不可更改属性,从而防止非授权用户获得权限
chattr +i /etc/passwd
chattr +i /etc/shadow
chattr +i /etc/group
chattr +i /etc/gshadow
chattr +i /etc/services
#给系统服务端口列表文件加锁,防止未经许可的删除或添加服务
lsattr /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/services
#显示文件的属性
注意:执行以上权限修改之后,就无法添加删除用户了。
如果再要添加删除用户,需要先取消上面的设置,等用户添加删除完成之后,再执行上面的操作
chattr -i /etc/passwd #取消权限锁定设置
chattr -i /etc/shadow
chattr -i /etc/group
chattr -i /etc/gshadow
chattr -i /etc/services #取消系统服务端口列表文件加锁
现在可以进行添加删除用户了,操作完之后再锁定目录文件
五、限制不同文件的权限
chattr +a .bash_history #避免删除.bash_history或者重定向到/dev/null
chattr +i .bash_history
chmod 700 /usr/bin 恢复 chmod 555 /usr/bin
chmod 700 /bin/ping 恢复 chmod 4755 /bin/ping
chmod 700 /usr/bin/vim 恢复 chmod 755 /usr/bin/vim
chmod 700 /bin/netstat 恢复 chmod 755 /bin/netstat
chmod 700 /usr/bin/tail 恢复 chmod 755 /usr/bin/tail
chmod 700 /usr/bin/less 恢复 chmod 755 /usr/bin/less
chmod 700 /usr/bin/head恢复 chmod 755 /usr/bin/head
chmod 700 /bin/cat 恢复 chmod 755 /bin/cat
chmod 700 /bin/uname 恢复 chmod 755 /bin/uname
chmod 500 /bin/ps 恢复 chmod 755 /bin/ps
六、禁止使用Ctrl+Alt+Del快捷键重启服务器
cp /etc/inittab /etc/inittabbak
vi /etc/inittab #注释掉下面这一行
#ca::ctrlaltdel:/sbin/shutdown -t3 -r now
七、使用yum update更新系统时不升级内核,只更新软件包**

由于系统与硬件的兼容性问题,有可能升级内核后导致服务器不能正常启动,这是非常可怕的,没有特别的需要,建议不要随意升级内核。
cp /etc/yum.conf /etc/yum.confbak
1、修改yum的配置文件 vi /etc/yum.conf 在[main]的最后添加
exclude=kernel*
2、直接在yum的命令后面加上如下的参数:
yum –exclude=kernel* update
查看系统版本 cat /etc/issue
查看内核版本 uname -a
八、关闭Centos自动更新
chkconfig –list yum-updatesd #显示当前系统状态
yum-updatesd 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭
service yum-updatesd stop #关闭 开启参数为start
停止 yum-updatesd: [确定]
service yum-updatesd status #查看是否关闭
yum-updatesd 已停
chkconfig –level 35 yum-updatesd off #禁止开启启动(系统模式为3、5)
chkconfig yum-updatesd off #禁止开启启动(所有启动模式全部禁止)
chkconfig –list yum-updatesd #显示当前系统状态
yum-updatesd 0:关闭 1:关闭 2:启用 3:关闭 4:启用 5:关闭 6:关闭
九、关闭多余的虚拟控制台
我们知道从控制台切换到 X 窗口,一般采用 Alt-F7
,为什么呢?因为系统默认定义了 6 个虚拟控制台,
所以 X
就成了第7个。实际上,很多人一般不会需要这么多虚拟控制台的,修改/etc/inittab
,注释掉那些你不需要的。
cp /etc/inittab /etc/inittabbak
vi /etc/inittab
# Run gettys in standard runlevels
1:2345:respawn:/sbin/mingetty tty1
#2:2345:respawn:/sbin/mingetty tty2
#3:2345:respawn:/sbin/mingetty tty3
#4:2345:respawn:/sbin/mingetty tty4
#5:2345:respawn:/sbin/mingetty tty5
#6:2345:respawn:/sbin/mingetty tty6
十、删除MySQL历史记录
系统运维www.osyunwei.com
温馨提醒:qihang01原创内容版权所有,转载请注明出处及原文链接
用户登陆数据库后执行的SQL命令也会被MySQL记录在用户目录的.mysql_history文件里。
如果数据库用户用SQL语句修改了数据库密码,也会因.mysql_history文件而泄漏。
所以我们在shell登陆及备份的时候不要在-p后直接加密码,而是在提示后再输入数据库密码。
另外这两个文件我们也应该不让它记录我们的操作,以防万一。
cd
cp .bash_history .bash_historybak #备份
cp .mysql_history .mysql_historybak
rm .bash_history .mysql_history
ln -s /dev/null .bash_history
ln -s /dev/null .mysql_history
十一、修改history命令记录
cp /etc/profile /etc/profilebak
vi /etc/profile
找到 HISTSIZE=1000 改为 HISTSIZE=50
十二、隐藏服务器系统信息
在缺省情况下,当你登陆到linux系统,它会告诉你该linux发行版的名称、版本、内核版本、服务器的名称。
为了不让这些默认的信息泄露出来,我们要进行下面的操作,让它只显示一个”login:”提示符。
删除/etc/issue和/etc/issue.net这两个文件,或者把这2个文件改名,效果是一样的。
mv /etc/issue /etc/issuebak
mv /etc/issue.net /etc/issue.netbak
十三、优化Linux内核参数
cp /etc/sysctl.conf /etc/sysctl.confbak
vi /etc/sysctl.conf #在文件末尾添加以下内容**

net.ipv4.ip_forward = 1 #修改为1

net.core.somaxconn = 262144

net.core.netdev_max_backlog = 262144

net.core.wmem_default = 8388608

net.core.rmem_default = 8388608

net.core.rmem_max = 16777216

net.core.wmem_max = 16777216

net.ipv4.netfilter.ip_conntrack_max = 131072

net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 180

net.ipv4.route.gc_timeout = 20

net.ipv4.ip_conntrack_max = 819200

net.ipv4.ip_local_port_range = 10024 65535

net.ipv4.tcp_retries2 = 5

net.ipv4.tcp_fin_timeout = 30

net.ipv4.tcp_syn_retries = 1

net.ipv4.tcp_synack_retries = 1

net.ipv4.tcp_timestamps = 0

net.ipv4.tcp_tw_recycle = 1

net.ipv4.tcp_tw_len = 1

net.ipv4.tcp_tw_reuse = 1

net.ipv4.tcp_keepalive_time = 120

net.ipv4.tcp_keepalive_probes = 3

net.ipv4.tcp_keepalive_intvl = 15

net.ipv4.tcp_max_tw_buckets = 36000

net.ipv4.tcp_max_orphans = 3276800

net.ipv4.tcp_max_syn_backlog = 262144

net.ipv4.tcp_wmem = 8192 131072 16777216

net.ipv4.tcp_rmem = 32768 131072 16777216

net.ipv4.tcp_mem = 94500000 915000000 927000000

/sbin/sysctl -p #使配置立即生效
系统运维www.osyunwei.com
温馨提醒:qihang01原创内容版权所有,转载请注明出处及原文链接
十四、CentOS 系统优化
cp /etc/profile /etc/profilebak2
vi /etc/profile #在文件末尾添加以下内容
ulimit -c unlimited
ulimit -s unlimited
ulimit -SHn 65535
ulimit -S -c 0
export LC_ALL=C
source /etc/profile #使配置立即生效
ulimit -a #显示当前的各种用户进程限制
十五、服务器禁止ping
cp /etc/rc.d/rc.local /etc/rc.d/rc.localbak
vi /etc/rc.d/rc.local #在文件末尾增加下面这一行
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
参数0表示允许 1表示禁止**

以阿里云服务器为例
一、挂载硬盘 1、磁盘分区 fdisk
-l#查看设备,一般可以看到设备名为/dev/xvdb fdisk /dev/x…

2.3.1.2 ftp客户端配置

编辑配置文件vim  /etc/yum.repos.d/sunny.repo


[sunnyftp]

name=sunny-build-ftp-for-yum

baseurl=ftp://172.18.254.71/pub/centos/$releasever/

gpgcheck=1

enabled=1

gpgkey=ftp://172.18.254.71/pub/centos/$releasever/RPM-GPG-KEY-CentOS-$releasever


测试安装软件,如果正常安装,则实验完成

error: unpacking of archive failed on file /etc/services: cpio: rename

十四、CentOS 系统优化

2.3.1.1 ftp服务器端配置

服务器端运行


rpm -ivh vsftpd-3.0.2-21.el7.x86_64.rpm


新建源仓库的文件夹,规则操作
如下的语句进行创建,如果只有64为的6和7x86_64,而没有32为i386的系统,文件夹路径不需要对同一版本的64位或者32位进行区别,/os/$basearch/就可以省略

baseurl=/var/ftp/pub/centos/$releasever/os/$basearch/

运行语句


mkdir -p /var/ftp/pub/centos/{6,7}


拷贝软件包和相关数据到对应文件夹

这里做实验,直接把光盘资料全部拷贝到到这里


cp -r /media/* /var/ftp/pub/centos/7


这里为了做实验的方便,直接把光盘挂载在对应的文件夹6和7也可以实现效果。光盘挂载,ftp上识别会慢一点,等待10分钟后再刷新ftp服务器

到这里,ftp服务器yum 仓库已经创建完成

[root@k log]# chattr -i /etc/services

cp /etc/sysctl.conf /etc/sysctl.confbak
vi /etc/sysctl.conf #在文件末尾添加以下内容

net.ipv4.ip_forward = 1 #修改为1
net.core.somaxconn = 262144
net.core.netdev_max_backlog = 262144
net.core.wmem_default = 8388608
net.core.rmem_default = 8388608
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.netfilter.ip_conntrack_max = 131072
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 180
net.ipv4.route.gc_timeout = 20
net.ipv4.ip_conntrack_max = 819200
net.ipv4.ip_local_port_range = 10024 65535
net.ipv4.tcp_retries2 = 5
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_syn_retries = 1
net.ipv4.tcp_synack_retries = 1
net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_len = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_keepalive_time = 120
net.ipv4.tcp_keepalive_probes = 3
net.ipv4.tcp_keepalive_intvl = 15
net.ipv4.tcp_max_tw_buckets = 36000
net.ipv4.tcp_max_orphans = 3276800
net.ipv4.tcp_max_syn_backlog = 262144
net.ipv4.tcp_wmem = 8192 131072 16777216
net.ipv4.tcp_rmem = 32768 131072 16777216
net.ipv4.tcp_mem = 94500000 915000000 927000000

/sbin/sysctl -p #使配置立即生效

2.1 yum.conf配置解释


cachedir=/var/cache/yum
 //yum缓存的目录,yum在此存储下载的rpm包和数据库,默认设置为/var/cache/yum

keepcache=0
 //安装完成后是否保留软件包,0为不保留(默认为0),1为保留

debuglevel=2  //Debug信息输出等级,范围为0-10,缺省为2

logfile=/var/log/yum.log
 //yum日志文件位置。用户可以到/var/log/yum.log文件去查询过去所做的更新。

pkgpolicy=newest
 //包的策略。一共有两个选项,newest和last,这个作用是如果你设置了多个repository,而同一软件在不同的repository中同时存在,yum应该安装哪一个,如果是newest,则yum会安装最新的那个版本。如果是last,则yum会将服务器id以字母表排序,并选择最后的那个服务器上的软件安装。一般都是选newest。

distroverpkg=redhat-release
 //指定一个软件包,yum会根据这个包判断你的发行版本,默认是redhat-release,也可以是安装的任何针对自己发行版的rpm包。

tolerant=1
 //有1和0两个选项,表示yum是否容忍命令行发生与软件包有关的错误,比如你要安装1,2,3三个包,而其中3此前已经安装了,如果你设为1,则yum不会出现错误信息。默认是0。

exactarch=1
 //有1和0两个选项,设置为1,则yum只会安装和系统架构匹配的软件包,例如,yum不会将i686的软件包安装在适合i386的系统中。默认为1。

retries=6
 //网络连接发生错误后的重试次数,如果设为0,则会无限重试。默认值为6.

obsoletes=1
 //这是一个update的参数,具体请参阅yum(8),简单的说就是相当于upgrade,允许更新陈旧的RPM包。

plugins=1
 //是否启用插件,默认1为允许,0表示不允许。我们一般会用yum-fastestmirror这个插件。

exclude=selinux*//排除某些软件在升级名单之外,可以用通配符,列表中各个项目要用空格隔开,这个对于安装了诸如美化包,中文补丁的朋友特别有用。

gpgcheck=1 //有1和0两个选择,分别代表是否是否进行gpg(GNU Private
Guard)校验,以确定rpm包的来源是有效和安全的。这个选项如果设置在[main]部分,则对每个repository都有效。默认值为0。


这个配置文件在自己配置的时候,根据实际进行修改,一般也是可以不进行修改。

前一些天的时候在给一些服务器用yum更新升级的时候发现一些问题,在更新到setup的包的时候报错了无法更新,yum中包了这个错:

四、给下面的文件加上不可更改属性,从而防止非授权用户获得权限

2.3.2 http服务器yum源制作

一般我们通过http服务器来制作第三方的源,是为了给其他人或者公司来下载使用的。直接将rpm包拷贝到http服务器上对应的文件夹,然后在通过
工具createrepo来创建仓库,如果有新的包放到服务器上,建议把repodate删掉,重新利用createrepo来创建

[root@k log]# lsattr /etc/services

service acpid stop chkconfig acpid off #停止服务,取消开机启动
#电源进阶设定,常用在 Laptop 上
service autofs stop chkconfig autofs off
#停用自动挂载档桉系统与週边装置
service bluetooth stop chkconfig bluetooth off #停用Bluetooth蓝芽
service cpuspeed stop chkconfig cpuspeed off
#停用控制CPU速度主要用来省电
service cups stop chkconfig cups off #停用 Common UNIX Printing System
使系统支援印表机
service ip6tables stop chkconfig ip6tables off #禁止IPv6
####################################################################################################
如果要恢复某一个服务,可以执行下面操作
service acpid start chkconfig acpid on

2.2 yum仓库配置

在yum仓库配置里,默认只要三个参数就可以实现功能,配置id
[id],指定源地址baseurl,配置每个版本对应的公钥的地址gpgkey=url,这里如果不检查包的来源,要添加配置语句gpgcheck=0
即可安装软件。

看了下说/etc/services这个配置文件无法写入,初步判断是文件加锁过了,于是去看了下/etc/services的配置文件,果真是有加锁,估计是以前做安全配置的时候加的

一、注释掉系统不需要的用户和用户组

2.3 yum源仓库制作

服务器搭建前,先关闭防火墙和selinux,防止对实验现象产生干扰.以下实验演示在centOS7上操作

关闭防火墙


centos7上

systemctl disable firewalld.service

systemctl stop firewalld.service

centos6上

chkconfig iptables off

service iptables stop

检查,运行iptables -vnL查看是否有策略生效,没有表示关闭成功


 关闭SElinux


vim /etc/selinux/config

SELINUX=permissive

setenforce  0

getenforce 验证是否生效,结果为Permissive表示生效


—-i——– /etc/services

六、禁止使用Ctrl+Alt+Del快捷键重启服务器

2.2.1 设置本地源


[sunny]  //第一行
id,即仓库名,可以自己命名,但是.只能一个单词,所以不能有空格

name=sunny-media-yum-source //自己写一个名字,相当于描述,格式没要求

baseurl=file:///misc/cd/ 
//则该路径为yum源,选择是repodata所在文件夹的路径,该仓库路径有四个格式,http,https,ftp,file等,其中file://为本地的路径

gpgcheck=1 //检查包的来源,1检查,0不检查

enabled=1
//1为启用改仓库,0为禁用。这里可以用语句开启或禁用该仓库yum-config-manager
–enable sunny表示启用仓库名为sunny的yum源。disable为禁用。

gpgkey=file:///misc/cd/RPM-GPG-KEY-CentOS-6  // key的地址


图片 1

十二、隐藏服务器系统信息

1. 概述

日常的工作中,经常要安装和卸载软件,在linux
centos的版本里提供了rpm这个命令进行安装,但是这个命令经常因为包的依赖性导致了安装失败,后面就有了yum这个工具。两者之间的关系如下

rpm是由红帽公司开发的软件包管理方式,使用rpm我们可以方便的进行软件的安装、查询、卸载、升级等工作。但是rpm软件包之间的依赖性问题往往会很繁琐,尤其是软件由多个rpm包组成时。

Yum(全称为Yellow dog Updater,
Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。

rpm是linux的一种软件包名称,以.rmp结尾,安装的时候语法为:rpm
-ivh,rpm包的安装有一个很大的缺点就是文件的关联性太大,有时候装一个软件要安装很多其他的软件包,很麻烦,所以为此RedHat小红帽开发了yum安装方法,他可以彻底解决这个关联性的问题,很方便,只要配置两个文件即可安装,安装方法是:yum
-y install,yum并不是一中包,而是安装包的软件

简单点说, rpm只能安装已经下载到本地机器上的rpm包.
Yum不仅能配置本地的yum源进行安装而且能在线下载并安装rpm包,能更新系统,且还能自动处理包与包之间的依赖问题,这个是rpm工具所不具备的。

本文主要是讲解如何配置本地yum源,网络yum源,配置ftp
yum源仓库,以及第三方仓库的制作。

在这里不得不说一下用chattr对文件加锁的时候尤其是系统文件的时候尽量要在更新好系统或者是在多人使用的公用服务器上,不然如果忘记了,都会带来很多的麻烦。

九、关闭多余的虚拟控制台

2.4 常用服务包下载源

附上网络上常用的服务包下载的源。除此之外,还可以通过软件官网来获取相关软件安装包