您的位置:首页 > 运维架构 > Linux

Linux 系统安全 -- 防暴力破解

2017-04-21 13:47 441 查看
fail2ban防止暴力破解1. 下载stable稳定版解压缩12. 编译安装13. 拷贝启动脚本14. 修改配置文件15. 启动fail2ban26. 测试,ssh连接,连续输入3次密码27. 此时在查看服务端的防火墙和failban状态28. 解锁被failban禁止登录的ip39. 自动部署的脚本3防止暴力破解的一般方法: 1) 密码足够复杂 2)修改端口号 3) 禁用root登 4)第三方防爆破软件fail2ban实现锁IP 说明:监视系统日志,然后通过匹配日志(/var/log/secure)错误信息(正则匹配),执行相应的屏蔽动作(将满足动作的相关IP利用iptables加入到drop列表一定的时间),如禁止登录,而且可以发送邮件提示除了ssh,fail2ban还支持多项服务,具体查看配置文件官网:http://www.fail2ban.org系统基于centos

1. 下载stable稳定版解压缩

[root@mfsdata03 ~]# wget https://codeload.github.com/fail2ban/fail2ban/tar.gz/0.8.14[root@mfsdata03 ~]# tar -xf 0.8.14[root@mfsdata03 ~]# cd fail2ban-0.8.14/2. 编译安装说明:要求python版本需大于2.4;安装方式 python setup.py install[root@mfsdata03 fail2ban-0.8.14]# python -VPython 2.6.6[root@mfsdata03 fail2ban-0.8.14]# python setup.py install

3. 拷贝启动脚本

[root@mfsdata03 fail2ban-0.8.14]# cp files/redhat-initd /etc/init.d/fail2ban说明:该文件中含有开机启动级别chkconfig,即可以认为是启动脚本[root@mfsdata03 fail2ban-0.8.14]# cat /etc/init.d/fail2ban |grep chkconfig# chkconfig: - 92 08

4. 修改配置文件

[root@mfsdata03 fail2ban-0.8.14]# cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.conf.ori 解释: enabled = ture #开启功能 logpath = /var/log/secure #ssh登录日志文件 maxrty = 3 #尝试3次 findtime = 300 #监控300次 #需要新添加 bantime = 3600 #禁用IP时间,1小时 #需要新添加

[DEFAULT] #全局设置ignoreip = 127.0.0.1/8 #忽略的IP列表,不受设置限制bantime = 600 #屏蔽时间,单位:秒findtime = 500 #这个时间段内超过规定次数会被ban掉maxretry = 3 #最大尝试次数backend = auto [root@mfsdata03 fail2ban-0.8.14]# diff /etc/fail2ban/jail.conf /etc/fail2ban/jail.conf.ori96c96< enabled = true---> enabled = false100,103c100,101< logpath = /var/log/secure< maxretry = 3< findtime = 300< bantime = 3600---> logpath = /var/log/sshd.log> maxretry = 5

5. 启动fail2ban

[root@mfsdata03 fail2ban-0.8.14]# service fail2ban startStarting fail2ban: [ OK ]

6. 测试,ssh连接,连续输入3次密码

结果:被拒绝3600秒不能再次登录root@ubuntu:~# ssh leco@192.168.5.104leco@192.168.5.104's password: #第一次故意输错密码Permission denied, please try again.leco@192.168.5.104's password: #第二次故意输错密码Permission denied, please try again.leco@192.168.5.104's password: #第三次故意输错密码Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).root@ubuntu:~# ssh leco@192.168.5.104 #此时再次登录的时候就被拒绝了ssh: connect to host 192.168.5.104 port 22: Connection refused

7. 此时在查看服务端的防火墙和failban状态

[root@mfsdata03 ~]# fail2ban-client status ssh-iptablesStatus for the jail: ssh-iptables|- filter| |- File list:/var/log/secure| |- Currently failed:0| `- Total failed:9`- action |- Currently banned:1 | `- IP list:192.168.5.201 `- Total banned:3[root@mfsdata03 fail2ban-0.8.14]# iptables -L -nChain INPUT (policy ACCEPT)target prot opt source destination fail2ban-SSH tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22Chain FORWARD (policy ACCEPT)target prot opt source destination Chain OUTPUT (policy ACCEPT)target prot opt source destination Chain fail2ban-SSH (1 references)target prot opt source destination REJECT all -- 192.168.5.201 0.0.0.0/0 reject-with icmp-port-unreachableRETURN all -- 0.0.0.0/0 0.0.0.0/0#此时可以看到在被禁止以后,防火墙自动添加一条规则我使用一条192.168.5.201机器试图登录192.168.5.104机器,密码三次输错以后就被锁定1小时(配置文件可以修改),锁定就是通过防火墙策略,时间过了限制期后自动解锁也就是删除该iptables的命令。注:fail2ban一定后于iptables启动,即重启iptables一定要重启fail2ban,相反重启fail2ban不用重新启iptables。

8. 解锁被failban禁止登录的ip

[root@mfsdata03 ~]# iptables -L -n --line-numberChain INPUT (policy ACCEPT)num target prot opt source destination 1 fail2ban-SSH tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22Chain FORWARD (policy ACCEPT)num target prot opt source destination Chain OUTPUT (policy ACCEPT)num target prot opt source destination Chain fail2ban-SSH (1 references)num target prot opt source destination 1 REJECT all -- 192.168.5.201 0.0.0.0/0 reject-with icmp-port-unreachable2 RETURN all -- 0.0.0.0/0 0.0.0.0/0 [root@mfsdata03 ~]# iptables -t filter -D INPUT 1也就是iptables删除第一条规则。

9. 自动部署的脚本

至此配置工作完成了,另外,需要注意以下一些小问题。1. 如果配置错误,如误操作把自己禁止掉,只要执行>/var/log/secure,清空日志文件,因为fail2ban的工作原理就是读取一定时间内的日志文件,通过配置进行过滤的。2. 很多企业一般不用默认的22端口,会使用其他端口,这个是配置文件和防火墙端口要做相应的更改,如下图以下是要修改的2个地方。A. vim /etc/fail2ban/jail.conf

B. vim /etc/fail2ban/action.d/iptables.conf

3. 如果使用想要永久禁用某个ip登录,可以使用脚本结合crond定期执行:脚本如下:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux fail2ban