Debido a nuestra ubicación tan remota y restricciones presupuestarias, mi conexión a Internet está limitada a celular 3G/EDGE. El proveedor de servicios no tiene la opción de proporcionarme una IP pública, por lo que logramos solucionar este problema ejecutando mi servidor Linux a través de una VPN, con un túnel a una IP dedicada. Una complicación añadida (temporal) es que se trata de una máquina virtual, VMWare, que pronto será sustituida por una máquina física.
Actualmente ejecuto con éxito un par de rastreadores GPS en este servidor, pueden acceder al servidor a través de la IP pública a través de tun0, el túnel configurado por la VPN. También puedo acceder a otros dos dispositivos IP ubicados en mi red local desde Internet, por lo que la configuración funciona.
Necesito configurar un socket TCP para poder capturar datos provenientes de otro dispositivo. Corro $ ncat -l -k -p 8993
y $ netstat -l
muestra que efectivamente está escuchando en ese puerto.
tcp 0 0 *:8993 *:* LISTEN
tcp6 0 0 [::]:8993 [::]:* LISTEN
Los resultados son que puedo conectarme a este socket con telnet cuando accedo al servidor a través de su adaptador local eth0 desde mi red local (192.168.0.113) pero no puedo conectarme usando la IP pública (tun0). canyouseeme.org también muestra que ese puerto está cerrado. Tengo la siguiente línea en iptables:
iptables -A FORWARD -i tun0 -o eth0 -p tcp --syn --dport 8993 -m conntrack --ctstate NEW -j ACCEPT
También pongo las siguientes líneas a ver si ayuda a solucionar algo, pero de momento ninguna alegría.
iptables -A FORWARD -i tun0 -o eth0 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i eth0 -o tun0 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
Sé que me falta algo pequeño aquí, ya que mis otros dispositivos acceden al servidor desde el lado público sin problemas. Cualquier ayuda sería muy apreciada.
Esto es lo que $ ifconfig
muestra:
eth0 Link encap:Ethernet HWaddr 00:0c:29:45:c6:83
inet addr:192.168.0.113 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe45:c683/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:11019 errors:0 dropped:0 overruns:0 frame:0
TX packets:6309 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:5882474 (5.6 MiB) TX bytes:1197497 (1.1 MiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:120 errors:0 dropped:0 overruns:0 frame:0
TX packets:120 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:8069 (7.8 KiB) TX bytes:8069 (7.8 KiB)
tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:10.212.0.6 P-t-P:10.212.0.5 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:4206 errors:0 dropped:0 overruns:0 frame:0
TX packets:3948 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:3528488 (3.3 MiB) TX bytes:392464 (383.2 KiB)