当前位置 博文首页 > qianfeng_dashuju的博客:Linux防止暴力破解密码脚本

    qianfeng_dashuju的博客:Linux防止暴力破解密码脚本

    作者:[db:作者] 时间:2021-08-13 22:09

     1.认识记录linux记录安全的日志
     [root@testpm ~]# cd /var/log/
     [root@testpm log]# ls | grep secure
     secure
     2.该日志的内容查看
     [root@testpm log]# tail -f secure
     #表示ssh身份验证失败
     Aug 29 23:35:03 testpm sshd[111245]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=192.168.43.199  user=root
     Aug 29 23:35:03 testpm sshd[111245]: pam_succeed_if(sshd:auth): requirement "uid >= 1000" not met by user "root"
     #表示root用户密码输出失败
     Aug 29 23:35:04 testpm sshd[111245]: Failed password for root from 192.168.43.199 port 50602 ssh2
     #表示root用户密码输入正确
     Aug 29 23:35:44 testpm sshd[111245]: Accepted password for root from 192.168.43.199 port 50602 ssh2
     #表示给root用户打开了一个终端
     Aug 29 23:35:44 testpm sshd[111245]: pam_unix(sshd:session): session opened for user root by (uid=0)
     #从192.168.43.199端口50602:11接收到断开连接:用户已断开连接
     Aug 29 23:36:26 testpm sshd[111245]: Received disconnect from 192.168.43.199 port 50602:11: disconnected by user
     #表示断开连接
     Aug 29 23:36:26 testpm sshd[111245]: Disconnected from 192.168.43.199 port 50602
     #表示root用户关闭了会话也就是退出了终端
     Aug 29 23:36:26 testpm sshd[111245]: pam_unix(sshd:session): session closed for user root
     ?
     如果传了公钥通过密钥登陆提示如下:
     #表示接受root用户的密钥
     Aug 29 23:50:31 testpm sshd[13123]: Accepted publickey for root from 192.168.43.199 port 50610 ssh2: RSA SHA256:HiUg8OQ5Zydu7e2vEPHAdM3TiLiQMCXX8m0mLdFgpqA
     #表示为root用户打开会话
     Aug 29 23:50:31 testpm sshd[13123]: pam_unix(sshd:session): session opened for user root by (uid=0)
     2.编写密码输入错误三次将该ip禁止连接的脚本
     [root@testpm script]# vim ssh.sh
     #!/usr/bin/bash
     #这是一个防止破解密码的脚本,当用户输入密码错误次数大于3次时,将禁止连接服务器
     ip=`cat /var/log/secure | awk '/Failed password/ {print $11}' | sort | uniq`
     num=`awk '/Failed password/ {print $11}' /var/log/secure | awk '{ips[i]++} END{print $i, ips[i]}' | awk '{print $2}'`
     if [ $num -ge 3 ];then
             echo "sshd:$ip" >> /etc/hosts.deny
     fi
     添加到计划任务中
     [root@testpm script]# crontab -l
     * * * * * /usr/bin/bash /opt/script/ssh.sh

    Linux禁止root用户远程登陆

    认识sshd_congfig配置文件

     [root@testpm ~]# vim /etc/ssh/sshd_config
     ?
     #Port 22  #监听端口,默认监听22端口   【默认可修改】
     #AddressFamily any  #IPV4和IPV6协议家族用哪个,any表示二者均有
     #ListenAddress 0.0.0.0 #指明监控的地址,0.0.0.0表示本机的所有地址  【默认可修改】
     #ListenAddress ::  #指明监听的IPV6的所有地址格式
     ?
     #Protocol 2        #使用SSH第二版本,centos7默认第一版本已拒绝
     ?
     # HostKeys for protocol version 2  #使用第二版本发送秘钥,支持以下四种秘钥认证的存放位置
     HostKey /etc/ssh/ssh_host_rsa_key  #rsa私钥认证 【默认】
     ?
     #LogLevel INFO    #日志记录级别,默认为info
     #LoginGraceTime 2m   #登录的宽限时间,默认2分钟没有输入密码,则自动断开连接
     #PermitRootLogin yes #是否允许管理员直接登录,'yes'表示允许,实际生产中建议修改为no
     #StrictModes yes  #是否让sshd去检查用户主目录或相关文件的权限数据
     #MaxAuthTries 6  #最大认证尝试次数,最多可以尝试6次输入密码超过之后断开连接
     #MaxSessions 10  #最大允许保持多少个连接。默认值是 10
     ?
     #PubkeyAuthentication yes  #是否开启公钥验证
     ?
     AuthorizedKeysFile      .ssh/authorized_keys    #公钥验证文件路径

    禁止root用户远程登录

     [root@testpm ~]# vim /etc/ssh/sshd_config
     37 #LoginGraceTime 2m
     38 #PermitRootLogin yes  #默认为允许root用户远程登陆
     39 #StrictModes yes
     进行修改如下
     [root@testpm ~]# vim /etc/ssh/sshd_config
     37 #LoginGraceTime 2m
     38 PermitRootLogin no #将注释打开并将yes修改为no
     39 #StrictModes yes
     保存退出并重启sshd服务
     [root@testpm ~]# systemctl restart sshd
    cs