我正在此处下载 Amazon Web Services 的 CIDR 列表:
https://ip-ranges.amazonaws.com/ip-ranges.json
然后将它们放在 ipset 中,使用如下命令:
sudo ipset -q -A tor $ip
并使用 iptables 进行阻止:
sudo iptables -A INPUT -m set --match-set tor src -j DROP
该 IP 集中总共有大约 65,000 个 IP托尔。它还阻止了 tor IP 和一些其他 IP,并且对于这些 IP 来说,此功能运行良好,但由于某种原因,它似乎无法阻止任何 Amazon IP。
有任何想法吗?
完整规则列表:
sudo ipset -N whitelist nethash
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A INPUT -m set --match-set whitelist src -j ACCEPT
sudo iptables -N BLOCK24
sudo iptables -A BLOCK24 -m recent --name blocked --set
sudo iptables -A INPUT -m state --state NEW -m recent --set
sudo iptables -A INPUT -m state --state NEW -m recent --update --seconds 300 --hitcount 200 -j BLOCK24
sudo iptables -A INPUT -m recent --name blocked --rcheck --seconds 86400 -j BLOCK24
sudo iptables -A BLOCK24 -j LOG --log-prefix='[NETFILTER] ' --log-level 7
sudo iptables -A BLOCK24 -j REJECT
然后我首先运行这些来销毁并重新创建阻止列表:
sudo iptables -D INPUT -m set --match-set tor src -j DROP
sudo ipset destroy tor
sudo ipset -N tor iphash
添加 cira 65K IPs:
sudo ipset -q -A tor $ip
将 ipset 添加到 iptables:
sudo iptables -A INPUT -m set --match-set tor src -j DROP
再说一遍,除了亚马逊以外所有东西都被屏蔽了。
答案1
设置类型需要是hash:net而不是,hash:ip因为 JSON 文件中的条目是网络/掩码符号。