linux系统基础优化和安全重点小结
本文描述一些基本的系统优化知识点,为适应批量配置,所有代码为非交互式配置方法,可在crt中通过命令窗口做简单的批量处理。
- 不用root登录管理系统,而以普通用户登录通过sudo授权管理。作为一个例子这里新建一个用户,并做sudo提权
useradd gotimmygo echo 123456|passwd --stdin gotimmygo \cp /etc/sudoers{,ori} echo "gotimmygo ALL=(ALL) NOPASSWD:ALL">>/etc/sudoers tail -1 /etc/sudoers visudo -c
- 更改默认的远程连接ssh服务端口,禁止root用户远程连接,甚至要更改ssh服务只监听内网IP。
- 超时时间、操作记录数更改
1 echo "export TMOUT=300" >>/etc/profile 2 echo "export HISTSIZE=10">>/etc/profile 3 echo "export HISTFILESIZE=10">>/etc/profile
- 定时更新服务器时间,使其和互联网时间同步。
1 echo "#####time sync by xuyan at 2017-12-16">>/var/spool/cron/root 2 echo "*/5 * * * * /usr/bin/ntpdate ntp1.aliyun.com >>/dev/null 2>&1" >>/var/spool/cron/root 3 crontab -l
- 配置yum更新源,从国内更新源下载安装软件包。
- 关闭SELinux及iptables(在工作场景中,如果有外部IP一般要打开iptables,高并发流量的服务器可能无法开启)。
##关闭SELinux sed -i "s#SELINUX=enforcing#SELINUX=disabled#g" /etc/selinux/config setenforce 0 getenforce ##关闭iptables /etc/init.d/iptables status /etc/init.d/iptables stop chkconfig iptables off
- 调整文件描述符的数量,进程及文件的打开都会消耗文件描述符数量。配置完成后重新登录才可以生效,可以使用命令ulinmit -n进行查看
echo ‘* - nofile 65535’>>/etc/security/limits.conf
- 定时自动清理邮件临时目录垃圾文件,防止磁盘的inode数被小文件占满(注意centos6和centos5要清除的目录不同)。
- 精简并保留必要的开机自启动服务(如cron、network、sshd、rsyslog、sysstat)
chkconfig --list|egrep -v "crond|ssh|network|rsyslog|sysstat"|awk '{print "chkconfig",$1,"off"}'|bash chkconfig --list|grep "3:on"
- linux内核参数优化/etc/sysctl.conf,执行sysctl –p生效。,其中各语句的释义可以百度查看
1 cat >>/etc/sysctl.conf<<EOF 2 net.ipv4.tcp_fin_timeout = 2 3 net.ipv4.tcp_tw_reuse = 1 4 net.ipv4.tcp_tw_recycle = 1 5 net.ipv4.tcp_syncookies = 1 6 net.ipv4.tcp_keepalive_time = 600 7 net.ipv4.ip_local_port_range = 4000 6000 8 net.ipv4.tcp_max_syn_backlog = 16384 9 net.ipv4.tcp_max_tw_buckets = 36000 10 net.ipv4.route.gc_timeout = 100 11 net.ipv4.tcp_syn_retries = 1 12 net.ipv4.tcp_synack_retries = 1 13 net.core.somaxconn = 16384 14 net.core.netdev_max_backlog = 16384 15 net.ipv4.tcp_max_orphans = 16384 16 net.ipv4.tcp_keepalive_probes = 3 17 net.ipv4.tcp_keepalive_intvl =15 18 net.ipv4.tcp_retries2 = 5 19 net.ipv4.tcp_max_tw_buckets = 36000 20 net.ipv4.tcp_wmem = 8192 131072 16777216 21 net.ipv4.tcp_rmem = 32768 131072 16777216 22 net.ipv4.tcp_mem = 786432 1048576 1572864 23 net.ipv4.ip_local_port_range = 1024 65000 24 net.ipv4.ip_conntrack_max = 65536 25 net.ipv4.netfilter.ip_conntrack_max=65536 26 net.ipv4.netfilter.ip_conntrack_tcp_timeout_established=180 27 vm.swappiness=10 28 ###以下是对iptables的优化,防火墙不开会提示,可以忽略不计 29 net.nf_conntrack_max = 25000000 30 net.netfilter.nf_conntract_max = 25000000 31 net.netfilter.nf_conntract_tcp_timeout_established = 180 32 net.netfilter.nf_conntract_tcp_timeout_time_wait = 120 33 net.netfilter.nf_conntract_tcp_timeout_close_wait = 60 34 net.netfilter.nf_conntract_tcp_timeout_fin_wait = 120 35 EOF 36
-
更改系统字符集为”zh_CN.UTF-8”,使其支持中文,防止出现乱码问题。这里在linux系统中应该要安装相应的中文字符集
1 cp /etc/sysconfig/i18n{,i18n.ori} 2 echo ''LANG="zh_CN.UTF-8"'>/etc/sysconfig/i18n 3 source /etc/sysconfig/i18n 4 export LANG=zh_CN.UTF-8
- 锁定关键系统文件,如/etc/passwd,/etc/shadow,/etc/group,/etc/gshadow,/etc/inittab,处理以上内容后吧chattr、lsattr改名为oldboy,转移走,这样就安全多了。
- 清空/etc/isuue、/etc/issue.net,去除系统及内核版本登录前的屏幕显示。
1 >/etc/issue 2 >/etc/issue.net 3 cat /etc/issue 4 cat /etc/issue.net
- 清楚多余的系统虚拟用户账号。
- 为grub引导菜单加密码。
- 禁止主机被ping。
- 打补丁并升级已知漏洞的软件。