禁用root登陆

注意: 创建一个非root用户 并加入wheel用户组(拥有sudo权限)

useradd NewUser

passwd NewUser

gpasswd -a NewUser wheel
本地禁用root登陆

修改/etc/pam.d/login文件增加下面一行

auth required pam_succeed_if.so user != root quiet
远程禁用root登陆

修改 /etc/ssh/sshd_config

#PermitRootLogin yes
PermitRootLogin no

修改ssh默认端口

修改 /etc/ssh/sshd_config

#Port 22
Port 46608

安全认证

LoginGraceTime 2m
PermitRootLogin no
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10

超时退出

例如客户端60秒无操作自动退出

export TMOUT=60

加入系统环境变量中 如:/etc/profile

密码过期时间

修改 /etc/login.defs

PASS_MAX_DAYS 90 #密码最长过期天数
PASS_MIN_DAYS 80 #密码最小过期天数
PASS_MIN_LEN 10 #密码最小长度
PASS_WARN_AGE 7 #密码过期警告天数

登陆错误锁定

使用方式直接使用ssh 密钥登陆 , 后面的方法自找麻烦
ssh-keygen 生成钥匙

ssh-copy-id 将公钥上传到被访问的服务器

PermitRootLogin without-password 修改sshd_config文件设置禁止root密码登陆

PasswordAuthentication no  修改sshd_config文件禁止普通用户密码登陆

连续密码错误3次锁定账户,普通用户5分钟后解锁,root用户10分钟后解锁

方法 一

vi /etc/pam.d/system-auth

auth        required     pam_tally2.so    deny=3 unlock_time=300 even_deny_root root_unlock_time=600 
account     required     pam_tally2.so

查看

pam_tally2 -u zhangeamon

手动解锁

pam_tally2 -u zhangeamon -r
方法 二

Centos 8 后 pam_tally2.so 过期,推荐 pam_faillock.so

vi /etc/pam.d/system-auth

auth  required  pam_faillock.so preauth silent audit deny=3 unlock_time=300 even_deny_root root_unlock_time=600
auth  sufficient pam_unix.so nullok try_first_pass
auth  [default=die] pam_faillock.so authfail audit deny=3
account  required  pam_faillock.so

注意顺序

查看

faillock -u zhangeamon

解锁

faillock -u zhangeamon -r

密码复杂度

登陆失败可以重试3次;密码最小长度8;最少包括2个大写字母;最少包含4个小写字母;最少包含一个数字;最好包含一个特殊字符

vi /etc/pam.d/system-auth

password    requisite    pam_cracklib.so    try_first_pass retry=3 type= minlen=8 ucredit=-2 lcredit=-4 dcredit=-1 ocredit=-1