Linux SSH 安全加固,这里使用CentOS7.5 做演示
一、配置SSH双因素登录
1.确定系统时钟是正确的
2.安装相关依赖
yum install -y git gcc automake autoconf libtool make pam-devel
3.安装google 验证器
git clone https://github.com/google/google-authenticator-libpam
cd google-authenticator-libpam
./bootstrap.sh
./configure
make && make install
ln -fs /usr/local/lib/security/pam_google_authenticator.so /lib64/security/
4.配置验证器
修改SSH文件 将ChallengeResponseAuthentication 修改为yes
修改PAM文件 vim /etc/pam.d/sshd 在auth substack password-auth下面一行添加 auth required pam_google_authenticator.so
关闭selinux 修改/etc/sysconfig/selinux 文件 将 SELINUX=enforcing 修改为disabled
google-authenticator
重启SSH服务
二、设置密码长度以及复杂度
1.设置密码长度
修改 /etc/login.defs文件
将PASS_MIN_LEN 数值修改
修改 /etc/pam.d/system_auth配置文件
在password requisite 行后边添加: minlen=数值
2.设置密码复杂度
方法一:修改/etc/pam.d/system-auth
在password requisite 行后边添加:
ucredit=-1 #至少包含1位大写字母
lcredit=-1 #至少包含1位小写字母
ocredit=-1 #至少包含1位特殊字符
dcredit=-1 #至少包含1位数字
方法二:使用如下命令:
authconfig --enablereqlower --update
authconfig --enablerequpper --update
authconfig --enablereqdigit --update
authconfig --enablereqother --update
三、设置密码重试限制
1.限制tty登录
修改login文件:
# vi /etc/pam.d/login
在#%PAM-1.0下面插入一行,也就是在第二行插入如下内容:
auth required pam_tally2.so deny=5 unlock_time=1800 even_deny_root
root_unlock_time=3600
# 注意:上述配置必须在第二行,否则即使用户被锁定了,输入正确的用户名和密码也可以登录的。
# 普通用户和root用户,密码输入错误5次,都会被锁定,普通用户被锁定1800秒,root用户被锁定3600秒
# deny=5表示密码输入错误5次
# unlock_time=1800表示普通用户锁定的时间,单位为秒
# root_unlock_time=3600表示root用户锁定的时间,单位为秒
# even_deny_root表示root用户也锁定
2.限制ssh登录
# vi /etc/pam.d/sshd
在#%PAM-1.0下面插入一行,也就是在第二行插入如下内容:
auth required pam_tally2.so deny=5 unlock_time=1800 even_deny_root
root_unlock_time=1800
# 注意:上述配置必须在第二行,否则即使用户被锁定了,输入正确的用户名和密码也可以登录的。
要进一步了解Linux系统安全加固请点这里!
如有问题,欢迎指出,谢谢!
网友评论