Я ищу основательный метод для блокирования нежелательного трафика 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>
Это говорит мне, что адрес НЕ находится в наборе ipsok.
Когда я направляю браузер скалистой вершины к своей машине, связь установлена. Это корректно? Я думал, что связь прервется, потому что IP-адрес не найден в ipset.
Что я должен сделать для создания iptables (и ipset) трафиком блока, НЕ прибывающим из какого-либо сетевого адреса в ipset ipsok?
Политика Iptables по умолчанию - ACCEPT
. Таким образом, добавляя IP-адреса в свой список, вы принимаете их только дважды.
Ваш iptables -L
должен отображать столько же - то есть единственными правилами будут правила ACCEPT.
Измените настройки по умолчанию DROP, затем добавьте элементы в ACCEPT.
Попробуйте это перед правилом набора совпадений:
iptables -P INPUT DROP
Будьте осторожны - не делайте этого удаленно, иначе вы можете заблокировать себя.