Erro no túnel SSH para a raiz: sys_tun_open: falha ao configurar o túnel (modo 1): Operação não permitida

1

Eu tento configurar um ssh vpn (servidor do sistema operacional Debian e cliente ambos).

Eu alterei o / etc / ssh / sshd_config (o servidor):

PermitTunnel yes
PermitRootLogin without-password

mas quando tento me conectar (o cliente):

$ ssh -NTCf -vvvw  0:0 root@server-ip

...
debug1: Authentication succeeded (publickey).
Authenticated to <server-ip> ([<server-ip>]:22).
debug1: Requesting tun unit 0 in mode 1
debug1: sys_tun_open: failed to configure tunnel (mode 1): Operation not permitted
Tunnel device open failed.
Could not request tunnel forwarding.
...

O que pode estar errado? Por favor ajude!

UPDATE

Eu tentei executar o ssh como root, mas ainda tem erros (o cliente):

# ssh -i ~user/.ssh/id_rsa -NTCf -vvvw any root@server-ip
....    
debug1: Requesting tun unit 2147483647 in mode 1
debug1: sys_tun_open: tunnel mode 1 fd 5
Tunnel device open failed.
Could not request tunnel forwarding.
debug2: fd 3 setting TCP_NODELAY
...

Configuração do cliente:

OpenSSH_7.7p1 Debian-2, OpenSSL 1.0.2o  27 Mar 2018
Linux 4.16.0-2-amd64 #1 SMP Debian 4.16.12-1 (2018-05-27) x86_64
Debian GNU/Linux testing (buster)
    
por user3601435 28.06.2018 / 15:00

1 resposta

0

A criação de uma interface de rede requer privilégios de raiz (ou pelo menos NET_CAP_ADMIN ). A mensagem de erro informa que o comando ssh do cliente não pôde criar a interface tun0, conforme confirmado por este trecho de strace ao executar o cliente ssh:

21510 open("/dev/net/tun", O_RDWR)      = 4
21510 ioctl(4, TUNSETIFF, 0x7fff5f9f1530) = -1 EPERM (Operation not permitted)
21510 close(4)                          = 0
21510 write(2, "Tunnel device open failed.\r\n", 28) = 28
21510 write(2, "Could not request tunnel forward"..., 38) = 38

Você precisa executá-lo como root, por exemplo (configurando e) usando sudo ou su -c e provavelmente fornecendo a chave ssh correta usando -i (ou pode escolher a chave ssh do root). Em um cliente Debian, isso funciona:

su -c 'ssh -i ~myuser/.ssh/id_rsa -NTCf -w 0:0 root@server-ip'

Você deve substituir -w 0:0 por -w any durante o teste: tentar criar tun0 duas vezes, porque ele já estava lá também falhará.

Se você não tiver privilégios no lado do cliente, nem for permitido executar VMs ou contêineres com acesso de rede ao servidor-ip, provavelmente não será bem-sucedido.

NOTA: como o OP encontrou, e como eu pude testar, a partir de 2018-07-02, os pacotes Debian Buster (testing) openssh-client e openssh-server 7.7p1-2 ainda têm um bug impedindo o uso de tun / tap tunnels .

    
por 29.06.2018 / 21:00