Netcat não funciona no servidor Linux executando VPN

Netcat não funciona no servidor Linux executando VPN

Devido à nossa localização muito remota e às restrições orçamentárias, minha conexão com a Internet está limitada ao celular 3G/EDGE. O provedor de serviços não tem a opção de me fornecer um IP público, então conseguimos contornar isso executando meu servidor Linux através de uma VPN, com um túnel para um IP dedicado. Uma complicação adicional (temporária) é que se trata de uma máquina virtual, VMWare, que em breve será substituída por uma máquina física.

Atualmente executo com sucesso alguns rastreadores GPS neste servidor, eles são capazes de acessar o servidor através do IP público através do tun0, o túnel configurado pela VPN. Também posso acessar alguns outros dispositivos IP localizados na minha rede local pela Internet, para que a configuração funcione.

Preciso configurar um soquete TCP para capturar dados provenientes de outro dispositivo. Eu corro $ ncat -l -k -p 8993e $ netstat -lmostro que realmente está escutando naquela porta.

tcp        0      0 *:8993                  *:*                     LISTEN
tcp6       0      0 [::]:8993               [::]:*                  LISTEN

O resultado é que posso me conectar a esse soquete com telnet quando acesso o servidor por meio de seu adaptador local eth0 de dentro da minha rede local (192.168.0.113), mas não consigo me conectar a ele usando o IP público (tun0). canyouseeme.org também mostra que a porta está fechada. Tenho a seguinte linha no iptables:

iptables -A FORWARD -i tun0 -o eth0 -p tcp --syn --dport 8993 -m conntrack --ctstate NEW -j ACCEPT

Também coloquei as linhas a seguir para ver se ajuda a resolver alguma coisa, mas até agora nada de alegria.

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

Eu sei que está faltando alguma coisa aqui, já que meus outros dispositivos acessam o servidor do lado público sem problemas. Qualquer ajuda seria muito apreciada.

Isto é o que $ ifconfigmostra:

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)

informação relacionada