Эта команда говорит: «Если сетевой трафик поступает с IP-адреса X, но не на интерфейс Y, то DROP». Обратите внимание, что он находится в необработанной таблице, которая является первой и самой быстрой таблицей, когда сетевой трафик поступает в IPtables.
iptables -t raw -A PREROUTING -s ${X} ! -i ${Y} -j УДАЛИТЬ
У вас должна получиться другая перестановка этого правила в противоположном направлении:
iptables -t raw -A PREROUTING ! -s ${X} -i ${Y} -j УДАЛИТЬ
Вы можете регистрировать нарушения этих правил с помощью следующих четырех команд:
iptables -t raw -A PREROUTING -s ${X} ! -i ${Y} -j ЖУРНАЛ --log-prefix "Неправильный IP: "
iptables -t raw -A PREROUTING -s ${X} ! -i ${Y} -j УДАЛИТЬ
iptables -t raw -A PREROUTING ! -s ${X} -i ${Y} -j LOG --log-prefix "Неверный интерфейс: "
iptables -t raw -A PREROUTING ! -s ${X} -i ${Y} -j УДАЛИТЬ
РЕДАКТИРОВАТЬ: Отредактировано после того, как я получил дополнительные разъяснения в комментариях.
Это правило гласит: «Если трафик поступает с IP-адреса X и не предназначен для IP-адреса Z, то этот трафик отбрасывается».
iptables -t raw -A PREROUTING -s ${X} ! -d ${Z} -j УДАЛИТЬ
В этих правилах говорится: «Если трафик поступает на интерфейс Y и не предназначен для IP-адреса Z, то этот трафик отбрасывается».
iptables -t raw -A PREROUTING -i ${Y} ! -d ${Z} -j УДАЛИТЬ
Вот комбинация этих двух правил, которая гласит: «Если трафик поступает с IP-адреса X и поступает на интерфейс Y и не предназначен для IP-адреса Z, то отбрасывайте трафик».
iptables -t raw -A PREROUTING -s ${X} -i ${Y} ! -d ${Z} -j УДАЛИТЬ.
Просто примечание: мне нравится использовать сырой
table, если правила не требуют отслеживания соединения. сырой
table не отслеживает никаких соединений. В этом случае для этих правил не требуется отслеживание соединения. Отслеживание соединения необходимо для нат
стол и для коннтрек
модуль (-м коннтрек
). сырой
table гораздо более эффективна, чем другие таблицы, потому что отслеживание соединений требует значительно больше ресурсов на вашем сервере. Однако таблицу фильтров удобно использовать, и если она проще и имеет больше смысла для вас, используйте таблицу фильтров. Правила были бы точно такими же, но только -т сырой
станет -т фильтр
Когда пакеты попадают в IPtables, они обходят таблицы следующим образом:
raw --> mangle (где начинается отслеживание соединения) --> nat --> filter