1-设置用户权限配置文件的权限
建议:操作前,请先备份 /etc/group 、/etc/passwd、/etc/shadow、/etc/gshadow
命令:
chown root:root /etc/passwd /etc/shadow /etc/group /etc/gshadow
chmod 0644 /etc/group
chmod 0644 /etc/passwd
chmod 0400 /etc/shadow
chmod 0400 /etc/gshadow
2-确保SSH loglevel设置为info,记录登录和注销活动
编辑 /etc/ssh/sshd_config 文件,找到 LogLevel INFO,将其注释取消。
3-设置SSH空闲超时退出时间
编辑/etc/ssh/sshd_config 文件,将 ClientAliveInterval设置为300到900即 5-15分钟。将
ClientAliveCountMax设置为0到3之间。建议设置为:
ClientAliveInterval 600
ClientAliveCountMax 2
4-确保SSH maxauthtries 设置为3到6 之间
编辑/etc/ssh/sshd_config 中 取消 MaxAuthTries 的注释。设置最大密码尝试失败次数3-6.建议为4
MaxAuthTries 4
5-设置密码失效时间
如果使用非密码登录方式如密钥对,请忽略此项。
编辑/etc/login.defs 将 PASS_MAX_DAYS 设置在 60-180之间,建议设置为90.
另需要同时执行命令chage --maxdays 90 root 设置root密码失效时间。
6-设置密码修改最小间隔时间
编辑/etc/login.defs文件,将 PASS_MIN_DAYS参数设置在7-14之间,建议为7.
同时执行命令 chage --mindays 7 root 为root用户也设置上。
7-禁止ssh空密码用户登录
编辑/etc/ssh/sshd_config ,将PermitEmptyPasswords 配置为no。
8-密码复杂度检查
编辑/etc/pam.d/password-auth 和 /etc/pam.d/system-auth配置文件中
包含password requisite pam_cracklib.so 这一行,增加配置minlen(密码最小长度)设置为9-32位。minclass(至少包含小写字母、大写字命、数字、特殊字符等4类字符中的3类或4类)设置为3或4.
如:password requisite pam_cracklib.so try_first_pass retry=3 minlen=11 minclass=3
9-确保root是唯一的UID为0的账户
除root以外其他UID为0的用户(查看命令`cat /etc/passwd | awk -F: '($3 == 0) { print $1 }'|grep -v '^root$' `)都应该删除,或者为其分配新的UID
10-开启地址空间布局随机化
它将进程的内存空间地址随机化来增大入侵者预测目的地址难度,
命令:sysctl -w kernel.randomize_va_space=2
11-设置/etc/group 、/etc/passwd、/etc/shadow、/etc/gshadow 只读属性
命令:
chattr +i /etc/passwd
chattr +i /etc/shadow
chattr +i /etc/group
chattr +i /etc/gshadow