Я немного волнуюсь сейчас. Я подключаюсь по SSH к удаленному серверу, который я недавно ввел в эксплуатацию. Я делаю это как root. Я установил fail2ban, и в журнале было огромное количество заблокированных IP-адресов.
В последний раз, когда я входил в систему, я заметил, что мой терминал действительно тормозит, после чего у меня пропало интернет-соединение. Когда я купил его обратно примерно через 5 минут, я снова вошел на сервер и сделал «кто» и понял, что в систему вошли два пользователя root. Я бы подумал, что если мое соединение прервется, процесс из последнего сеанса будет остановился на сервере?
Когда я впервые отключился, соединение завершилось с сообщением «Ошибка записи: сломана труба». Я убил сеанс bash с другим корнем. Я не очень разбираюсь в безопасности ssh, но можно ли перехватить сеансы? есть способ проверить это? Мне нужно продолжить вход через ssh. Какие меры предосторожности мне следует предпринять? Если бы я каким-то образом проходил через прокси для доступа к моему серверу (как человек в середине атаки), могли бы они захватить мой сеанс ssh?
Корневые учетные записи, вероятно, являются висящими сеансами оболочки, которые когда-то были вами. Ваш сервер также, вероятно, получает dDOS из-за всех попыток входа в систему.
Заблокируйте SSH. Не разрешайте вход в систему с правами root, и те запросы, которые пытаются использовать грубую силу для этой машины, немедленно завершатся ошибкой (потребляя гораздо меньше ресурсов). Войдите в систему как обычный пользователь и повысьте права с помощью sudo
, практика, которой вы все равно должны заниматься. Также ограничьте вход по SSH списком клиентских IP-адресов, чтобы сомнительные машины даже не могли попытаться войти в систему.
Используйте SSH-ключи вместо паролей для входа пользователя. С ними легче справиться, и они сами могут быть защищены паролем на случай, если вы случайно дадите закрытый ключ не в том месте (что дает вам время заменить их и сделать старый недействительным). Как упоминалось в комментариях @EEAA, вы также должны отключить аутентификацию на основе пароля, если вы хотите ограничить клиентов использованием только ключей вместо паролей и ключей.
Если кланы монголов продолжают бить вашу городскую стену, возможно, переместите SSH на другой порт высокого уровня (ниже 1024, как указал @AustinBurke - чтобы использовать привилегированный порт) вместо 22. Это снизит трафик на этом порту, если это является проблемой для вас (а большинство ботов не очень изящны, поэтому они будут пытаться только 22). Это не помешает всем попробовать порт 22 или даже сканировать вашу машину, чтобы узнать, какой порт прослушивает SSH, и в большинстве случаев это ненужное неудобство. Но это может помочь.
Другие могут дать больше советов, но это довольно общие меры безопасности для общедоступного SSH-сервера.