SSH sobre VPN sobre WiFi Hotspot não funciona

1

Eu tenho um túnel Netscreen vpnc VPN que eu conecto de diferentes caixas Linux (Ubuntu, Lubuntu, Antergos), e todos eles mostram o mesmo comportamento.

Quando eu uso um modem USB conectado ao computador para conectar-me à Internet, posso conectar o túnel VPN e usar qualquer serviço - HTTP, HTTPS, Ping, SSH - conforme esperado.

Se, no entanto, eu me conecto à Internet via Wi-Fi hotspot (e já testei com vários diferentes, de casa, escritório e algum WiFi público gratuito), apenas HTTP, HTTPS e PING parecem funcionar, enquanto SSH no meio da negociação inicial:

$ ssh -v [email protected]
OpenSSH_6.7p1 Ubuntu-5ubuntu1.4, OpenSSL 1.0.1f 6 Jan 2014
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to 123.45.67.89 port 22.
debug1: Connection established.
debug1: key_load_public: No such file or directory
debug1: identity file /home/user/.ssh/id_rsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/user/.ssh/id_rsa-cert type -1
[ ... cut ... ]
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.7p1 Ubuntu-5ubuntu1.4
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.1
debug1: match: OpenSSH_5.1 pat OpenSSH_5* compat 0x0c000000
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr [email protected] none
debug1: kex: client->server aes128-ctr [email protected] none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<3072<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP

e depois de algum tempo:

Connection closed by 123.45.67.89

O roteador é configurado da mesma forma que o modem USB conectado e o iptables está vazio. Por que isso não funciona e o que devo fazer para que funcione?

    
por rexkogitans 08.12.2016 / 18:40

1 resposta

3

O tamanho da Maximum Transmission Unit (MTU) deve idealmente ser o mesmo no hotspot e no cliente, mas o cliente tem que ter no máximo o tamanho do hotspot.

Reduza o tamanho da MTU do dispositivo de encapsulamento do cliente, por exemplo:

$ ip addr show dev tun0
6: tun0: <POINTTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1412 qdisc pfifo_fast state UNKNOWN group default qlen 500

Portanto, o tamanho da MTU é de 1412 bytes aqui. Baixando um pouco:

$ ip link set tun0 mtu 1000

e voilà, ssh também funciona.

Tentar tornar essa alteração persistente deve ser feito individualmente.

Esse problema é descrito em Wikipedia :

The difference between the MTU seen by end-nodes (e.g. 1500) and the Path MTU causes Path MTU Discovery to come into effect, with the possible result of making some sites behind badly configured firewalls unreachable.

Obrigado ao @Jakuje por apontar isso.

    
por 09.12.2016 / 08:46

Tags