设为首页 收藏本站
查看: 786|回复: 0

[经验分享] CentOS6.5系统优化

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-10-29 13:51:50 | 显示全部楼层 |阅读模式
#脚本名称:systemyh.sh
#本脚本中需要配合一个文档来关闭不必要的服务,文档内容为不必要的服务名称
#请斟酌使用本例中的stopservices.txt文档
#脚本内容如下:

#!/bin/bash

#关闭SELinux防火墙
cp /etc/sysconfig/selinux /etc/sysconfig/selinux-`date +"%Y%m%d"`
sed -i 's/SELINUX\=enforcing/SELINUX=disabled/' /etc/sysconfig/selinux
setenforce 0

#关闭iptables
chkconfig iptables off
service iptables stop

#关闭系统写入文件最后读取时间
cp /etc/fstab /etc/fstab-`date +"%Y%m%d"`
sed -i 's/ext3    defaults/ext3    defaults,noatime/' /etc/fstab

#关闭不必要的服务
for sv in `cat stopservices.txt`
do
    chkconfig $sv off
    service $sv stop
done

#注释掉ssh登陆时的GSS认证
cp /etc/ssh/sshd_config /etc/ssh/sshd_config-`date +"%Y%m%d"`
sed -i 's/^GSS/\#GSS/g' /etc/ssh/sshd_config
sed -i 's/\#UseDNS yes/UseDNS no/' /etc/ssh/sshd_config




# 增加文件描述符限制
mkdir /var/bak 2>/dev/null
limitfile=/etc/security/limits.conf
cp /etc/security/limits.conf /var/bak/limits.conf-`date +"%Y%m%d"`
cp /etc/rc.local /var/bak/rc.local-`date +"%Y%m%d"`

sed -i '/^#/d' $limitfile
copylimit(){
cat >> /etc/security/limits.conf << EOF
*           soft   nofile       65535
*           hard   nofile       65535
EOF
}
if [ `cat $limitfile | wc -l` -gt 0 ]
then
    linec=`egrep '^*\shard|^*\ssoft' $limitfile | wc -l`
    if [ $linec -eq 2 ]
    then
        sed -i 's/[0-9]\+/65535/g' $limitfile
    else
            sed -i '/^[\*\ssoft\w+]/d' $limitfile
            sed -i '/^[\*\shard\w+]/d' $limitfile
        copylimit   
    fi
else
    copylimit
fi

if [ `cat /etc/rc.local | grep ulimit | wc -l` -gt 0 ]
then
    sed -i '/ulimit/d' /etc/rc.local
else
    echo 'ulimit -SHn 65535' >> /etc/rc.local
fi

# 优化内核参数
cp /etc/sysctl.conf /etc/sysctl.conf-`date +"%Y%m%d"`
cat >> /etc/sysctl.sh << EOF
#!/bin/sh
modprobe ip_conntrack
sysctl -w net.ipv4.icmp_echo_ignore_all=0   #关闭ICMP回显信息
sysctl -w net.ipv4.tcp_syncookies=1         #应对syn攻击的参数,扩展说明见下文①
sysctl -w net.ipv4.tcp_synack_retries=1     #作用同上,减少syn重试次数
sysctl -w net.ipv4.tcp_ecn=0                #关闭TCP拥塞通告
sysctl -w net.ipv4.tcp_tw_reuse=1           #表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接
sysctl -w net.ipv4.tcp_tw_recycle=1         #表示开启TCP连接中TIME-WAIT sockets的快速回收
sysctl -w net.ipv4.tcp_max_tw_buckets=655360    #表示系统同时保持TIME_WAIT套接字的最大数量
sysctl -w net.ipv4.tcp_keepalive_time=30        #表示当keepalive启用的时候,TCP发送keepalive消息的频度。缺省是2小时,改为30秒
sysctl -w net.ipv4.tcp_keepalive_intvl=15       #keepalive探测包的发送间隔
sysctl -w net.ipv4.tcp_keepalive_probes=3       #如果对方不予应答,探测包的发送次数
sysctl -w net.ipv4.tcp_fin_timeout=10           #表示如果套接字由本端要求关闭,这个参数决定了它保持在FIN-WAIT-2状态的时间
sysctl -w net.ipv4.tcp_mem="1966080       2621440  41943040"    #扩展说明见下文②
sysctl -w net.ipv4.tcp_rmem="4096        87380   8388608"       #与 tcp_wmem 类似,不过它表示的是为自动调优所使用的接收缓冲区的值
sysctl -w net.ipv4.tcp_wmem="4096        87380   8388608"       #扩展说明见下文③
sysctl -w net.ipv4.tcp_max_syn_backlog=8192        #表示SYN队列长度,默认1024,改成8192,可以容纳更多等待连接的网络连接数
sysctl -w net.ipv4.ip_local_port_range="5000    65000"  #表示用于向外连接的端口范围。缺省很小:32768到61000,改为5000到65000
sysctl -w net.ipv4.route.gc_timeout=100            #路由缓存刷新频率,当一个路由失败后多长时间跳到另一个路由,默认是300。
sysctl -w net.core.rmem_default=65536              #指定了接收套接字缓冲区大小的缺省值(以字节为单位)。
sysctl -w net.core.wmem_default=65536              #定义默认的发送窗口大小;对于更大的 BDP 来说,这个大小也应该更大。
sysctl -w net.core.wmem_max=8388608                #定义发送窗口的最大大小;对于更大的 BDP 来说,这个大小也应该更大
sysctl -w net.core.rmem_max=8388608                #指定了接收套接字缓冲区大小的最大值(以字节为单位)
echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects        #关闭ICMP重定向
echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route     #是否接受含有源路由信息的ip包。安全性角度出发,建议你关闭该功能。
sysctl -w fs.file-max=6553500                                #系统可以打开的最大文件数
#以下参数是对iptables防火墙的优化,防火墙不开会有提示,可以忽略不理
#注意:在CentOS6.4以上的版本中,ip_conntrack被换为了nf_conntrack
sysctl -w net.ipv4.netfilter.ip_conntrack_max=200000        #设置系统对最大跟踪的TCP连接数的限制
sysctl -w net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait=30
sysctl -w net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait=30
sysctl -w net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait=30
sysctl -w net.ipv4.netfilter.ip_conntrack_tcp_established=200
EOF
chmod u+x /etc/sysctl.sh
/bin/sh /etc/sysctl.sh
if [ `cat /etc/rc.local | grep sysctl.sh| wc -l` -ge 0 ]
then
    sed -i '/sysctl.sh/d' /etc/rc.local
fi
echo 'bin/sh /etc/sysctl.sh' >> /etc/rc.local


#附件为自己写的stopservices.txt文件,并将该文件放到与脚本同一目录下即可


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-132354-1-1.html 上篇帖子: ssh-key免密钥认证实战 下篇帖子: 自己动手设计并实现一个linux嵌入式UI框架 系统优化
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表