Lucrez la un router între un radio/modem extern și dispozitivul meu, unde routerul face o conexiune dial-up folosind protocolul ppp la radio și stabilește reguli iptables între IP-ul radio primit și IP-ul dispozitivului meu.
Am urmatoarele rute:
Destination Gateway Genmask Flags Metric Ref Utilizare Iface
implicit 192.168.1000.101 0.0.0.0 UG 0 0 0 ppp0
192.168.100.101 * 255.255.255.255 UH 0 0 0 ppp0
192.168.164.0 * 255.255.255.0 U 0 0 0 eth0
Și iată următoarele reguli iptables:
iptables -A INTRARE -j ACCEPT
iptables -A IEȘIRE -j ACCEPT
iptables -A FORWARD -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A IEȘIRE -o lo -j ACCEPT
iptables -t nat -A PREROUTING -i ppp0 -p tcp -j DNAT --la 192.168.0.110
iptables -t nat -A PREROUTING -i ppp0 -p udp -j DNAT --la 192.168.0.110
iptables -t nat -A POSTROUTING --source 0/0 -o ppp0 -j MASQUERADE
Cu aceste reguli pot accesa totul de pe dispozitivul meu, cum ar fi telnet, server web și alte comunicații folosind porturi înalte.
Problema mea este că trebuie să mă conectez la dispozitivul meu folosind un port sursă cu un port de destinație, iar aceasta nu este o problemă, dar dispozitivul meu trebuie să răspundă folosind un alt port creat pentru ca această comunicare să continue.
De exemplu, încerc să fac o conexiune folosind portul sursă 2000 cu portul de destinație 2001 și răspunsul dispozitivului meu revine folosind portul sursă 21550 și portul de destinație 2000. Dar răspunsul nu ajunge înapoi la clientul conectat la cealaltă parte a radioului .
Folosind tcpdump în interiorul routerului meu, am văzut răspunsul dispozitivului, dar nu mi-am putut da seama cum să gestionez aceste modificări de port în regulile iptables pentru a-l trimite înapoi către clientul conectat la cealaltă parte a radioului.
Orice ajutor va fi foarte apreciat!