阻止任何国家的iptables的IP地址

使用iptables阻止任何国家/地区的IP地址

本文介绍如何在iptables的帮助下阻止任何国家/地区的IP地址。

资料来源: http : //blogama.org/node/

获取IP地址的API阻止

首先,您需要知道要阻止的国家/地区的代码(ISO 3166格式)。 完整的列表可以在这里

一旦你有国家代码,你现在可以通过以下url获得列表(在这个例子中是阿富汗和阿根廷):

http://blogama.org/country_query.php?country=AF,AR

如果您不看到IP地址,请查看页面代码。

数据更新的频率

在每个月的第一个星期。

完整的SQL数据库

有关此数据的完整SQL数据库,请阅读此页面

自动bash脚本来阻止iptables中的这些IP地址

以下脚本将:

  1. 从我们的API获取要阻止的国家/地区的正确IP地址
  2. 在iptables中添加这些规则。
#!/bin/bash
###PUT HERE COMA SEPARATED LIST OF COUNTRY CODE###
COUNTRIES="AK,AR"
WORKDIR="/root"
#######################################
cd $WORKDIR
wget -c --output-document=iptables-blocklist.txt http://blogama.org/country_query.php?country=$COUNTRIES
if [ -f iptables-blocklist.txt ]; then
  iptables -F
  BLOCKDB="iptables-blocklist.txt"
  IPS=$(grep -Ev "^#" $BLOCKDB)
  for i in $IPS
  do
    iptables -A INPUT -s $i -j DROP
    iptables -A OUTPUT -d $i -j DROP
  done
fi
rm $WORKDIR/iptables-blocklist.txt
赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

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

支付宝扫一扫打赏

微信扫一扫打赏