Я ищу надежный метод блокировки нежелательного трафика TCP / IP.
На моей Linux-машине iptables и ipset, кажется, предлагают хороший способ сделать это.
До сих пор я делал это:
ipset create ipsok hash:net maxelem (result of wc -l for my cidr list in a file)
ipset add <network address>
И убедился, что это единственный ipset, использующий:
service ipset status
Это показывает только ipset ipsok с нужным количеством записей. Я также убедился, что ipset используется после перезагрузки. Затем я добавляю ipset в правила iptables:
iptables -I INPUT -m set --match-set ipsok src -j ACCEPT
Чтобы проверить, работает ли это, я позволяю TOR предоставить мне IP-адрес и проверять его с помощью:
ipset test ipsok <tor ip address>
Это говорит мне, что адрес НЕ в комплекте ипсок.
Когда я направляю браузер tor на свою машину, соединение устанавливается. Это верно? Я думал, что соединение не удастся, потому что ip-адрес не найден в ipset.
Что мне нужно сделать, чтобы iptables (и ipset) блокировал трафик НЕ идёт с любого сетевого адреса в ipset ipsok?
Политика Iptables по умолчанию: ACCEPT
. Таким образом, добавляя IP-адреса в свой список, вы ПРИНИМАЕТЕ их только дважды.
Ваш iptables -L
должен показать столько же, то есть единственными правилами будут правила ACCEPT.
Измените значение по умолчанию на DROP, затем добавьте свои элементы в ACCEPT.
Попробуйте это перед своим правилом набора совпадений: iptables -P INPUT DROP
Будьте осторожны - не делайте этого удаленно, иначе вы можете заблокировать себя.