LinuxSSH安全加固

本文最后更新于:几秒前

Linux SSH 安全加固,这里使用CentOS7.5 做演示

一、配置SSH双因素登录

        **1.确定系统时钟是正确的**

        **2.安装相关依赖**
        yum install -y git gcc automake autoconf libtool make pam-devel

        **3.安装google 验证器**
1
2
3
4
5
6
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.设置密码长度**
1
2
3
4
修改 /etc/login.defs文件
将PASS_MIN_LEN 数值修改
修改 /etc/pam.d/system_auth配置文件
在password requisite 行后边添加: minlen=数值
        **2.设置密码复杂度**
1
2
3
4
5
6
7
8
9
10
11
方法一:修改/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登录

1
2
3
4
5
6
7
8
9
10
11
修改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登录

1
2
3
4
5
# 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
# 注意:上述配置必须在第二行,否则即使用户被锁定了,输入正确的用户名和密码也可以登录的。

如有问题,欢迎指出,谢谢!


LinuxSSH安全加固
https://blog.icansudo.top/2020/04/23/LinuxSSH安全加固/
作者
odin
发布于
2020年4月23日
许可协议