Preciso abrir uma porta específica em um servidor OpenVPN para o tráfego de torrent

4

Se eu me conectar a um servidor openvpn na porta 1194 do Tunnelblick em um Mac (OSX 10.10), como posso garantir que a porta usada pela Transmissão (por exemplo, 66887) esteja aberta para conexões de entrada?

Configuração atual:

Conectado a um ponto de acesso Wi-Fi (fora do meu controle, sem acesso às configurações do roteador) Conectado ao servidor OpenVPN (eu tenho controle total sobre a configuração)

A transmissão 'funciona', mas é lenta e a porta está sendo mostrada como fechada nas preferências da rede de transmissão. A conexão VPN openvpn funciona normalmente para todo o tráfego HTTP padrão.

O OpenVPN está rodando em um servidor Ubuntu remoto. Eu tentei usar o ufw para abrir a porta acima, mas isso não teve efeito e eu suspeito que há uma configuração de rede mais profunda necessária.

A versão openvpn é o OpenVPN 2.3.2 x86_64.

É possível encaminhar a porta 66887 neste cenário ou preciso acessar o roteador de rede local para que isso funcione?

Eu tentei alterar o endereço de ligação - BindAddressIPv4 - para transmissão através do arquivo plistico de preferências, mas ou fez isso incorretamente ou não fez diferença.

codecowboy
fonte
Você encontrou uma solução?
Sarge Borsch
Eu não consigo lembrar exatamente, mas tenho certeza que as regras de firewall na resposta funcionaram para mim. Lembre-se de liberar as regras e verificar se elas estão ativas. 'homem iptables' para mais informações.
codecowboy

Respostas:

3

Surpreso ninguém notou, mas 66887 não é um número de porta válido.

https://stackoverflow.com/questions/113224/what-is-the-largest-tcp-ip-network-port-number-allowable-for-ipv4#113228

O número da porta é um inteiro de 16 bits sem sinal, portanto, 65535.

O intervalo válido para portas é 0-65535.
Como você está especificando a porta inválida 66887, a maioria dos sistemas operacionais truncará isso para 1351:

[root@f ~]# tcpdump -qnn host 8.8.8.8 & telnet 8.8.8.8 66887
[1] 4054
Trying 8.8.8.8...
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
15:30:56.175482 IP 10.0.0.42.60280 > 8.8.8.8.1351: tcp 0

Ou em C:

[root@f ~]# cat > 16.c << EOF
> #include <stdio.h>
> #include <stdint.h>
> int main(void) {
>  uint16_t port=66887;
>  printf("%d\n",port);
>  return 0;
> }
> EOF
[root@f ~]# gcc -o 16 16.c
16.c: In function ‘main’:
16.c:4: warning: large integer implicitly truncated to unsigned type
[root@f ~]# ./16
1351
Dee Eff
fonte
3

Você precisa encaminhar a porta no seu servidor openvpn.

Não sei comandos ufw, mas usando iptables, os comandos seriam (com 10.8.0.6 o IP da sua maquina quando conectado a VPN e 66887 a porta a encaminhar):

iptables -t nat -A PREROUTING -p tcp --dport 66887 -j DNAT --to 10.8.0.6:66887
iptables -t nat -A PREROUTING -p udp --dport 66887 -j DNAT --to 10.8.0.6:66887
user2313067
fonte
Infelizmente, isso não funciona
Sarge Borsch
O que exatamente não funciona? Os comandos não são executados? Eles correm, mas não encaminham a porta?
user2313067
Eu tentei executá-los, e também abri o porto em ufw. Não vi sinais de erros, mas todos os testes indicam que a porta não foi encaminhada.
Sarge Borsch