本指南将引导您完成使用badips滥用跟踪器和Fail2ban保护您的服务器或计算机的步骤。我已经在Debian8Jessie和Debian7Wheezy系统上对其进行了测试。什么是坏IP?BadIps是被fail2ban报告为坏的IP列表。本指南由两部分组成,第一部分介绍列表的使用,第二部分介绍数据提交。使用badIPs列表定义安全级别和类您可以使用RESTAPI获取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中创建一条链(只需要创建一次)。(LCTT译注:iptables可能包含多个表(tables),表可能包含多个链(chains),链可能包含多个规则(rules))3.删除链上链接的所有数据(oldentry)。4.将每个IP链接到这个新链。5.完成后,阻止链接到链的所有INPUT/OUTPUT/FORWARD请求。6.删除我们的临时文件。为此,我们创建脚本:cd/home//vimyBlacklist.sh并在文件中输入以下内容。#!/bin/sh###basedonthisversionhttp://www.timokorthals.de/?p=334###adaptedbyStéphaneT._ipt=/sbin/iptables###iptables路径(应该是这个)_input=badips.db###数据库的名字(会用这个名字下载)_pub_if=eth0###联网的设备(执行$ifconfig获取)_droplist=droplist###iptables中链的名字(如果你已经有这样一个名字的链了,你换一个)_level=3###Blog(LCTT译注:Badlog)等级:还不错(0),肯定不好(3),相当不好(5)(getdetailsfromwww.badips.com)_service=any###Loggingservice(getdetailsfromwww.badips.com)###GetbadIPswget-qO-http://www.badips.com/get/list/${_service}/$_level>$_input||{echo"$0:Unabletodownloadiplist.";exit1;}###设置我们的黑名单######先清除链$_ipt--flush$_droplist###新建一条链###***运行时取消下面一行的注释#$_ipt-N$_droplist###过滤掉注释和空行###将每个ip保存到$ipforipin`cat$_input`do###添加到$_droplist$_ipt-A$_droplist-i${_pub_if}-s$ip-jLOG--log-prefix"DropBadIPList"$_ipt-A$_droplist-i${_pub_if}-s$ip-jDROPdone###***,插入或附加到我们的黑名单列表$_ipt-IINPUT-j$_droplist$_ipt-IOUTPUT-j$_droplist$_ipt-IFORWARD-j$_droplist###删除你的临时文件rm$_inputexit0完成后这些,你应该创建一个cron作业来定期更新我们的黑名单。为此,我使用crontab在每晚11:30(在我的延迟备份之前)运行一个脚本。crontab-e2330***/home//myBlacklist.sh#BlockBADIPS不要忘记更改脚本的权限:chmod+xmyBlacklist.sh现在终于完成了,您的服务器/计算机应该更安全了。您也可以像这样手动运行脚本:cd/home//./myBlacklist.sh这可能需要一些时间,所以在此期间不要中断脚本。事实上,时机取决于脚本的最后一行。使用Fail2ban向badIPs报告IP地址在本指南的第二部分,我将向您展示如何使用Fail2ban向badips.com网站报告错误的IP地址。Fail2ban>=0.8.12通过Fail2ban完成报告。根据您的Fail2ban版本,您将使用***或本章的第2部分。如果您的fail2ban版本是0.8.12或更高版本。fail2ban-server--version在您要报告的每个类别中,添加一个操作。[ssh]enabled=trueaction=iptables-multiportbadips[category=ssh]port=sshfilter=sshdlogpath=/var/log/auth.logmaxretry=6可以看到,类别是SSH,来自https://www.badips。com/get/categories找到正确的类别。Fail2ban<0.8.12如果是0.8.12之前的版本,需要新建action。您可以从https://www.badips.com/asset/fail2ban/badips.conf下载它。wgethttps://www.badips.com/asset/fail2ban/badips.conf-O/etc/fail2ban/action.d/badips.conf在上面的badips.conf中可以和之前一样激活各个类别,也可以启用全局:cd/etc/fail2ban/vijail.conf[DEFAULT]...banaction=iptables-multiportbadips现在重启fail2ban-它应该从现在开始报告。servicefail2banrestart你的IP报告统计最后一步-没那么有用。您可以创建一个密钥。但如果您想查看数据,此步骤会很有帮助。复制/粘贴下面的命令,JSON响应应该出现在您的控制台中。wgethttps://www.badips.com/get/key-qO-{"err":"","suc":"newkey5f72253b673eb49fc64dd34439531b5cca05327fhasbeenset.","key":"5f72253b673eb49fc64dd34439531b5cca05327fhasbeenset.","key":"5f72253b673eb49fc64dd34439531b5cca05327fhasbeenset"和"badip}fhas"点击“统计”。现在您可以查看不同类别的统计信息。(标题图片:Pixabay,CC0)