Linux防止暴力破解密码脚本

it2023-04-06  72

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
最新回复(0)