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

Raspunde prin e-mail lui