如何使用badIPs.com保护您的服务器,并在Debian上使用Fail2ban报告IP

本教程将记录使用badips abuse跟踪器与Fail2ban一起保护您的服务器或计算机的过程。 我已经在Debian 8 Jessie和Debian 7 Wheezy系统上测试过了。

什么是badIPs?

BadIps是与fail2ban组合的报告为不良的IP的列表。

本教程包含两部分,第一部分将处理列表的使用,第二部分将处理数据的注入。


使用badIPs列表

定义您的安全级别和类别

您可以通过使用REST API获取IP地址列表。

当您获取此URL: https : //www.badips.com/get/categories
您将看到服务中存在的所有不同类别。

  • 第二步,确定女巫分数是为你而设。
    这里有一个来自badips的话应该有帮助(personnaly我拿了评分= 3):
  • 如果您想编译统计资料或使用数据进行一些实验等,您可以从0分开始。
  • 如果您想防御您的私人服务器或网站,请从2.的分数进行分析。也许结合自己的结果,即使他们的分数不超过0或1。
  • 如果您要保护网路商店或高流量,赚钱的电子商务服务器,我们建议使用3或4的值。也可以结合您自己的结果(键/同步)。
  • 如果你偏执,请拿5。

所以现在你得到你的两个变量,让我们连接起来并抓住你的链接。

http://www.badips.com/get/list/{{SERVICE}}/{{LEVEL}}

注意:像我一样,你可以享受所有的服务。 在这种情况下,将服务的名称更改为“any”。

得到的网址是:

https://www.badips.com/get/list/any/3

让我们创建脚本

好的,当这样做的时候,我们将创建一个简单的脚本。

  1. 将我们的列表放在一个tempory文件中。
  2. (只有一次)在iptables中创建一个链。
  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    # Location of iptables (might be correct)
_input=badips.db       # Name of database (will be downloaded with this name)
_pub_if=eth0           # Device which is connected to the internet (ex. $ifconfig for that)
_droplist=droplist     # Name of chain in iptables (Only change this if you have already a chain with this name)
_level=3               # Blog level: not so bad/false report (0) over confirmed bad (3) to quite aggressive (5) (see www.badips.com for that)
_service=any           # Logged service (see www.badips.com for that)

# Get the bad IPs
wget -qO- http://www.badips.com/get/list/${_service}/$_level > $_input || { echo "$0: Unable to download ip list."; exit 1; }

### Setup our black list ###
# First flush it
$_ipt --flush $_droplist

# Create a new chain
# Decomment the next line on the first run
# $_ipt -N $_droplist

# Filter out comments and blank lines
# store each ip in $ip
for ip in `cat $_input`
do
# Append everything to $_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 DROP
done

# Finally, insert or append our black list
$_ipt -I INPUT -j $_droplist
$_ipt -I OUTPUT -j $_droplist
$_ipt -I FORWARD -j $_droplist

# Delete your temp file
rm $_input
exit 0

完成后,您应该创建一个cronjob来更新我们的黑名单。

为此,我使用crontab,并在11:30 PM(就在我的延迟备份之前)每天运行脚本。

crontab -e
23 30 * * * /home/<user>/myBlacklist.sh #Block BAD IPS

不要忘记chmod你的脚本:

chmod + x myBlacklist.sh

现在完成了,您的服务器/计算机应该有点安全。

您还可以手动运行脚本:

cd /home/<user>/
./myBlacklist.sh

它应该需要一些时间...所以不要打破脚本。 事实上,它的价值在于最后一行。

使用Fail2ban向badIP报告IP地址

在本教程的第二部分中,我将介绍如何使用Fail2ban将bd IP地址bach报告给badips.com网站。

Fail2ban> = 0.8.12

报告是使用Fail2ban进行的。 根据您的Fail2ban版本,您必须使用本章的第一部分或第二部分。如果您在版本0.8.12中有fail2ban。

如果您的fail2ban版本为0.8.12或更高版本。

fail2ban-server --version

在您要报告的每个类别中,只需添加一个操作即可。

[ssh]
enabled = true
action = iptables-multiport
badips[category=ssh]
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry= 6

您可以看到,该类别是SSH,请查看这里( https://www.badips.com/get/categories )以找到正确的类别。

Fail2ban <0.8.12

如果版本不到0.8.12,那么您将需要创建一个操作。 这可以从这里下载: https : //www.badips.com/asset/fail2ban/badips.conf

wget https://www.badips.com/asset/fail2ban/badips.conf -O /etc/fail2ban/action.d/badips.conf

使用上面的badips.conf,您可以按照上述方式激活每个类别,也可以在全局启用它:

cd /etc/fail2ban/
vi jail.conf
[DEFAULT]

...

banaction = iptables-multiport
badips

现在重新启动fail2ban - 它应该从现在开始报告。

service fail2ban restart

IP报告统计


最后一步 - 不是很有用...您可以创建一个键。
如果你想看到你的数据,这一个是有用的。
只需复制/粘贴,并在控制台上显示JSON响应。

wget https://www.badips.com/get/key -qO -
{
  "err":"",
  "suc":"new key 5f72253b673eb49fc64dd34439531b5cca05327f has been set.",
  "key":"5f72253b673eb49fc64dd34439531b5cca05327f"
}

然后去badips网站,输入你的“密钥”并点击“统计”。

这里我们按类别去所有的统计数据。

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏