Туннель SSH: канал 3: открытие не удалось: административно запрещено

У меня есть два сервера, скажем, сервер A и сервер B. Я хочу использовать сервер B в качестве туннеля ssh, поэтому на сервере AI это сделал

ssh -D 1080 root@ip

Он подключается, и как только я устанавливаю сервер B в качестве прокси-сервера SOCKS5 на моем сервере A, сервер B выдает этот erorr:

channel 3: open failed: administratively prohibited

Каким-то образом, если я получаю сервер B от хоста, такого как vultr, я не Я не получаю эту ошибку, но если я получаю ее от digitalocean, я получаю эту ошибку. Я провел небольшое исследование и увидел, что я должен разрешить tcpforwarding быть «да», но я не смог найти его в / etc / ssh / ssh_config

Это мой файл 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,umac-64@openssh.com,hmac-ripemd160
#   EscapeChar ~
#   Tunnel no
#   TunnelDevice any:any
#   PermitLocalCommand no
#   VisualHostKey no
#   ProxyCommand ssh -q -W %h:%p gateway.example.com
#   RekeyLimit 1G 1h

Буду признателен, если кто-нибудь скажет мне, что я делаю не так: 3

1
задан 26 November 2017 в 22:07
4 ответа

Конфигурационный файл, который вам нужно отредактировать, называется sshd_config , вы написали ssh_config . То, что вы перечислили, похоже на содержимое конфигурации по умолчанию ssh-клиента, а не на конфигурацию ssh-сервера ( / etc / ssh / sshd_config)

1
ответ дан 3 December 2019 в 20:17

Вы перечисляете просто значения по умолчанию, закомментированные.

Таким образом, вы можете добавить под Host * что-то вроде:

AllowTcpForwarding local

Обратите внимание, что по умолчанию должно быть yes, поэтому странно, что это не работает. Вы можете добавить больше подробностей с помощью ssh -v или -vv или -vvv и взглянуть на файл журнала sshd вашего сервера, который должен предоставить дополнительную информацию о том, что такое неправильно.

1
ответ дан 3 December 2019 в 20:17

Вероятно, вам потребуется установить AllowTcpForwarding yes в sshd_config на сервер, чтобы это произошло.

0
ответ дан 3 December 2019 в 20:17

Сначала проверьте наличие записей в / var / log / secure для чего-то вроде этого:

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

во-вторых, проверьте, не блокируется ли selinux; (если вы работаете на 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/

вы можете протестировать и отключить selinux следующим образом:

[~] $ sudo getenforce
Enforcing

[~] $ sudo setenforce Permissive

[~] $ sudo getenforce
Permissive

затем проверьте и посмотрите, работает ли он сейчас.

[~] $ sudo setenforce Enforcing

Я получаю сообщение open failed: административно запрещено , если сервер не может подключиться к сайту, который вы запрашиваете на другой стороне.

Например, если я отправлю запрос на www.somenotexistingdomain.com через прокси-сервер socks 5 ssh -S none -D1083 -vvv my.cheap.vps.com , это приводит к следующему выводу:

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

, и вы можете видеть, что он не может подключиться.

Если вы уверены, что сервер, к которому вы пытаетесь получить доступ, существует; Например, сначала проверьте, что вы можете wget или curl сайт удаленно из командной строки.

$ 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

Если это не сработает, то возможно, что если вы перенаправляете на прокси-DNS, заключается в том, что удаленный сервер не может разрешить DNS. Так что проверьте это;

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

, а также проверьте прямое соединение с портом с помощью netcat, telnet и т. Д., Однако при загрузке сайта с помощью wget должно быть проверено и TCP-соединение, и DNS.

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

и обязательно проверьте записи в / var / log / secure file.

В противном случае включите ведение журнала ( ssh -vvvvvvv ) и наблюдайте за обеими сторонами соединения.

0
ответ дан 3 December 2019 в 20:17

Теги

Похожие вопросы