如何在 iptables 中确认 IP 范围已被阻止?

如何在 iptables 中确认 IP 范围已被阻止?

在 Ubuntu 19 上,我使用这个脚本GitHub - 使用 iptables + ipset + ipdeny.com 封锁国家

我已经安装了它,并且为了测试我将它配置为获取两个 IP 列表,并且当我从 shell 运行它时,没有出现任何错误/var/log/ipset-country.log

当我尝试使用列出被阻止的 IP 范围时

iptables -L INPUT -v -n

我懂了

Chain INPUT (policy DROP 59 packets, 2873 bytes)
pkts bytes target     prot opt in     out     source               destination         
407K  137M ufw-before-logging-input  all  --  *   *    0.0.0.0/0            0.0.0.0/0           
407K  137M ufw-before-input  all  --  *      *    0.0.0.0/0            0.0.0.0/0           
33086 1783K ufw-after-input  all  --  *      *    0.0.0.0/0            0.0.0.0/0           
32577 1759K ufw-after-logging-input  all  --  *    *    0.0.0.0/0            0.0.0.0/0           
32577 1759K ufw-reject-input  all  --  *      *     0.0.0.0/0            0.0.0.0/0           
0     0 LOGIPS     tcp  --  *    *   0.0.0.0/0   0.0.0.0/0   match-set ipv4-falkland_islands src
0     0 LOGIPS     tcp  --  *    *   0.0.0.0/0   0.0.0.0/0   match-set ipv4-ethiopia src
32577 1759K ufw-track-input  all  --  *    *     0.0.0.0/0            0.0.0.0/0 

它似乎没有显示两个 IPv4 IP 集的 IP 范围;相反,我看到了0.0.0.0/0

我如何确定这两个 IP 列表是否被正确导入?

如何列出当前被阻止的 IP 范围?

答案1

最后,如果运行正常,您应该会看到国家/地区阻止规则的数据包和字节数不为零。示例:

Chain INPUT (policy DROP 0 packets, 0 bytes)
    pkts      bytes target     prot opt in     out     source               destination
   ...
   60848  3326067 DROP       all  --  enp4s0 *       0.0.0.0/0            0.0.0.0/0            match-set china src
    1265    57566 DROP       all  --  enp4s0 *       0.0.0.0/0            0.0.0.0/0            match-set hongkong src
   26865  1085462 DROP       all  --  enp4s0 *       0.0.0.0/0            0.0.0.0/0            match-set romania src
  193511  7816920 DROP       all  --  enp4s0 *       0.0.0.0/0            0.0.0.0/0            match-set russia src
   33149  1358726 DROP       all  --  enp4s0 *       0.0.0.0/0            0.0.0.0/0            match-set ukraine src

要列出任何集合的内容,请执行sudo ipset list SETNAME。例如:

doug@DOUG-64:~$ sudo ipset list romania | head -15
Name: romania
Type: hash:net
Revision: 6
Header: family inet hashsize 1024 maxelem 65536
Size in memory: 65600
References: 1
Members:
193.104.73.0/24
45.131.104.0/22
89.45.66.0/24
91.240.94.0/24
176.223.66.0/24
185.248.136.0/22
46.175.152.0/22
176.116.32.0/20

答案2

如果显示的规则是您想要的,则表明您的防火墙已启动。

打开命令行终端(选择应用程序>附件>终端),或使用 ssh 登录到远程服务器,然后输入以下命令阻止 ip 地址,如下所示:

# /sbin/iptables -A INPUT -s 65.55.44.100 -j DROP

要查看被阻止的 IP 地址,请输入:

# iptables -L INPUT -v -n

或者

# iptables -L INPUT -v -n | less

任务:检查被禁止的 IP 的 Linux 使用如下 grep 命令来验证 IP 地址 1.2.3.4 是否被阻止:

# iptables -L INPUT -v -n | grep "1.2.3.4"

如何删除或解除对 IP 地址 1.2.3.4 的阻止?使用以下语法在 Linux 下删除或解除对 IP 地址的阻止,输入:

# iptables -D INPUT -s 1.2.3.4 -j DROP

最后,确保保存防火墙:

# service iptables save

相关内容