у меня есть динамический туннель OpenSSH, работающий как:
ssh -N -D '*:1080' user@example.com
(OpenSSH_5.3p1 Debian-3, OpenSSL 0.9.8n 24 марта 2010 г.)
который отлично работает в течение нескольких часов или нескольких дней, но начинает случайным образом отбрасывать соединения (не 100%, только некоторые), что дает:
channel 1019: open failed: administratively prohibited: open failed
Я погуглил, но не нашел ничего, кроме этого сообщения, вызванного неправильной конфигурацией сервера, полностью запрещающей туннель, здесь туннель работает несколько часов, прежде чем отбросить несколько запросов.
Любая идея?
Я видел такое же сообщение при попытке перенаправить порт в недоступный пункт назначения:
ssh example.com -L 1337:example.invalid:80
telnet localhost 1337
me@example.com: ~ $ канал 3: ошибка открытия: административно запрещена: ошибка открытия
«Административно запрещено» также является одним из управляющих сообщений ICMP. Возможно ли, что маршрутизатор между SSH-сервером и пунктом назначения туннеля отправляет это?
Если обнюхивание возможно, используйте простой фильтр pcap с icmp
может показать вам весь ICMP-трафик.
У меня была такая же проблема с использованием authorized_keys
с участием permitopen
. На стороне сервера /var/log/auth.log содержал:
Received request to connect to host 127.0.0.1 port 10001, but the request was denied.
Как я использую autossh
для создания туннеля мне понадобилось два порта: один для подключения (10000) и один для мониторинга (10001). Проблема возникла с портом мониторинга.
В моих authorized_keys у меня было это:
command="/home/user/tunnel",no-X11-forwarding,no-pty,permitopen="localhost:10000",permitopen="localhost:10001" ssh-rsa AAAA
Я решил это, заменив localhost
экземпляры с 127.0.0.1
Есть ли вероятность, что вы столкнулись с плохой ссылкой? Я очень сбит с толку этим сообщением - единственное, что я мог придумать, это проблема с памятью - у вас много свободной оперативной памяти на коробке, в которую вы вливаете?
Причиной сброшенных подключений может быть брандмауэр, который перегружен или настроен на чрезмерную строгую очистку неактивных подключений, где-то между целевой целью SSH-соединения и конечной целью перенаправленных портов.
Как только брандмауэр определит, что соединение простаивает достаточно долго, он может просто удалить информацию о соединении из своей таблицы состояний соединений. Если какая-либо конечная точка соединения попытается передать какой-либо трафик после этого, брандмауэр отклонит соединение (от имени предполагаемого пункта назначения), поскольку вы, очевидно, пытаетесь использовать существующее соединение, но брандмауэр больше не имеет информации отслеживания состояния для эта связь. Таким образом, брандмауэр отклоняет пакеты с сообщением об ошибке ICMP, следовательно, «запрещено административно».