Windows安全加固系列-----应对ssh的暴力破解

匿名 (未验证) 提交于 2019-12-02 23:43:01

2019/6/14 ―

此文章是关于有效防范SSH的暴力破解,此处使用DenyHosts和SSH密钥认证的方法进行防范。

DenyHosts

DenyHosts是Python语言写的一个程序,它会分析sshd的日志文件(/var/log/secure),当发现重 复的攻击时就会记录IP到/etc/hosts.deny文件,从而达到自动屏蔽IP的功能。

实验环境:

kali linux 和 centos 7 两台Linux操作系统的主机。

这里准备了DenyHosts的压缩包。
链接:https://pan.baidu.com/s/1npQYI0l3H9dLt3-lcCZTOQ
提取码:u8p4

在Centos 7 上的操作

下载后,传到centos 7 中

解压

tar xzf DenyHosts-2.6.tar.gz		 


到这个目录下

cd DenyHosts-2.6 


安装

python setup.py install 


到这个目录下

cd /usr/share/denyhosts 


创建配置文件

cp denyhosts.cfg-dist denyhosts.cfg 


编辑这个文件

vi denyhosts.cfg 主要修改这个几个参数: 	DENY_THRESHOLD_INVALID = 5	---->  DENY_THRESHOLD_INVALID = 2 	无效登录的用户登录2次锁定 	DENY_THRESHOLD_VALID = 10	---->  DENY_THRESHOLD_INVALID = 3 	普通用户登录3次锁定 	DENY_THRESHOLD_ROOT = 1	---->  DENY_THRESHOLD_INVALID = 2 	管理员root用户登录2次锁定 


创建启动程序

cp daemon-control-dist daemon-control 


改变程序的权限,确保只有管理员可以启动

chown root daemon-control chmod 700 daemon-control 


开启服务

./daemon-control start 


查看进程,是否开启DenyHosts

ps -elf | grep Denyhosts 

kali linux 上进行ssh暴力破解的攻击

编辑字典密码

开始攻击

msfconsole use auxiliary/scanner/ssh/ssh_login show options set PASS_FILE password set RHOSTS 192.168.136.13 set RPORT 52201 set USERNAME  root show options 

发现没有攻击成功,说明denyhosts 及时锁定了kali linux 的登录测试。

在centos 7 上查看记录

cat /var/log/secure - - - 查看系统安全日志

SSH密钥认证

构建密钥对验证的ssh登录体系

第一种方法

在客户端操作,在客户端创建密钥对,保存私钥,然后将公钥发送给服务端。

第一步:创建密钥对

ssh-keygen     打完命令后,一直回车就可以 如果不想回车,就可以设置一下: 	第一次输入是保存秘钥的文件路径 	第二、三次是输入保护私钥的密码 私钥文件:id_rsa 公钥文件:  id_rsa.pub 

第二步:上传公钥文件
方法1:

		目标为要远程的服务器 		使用ssh-copy-id自动完成 		ssh-copy-id -i /root/.ssh/id_rsa.pub   root@192.168.136.13 -p 52201 

方法2:

		在服务器上完成此操作: 		ls -a 		找到.ssh这个目录 		如果没有:可以创建目录: 		mkdir .ssh 		cd .ssh/  			 到这个目录下 		ls					 找到authorized_keys这个文件 		touch authorized_keys		如果没有,创建一个文件 		chmod 600 /root/.ssh/authorized_keys	改变一下权限 		将公钥信息导入公钥数据库 		数据库文件:~/.ssh/authorized_keys 		cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys 

第四步:重启sshd服务,再次登录时将通过密钥对验证

systemctl restart sshd ssh -i ./id_rsa root@192.168.136.13 ./id_rsa   在秘钥位置连接 如果在家目录连接: ssh -i root/.ssh/id_rsa root@192.168.136.13 


报错

/usr/bin/ssh-copy-id: ERROR: ssh_exchange_identification: read: Connection reset by peer

解决方法

echo “sshd: ALL” >> /etc/hosts.allow

第二种方法
有些细节参考上一种方法
在服务器端操作,在服务器上创建密钥对,安装公钥,然后将私钥发送给客户端。

第一步:在服务器上创建密钥对

ssh-keygen 

第二步:在服务器上安装公钥

cat id_rsa.pub >> authorized_keys  chmod 600 authorized_keys chmod 700 ~/.ssh 

第三步:把私钥发送给客户端
第四步:重启sshd服务,再次登录时将通过密钥对验证

systemctl restart sshd ssh -i ./id_rsa root@192.168.136.13 -p 52201 

OK,有什么问题,欢迎评论交流O(∩_∩)O~

文章来源: https://blog.csdn.net/zhaotiannuo_1998/article/details/91971708
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!