在機器上安裝完linux系統後,通常要作的有系統更新、軟件安裝、軟件更新、系統優化等等,本次咱們來討論最容易忘卻和忽略的系統優化。linux
如下針對linux列出一系列優化點,並列出每點的優化命令(經測試)安全
適用於(CentOS/Redhat/Fedora 5-6版本)
bash
1. 關閉SELinux功能服務器
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/configcookie
setenforce 0 > /dev/null 2>&1ssh
2. 設置運行級別爲3tcp
sed -i 's#id:5:initdefault:#id:3:initdefault:#' /etc/inittabide
3. 精簡開機啓動測試
方法一:優化
LANG=en && for name in `chkconfig --list | grep 3:on | awk '{print $1}' | grep -Ev "sshd|network|sysstat|crond|rsyslog" `; do chkconfig $name off; done
方法二:
LANG=en && chkconfig --list | grep 3:on | grep -vE "crond|sshd|network|rsyslog|sysstat" | awk '{print $1}' | sed -r 's#(.*)#chkconfig \1 off#g'|bash
方法三:
LANG=en && chkconfig --list | grep 3:off | awk '{print $1}' | grep -Ev "sshd|network|sysstat|crond|rsyslog" | awk '{print "chkconfig " $1 " off"}' | bash
4. 關閉iptables防火牆(有外網ip需謹慎)
/etc/init.d/iptables stop && chkconfig iptables off
5. ssh優化 關閉userDNS檢查、更改訪問端口、禁止空密碼登錄、禁止root登錄、關閉GSS檢查
sed -r -e 's/#?UseDNS yes/UseDNS no/' \
-e 's/#+Port 22/Port 22/' \
-e 's/#+PermitEmptyPasswords no/PermitEmptyPasswords no/' \
-e 's/#+PermitRootLogin yes/PermitRootLogin no/' \
-e 's/GSSAPIAuthentication yes/GSSAPIAuthentication no/' \
-i /etc/ssh/sshd_config
##經過防火牆限制僅能使用內網IP鏈接服務器(慎用)
iptables -I INPUT -p tcp --dport 22 -s 192.168.56.0/24 -j ACCEPT
6. sudo安全管理
方法一:
visodu 手動管理
方法二:
sed -i "`grep -En "^root" /etc/sudoers| awk -F ':' '{print $1}'`aroot\tALL=(ALL)\tNOPASSWD: ALL" /etc/sudoers && visudo -c
7. 中文顯示 先備份,再修改,最後比對
cp /etc/sysconfig/i18n /etc/sysconfig/i18n.ori && sed -i 's#en_US.UTF-8#zh_CN.UTF-8#g' /etc/sysconfig/i18n && source /etc/sysconfig/i18n
8. 時間同步
echo "#time sync by cnlisea at `date +%F" "%T`" >> /var/spool/cron/root
echo "*/30 * * * * /usr/sbin/ntpdate pool.ntp.org > /dev/null 2>&1" >> /var/spool/cron/root hwclock
9. 系統使用設置
設置閒置帳號超時時間
echo "export TMOUT=300" >> /etc/bashrc
設置歷史命令數
echo "export HISTSIZE=5" >> /etc/bashrc
歷史記錄文件的命令數據
echo "export HISTFILESIZE=5" >> /etc/bashrc
source /etc/bashrc
10. 調整linux系統文件描述符數量
echo -e "*\t\t-\tnofile\t\t65535" >> /etc/security/limits.conf
source /etc/bashrc
11. linux內核參數優化
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
##從新加載系統參數
sysctl -p
12. 隱藏linux版本信息
> /etc/issue
> /etc/issue.net
13. 鎖定關鍵系統文件(慎用)
加鎖 chattr +i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab
解鎖 chattr -i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab
將chattr更名轉稱
mv /usr/bin/chattr /usr/bin/lisea
14. 清除多餘的系統虛擬帳號
按需清理。
15. 禁止系統被ping(慎用)
echo "net.ipv4.icmp_echo_ignore_all = 1" >> /etc/sysctl.conf
sysctl -p