Собственно есть машина в сети с настроенным iptables (использую для различных экспериментов) enp0s3 - 192.168.3.50 enp0s8 - 192.168.4.17
export IPT="iptables"
#Внешний интерфейс Интернет
export WAN=enp0s3
#Интерфейс к которому подключена локальная сеть
export LAN=enp0s8
#Очистка всех цепочек
$IPT -F INPUT
$IPT -F FORWARD
$IPT -F OUTPUT
$IPT -t nat -F PREROUTING
$IPT -t nat -F POSTROUTING
$IPT -t mangle -F
#Запрет любого трафика кроме кроме идущего через цепочку output
$IPT -P INPUT DROP
$IPT -P OUTPUT ACCEPT
$IPT -P FORWARD DROP
#разрешаем все входящие пакеты на интрефейс замыкания на себя иначе ничего не работает
$IPT -A INPUT -i lo -j ACCEPT
# разрешаем пинги на обе сетевухи
$IPT -A INPUT -i -p icmp --icmp-type echo-reply -j ACCEPT
$IPT -A INPUT -i -p icmp --icmp-type destination-unreachable -j ACCEPT
$IPT -A INPUT -i -p icmp --icmp-type time-exceeded -j ACCEPT
$IPT -A INPUT -i -p icmp --icmp-type echo-request -j ACCEPT
#РАЗРЕШЕНЫ ТОЛЬКО ВХОДЯЩИЕ СОЗДАННЫЕ НАШИМИ ИСХОДЯЩИМИ
$IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#Правила повышающие безопасность
#Блочим входящие tcp соединения не syn пакетом (либо ошибка либо атака)
$IPT -I INPUT -m conntrack --ctstate NEW -p tcp ! --syn -j DROP
$IPT -I INPUT -m conntrack --ctstate NEW,INVALID -p tcp --tcp-flags SYN,ACK SYN,ACK -j REJECT
# Отбрасывать все пакеты, которые не могут быть идентифицированы
# и поэтому не могут иметь определенного статуса.
$IPT -A INPUT -m state --state INVALID -j DROP
$IPT -A FORWARD -m state --state INVALID -j DROP
#разрешаем ssh на внешнем интерфейсе
$IPT -A INPUT -i enp0s3 -p tcp --dport 22 -j ACCEPT
#разрешаем доступ из локальной сети на порты 22(ssh),3128 прокси squid,80 - apache веб морды
$IPT -A INPUT -i enp0s8 -p tcp -m multiport --dport 22,80,53,3128 -j ACCEPT
#Разрешаем запросы на сервер времени из локалки
$IPT -A INPUT -i enp0s8 -p udp --dport 123 -j ACCEPT
#подстройка mtu без этого правила компы ходящие мимо прокси не открывают некоторые сайты
$IPT -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
#Разрешаем хождение через цепочку форвард пакетов идущих в ответ на пакеты с локльной сети enp0s8
$IPT -A FORWARD -i enp0s3 -o enp0s8 -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD -i enp0s8 -o enp0s3 -m state --state ESTABLISHED,RELATED -j ACCEPT
#Пробрасуем комп из сети в нет
#$IPT -A FORWARD -s 192.168.4.19 -o enp0s3 -j ACCEPT
#Маскарадим то что прошло через цепочку forward
$IPT -t nat -I POSTROUTING -s 192.168.4.0/24 -o enp0s3 -j MASQUERADE
Делаю nmap 192.168.3.50 другой машины в сети вижу
PORT STATE SERVICE
22/tcp open ssh
53/tcp closed domain
80/tcp closed http
3128/tcp closed squid-http
Каким образом nmap увидел 53,80,3128 ведь доступ к ним открыт из локальной сети ?