您的位置:首页 > 其它

ssh防暴力破解

2016-01-26 16:15 260 查看
SSH 为 Secure Shell 的缩写, SSH 为建立在应用层和传输层基础上的安全协议. 利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题.
基于口令的安全验证: 所有传输的数据都会被加密,但是不能保证你正在连接的服务器就是你想连接的服务器。可能会有别的服务器在冒充真正的服务器,也就是受到“中间人”这种方式的攻击。
基于秘钥的安全验证: 客户端在本地生成秘钥对,把公钥传给服务器. 当客户端访问服务器时,服务器会在用户的主目录下寻找公钥,然后跟客户端发来的公钥进行比对,如果秘钥一致,服务器就用公用密匙加密“质询”(challenge)并把它发送给客户端软件。客户端软件收到“质询”之后就可以用你的私人密匙解密再把它发送给服务器。

这里我们的实验就是用秘钥登录
在客户端生成秘钥




然后将其传给服务器




我们在server端会看到多了一个被验证的key




用root 用户登陆服务器就不需要密码了




有时公司为了安全考虑是不允许root用户ssh 登陆的.
比如我们编辑server端的/etc/ssh/sshd_config 文件.约49行的位置 PermitRootLogin 改为no



此时服务端重启sshd服务后 clent 端用root是登陆不了服务器的
我们再把普通用户的公钥传给服务器就可以用普通用户ssh登录服务器了(普通用户和root用户指的是存在于服务器上的用户.本地用户是不能登陆远程服务器的.)
在server端添加普通用户test2
useradd test2
echo 123456 | passwd --stdin test2

在clent端传给服务器公钥




再用test2 用户登录服务器





用fail2ban软件 可以防止 别人无限制尝试破解密码 占用带宽和资源 降低安全风险。
实验:用fail2ban 限制 ip 登陆尝试三次失败后限制ip登陆1个小时
在www.fail2ban.org 官网上下载 fail2ban 软件




解压后 用 README.md 提供的方法 安装软件




添加开机启动
cp files/redhat-initd /etc/init.d/fail2ban
chkconfig --add fail2ban

vim /etc/fail2ban/jail.conf




5分钟内 尝试失败三次 就触发bantime 1小时
#logpath 定义日志存放的目录路径
#bantime 定义 屏幕ip的时间
#findtime 定义 在findtime 时间内 尝试超过maxretry 规定的次数 会被ban掉
#maxretry 定义 最大尝试次数



设置完毕后重启fail2ban服务
systemctl restart fail2ban
rhel6 是 service fail2ban restart
然后在客户端尝试登录3次输入错误密码 看效果





在server端 /var/log/secure看日志消息


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: