Iptables MASQUERADE solo porte selezionate


0

Ho fatto port forwarding seguendo questo tutorial: 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

Ma voglio MASQUERADE solo le porte con le spedizioni, perché nello stesso server ho un server web e se MASQUERADE tutto il traffico il server web smette di funzionare.

Qualche idea?

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


Basta applicare il filtro per far corrispondere solo i pacchetti in uscita alla porta dalla porta iptables -t nat -A POSTROUTING - p tcp --sport 1111 -j MASQUERADE
Zalmy

hai provato ad aggiungere regole più rigide? Ad esempio, solo masquerade quando il traffico lascia un'interfaccia specifica: iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE o anche proviene da una rete specifica: iptables -t nat -A POSTROUTING -s 192.168.5.0/24 -o eth1 -j MASQUERADE e così via
Nikita Kipriyanov

@Zalmy ha senso per me, ma non funziona. A proposito, hai un errore di battitura iptables -t nat -A POSTROUTING -p tcp --sport 1111 -j MASQUERADE (uno spazio tra - p) Questo non era l'errore, perché ho impostato in questo modo 2 MASQUERADE tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:40002 e non funziona, qualche idea ?? Grazie
user2528085

... ehm, tieni duro, stai provando a cercare il NAT tutto ciò che hai già DNAT'd? Perché? Il DNAT dovrebbe già occuparsi del traffico di risposta, quella parte delle tracce di connessione di iptables, deve o non funziona. Se il DNAT è una porta standard in avanti a una sottorete interna e hai solo bisogno di MASQ di quella sottorete interna, che capirò e semplicemente filtrerò per quello. Il MASQ di coperta che hai lassù senza criteri eseguirà MASQ in entrambe le direzioni, e non c'è da meravigliarsi che tutto vada a pezzi.
Radhil

OK, ho letto il tutorial e in realtà non ho visto NAT usato in questo modo. Suppongo che potrebbe essere, ma non è un reindirizzamento o un port forwarding in quanto usa la scatola come un traduttore di middleman, e non è una soluzione eccezionale perché convince tutti i client che esegue il servizio e il server che è il solo cliente Zalmy ha l'idea giusta ma la regola dovrebbe corrispondere al nuovo IP di dport o di destinazione, che hai già impostato nel DNAT. quindi prova -t nat -A POSTROUTING -d 2.2.2.2 -p tcp --dport 1111 -j MASQUERADE. Scriverò più chiaro come risposta se capisco correttamente.
Radhil
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.