Назад | Перейти на главную страницу

Кто-то пытается перебрать SSH-доступ к моему серверу

По совпадению я просмотрел журнал ssh своего сервера (/var/log/auth.log) и заметил, что кто-то постоянно пытается получить доступ:

Sep  7 13:03:45 virt01 sshd[14674]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=116.31.116.42  user=root
Sep  7 13:03:48 virt01 sshd[14674]: Failed password for root from 116.31.116.42 port 13423 ssh2
Sep  7 13:03:52 virt01 sshd[14674]: message repeated 2 times: [ Failed password for root from 116.31.116.42 port 13423 ssh2]
Sep  7 13:03:52 virt01 sshd[14674]: Received disconnect from 116.31.116.42: 11:  [preauth]

Это происходит несколько раз каждую минуту и ​​продолжается уже долгое время, а я не знаю об этом.

Вопрос Стоит ли мне беспокоиться об этом, если да: что мне с этим делать?

К сожалению, это абсолютно нормально, и с этим сталкивается каждый сервер SSH. Добро пожаловать в Интернет.

Пока вы должным образом защищаете свой сервер (например, обновляете его, разрешаете вход только по ключу, отключаете root-доступ по SSH), это не должно быть проблемой, но вы можете еще больше ограничить это с помощью чего-то вроде fail2ban и другие подходы, такие как белый список IP, изменение портов и тому подобное, где это возможно и уместно.

  1. Заблокируйте IP-адрес с помощью брандмауэра (iptables или того, что предоставляет ваша служба). Да, они могут изменить IP-адреса, но заставят их делать работу
  2. Если у вас есть внешний брандмауэр (например, консоль AWS позволяет вам устанавливать правила доступа через веб-страницу), рассмотрите возможность ограничения порта 22 ТОЛЬКО вашим IP-адресом. В этом случае не нужно возиться с fail2ban
  3. Как упоминалось в комментариях, переключитесь на аутентификация на основе ключей и отключить аутентификацию по паролю
  4. Отключить вход в систему root. Добавьте это в /etc/ssh/sshd_config

    PermitRootLogin no
    

    Просто позвольте им долбить до корня все, что они хотят. Тогда они никогда не встанут на этот путь.

В дополнение к защите сервера, как указывает Свен, одна из лучших вещей, которые можно сделать (особенно если ssh существует только для вас, администратора), - это просто изменить порт sshd с порта по умолчанию. 22.

Это не только просто (особенно когда вы вставляете новый порт в свой ~/.ssh/config поэтому вам не нужно вводить его каждый раз), и он остановит 99% этих автоматических сканирований, так что вы их даже не увидите, но это также поможет, даже если будет обнаружена некоторая 0-дневная уязвимость ssh, чтобы дать вам больше время, или ваш ключ просочился и т. д.

Это довольно нормальное поведение. Я получаю несколько тысяча из них каждый день, и я полагаю, что даже это ничтожно по сравнению с тем, с чем сталкиваются крупные компании.

Но тебе нужно беспокоиться?

  • Вы установили fail2ban?
  • Вы отключили вход в систему root ssh?
  • Вы заблокировали www-данные пользователя от входа по ssh?
  • (необязательно) Есть ли у вас отключен вход на основе пароля в пользу входа с открытым ключом?
  • (необязательно) Вы изменили порт SSH с 22 на что-то другое?
  • (необязательно) Вы добавили Модуль TOTP pam для входа?

Если да, то вам не о чем беспокоиться. Эти атаки обычно представляют собой атаки по словарю на общие имена пользователей unix. Например, я часто вижу, как эти «пользователи» пытаются войти в систему:

  • корень
  • www-data
  • тест
  • админ

я действительно рекомендую установить fail2ban, поскольку он будет ограничивать скорость любого пользователя, пытающегося войти в систему на основе их IP-адреса, только это должно отфильтровать большую часть вредоносного трафика. Вопреки тому, что говорят другие, я не сторонник блокировки по IP. Это кажется очень грубым решением очень мелкой проблемы. Кроме того, эти злоумышленники обычно контролируют несколько IP-адресов, поэтому даже если вы заблокируете несколько (или даже несколько IP-блоков), нет гарантии, что вы заблокируете их все. Однако Fail2ban очень гибок для таких сценариев.