在机器上安装完linux系统后,一般要做的有系统更新、软件安装、软件更新、系统优化等等,本次我们来讨论最容易忘却和忽略的系统优化。
以下针对linux列出一系列优化点,并列出每点的优化命令(经测试)
适用于(CentOS/Redhat/Fedora 5-6版本)
1. 关闭SELinux功能
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
setenforce 0 > /dev/null 2>&1
2. 设置运行级别为3
sed -i 's#id:5:initdefault:#id:3:initdefault:#' /etc/inittab
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