如何在 Ubuntu 12.04 上使用 ipset 和 iptables 阻止大量 IP

如何在 Ubuntu 12.04 上使用 ipset 和 iptables 阻止大量 IP

我想使用本教程: http://www.jsimmons.co.uk/2010/06/08/using-ipset-with-iptables-in-ubuntu-lts-1004-to-block-large-ip-ranges/

在 Ubuntu 12.04 中,软件包 ipset-source 已从存储库中删除,我猜这就是为什么我尝试像这样安装它时才会收到错误:

apt-get install module-assistant ipset
m-a a-i ipset

我该如何在 Ubuntu 中精确地做到这一点?

答案1

我认为你做错了。那篇文章不是最新的,因为它是关于 10.04 LTS 的。现在你可以直接发出

sudo apt-get install ipset

我刚刚在 12.04 上安装了 ipset,没有任何问题。查看我的安装日志https://gist.github.com/3720382

答案2

这就是本教程来自 jsimmons适用于Ubuntu 12.04:

sudo apt-get install ipset

# enter the countrycode that you dont want to block here (for example de for Germay):
DONTBLOCK=de

# download the zonefiles into /tmp/zones/
cd /tmp
wget http://www.ipdeny.com/ipblocks/data/countries/all-zones.tar.gz
mkdir zones
cd zones
tar -xzvf ../all-zones.tar.gz
# remove the zone you want to keep:
rm /tmp/zones/$DONTBLOCK.zone

FOLDER=/etc/zoneipblock/
mkdir $FOLDER
BLOCKLIST=$FOLDER"non_$DONTBLOCK.zone_blocklist"
cat /tmp/zones/*.zone > $BLOCKLIST

#if you want to block only the biggest blocks, use the short list:
BLOCKLIST_SHORT="$BLOCKLIST"_short
cat $BLOCKLIST |grep /8>$BLOCKLIST_SHORT
cat $BLOCKLIST |grep /9>>$BLOCKLIST_SHORT
cat $BLOCKLIST |grep /10>>$BLOCKLIST_SHORT
cat $BLOCKLIST |grep /11>>$BLOCKLIST_SHORT
cat $BLOCKLIST |grep /12>>$BLOCKLIST_SHORT

IPS=$(cat $BLOCKLIST_SHORT)

exit

#TODO: create the list with the right command
#ipset create feckof ...
ipset --create feckoff bitmap:ip range [fromip-toip|ip/cidr]

for i in $IPS; do
ipset add feckof $i
done

iptables -A INPUT -m set –set feckoff src -j DROP

这就是脚本,几乎完成了,只缺少 feckof 列表的创建语句。

有人可以在评论中添加此内容吗?

答案3

最坏的情况是,只需从以下位置下载源代码伊普塞特并手动编译它。

wget http://ipset.netfilter.org/ipset-6.13.tar.bz2
tar xvfj ipset-6.13.tar.bz2
cd ipset-6.13
./configure
make
make check
make install

要了解更多信息,请查看READMEINSTALL运行./configure --help一些奇特的选项。

相关内容