常用初始配置

  • 系统更新

    1
    
    yum update
  • 禁用 firewalld

    1
    2
    
    systemctl stop firewalld
    systemctl disable firewalld
  • 禁用 NetworkManager

    1
    2
    
    systemctl stop NetworkManager
    systemctl disable NetworkManager
  • 禁用 postfix

    1
    2
    
    systemctl stop postfix
    systemctl disable postfix
  • 如果不用 NFS,可以禁用 rpcbind

    1
    2
    
    systemctl stop rpcbind
    systemctl disable rpcbind
  • 禁用 selinux,可能需要重启操作系统

    1
    2
    3
    
    sed -i '/^SELINUX=/cSELINUX=disabled' /etc/selinux/config
    setenforce 0
    # 可能需要重启
  • 配置网卡静态地址

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    
    cd /etc/sysconfig/network-scripts
    sed -i -e '/^BOOTPROTO/d' -e '/^ONBOOT/d' \
        -e '/^IPADDR/d' -e '/^NETMASK/d' -e '/^PREFIX/d' \
        -e '/^GATEWAY/d' -e '/^DNS/d' ${ifcfg}
    cat >> ${ifcfg} <<-END
    ONBOOT=yes
    BOOTPROTO=static
    IPADDR=${ip}
    PREFIX=${mask}
    GATEWAY=${gw}
    DNS1=${dns}
    END
    systemctl restart network
  • 修改 sysctl.conf

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    
    cat >> /etc/sysctl.conf <<-END
    # 防止一个套接字在有过多试图连接到达时引起过载
    net.ipv4.tcp_syncookies = 1
    # 连接队列的长度,默认值为128
    net.core.somaxconn = 1024
    # timewait的超时时间,设置短一些
    net.ipv4.tcp_fin_timeout = 10
    # os直接使用timewait的连接
    net.ipv4.tcp_tw_reuse = 1
    # 回收timewait连接
    net.ipv4.tcp_tw_recycle = 1
    END
    sysctl -p
  • 修改主机名

    1
    2
    3
    
    hostnamectl set-hostname ${hostname}
    sed -i "/[ \t]\+${hostname}[ \t]*$/d" /etc/hosts
    echo "${ip} ${hostname}" >> /etc/hosts
  • 禁用 sshd 域名解析

    1
    2
    
    sed -i '/UseDNS/d' /etc/ssh/sshd_config
    echo 'UseDNS no' >> /etc/ssh/sshd_config
  • 删除可能存在的 TMOUT 环境变量

    1
    
    sed -i '/^export[ \t]\+TMOUT=/d' /etc/profile
  • 配置 history 命令数量和执行时间

    1
    2
    
    echo 'export HISTSIZE=10000' > /etc/profile.d/history.sh
    echo 'export HISTTIMEFORMAT="[%F %T] "' >> /etc/profile.d/history.sh
  • 修改时间同步服务器地址

    1
    2
    
    sed -i '/^server /d' /etc/chrony.conf
    echo "server ${ip|domain} iburst" >> /etc/chrony.conf
  • 修改 rsyslog 服务的时间格式

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    
    cat > /etc/rsyslog.d/custom.conf <<EOF
    template(name="CustomTime" type="list"){
        property(name="timereported" dateformat="year")
        constant(value="-")
        property(name="timereported" dateformat="month")
        constant(value="-")
        property(name="timereported" dateformat="day")
        constant(value=" ")
        property(name="timereported" dateformat="hour")
        constant(value=":")
        property(name="timereported" dateformat="minute")
        constant(value=":")
        property(name="timereported" dateformat="second")
        constant(value=" ")
        property(name="hostname")
        constant(value=" ")
        property(name="syslogtag")
        constant(value=" ")
        property(name="msg" droplastlf="on")
        constant(value="\n")
    }
    $ActionFileDefaultTemplate CustomTime
    EOF
  • 其他检查

    • 卸载 ntpdate,换 chrony
    • 检查 /etc/rc.d/rc.local

安全设置

  • /etc/pam.d/sshd
    • 用户 ssh 登陆密码错误 3 次后锁住用户 10 分钟

      1
      
      auth required pam_tally2.so deny=3 unlock_time=600 even_deny_root
  • /etc/login.defs
    • 密码过期天数

      1
      
      PASS_MAX_DAYS 60
    • 过期前警告天数

      1
      
      PASS_WARN_AGE 7
    • 最短使用天数

      1
      
      PASS_MIN_DAYS 1
    • 最短长度

      1
      
      PASS_MIN_LEN 8
  • /etc/pam.d/system-auth
    • 密码与前 5 次不同

      1
      
      password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok remember=5
  • /etc/security/pwquality.conf
    • 密码最小长度 8 位

      1
      
      authconfig --passminlen=8 --update
    • 密码最少 2 种字符

      1
      
      authconfig --passminclass=2 --update
    • 最多 2 个连续相同字符

      1
      
      authconfig --passmaxrepeat=2 --update
    • 最多 4 个连续同类字符

      1
      
      authconfig --passmaxclassrepeat=4 --update
    • 至少 1 个小写字符

      1
      
      authconfig --enablereqlower --update
    • 至少 1 个大写字符

      1
      
      authconfig --enablerequpper --update
    • 至少 1 个数字

      1
      
      authconfig --enablereqdigit --update
    • 至少 1 个特殊字符

      1
      
      authconfig --enablereqother --update