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看日志消息
基于口令的安全验证: 所有传输的数据都会被加密,但是不能保证你正在连接的服务器就是你想连接的服务器。可能会有别的服务器在冒充真正的服务器,也就是受到“中间人”这种方式的攻击。
基于秘钥的安全验证: 客户端在本地生成秘钥对,把公钥传给服务器. 当客户端访问服务器时,服务器会在用户的主目录下寻找公钥,然后跟客户端发来的公钥进行比对,如果秘钥一致,服务器就用公用密匙加密“质询”(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看日志消息
相关文章推荐
- Sbt构建工具常用操作
- android 组合控件-属性获取
- 模拟 Codeforces620F Xors on Segments
- android 性能分析工具、布局分析工具、monkey自动化测试的简单使用
- 用原子操作实现无锁编程
- 《Linux环境下sockets编程(1):简单UDP编程》
- JavaScript学习总结——转
- 任意类型转换为IntPtr
- EditText中imeOptions属性使用及设置无效解决
- QT JS KindEditor 禁用超链接默认跳转功能
- 关于数据库控制
- 结构体数组中
- RecyclerView动画
- android默认打开数据连接
- 基于xml配置springmvc
- 移动端调试工具-Debuggap
- for 穷举
- Java的浮点数
- 如何估算网站日承受最大访问PV
- SpringMVC深度探险(三) —— DispatcherServlet与初始化主线