On 22 January 2017 14:25:57 EET, alex alex <fdm.a...@gmail.com> wrote: >Salut, >Am intrat intr-o problema interesanta care suna asa: >Trimit de pe un linux1 un pachet (udp) catre linux2 destinatie portul >3000. >Vreau ca linux 2 sa raspunda cu acelasi pachet cu sursa Linux2, >destinatia >linux1 si portul de destinatie 3001. >Am incercat cu NAT (SNAT+DNAT) pe linux2, insa nu merge, problema pe >care >eu o vad fiind urmatoarea: >in momentul cind fac DNAT (in prerouting, pentru redirect de la portul >3000 >la destinatia linux1 port 3001), pachetul modificat este de gen >sursa:linux1 destinatie:linux1 port 3001. In acest moment cred ca apare >problema (sursa si destinatia sunt identice, adica linux1), pachetul nu >mai >atinge postrouting fiindca nu este rutat. Fiindca nu mai atinge >postrouting, nu mai pot face SNAT-ul ca sa imi apara pachetul de gen >sursa >Linux2 destinatie linux1 port 3001. Nu stiu exact cum se comporta >kernelul, >insa teoretic ar trebui sa ruteze totusi pachetul dupa destinatie (fara >sa >ia in considerare sursa) > >Am folosit pe linux2 : > >iptables -t nat -N fwd_to_dnat > >iptables -t nat -A fwd_to_dnat -p udp -j DNAT --to 192.168.0.1:3001 > >iptables -t nat -I PREROUTING -p udp --dport 3000 -j fwd_to_dnat > >iptables -t nat -N fwd_to_snat > >iptables -t nat -A fwd_to_snat -p udp -j SNAT --to 192.168.0.2 > >iptables -t nat -I POSTROUTING -p udp --dport 3001 -j fwd_to_snat > > >Linux 1 are adresa 192.168.0.1, linux 2 are adresa 192.168.0.2 >Ce vreau este ca pachetul s:192.168.0.1:yyyy d:192.168.0.2:3000 sa fie >trimis inapoi ca s:192.168.0.2:xxxx d:192.168.0.1:3001. >Iptables -Lnv imi spune ca se face dnat dar chain-ul de snat nu mai >este >triggerat. >Stiu ca sunt si alte solutii (tip netcat/ udp forwarder) dar ma >intereseza >daca se poate cu iptables si cum (sau unde am gresit). > >o zi buna >_______________________________________________ >RLUG mailing list >RLUG@lists.lug.ro >http://lists.lug.ro/mailman/listinfo/rlug
Asta nu prea e problema de NAT. In primul rind problema ta e ca orice forma normala de raspuns a lui linux2 va avea ca port destinatie nu 3001 cum vrei tu ci portul sursa pe care l-a folosit kernelul de pe linux1 cind a generat pachetul initial. Asta inseamna ca va trebui ca pe linux2 sa prelucrezi raspunsul si sa il faci sa plece catre portul 3000. Pe scurt, ce vrei tu pare o forna de port knocking iar iptables nu pare nici pe departe raspunsul corect. _______________________________________________ RLUG mailing list RLUG@lists.lug.ro http://lists.lug.ro/mailman/listinfo/rlug