Я пробую к порту передачи 443 к другому серверу с помощью iptables. Что может объяснить это не работа? Я включил сеть ipv4.ip_forward.
Это - код, который я использую. У меня нет никаких других правил iptables:
iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 443 -j DNAT --to 1.2.3.4:443
iptables -A FORWARD -p tcp -d 1.2.3.4 --dport 443 -j ACCEPT
Если ваша политика пересылки по умолчанию - DROP, вам также необходимо принимать трафик для возврата:
iptables -A FORWARD -p tcp -s 1.2.3.4 --sport 443 -j ACCEPT
Вы должны немного защитить это, чтобы, если ваш ящик 1.2.3.4 скомпрометирован, по крайней мере, нет поддельный пакет может пройти через ваш шлюз, используя порт источника 443.
IPTABLES=/sbin/iptables
[ ... ]
$IPTABLES -A PREROUTING -t nat -i eth0 -p tcp --dport 443 -j DNAT --to 1.2.3.4:443
$IPTABLES -I FORWARD -p tcp ! --syn -m state --state NEW -j DROP
$IPTABLES -A FORWARD -p tcp -d 1.2.3.4 --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT
$IPTABLES -A FORWARD -p tcp -s 1.2.3.4 --sport 443 -m state --state ESTABLISHED -j ACCEPT