Большинство проблем возникает с SRC IP в случае цепочки INPUT.
Однако для следующего случая:
Ниже приведен код, который сработает, если кто-то отправит неправильный исходный IP-адрес или неправильный порт назначения:
IP одного из интерфейсов хоста — 192.168.1.11
iptables -A INPUT -s 192.168.1.1 -d 192.168.1.11 -dport 1000 -j ACCEPT
iptables -A INPUT -j NFLOG --nflog-group 30
iptables -A INPUT -j DROP
Ниже не работаетесли кто-то отправил неправильный исходный IP-адрес или неправильный порт назначения:
Нет IP - 192.168.1.11 ни для одного из интерфейсов хоста
iptables -A INPUT -s 192.168.1.1 -d 192.168.1.11 -dport 1000 -j ACCEPT
iptables -A INPUT -j NFLOG --nflog-group 30
iptables -A INPUT -j DROP
Это создает впечатление:
- наличие нерегистрированного IP на хосте (нет iface с определенным IP), заставляет iptable вообще не учитывать это правило. Или
- iptable никогда не получит этот входящий пакет и отбросит его раньше.
iptables появляется на более позднем этапе после маршрутизации IP-адресов.
Может ли кто-нибудь подсказать, так ли работает iptable?
Также как можно обойти эту проблему, если намерением является регистрация в NFLOG любого входящего сообщения, поступающего в систему, в котором описывается неверный IP-адрес назначения.
Я пробовал -t mangle, -t nat, -A preroute, а также проверку строк.
Нужно ли мне использовать проверки более низкого уровня, например, ebtable, NetFilter и т. д.?
решение1
Нет IP - 192.168.1.11 ни для одного из интерфейсов хоста
Это создает впечатление: -- наличие незарегистрированного IP на хосте (нет iface с определенным IP), заставляет iptable вообще не учитывать это правило
Сделайте шаг назад, проигнорируйте iptables и подумайте, почему компьютер вообще принял и обработал пакет? Если бы вы полностью отключили все правила брандмауэра, что бы произошло?
Если у компьютера нет IP, связанного с данным интерфейсом, и вы не сделали ничего необычного, то он даже не ответит на пакет ARP с mac-адресом. Таким образом, пакет вообще никогда не будет обработан компьютером.