防范措施。防暴力破解服务器ssh登入次数,账号锁定,IP拉黑,日志查看。

    一、Centos 7账号锁定教程

    1、修改配置文件
    vi /etc/pam.d/sshd
    # 在文末增加以下内容

    Centos 7 auth required pam_tally2.so deny=3 unlock_time=60 even_deny_root root_unlock_time=60
    文件参数说明:

    even_deny_root 也限制root用户;
    deny 设置普通用户和root用户连续错误登陆的最大次数,超过最大次数,则锁定该用户;
    unlock_time 设定普通用户锁定后,多少时间后解锁,单位是秒;
    root_unlock_time 设定root用户锁定后,多少时间后解锁,单位是秒;
    保存退出

    解除锁定方法
    在服务器端以root用户登录执行命令:pamtally2 -u root -r或者pam_tally2 —user 用户名 —reset清空指定用户的错误登录次数
    二、Centos7和Centos8 设置ssh端口、登入次数
    修改SSH的端口号
    vi /etc/ssh/sshd_config
    Port 22 修改为 5795 // 就是把端口22改为5795,去掉前面的
    #号_
    限制登入次数

    vi /etc/ssh/sshdconfig MaxAuthTries=6 修改为 MaxAuthTries=3 // 就是把登入6次改为登入3次就断开 ,去掉前面的#号_
    三、Centos8账号锁定教程

    pam_tally2模块在centos8后已淘汰掉,centos8用pam_faillock 模块替换
    1、修改配置文件
    vi /etc/pam.d/system-auth
    添加如下代码到指定行数,必须按顺序添加
    auth required pam_faillock.so even_deny_root preauth silent audit deny=3 unlock_time=300 //even_deny_root这个参数是代表root用户数错3次也会被锁定
    auth sufficient pam_unix.so nullok try_first_pass
    auth [default=die] pam_faillock.so even_deny_root authfail audit deny=3 unlock_time=300 //even_deny_root这个参数是代表root用户数错3次也会被锁定
    account required pam_faillock.so
    防暴力破解服务器ssh登入次数 - 图1

    vi /etc/pam.d/password-auth
    添加如下代码到指定行数,必须按顺序添加
    auth required pam_faillock.so even_deny_root preauth silent audit deny=3 unlock_time=300 //even_deny_root这个参数是代表root用户数错3次也会被锁定
    auth sufficient pam_unix.so nullok try_first_pass
    auth [default=die] pam_faillock.so even_deny_root authfail audit deny=3 unlock_time=300 //even_deny_root这个参数是代表root用户数错3次也会被锁定
    account required pam_faillock.so
    查看所有用户的尝试失败登录次数

    faillock
    主要看faillock命令,显示的valid值,v表示有效,i表示无效。

    防暴力破解服务器ssh登入次数 - 图2
    只查看admin用户
    faillock —user admin
    解锁一个用户账户
    faillock —user 用户名 —reset
    解锁所有用户
    faillock —reset
    四、防火墙拉黑攻击IP地址
    查看登入成功的用户日志:last -f /var/run/utmp 或者 last
    查看登入失败的用户日志:last -f /var/log/btmp 或者 lastb
    IP 封禁 (这个是我们平时用得最多的)
    firewall-cmd —permanent —add-rich-rule=”rule family=’ipv4’ source address=’222.222.222.222’ reject” 单个IP # firewall-cmd —permanent —add-rich-rule=”rule family=’ipv4’ source address=’222.222.222.0/24’ reject” IP段# firewall-cmd —permanent —add-rich-rule=”rule family=ipv4 source address=192.168.1.2 port port=80 protocol=tcp accept” 单个IP的某个端口
    这个是我们用得最多的。封一个IP,和一个端口 reject 拒绝 accept 允许
    重新载入以生效
    firewall-cmd —reload
    查看封禁IP
    firewall-cmd —list-rich-rules
    使用 last -f /var/log/btmp 查看登入失败的IP 拦截效果,拦截了20w+的密码爆破
    防暴力破解服务器ssh登入次数 - 图3
    查到这些IP后使用IP封禁命令进行封禁