Я использую iptables для перенаправления портов для web и ssh с компьютера с 14
по 25
как показано на следующей диаграмме:
Проблема в том, что когда кто-то из Интернета обращается к моему веб-приложению, iptables меняет исходный IP-адрес на свой частный адрес. Из-за этого я не могу знать, кто обращается к моему веб-приложению.
Есть ли какое-либо решение для получения фактического исходного адреса трафика на машине 25
с использованием iptables при условии, что мое веб-приложение также доступно для общественности?
iptables -t nat -A PREROUTING --dst 1.1.1.1 -p tcp --dport 80 -j DNAT --to-destination 172.20.16.25
iptables -t nat -A POSTROUTING -p tcp --dst 172.20.16.25 --dport 80 -j SNAT --to-source 172.20.16.14
iptables -A FORWARD -p tcp --dport 80 -j ACCEPT
iptables -t nat -A PREROUTING --dst 1.1.1.1 -p tcp --dport 22 -j DNAT --to-destination 172.20.16.25
iptables -t nat -A POSTROUTING -p tcp --dst 172.20.16.25 --dport 22 -j SNAT --to-source 172.20.16.14
iptables -A FORWARD -p tcp --dport 22 -j ACCEPT