Centos6.9系統部分基礎優化(更新時間2018/04/19) 原

系統信息:

[root@nfs01 ~]# uname -r
2.6.32-696.el6.x86_64
[root@nfs01 ~]# uname -m
x86_64
[root@nfs01 ~]# cat /etc/redhat-release 
CentOS release 6.9 (Final)

 更改yum源

mv /etc/yum.repos.d/CentOS-Base.repo{,.$(date +%F_%T).backup} 
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
yum makecache

關閉SELinux 

\cp /etc/selinux/config{,.$(date +%F_%T).backup}
sed -i "s#SELINUX=enforcing#SELINUX=disabled#g" /etc/selinux/config
grep 'SELINUX=disable' /etc/selinux/config
setenforce 0
getenforce

關閉iptables 

/etc/init.d/iptables stop
/etc/init.d/iptables stop
chkconfig iptables off

精簡開機自啓動服務 

export LANG=en
chkconfig --list | egrep "3:on"|egrep -v "crond|network|sshd|rsyslog|sysstat" | awk '{print "chkconfig",$1,"off"}' | bash
chkconfig --list | grep 3:on

提權abc可以sudo 

useradd abc
\cp /etc/sudoers{,.$(date +%F_%T).backup}
echo "abc ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
tail -1 /etc/sudoers
visudo -c

時間同步 

echo '# time sync by odlboy at 2018-2-1' >> /var/spool/cron/root
echo '*/5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com >/dev/null 2>&1' >> /var/spool/cron/root
crontab -l

加大文件描述 

\cp /etc/security/limits.conf{,.$(date +%F_%T).backup}
echo '*               -    nofile            65535' >> /etc/security/limits.conf
tail -1 /etc/security/limits.conf 
# 重啓生效
ulimit -n

內核優化 

\cp /etc/sysctl.conf{,.$(date +%F_%T).backup}
cat >>/etc/sysctl.conf<<EOF
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
EOF
# 讓內核配置文件中的參數生效
sysctl -p  

下載安裝系統基礎軟件

yum -y install tree lrzsz telnet nc nmap dos2unix sysstat htop nload iptraf iftop

更改SSH服務器遠程登錄的配置(選擇性修改,自己別登不上了) 

\cp /etc/ssh/sshd_config{,.$(date +%F_%T).backup}

sed -i 's/#Port 22/Port 52113/g' /etc/ssh/sshd_config
sed -i 's/#PermitRootLogin yes/PermitRootLogin no/g' /etc/ssh/sshd_config 
sed -i 's/#PermitEmptyPasswords no/PermitEmptyPasswords no/g' /etc/ssh/sshd_config 

sed -i 's/GSSAPIAuthentication yes/GSSAPIAuthentication no/g' /etc/ssh/sshd_config 
sed -i 's/#UseDNS yes/UseDNS no/g' /etc/ssh/sshd_config
/etc/init.d/sshd reload

禁止Linux系統被ping 

# 禁止ping
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
# 允許ping
# echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all

修復部分軟件漏洞 

rpm -qa openssh openssl bash
yum install -y openssh openssl bash

Linux基礎優化與完全重點小結

1)不用root登錄管理系統,而以普通用戶登錄通過sudo授權管理
2)更改默認遠程連接ssh服務端口,禁止root用戶遠程連接,甚至要更改ssh服務只監聽內網ip
3)定時自動更新服務器的時間,使其和互聯網時間同步
4)配置yum更新源,從國內更新源下載安裝軟件包
5)關閉SELinux及iptables(在工作場景中,如果有外部ip一般要打開iptables,高併發高流量的服務器可能無法開啓)
6)調整文件描述符的數量,進程及文件的打開都會消耗文件描述數量
7)定時自動清理郵件目錄垃圾文件,防止磁盤的inodes數被小文件佔滿(注意CentOS6和Cnetos5要清理的目錄不同)
8)精簡併保留必要的自啓動服務開機(如:crond、shhd、network、rsyslog、sysstat)
9)Linux內核參數優化/etc/sysctl.conf,執行sysctl -p生效
10)更改系統字符集爲“zh_CN.UTF-8”,使其支持中文,防止出現亂碼問題
11)鎖定關鍵系統文件,如:/etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab,處理以上內容後把chattr、lsattr改名爲oldboy,轉移走,這樣就安全多了
12)清空/etc/issue /etc/issue.net,去除系統及內核版本登錄前的屏幕顯示
13)清除多餘的系統虛擬用戶賬號
14)爲grub引導菜單加密碼
15)禁止主機被ping
16)打補丁並升級有已知漏洞的軟件

注:此博客僅供參考,讀者可根據自己的實際情況進行合理的配置,博客內容參考老男孩書籍《web集羣實戰》一書

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章