Это нормально, и не имеет ничего общего с NAT. Linux по умолчанию обрабатывает IP-адреса в качестве принадлежности к компьютеру ¹, не к определенному интерфейсу. Так что это ответит на пакеты до 192.168.2.1 на любой интерфейс, а не только интерфейс локальной сети.
, который сказал, NAT работает , подразумевает брандмауэр или наоборот. Вы можете, например, карта внутренних хозяев 192.168.0.2-254 к публичному IPS X.y.z.2-254, а все направляющиеся к X.y.z.253. Были направлены до 192.168.0.253. Это все еще NAT.
При сопоставлении целой подсети на один внешний IP-адрес в качестве побочного эффекта вы получаете брандмауэр поведение, создавая соединения в основном исходящим. Но даже так, ваши правила брандмауэра все еще должны заблокировать эти пакеты - код NAT, вероятно, может быть обманут для сопоставления порта, который вы не хотите, брандмауэр не будет. И его более гибкий тоже. (И если ваш ISP скомпирован скомпрометирован, они могут отправить вам трафик на ваши частные адреса LAN, и ваша машина будет счастливо пересылать ее).
PS: Чтобы увидеть правила NAT, вы хотите iptables -t nat -l
. Чтобы увидеть, что разрешено пересылать ваш маршрутизатор / брандмауэр, вам нужно посмотреть на Whean
цепь , а не вход
цепочек.
Сноски
¹ или точнее, определенное пространство имен сети на машине - вероятно, только один, если вы не используете определенные методы виртуальных серверов. Arp_ignore
и ARP_ANNONCH
файлы в / proc / net / ipv4 / conf / * /
Настройте это поведение.
Следует отметить несколько моментов.
Правила в вашей цепочке INPUT принимают все пакеты ICMP, поэтому эхо-запрос на «внутренний IP-адрес» маршрутизатора завершается успешно.
С другой стороны, эхо-запрос к устройству во внутренней сети проходит через цепочку FORWARD, куда его отбрасывают правила брандмауэра.