
Насколько я понимаю, iptables работает на транспортном уровне (уровень 4), и любая фильтрация пакетов, которая происходит, основана на протоколах ip для уровня 4, таких как tcp и udp. Так что если мы введем протоколы, такие как esp, gre и l2tp вiptables-poption, имеет ли это смысл? Можем ли мы фильтровать пакеты на основе протоколов уровня 2/3 с помощью iptables? Если нет, то как iptables фильтрует пакеты на основе протоколов icmp?
Я новичок в iptables и все еще учусь. Спасибо!
решение1
iptables
поддерживает фильтрацию на уровне канала передачи данных, сети и транспорта.
The-p
(протокол) не ограничивается протоколами уровня 4.страница руководстваупоминает icmp и esp конкретно. Я знаю, что gre также поддерживается (либо как 'gre', либо как протокол '47'). Указанный протокол может быть передан этой опции по имени или по его целочисленному номеру, указанному в /etc/protocols
. Я не уверен, что все протоколы в этом списке поддерживаются iptables.
Если были указаны параметры -p или --protocol и если и только если обнаружена неизвестная опция, iptables попытается загрузить модуль соответствия с тем же именем, что и протокол, чтобы попытаться сделать опцию доступной.
Синтаксис «модуля сопоставления» представляет собой расширенный модуль сопоставления пакетов и указывается с помощью параметров -m --match
.
Список поддерживаемых расширений можно найти здесь:iptables-расширения. Список доступных модулей ядра netfilter находится по адресу /lib/modules/$(uname -r)/kernel/net/netfilter
.