系统优化总结
1.修改ip地址、网关、主机名、DNS等
2.关闭selinux,清空iptables (一般工作场景有wan ip就要打开iptables,但高并发除外)
4.配置yum更新源
5.定时自动更新服务器时间
6.精简开机自启动服务(crond.sshd.network,syslog保留)
7.定时自动清理/var/spool/clientmquene/目录垃圾文件,防止inodes节点被占满
9.锁定关键系统文件
chattr +i /etc/passwd
chattr +i /etc/inittab
chattr +i /etc/group
chattr +i /etc/shadow
chattr -i /etc/passwd 对/etc/passwd解锁
处理完后对chattr进行改名
which chattr
mv /usr/bin/chattr /usr/bin/dingjian
可以防止黑客对系统的修改和攻击
10.调整文件描述符大小
12.清空/etc/issue,去除系统及内核版本登录前的屏幕显示
13.内核优化/etc/sysctl.conf sysctl -p生效
<一>修改ip地址、网关、主机名、DNS等
vi/etc/sysconfig/network-scripts/ifcfg-eth0#修改IP、网关、DNS等
vi /etc/sysconfig/network #修改主机名:
hostname dingjian #临时修改主机名,重登生效
vi /etc/resolv.conf #修改DNS
service network restart 或 /etc/init.d/network restart #重启网络生效
<二>关闭selinux,清空iptables
1.关闭selinux
vim /etc/selinux/config
将SELINUX=enforcing改为SELINUX=disabled
或者:
sed -i's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config #修改配置文件永久生效,但必须重启系统
grep SELINUX=disabled/etc/selinux/config #查看更改后的结果
★临时关闭(不用重启机器)
setenforce 0 #设置SELinux 成为permissive模式
#setenforce 1 设置SELinux 成为enforcing模式
★ getenforce #查看selinux当前状态
2.清空iptables
iptables �CF #清理防火墙规则
iptables �CL #查看防火墙规则
/etc/init.d/iptables save #保存防火墙配置信息
useradd tom #新建tom用户
passwd tom 或者echo “123456” | passwd --stdin tom #给tom用户加密码
visudo 授权管理见:http://blog.dingjian.me/20131103/124.html
<四>、配置yum更新源
centos5.8 :
cd /etc/yum.repos.d #进入yum.repos.d目录
mv CentOS-Base.repoCentOS-Base.repo.back #备份CentOS-Base.repo
wget http://mirrors.sohu.com/help/CentOS-Base-sohu.repo #下载sohu源
或者
wgethttp://mirrors.163.com/.help/CentOS5-Base-163.repo #下载163源
yum clean all #清空yum缓存
yum makecache #建立yum缓存
rpm --import/etc/pki/rpm-gpg/RPM-GPG-KEY* #导入签名KEY到RPM
yumupgrade-y #更新系统内核到最新
yum --exclude=kernel* update #更新系统软件而不更新内核
yum install lrzsz ntpdate sysstat -y #安装几个必要的软件了
centos6.4源的下载地址是:http://mirrors.163.com/.help/CentOS6-Base-163.repo
<五>、定时自动更新服务器时间
★使用ntpdate命令进行更新:
ntpdate 210.72.145.44 #是中国国家授时中心的官方服务器
★计划任务自动同步时间
echo '#time sync by dingjian at 2013-10-24'>>/var/spool/cron/root
echo '*/5****/sbin/ntpdate time.nist.gov>/dev/null 2>&1'>>/var/spool/cron/root
echo '*/5****/sbin/ntpdate 210.72.145.44>/dev/null 2>&1'>>/var/spool/cron/root
echo '*/5****/sbin/ntpdate time.windows.com>/dev/null 2>&1'>>/var/spool/cron/root
提示:CentOS 6.4的时间同步命令路径不一样 centos6是/usr/sbin/ntpdate ;centos5是/sbin/ntpdate
扩展:在机器数量少时,以上定时任务同步时间就可以了。如果机器数量大时,可以在网内另外部署一台时间同步服务器NTP Server
<六>、精简开机自启动服务(crond.sshd.network,syslog保留)(Centos6.4为rsyslog)
★centos5.8方法:
LANG=en
for dingjian in `chkconfig --list|grep3:on|awk '{print $1}'`;do chkconfig --level 3 $dingjian off;done
#把所有的启动项全关
for dingjian in crond network syslog sshd;dochkconfig --level 3 $dingjian on;done
#只打开这四个启动启
chkconfig --list |grep 3:on #只查看3级别的运行状态
★ centos6.4方法:
LANG=en
for dingjian in `chkconfig --list|grep3:on|awk '{print $1}'`;do chkconfig --level 3 $dingjian off;done
#把所有的启动项全关
for dingjian in crond network rsyslogsshd;do chkconfig --level 3 $dingjian on;done
#只打开这四个启动启
chkconfig --list |grep 3:on #只查看3级别的运行状态
<七>、定时自动清理/var/spool/clientmquene/目录垃圾文件,防止inodes节点被占满
★手动清理方法:
find /var/spool/clientmqueue/ -type f|xargs rm -f
[root@dingjian ~]# mkdir /server/scripts -p
[root@dingjian ~]# vi/server/scripts/spool_clean.sh
#!/bin/sh
find /var/spool/clientmqueue/ -type f|xargs rm -f
然后将其加入到crontab定时任务中
echo '*/30 * * * * /bin/sh/server/scripts/spool_clean.sh >/dev/null 2>&1' >>/var/spool/cron/root
crontab -l #检查一下定时任务
注意:
centos5.8,默认没有clientmqueue
centos6.4的,要先安装sendmail才能有/var/spool/clientmqueue/这个目录
[root@iter ~]# yum install sendmail -y
<八>、更改默认的SSH服务端口,及禁止root用户远程连接
[root@dingjian ~]# cp /etc/ssh/sshd_config/etc/ssh/sshd_config.bak
[root@dingjian ~]# vim /etc/ssh/sshd_config
Port 2000 #ssh连接默认的端口
PermitRootLogin no #root用户黑客都知道,禁止它远程登录
PermitEmptyPasswords no #禁止空密码登录
UseDNS no #不使用DNS
[root@dingjian ~]# /etc/init.d/sshd reload #从新加载配置
[root@dingjian ssh]# netstat -lnt #查看一下端口
[root@dingjian ssh]# lsof -i :2000 #己知端口查服务
[root@iter ~]# netstat -an|grep -i est #查看连接状态
<九>、锁定关键系统文件chattr+i /etc/passwd
chattr +i /etc/inittab
chattr +i /etc/group
chattr +i /etc/shadow
chattr -i /etc/passwd 对/etc/passwd解锁
可以防止黑客对系统的修改和攻击
<十>、调整文件描述符大小
★
[root@dingjian ~]# ulimit -n #查看文件描述符大小
65535
[root@dingjian ~]# echo '* - nofile65535'>>/etc/security/limits.conf
配置完成后,重新登录即可查看
★也可以把ulimit -SHn 65535命令加入到/etc/rc.local,然后每次重启生效
[root@dingjian ~]cat>>/etc/rc.local<<EOF
#open files
ulimit -HSn 65535
#stack size
ulimit -s 65535
EOF
cp /etc/sysconfig/i18n/etc/sysconfig/i18n.bak #备份i18n
echo 'LANG="ZH_CN.GB18030"' >/etc/sysconfig/i18n #更改字符集为ZH_CN.GB18030
source /etc/sysconfig/i18n #使i18n配置生效
echo $LANG #输出查看字符集信息
<十二>、清空/etc/issue,去除系统及内核版本登录前的屏幕显示
>/etc/issue #清空登陆显示的信息
echo"welcome!">/etc/issue 或 vi /etc/issue #修改系统登陆时显示的信息
<十三>、内核优化/etc/sysctl.conf sysctl -p生效
本优化适合apache,Nginx,squid多种等web应用,特殊的业务也可能需要略作调整。
★centos5.8内核优化:
[root@dingjian scripts]# vi/etc/sysctl.conf #把以下的参数加到最后面
#by dingjian in 20131106
net.ipv4.tcp_fin_timeout = 2
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_keepalive_time = 600
net.ipv4.ip_local_port_range = 4000 65000
net.ipv4.tcp_max_syn_backlog = 16384
net.ipv4.tcp_max_tw_buckets = 36000
net.ipv4.route.gc_timeout = 100
net.ipv4.tcp_syn_retries = 1
net.ipv4.tcp_synack_retries = 1
net.core.somaxconn = 16384
net.core.netdev_max_backlog = 16384
net.ipv4.tcp_max_orphans = 16384
#以下参数是对iptables防火墙的优化,防火墙不开会提示,可以忽略不理。
net.ipv4.ip_conntrack_max = 25000000
net.ipv4.netfilter.ip_conntrack_max=25000000
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established=180
net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait=120
net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait=60
net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait=120
[root@dingjian scripts]# sysctl -p
重新加载内核参数
★ centos6.4内核优化
[root@dingjian scripts]# vi/etc/sysctl.conf #把以下的参数加到最后面
#by dingjian in 20131106
net.ipv4.tcp_fin_timeout = 2
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_keepalive_time = 600
net.ipv4.ip_local_port_range = 4000 65000
net.ipv4.tcp_max_syn_backlog = 16384
net.ipv4.tcp_max_tw_buckets = 36000
net.ipv4.route.gc_timeout = 100
net.ipv4.tcp_syn_retries = 1
net.ipv4.tcp_synack_retries = 1
net.core.somaxconn = 16384
net.core.netdev_max_backlog = 16384
net.ipv4.tcp_max_orphans = 16384
#以下参数是对iptables防火墙的优化,防火墙不开会提示,可以忽略不理。
net.nf_conntrack_max = 25000000
net.netfilter.nf_conntrack_max = 25000000
net.netfilter.nf_conntrack_tcp_timeout_established= 180
net.netfilter.nf_conntrack_tcp_timeout_time_wait= 120
net.netfilter.nf_conntrack_tcp_timeout_close_wait= 60
net.netfilter.nf_conntrack_tcp_timeout_fin_wait= 120
[root@dingjian scripts]# sysctl -p
重新加载内核参数
在centos5.8和centos6.4中防火墙的优化有些不一样
如果iptables防火墙的优化报错,这个错误可能是你的防火墙没有开启或者自动处理可载入的模块ip_conntrack没有自动载入,解决办法有二,一是开启防火墙,二是自动处理开载入的模块ip_conntrack
modprobe ip_conntrack
echo "modprobe ip_conntrack">> /etc/rc.local