常用初始配置
- 禁用 firewalld
systemctl stop firewalldsystemctl disable firewalld
- 禁用 NetworkManager
systemctl stop NetworkManagersystemctl disable NetworkManager
- 禁用 postfix
systemctl stop postfixsystemctl disable postfix
- 如果不用 NFS,可以禁用 rpcbind
systemctl stop rpcbindsystemctl disable rpcbind
- 禁用 selinux,可能需要重启操作系统
sed -i '/^SELINUX=/cSELINUX=disabled' /etc/selinux/configsetenforce 0# 可能需要重启
- 配置网卡静态地址
cd /etc/sysconfig/network-scriptssed -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} <<-ENDONBOOT=yesBOOTPROTO=staticIPADDR=${ip}PREFIX=${mask}GATEWAY=${gw}DNS1=${dns}ENDsystemctl restart network
- 修改 sysctl.conf
sed -i -e '/^net.ipv4.tcp_syncookies/d' \ -e '/^net.ipv4.tcp_tw_reuse/d' \ -e '/^net.ipv4.tcp_tw_recycle/d' \ -e '/^net.ipv4.tcp_fin_timeout/d' /etc/sysctl.confcat >> /etc/sysctl.conf <<-ENDnet.ipv4.tcp_syncookies = 1net.ipv4.tcp_tw_reuse = 1net.ipv4.tcp_tw_recycle = 1net.ipv4.tcp_fin_timeout = 8ENDsysctl -p
- 修改主机名
hostnamectl set-hostname ${hostname}sed -i "/[ \t]\+${hostname}[ \t]*$/d" /etc/hostsecho "${ip} ${hostname}" >> /etc/hosts
- 禁用 sshd 域名解析
sed -i '/UseDNS/d' /etc/ssh/sshd_configecho 'UseDNS no' >> /etc/ssh/sshd_config
- 删除可能存在的 TMOUT 环境变量
sed -i '/^export[ \t]\+TMOUT=/d' /etc/profile
- 配置 history 命令数量和执行时间
echo 'export HISTSIZE=10000' > /etc/profile.d/history.shecho 'export HISTTIMEFORMAT="[%F %T] "' >> /etc/profile.d/history.sh
- 修改时间同步服务器地址
sed -i '/^server /d' /etc/chrony.confecho "server ${ip|domain} iburst" >> /etc/chrony.conf
安全设置
- /etc/pam.d/sshd
- 用户 ssh 登陆密码错误 3 次后锁住用户 10 分钟
auth required pam_tally2.so deny=3 unlock_time=600 even_deny_root
- 用户 ssh 登陆密码错误 3 次后锁住用户 10 分钟
- /etc/login.defs
- 密码过期天数
PASS_MAX_DAYS 60
- 过期前警告天数
PASS_WARN_AGE 7
- 最短使用天数
PASS_MIN_DAYS 1
- 最短长度
PASS_MIN_LEN 8
- 密码过期天数
- /etc/pam.d/system-auth
- 密码与前 5 次不同
password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok remember=5
- 密码与前 5 次不同
- /etc/security/pwquality.conf
- 密码最小长度 8 位
authconfig --passminlen=8 --update
- 密码最少 2 种字符
authconfig --passminclass=2 --update
- 最多 2 个连续相同字符
authconfig --passmaxrepeat=2 --update
- 最多 4 个连续同类字符
authconfig --passmaxclassrepeat=4 --update
- 至少 1 个小写字符
authconfig --enablereqlower --update
- 至少 1 个大写字符
authconfig --enablerequpper --update
- 至少 1 个数字
authconfig --enablereqdigit --update
- 至少 1 个特殊字符
authconfig --enablereqother --update
- 密码最小长度 8 位
- /etc/ssh/sshd_config
- 禁用 root 远程登陆
PermitRootLogin no
- 只允许私钥登陆
PubkeyAuthentication yesPasswordAuthentication no
- 禁用 root 远程登陆