Iptables MASQUERADE tylko wybrane porty

2

Przekierowałem porty zgodnie z tym samouczkiem: http://www.debuntu.org/how-to-redirecting-network-traffic-to-a-new-ip-using-iptables/

iptables -t nat -A PREROUTING -p tcp --dport 1111 -j DNAT --to-destination 2.2.2.2:1111

iptables -t nat -A POSTROUTING -j MASQUERADE

Ale chcę MASQUERADE tylko porty z przekazywaniem, ponieważ na tym samym serwerze mam serwer sieciowy i jeśli MASQUERADE cały ruch, serwer WWW przestaje działać.

Dowolny pomysł?

ROZWIĄZANIE: iptables -t nat -A POSTROUTING -d 2.2.2.2 -p tcp --dport 1111 -j SNAT --to-source 2.2.2.1

użytkownik2528085
źródło
Wystarczy zastosować filtr, aby dopasować tylko wychodzące pakiety do portu z portu iptables -t nat -A POSTROUTING - p tcp --sport 1111 -j MASQUERADE
Zalmy
próbowałeś dodać ściślejsze zasady dopasowania? Na przykład tylko maskarada, gdy ruch opuszcza określony interfejs: iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE lub nawet pochodzi z określonej sieci: iptables -t nat -A POSTROUTING -s 192.168.5.0/24 -o eth1 -j MASQUERADE i tak dalej
Nikita Kipriyanov,
@Zalmy ma to dla mnie sens, ale nie działa. BTW masz literówkę iptables -t nat -A POSTROUTING -p tcp --sport 1111 -j MASQUERADE(spacja między - p) To nie był błąd, ponieważ skonfigurowałem tak 2 MASQUERADE tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:40002i to nie działa, jakiś pomysł? Dzięki
2528085,
... eee, poczekaj, próbujesz zdobyć NAT wszystko, co już zrobiłeś DNAT? Czemu? DNAT powinien już zadbać o ruch odpowiedzi, ta część ścieżek połączeń iptables, musi działać NAT lub nie. Jeśli DNAT jest standardowym portem przekierowującym do wewnętrznej podsieci, a wystarczy MASQ tej wewnętrznej podsieci, to zrozumiałbym i po prostu ją przefiltrowałem. Koc MASQ, który tam masz, bez kryteriów, uruchamiałby MASQ w obu kierunkach i nic dziwnego, że wszystko się psuje.
Radhil,
OK, przeczytałem samouczek i właściwie nie widziałem, aby NAT korzystał w ten sposób. Przypuszczam, że tak, ale nie jest to przekierowanie ani port przekierowujący, ponieważ używa on skrzynki jako pośrednika tłumacza i nie jest to świetne rozwiązanie, ponieważ przekonuje wszystkich klientów, że obsługuje usługę i serwer, że jest to tylko klient. Zalmy ma dobry pomysł, ale reguła powinna być zgodna z nowym adresem docelowym lub docelowym IP, który został już ustawiony w DNAT. więc spróbuj -t nat -A POSTROUTING -d 2.2.2.2 -p tcp --dport 1111 -j MASQUERADE. Napiszę jaśniej jako odpowiedź, jeśli dobrze rozumiem.
Radhil,