linux系统基础优化和安全重点小结

本文描述一些基本的系统优化知识点,为适应批量配置,所有代码为非交互式配置方法,可在crt中通过命令窗口做简单的批量处理。

  1. 不用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
  2. 更改默认的远程连接ssh服务端口,禁止root用户远程连接,甚至要更改ssh服务只监听内网IP。
  3. 超时时间、操作记录数更改
    1 echo "export TMOUT=300" >>/etc/profile
    2 echo "export HISTSIZE=10">>/etc/profile
    3 echo "export HISTFILESIZE=10">>/etc/profile
  4. 定时更新服务器时间,使其和互联网时间同步。
    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
  5. 配置yum更新源,从国内更新源下载安装软件包。
  6. 关闭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
  7. 调整文件描述符的数量,进程及文件的打开都会消耗文件描述符数量。配置完成后重新登录才可以生效,可以使用命令ulinmit -n进行查看
    echo ‘*             -      nofile             65535’>>/etc/security/limits.conf
  8. 定时自动清理邮件临时目录垃圾文件,防止磁盘的inode数被小文件占满(注意centos6和centos5要清除的目录不同)。
  9. 精简并保留必要的开机自启动服务(如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"
  10. 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
  11. 更改系统字符集为”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
  12. 锁定关键系统文件,如/etc/passwd,/etc/shadow,/etc/group,/etc/gshadow,/etc/inittab,处理以上内容后吧chattr、lsattr改名为oldboy,转移走,这样就安全多了。
  13. 清空/etc/isuue、/etc/issue.net,去除系统及内核版本登录前的屏幕显示。
    1 >/etc/issue
    2 >/etc/issue.net
    3 cat /etc/issue
    4 cat /etc/issue.net
  14. 清楚多余的系统虚拟用户账号。
  15. 为grub引导菜单加密码。
  16. 禁止主机被ping。
  17. 打补丁并升级已知漏洞的软件。
原文地址:https://www.cnblogs.com/Go-Spurs-Go/p/8046135.html