2019/6/14 —
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 上的操作
解压
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-keygen 打完命令后,一直回车就可以
如果不想回车,就可以设置一下:
第一次输入是保存秘钥的文件路径
第二、三次是输入保护私钥的密码
私钥文件:id_rsa
公钥文件: id_rsa.pub
第二步:上传公钥文件
方法1:
目标为要远程的服务器
使用ssh-copy-id自动完成
ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected] -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 [email protected]
./id_rsa 在秘钥位置连接
如果在家目录连接:
ssh -i root/.ssh/id_rsa [email protected]
/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 [email protected] -p 52201
OK,有什么问题,欢迎评论交流O(∩_∩)O~