id: Гость   вход   регистрация
текущее время 00:58 28/04/2024
Автор темы: Гость, тема открыта 14/12/2014 22:14 Печать
Категории: криптография, инфобезопасность, защита сети, алгоритмы
создать
просмотр
ссылки

Особенности SSH туннеля


SSH туннель хорош тем, что очень легко настраивается – достаточно бувально одной команды в консоли локального компьютера типа



– и прописав в браузере порт и прокси, можно ходить по Интернету.
И этот самый Интернет просто завален мануалами по настройке SSH туннеля и его преимуществах.


Однако длительная, не один год, практика работы с SSH туннелем обнаружила то, чего никто не описывает – крайне нестабильную работу туннеля.
То есть, через часок-другой туннель отваливается, и его приходится перезапускать, но уже с другим портом. И так по кругу целый день приходится по много раз перезапускать его.
При чем, перед тем, как туннель отвалится, работа по нему становится неудовлетворительной – сайты сначала тормозят, потом не открываются, а в итоге туннель обрывается вовсе.


Сразу отмечу – что канал связи с удаленным сервером, на котором поднят SSH-сервер, совершенно не причем – по стабильности он попросту безукоризнен.
Например, можно под Rsync "заэссешатиться" на нем, через неделю вернуться в него – коннект окажется сохранившимся.
Причем, в качестве удаленного сервера использовались различные сервера у разных хостеров, но картина все равно одна и та же – SSH туннель "не держится".


Поскольку объяснений этому нет, пришлось искать решения.
Одно нашлось в виде утилитки autossh, которая контролирует канал и в случае проблем с ним принимает меры по ее восстновлению.


Запускаю ее в скрипте так:



Однако реально пользы от нее оказалось немного – канал может быть "держится" несколько дольше, но потом все равно начинаются тормоза и заминки, утилита, по видимому, делает перезапуски, но в итоге туннель все равно полностью разваливается и требует ручноой перезапуск с залогиниваеним и сменой порта.
Вот типичная картина работы туннеля с этой утилитой:



Может, есть умельцы, которые не по наслышке знают тонкости работы SSH туннеля и уже победили эти проблемы?


 
Комментарии
— Гость (14/12/2014 23:10)   <#>
Да, забыл добавить – запускаю одновременно ping на удаленный сервер с SSH – и ping постоянно идет идеальный, без единой заминки – и в то же самое время туннель может выдавать сплошные



Т.е. проблема явно не в стабильности канала, а в чем-то другом.
В чем?
— Гость (15/12/2014 00:01)   <#>
Для начала нужно понять
и требует ручноой перезапуск с залогиниваеним и сменой порта.

что дает ручной перезапуск (чего не дает автоматический) и что дает смена порта? Можно ли не менять порт? Можно ли автоматически перезапускать с разными портами (написать быстро sh скрипт, который будет инкрементировать порт – я не знаток, попросите кого-нибудь)?
Я пользовался ssh-тоннелями с windows и работалось все нормально (хостер, если интересно – дешевый виртуальный fastvps).
— uegen (15/12/2014 09:01)   <#>
аналогично, несколько лет пользовался, пока не перешел на OpenVPN. Ищите проблему на стороне сервера.
— unknown (15/12/2014 09:30, исправлен 15/12/2014 09:30)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664

В мане не просто так написано:


Since an SSH-based setup entails a fair amount of overhead, it may be more suited to temporary setups, such as for wireless VPNs. More permanent VPNs are better provided by tools such as ipsecctl(8) and isakmpd(8).

Скорее всего, недостатки SSH в качестве VPN врождённые, запланированные и трудноустранимые. Если бы были какие-то эффективные костыли решения по исправлению недостатков SSH в качестве VPN, а не шаманство, то их бы уже применяли повсеместно.

— Гость (15/12/2014 09:32)   <#>

Почему нужен другой порт? Это же локальный порт открываемый ssh клиентом.
— Гость (15/12/2014 12:38)   <#>

А что же имено искать? Обычное SSH соединение работает идеально, канал тоже, дедики использовались самые разные, а проблема одна и та же – уже писал об этом.


Потому что после потери туннеля и при повторном его запуске с тем же портом тунель не запускается – выдается какая-то ошибка.


Это мановское примечание какое-то мутное и уклончивое, думай что хочешь.
Как лично вы его перевели?
— unknown (15/12/2014 14:00)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664
Я уже раньше где-то встречался с тем, что были жалобы, что SSH-tunnel падает под нагрузкой, при большом числе соединений и пр., и это вроде как неустранимо by-design. Смысл в том, что предлагается использовать настоящий VPN, IPSec и пр. А SSH-tunnel — это что-то вроде попытки использовать ножницы вместо набора отвёрток.
— Гость (15/12/2014 14:32)   <#>

Зависит от ОС, но, в общем, это правда, есть такой эффект. Дело в том, что после сдыхания порта есть некотрый timeout (иногда он до нескольких минут), втечение которого сервса уже нет на этом порту, а повторно его выделять система считает пока ещё небезопасно. Мне из-за этого тоже приходилось при падении туннелей менять локальный порт, на котором слушает SSH socks.


+1
— Гость (15/12/2014 17:41)   <#>
Зависит от ОС, но, в общем, это правда, есть такой эффект. Дело в том, что после сдыхания порта есть некотрый timeout (иногда он до нескольких минут), втечение которого сервса уже нет на этом порту, а повторно его выделять система считает пока ещё небезопасно. Мне из-за этого тоже приходилось при падении туннелей менять локальный порт, на котором слушает SSH socks.

Вы про линукс говорите, да? Потому что виндовс как нечего делать дает запустить две слушалки на одном порту, причем вторая забьет первую, а после выключения второй – опять работает первая.
— Гость (15/12/2014 17:46)   <#>
Возможный ответ: сервер (sshd) разрешает запрашиваемые адреса через синхронный метод, используя функцию getaddrinfo(). Что может приводить к блокировке всей нитки кода, которым обслуживается туннель, вплоть до таймаута. Иногда это ошибка, из-за ошибки в других компонентах системы и IPv6, а потому лечится костылями:
setting "AddressFamily inet" in your /etc/ssh/sshd_config

Но если это не помогает, тогда никак.
However, if I try to visit a site whose DNS servers are unresponsive or flaky, the whole tunneled connection blocks until the DNS lookup succeeds or times out after 15 seconds.

Найдите и протестируйте способ разрешать имена не через туннель, это полностью исключит версию с dns проблемами.
— ГоСтЬя (15/12/2014 20:28)   <#>
MobaXterm free Xserver and SSH client – Plugins
http://mobaxterm.mobatek.net/download/plugins.html
Ничего не отвалится
— Гость (15/12/2014 22:00)   <#>

В этой ветке ещё никто не говорил про windows, даже топикстартер.
— Гость (15/12/2014 23:04)   <#>

Гостья, вы о чем вообще? Телепатов тут нету.
— ГоСтЬя (16/12/2014 02:18)   <#>
Топик&ганстер. / Берите выше, я на 2000-m, « заторенная»
А это для автора вопроса, думаю, $ тут решение :
Журнал “Хакер» июнь 06 (114) 2008. стр130
Статья « Калейдоскоп тайных знаний».
Сам прочёл из оригинала _личного архива.
Вот ссылка ещё:
http://xakep.ru/wp-content/upl....._2008_low.pdf?2bdec0
или скачать тут
http://xakep.ru/issues/?y= 06 (114)2008
Ваша оценка документа [показать результаты]
-3-2-1 0+1+2+3