SSH Tunnel: canal 3: open failed: administrativamente proibido

1

Eu tenho dois servidores, digamos, servidor A e servidor B. Eu quero usar o servidor B como um túnel ssh no servidor A eu fiz isso

ssh -D 1080 root@ip

Ele se conecta e assim que eu coloco o servidor B como um proxy SOCKS5 no meu servidor A, o servidor B aparece com este erro:

channel 3: open failed: administratively prohibited

Alguns como se eu obtiver o servidor B de um host como vultr, eu não recebo este erro, mas se eu recebê-lo do digitalocean eu recebo este erro. Eu fiz alguma pesquisa e vi que deveria permitir que o yes fosse sim, mas não consegui encontrá-lo em / etc / ssh / ssh_config

Este é o meu arquivo ssh_config:

# Host *
#   ForwardAgent no
#   ForwardX11 no
#   RhostsRSAAuthentication no
#   RSAAuthentication yes
#   PasswordAuthentication yes
#   HostbasedAuthentication no
#   GSSAPIAuthentication no
#   GSSAPIDelegateCredentials no
#   GSSAPIKeyExchange no
#   GSSAPITrustDNS no
#   BatchMode no
#   CheckHostIP yes
#   AddressFamily any
#   ConnectTimeout 0
#   StrictHostKeyChecking ask
#   IdentityFile ~/.ssh/identity
#   IdentityFile ~/.ssh/id_rsa
#   IdentityFile ~/.ssh/id_dsa
#   IdentityFile ~/.ssh/id_ecdsa
#   IdentityFile ~/.ssh/id_ed25519
#   Port 22
#   Protocol 2
#   Cipher 3des
#   Ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc
#   MACs hmac-md5,hmac-sha1,[email protected],hmac-ripemd160
#   EscapeChar ~
#   Tunnel no
#   TunnelDevice any:any
#   PermitLocalCommand no
#   VisualHostKey no
#   ProxyCommand ssh -q -W %h:%p gateway.example.com
#   RekeyLimit 1G 1h

Gostaria que alguém me dissesse o que estou fazendo de errado: 3

    
por user445735 26.11.2017 / 21:07

4 respostas

1

O que você lista são apenas os valores padrão, comentados.

Então você pode adicionar, abaixo de Host * algo como:

AllowTcpForwarding local

Note que yes deve ser o padrão, então é estranho que não funcione. Você pode adicionar mais verbosidade com ssh -v ou -vv ou -vvv e dar uma olhada no arquivo de log do servidor sshd que deve fornecer mais informações sobre o que está errado.

    
por 26.11.2017 / 21:19
1

O arquivo de configuração que você precisa editar é chamado sshd_config você escreveu ssh_config . O que você listou se parece com o conteúdo da configuração padrão do cliente ssh, não com a configuração do servidor ssh ( /etc/ssh/sshd_config)

    
por 27.11.2017 / 04:17
0

Você provavelmente precisará definir AllowTcpForwarding yes no sshd_config no servidor para permitir que isso aconteça.

    
por 01.02.2018 / 20:10
0

Primeiro, verifique as entradas em /var/log/secure para algo assim:

Feb  1 19:59:58 vps001 sshd[30375]: error: connect_to 
www.somenonexistingdomain.com: unknown host (Name or service not known)

segundo, verifique se o selinux está bloqueando; (se você é baseado em RedHat))

$ sudo ausearch -m avc -c httpd
----
time->Sat Jan  6 08:58:11 2018
type=AVC msg=audit(1515229091.030:7212): avc:  denied  { map } for  pid=20581 comm="httpd" path="/var/

você pode testar e desativar o selinux assim;

[~] $ sudo getenforce
Enforcing

[~] $ sudo setenforce Permissive

[~] $ sudo getenforce
Permissive

teste e veja se está funcionando agora.

[~] $ sudo setenforce Enforcing

Eu obtenho o comportamento open failed: administratively prohibited se o servidor não puder se conectar ao site que você está solicitando no outro lado.

Por exemplo, se eu enviar uma solicitação para www.somenotexistingdomain.com por meio de um proxy socks 5 ssh -S none -D1083 -vvv my.cheap.vps.com , isso resultará nessa saída;

debug1: Connection to port 1083 forwarding to socks port 0 requested.
debug2: fd 10 setting TCP_NODELAY
debug2: fd 10 setting O_NONBLOCK
debug3: fd 10 is O_NONBLOCK
debug1: channel 4: new [dynamic-tcpip]
....
debug2: channel 4: dynamic request: socks5 host www.somenonexistingdomain.com port 80 command 1
debug3: send packet: type 90
debug3: receive packet: type 92
channel 4: open failed: administratively prohibited: open failed
debug2: channel 4: zombie
debug2: channel 4: garbage collecting
debug1: channel 4: free: direct-tcpip: listening port 1083 for www.somenonexistingdomain.com port 80, connect from 127.0.0.1 port 42598 to 127.0.0.1 port 1083, nchannels 22

e você pode ver que não pode se conectar.

Se tiver certeza de que o servidor que você está tentando acessar existe; Por exemplo, primeiro teste que você pode usar wget ou curl do site a partir da linha de comando remotamente.

$ wget -S -O - www.bbc.co.uk > /dev/null
Resolving www.bbc.co.uk (www.bbc.co.uk)... 212.58.244.69, 212.58.246.93
Connecting to www.bbc.co.uk (www.bbc.co.uk)|212.58.244.69|:80... connected.
HTTP request sent, awaiting response... 
HTTP/1.1 301 Moved Permanently
Server: nginx

Se isso não funcionar, é possível que, se você estiver encaminhando para o DNS proxy, o servidor remoto não consiga resolver o DNS. Então, verifique isso;

$ dig www.bbc.co.uk +short
www.bbc.net.uk.
212.58.246.91
212.58.244.67

e também verificar conexão direta com a porta usando netcat, telnet etc. no entanto, puxar o site com o wget deve ter testado tanto a conexão tcp quanto o DNS.

$ telnet www.bbc.co.uk 80
Trying 212.58.244.26...
Connected to www.bbc.co.uk.
Escape character is '^]'.

e definitivamente verifique as entradas no arquivo / var / log / secure.

Falha ao ativar o registro em log ( ssh -vvvvvvv ) e observar os dois lados da conexão.

    
por 01.02.2018 / 21:18