使用 badIPs.com 保护你的服务器,并通过 Fail2ban 报告恶意 IP
2017-04-27 09:55
375 查看
这篇指南向你介绍使用 badips 滥用追踪器(abuse tracker)和 Fail2ban 保护你的服务器或计算机的步骤。我已经在 Debian 8 Jessie 和 Debian 7 Wheezy 系统上进行了测试。
什么是 badIPs?
BadIps 是通过 fail2ban 报告为不良 IP 的列表。
这个指南包括两个部分,第一部分介绍列表的使用,第二部分介绍数据提交。
当你使用 GET 请求获取 URL:https://www.badips.com/get/categories 后,你就可以看到服务中现有的所有不同类别。
第二步,决定适合你的等级。 参考 badips 应该有所帮助(我个人使用
如果你想要编译一个统计信息模块或者将数据用于实验目的,那么你应该用等级 0 开始。
如果你想用防火墙保护你的服务器或者网站,使用等级 2。可能也要和你的结果相结合,尽管它们可能没有超过 0 或 1 的情况。
如果你想保护一个网络商店、或高流量、赚钱的电子商务服务器,我推荐你使用值 3 或 4。当然还是要和你的结果相结合。
如果你是偏执狂,那就使用 5。
现在你已经有了两个变量,通过把它们两者连接起来获取你的链接。
最终的 URL 就是:
1、 把你的列表放到一个临时文件。
2、 在 iptables 中创建一个链(chain)(只需要创建一次)。(LCTT 译注:iptables 可能包括多个表(tables),表可能包括多个链(chains),链可能包括多个规则(rules))
3、 把所有链接到该链的数据(旧条目)刷掉。
4、 把每个 IP 链接到这个新的链。
5、 完成后,阻塞所有链接到该链的 INPUT / OUTPUT /FORWARD 请求。
6、 删除我们的临时文件。
为此,我们创建脚本:
为此,我使用 crontab 在每天晚上 11:30(在我的延迟备份之前) 运行脚本。
你也可以像下面这样手动运行脚本:
如果你 fail2ban 的版本是 0.8.12 或更新版本。
复制/粘贴下面的命令,你的控制台中就会出现一个 JSON 响应。
现在你就可以看到不同类别的统计信息。
(题图:Pixabay , CC0)
via: https://www.howtoforge.com/tutorial/protect-your-server-computer-with-badips-and-fail2ban/
什么是 badIPs?
BadIps 是通过 fail2ban 报告为不良 IP 的列表。
这个指南包括两个部分,第一部分介绍列表的使用,第二部分介绍数据提交。
使用 badIPs 列表
定义安全等级和类别
你可以通过使用 REST API 获取 IP 地址列表。当你使用 GET 请求获取 URL:https://www.badips.com/get/categories 后,你就可以看到服务中现有的所有不同类别。
第二步,决定适合你的等级。 参考 badips 应该有所帮助(我个人使用
scope = 3):
如果你想要编译一个统计信息模块或者将数据用于实验目的,那么你应该用等级 0 开始。
如果你想用防火墙保护你的服务器或者网站,使用等级 2。可能也要和你的结果相结合,尽管它们可能没有超过 0 或 1 的情况。
如果你想保护一个网络商店、或高流量、赚钱的电子商务服务器,我推荐你使用值 3 或 4。当然还是要和你的结果相结合。
如果你是偏执狂,那就使用 5。
现在你已经有了两个变量,通过把它们两者连接起来获取你的链接。
注意:像我一样,你可以获取所有服务。在这种情况下把服务的名称改为http://www.badips.com/get/list/{{SERVICE}}/{{LEVEL}}
any。
最终的 URL 就是:
https://www.badips.com/get/list/any/3
创建脚本
所有都完成了之后,我们就会创建一个简单的脚本。1、 把你的列表放到一个临时文件。
2、 在 iptables 中创建一个链(chain)(只需要创建一次)。(LCTT 译注:iptables 可能包括多个表(tables),表可能包括多个链(chains),链可能包括多个规则(rules))
3、 把所有链接到该链的数据(旧条目)刷掉。
4、 把每个 IP 链接到这个新的链。
5、 完成后,阻塞所有链接到该链的 INPUT / OUTPUT /FORWARD 请求。
6、 删除我们的临时文件。
为此,我们创建脚本:
把以下内容输入到文件。cd /home/<user>/vi myBlacklist.sh
完成这些后,你应该创建一个定时任务定期更新我们的黑名单。#!/bin/sh### based on this version http://www.timokorthals.de/?p=334### adapted by Stéphane T._ipt=/sbin/iptables ### iptables 路径(应该是这个)_input=badips.db ### 数据库的名称(会用这个名称下载)_pub_if=eth0 ### 连接到互联网的设备(执行 $ifconfig 获取)_droplist=droplist ### iptables 中链的名称(如果你已经有这么一个名称的链,你就换另外一个)_level=3 ### Blog(LCTT 译注:Bad log)等级:不怎么坏(0)、确认坏(3)、相当坏(5)(从 www.badips.com 获取详情)_service=any ### 记录日志的服务(从 www.badips.com 获取详情)### 获取不良 IPswget -qO- http://www.badips.com/get/list/${_service}/$_level > $_input || { echo "$0: Unable to download ip list."; exit 1; }### 设置我们的黑名单 ###### 首先清除该链$_ipt --flush $_droplist### 创建新的链### 首次运行时取消下面一行的注释# $_ipt -N $_droplist### 过滤掉注释和空行### 保存每个 ip 到 $ipfor ip in `cat $_input`do ### 添加到 $_droplist $_ipt -A $_droplist -i ${_pub_if} -s $ip -j LOG --log-prefix "Drop Bad IP List " $_ipt -A $_droplist -i ${_pub_if} -s $ip -j DROPdone### 最后,插入或者追加到我们的黑名单列表$_ipt -I INPUT -j $_droplist$_ipt -I OUTPUT -j $_droplist$_ipt -I FORWARD -j $_droplist### 删除你的临时文件rm $_inputexit 0
为此,我使用 crontab 在每天晚上 11:30(在我的延迟备份之前) 运行脚本。
crontab -e
别忘了更改脚本的权限:23 30 * * * /home/<user>/myBlacklist.sh #Block BAD IPS
现在终于完成了,你的服务器/计算机应该更安全了。chmod + x myBlacklist.sh
你也可以像下面这样手动运行脚本:
它可能要花费一些时间,因此期间别中断脚本。事实上,耗时取决于该脚本的最后一行。cd /home/<user>/./myBlacklist.sh
使用 Fail2ban 向 badIPs 报告 IP 地址
在本篇指南的第二部分,我会向你展示如何通过使用 Fail2ban 向 badips.com 网站报告不良 IP 地址。Fail2ban >= 0.8.12
通过 Fail2ban 完成报告。取决于你 Fail2ban 的版本,你要使用本章的第一或第二节。如果你 fail2ban 的版本是 0.8.12 或更新版本。
在每个你要报告的类别中,添加一个 action。fail2ban-server --version
正如你看到的,类别是 SSH,从 https://www.badips.com/get/categories 查找正确类别。[ssh]enabled = trueaction = iptables-multiport badips[category=ssh]port = sshfilter = sshdlogpath = /var/log/auth.logmaxretry= 6
Fail2ban < 0.8.12
如果版本是 0.8.12 之前,你需要新建一个 action。你可以从 https://www.badips.com/asset/fail2ban/badips.conf 下载。在上面的 badips.conf 中,你可以像前面那样激活每个类别,也可以全局启用它:wget https://www.badips.com/asset/fail2ban/badips.conf -O /etc/fail2ban/action.d/badips.conf
cd /etc/fail2ban/vi jail.conf
现在重启 fail2ban - 从现在开始它就应该开始报告了。[DEFAULT]...banaction = iptables-multiport badips
service fail2ban restart
你的 IP 报告统计信息
最后一步 - 没那么有用。你可以创建一个密钥。 但如果你想看你的数据,这一步就很有帮助。复制/粘贴下面的命令,你的控制台中就会出现一个 JSON 响应。
wget https://www.badips.com/get/key -qO -
到 badips 网站,输入你的 “key” 并点击 “statistics”。{ "err":"", "suc":"new key 5f72253b673eb49fc64dd34439531b5cca05327f has been set.", "key":"5f72253b673eb49fc64dd34439531b5cca05327f"}
现在你就可以看到不同类别的统计信息。
(题图:Pixabay , CC0)
via: https://www.howtoforge.com/tutorial/protect-your-server-computer-with-badips-and-fail2ban/
相关文章推荐
- 阿里云 云解析使用方法/在阿里云ESC服务器解析域名并绑定服务器IP后上传文件通过域名访问步骤教程
- 通过使用Exchange备份工具保护Exchange服务器
- 如何使用 Fail2Ban 保护服务器免受暴力攻击
- 实战:使用TCP/IP筛选保护服务器安全
- 实战:使用TCP/IP筛选保护服务器安全
- 如何通过Oray(花生壳)进行域名映射本地IP和端口,应用于本地服务器访问
- C#使用多线程实现网络爬虫,并且通过网络传输,传到另外的服务器数据库存储
- SQL语句里连接其它服务器上的数据库(通过TCP/IP),并操作和读取
- 如何通过命令查看服务器的内存条使用情况
- 通过浏览器http://ip:端口+目录访问服务器:apache的安装
- 使用Python通过win32 COM实现Word文档的写入与保存方法
- Visual Studio 中使用Word、Excel等COM控件时如何配置服务器让程序正常运行?
- C语言使用socket通过IP138获取外网IP
- wamp不能使用phpmyadmin和不能通过ip访问局域网内的网站
- Nginx禁止通过IP,未绑定域名访问服务器
- 第5章分布式系统模式 使用服务器激活对象通过 .NET Remoting 实现 Broker
- 使用ATL编写一个简单的COM服务器
- Git使用基本方法二(通过SSH加密传输连接git服务器)
- 通过IP安全策略禁止WIN2003服务器响应PING
- android上传图片到服务器(使用base64字节流的形式通过 AsyncHttpClient框架传输)