Здравствуйте.
Калуга, Билайн, Мобильный интернет.
С августа наблюдаю очень частые разрывы SSH соединений.
В качестве примера: открываю по 2-3 SSH сессии на 3 разных серверах и жду. Через какое то время, может в течении часа, может больше хоть одна сессия разрывается.
KeepAlive настроен так же, как и много лет назад, когда разрывов не наблюдалось.
Решил начать записывать трафик и о чудо, я обнаруживаю HTTP пакет (с редиректом на blackhole.beeline.ru) среди SSH соединения, с флагами “FIN, PSH, ACK” после чего мой ssh клиент инициирует завершение соединения пакетом “FIN, ACK”.
Для пример настроил отправку keepAlive пакета на каждые 10 сек. от сервера к клиенту.
В /etc/ssh/sshd_config:
ClientAliveInterval 10
ClientAliveCountMax 2
На скриншоте ниже показана сессия с SSH сервером, сессия открыта из обычного терминала Konsole.
192.168.1.2
- мой ip адрес компьютера, подключённого к моему роутеру.
193.124.*.*
- ip адрес, где запущен SSH сервис (OpenSSH).
SSH сервис поднят на порту 47570.
На записе трафика на сервере видно, что сервер в 12:55:56 отправляет очередной keepAlive пакет с флагами “PSH, ACK” и размером 126 байт.
А на клиенте уже получаем HTTP пакет с флагами “FIN, PSH, ACK” и размером 128 байт. После чего клиент начинает завершать соединение, но оно не завершается корректно.
Трафик со стороны сервера:
Трафик со стороны клиента:
Так же видно что в HTTP пакете имеется заголовок редиректа:
HTTP/1.1 307 Temporary Redirect
Location: http://blackhole.beeline.ru
На сервере в логе auth.log было зафиксировано следующее:
2024-09-10T12:56:16.455022+03:00 srv1 sshd[15189]: Timeout, client not responding from user root 85.249.19.17 port 17280
2024-09-10T12:56:16.468118+03:00 srv1 sshd[15189]: pam_unix(sshd:session): session closed for user root
2024-09-10T12:56:16.479025+03:00 srv1 systemd-logind[374]: Session 141 logged out. Waiting for processes to exit.
2024-09-10T12:56:16.481726+03:00 srv1 systemd-logind[374]: Removed session 141.
Видно, что клиент не инициировал корректно закрытие ssh сессии, а произошёл таймаут соединения.
Чем чаще отправляется keepAlive пакет, тем больше шансов словить HTTP пакет.
Бывает и разрыв ssh соединения, но уже без http пакета, просто приходит пакет с флагом “FIN,PSH,ACK”, вместо отправленного “PSH, ACK”.
При отправке keepAlive пакет раз в 10 сек. на 3 запущенных ssh соединений можно словить дисконект уже через 10 мин.
При отправке keepAlive пакет раз в 60 сек. на 3 запущенных ssh соединений можно словить дисконект через 50 мин. или больше часа.
Я прав или как? Если что не так, поправьте пожалуйста и объясните что не так?
Спасибо.
Возникло пару вопросов:
Наблюдаются ли у кого нибудь в России с начала августа разрывы SSH сессий?
Наблюдал ли кто нибудь вообще за свою практику подобные HTTP пакеты в SSH сессии?
Как мне подсказали, это результат работы DPI и он почему то видит в keepAlive пакетах на SSH соединении заблокированный паттерн и блокирует его.
Предполагаю, что DPI от ТСПУ, от РКН, но возможно и на стороне самого Билайна, т.к. у них тоже свои DPI. Остаётся пока ещё загадкой кто блокирует именно.