Правила ipset игнорируются при блокировке Amazon Web Services
Я загружаю список CIDR для Amazon Web Services здесь:
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
Всего в ipset tor около 65 000 IP-адресов. У него также заблокированы IP-адреса и некоторые другие, и для них это работает нормально, но по какой-то причине он не может заблокировать IP-адреса Amazon.
Есть идеи?
Полный список правил:
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
Добавьте IP-адреса cira 65K с помощью:
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 являются нотацией net/mask.