Поиск по сайту:

5 лучших методов обеспечения безопасности сервера OpenSSH


SSH (Secure Shell) — это сетевой протокол с открытым исходным кодом, который используется для подключения локальных или удаленных серверов Linux для передачи файлов, создания удаленных резервных копий, удаленного выполнения команд и другие задачи, связанные с сетью, с помощью команды scp или команды sftp между двумя серверами, которые подключаются по защищенному каналу по сети.

В этой статье я покажу вам несколько простых инструментов и приемов, которые помогут вам повысить безопасность вашего ssh-сервера. Здесь вы найдете полезную информацию о том, как защитить и предотвратить ssh-серверы от грубого перебора и атак по словарю.

1. Запретить хосты

DenyHosts — это сценарий безопасности предотвращения вторжений на основе журнала с открытым исходным кодом для SSH-серверов, написанный на языке программирования Python и предназначенный для запуска системными администраторами и пользователями Linux для мониторинга и анализа доступа к SSH-серверу. журналы неудачных попыток входа в систему известны как атаки на основе словаря и атаки методом перебора.

Скрипт блокирует IP адреса после заданного количества неудачных попыток входа в систему, а также предотвращает получение доступа к серверу такими атаками.

Возможности DenyHosts
  • Отслеживает /var/log/secure, чтобы найти все успешные и неудачные попытки входа в систему, и фильтрует их.
  • Отслеживает все неудачные попытки входа пользователя и хоста-нарушителя.
  • Продолжает наблюдать за каждым существующим и несуществующим пользователем (например, xyz) при неудачной попытке входа в систему.
  • Отслеживает каждого пользователя-нарушителя, хост и подозрительные попытки входа в систему (при нескольких неудачных попытках входа в систему) блокирует хост с IP-адресом, добавляя запись в /etc/hosts.deny. > файл.
  • При необходимости отправляет уведомление по электронной почте о новых заблокированных хостах и подозрительных входах в систему.
  • Также сохраняет все действительные и недействительные неудачные попытки входа пользователя в отдельные файлы, чтобы можно было легко определить, какой действительный или недействительный пользователь подвергается атаке. Итак, мы можем удалить эту учетную запись, изменить пароль или отключить оболочку для этого пользователя.

2. Фэйл2Бан

Fail2ban — одна из самых популярных платформ обнаружения/предотвращения вторжений с открытым исходным кодом, написанная на языке программирования python. Он работает путем сканирования файлов журналов, таких как /var/log/secure, /var/log/auth.log, /var/log/pwdfail. > и т. д. из-за слишком большого количества неудачных попыток входа в систему.

Fail2ban используется для обновления файла Netfilter/iptables или TCP Wrapper hosts.deny, чтобы отклонять IP-адрес злоумышленника в течение заданного периода времени. Он также имеет возможность разблокировать заблокированный IP-адрес на определенный период времени, установленный администратором. Однако определенной минуты разбана более чем достаточно, чтобы остановить подобные злонамеренные атаки.

Возможности Fail2Ban
  • Многопоточный и широкие настройки.
  • Поддержка ротации файлов журналов и поддержка нескольких сервисов, таких как (sshd, vsftpd, apache и т. д.).
  • Отслеживает файлы журналов и ищет известные и неизвестные закономерности.
  • Использует таблицу Netfilter/Iptables и TCP Wrapper (/etc/hosts.deny) для блокировки IP-адресов злоумышленников.
  • Запускает сценарии, когда данный шаблон был идентифицирован для одного и того же IP-адреса более X раз.

3. Отключить root-вход

По умолчанию системы Linux предварительно настроены на разрешение удаленного входа в систему по ssh для всех, включая самого пользователя root, что позволяет каждому напрямую войти в систему и получить root-доступ. Несмотря на то, что ssh-сервер обеспечивает более безопасный способ отключить или включить вход в систему с правами root, всегда полезно отключить root-доступ, чтобы обеспечить немного большую безопасность серверов.

Очень много людей пытаются взломать учетные записи root с помощью SSH-атак, просто вводя разные имена учетных записей и пароли, одно за другим. Если вы системный администратор, вы можете проверить журналы ssh-сервера, где вы обнаружите ряд неудачных попыток входа в систему. Основной причиной ряда неудачных попыток входа в систему является наличие достаточно слабых паролей, и хакерам/злоумышленникам имеет смысл попытаться это сделать.

Если у вас надежные пароли, вы, вероятно, в безопасности, однако лучше отключить вход с правами root и создать обычную отдельную учетную запись для входа, а затем использовать sudo или su . , чтобы получить root-доступ, когда это необходимо.

4. Отображение SSH-баннера

Это одна из старейших функций, доступных с самого начала проекта ssh, но я почти не видел, чтобы она кем-то использовалась. В любом случае, я считаю, что это важная и очень полезная функция, которую я использовал на всех своих серверах Linux.

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

5. Вход по SSH без пароля

Вход без пароля по SSH с SSH-генератором ключей установит доверительные отношения между двумя серверами Linux, что позволит передавать файлы. и синхронизация намного проще.

Это очень полезно, если вы имеете дело с удаленным автоматическим резервным копированием, удаленным выполнением сценариев, передачей файлов, удаленным управлением сценариями и т. д. без необходимости каждый раз вводить пароль.

Чтобы дополнительно защитить ваш SSH-сервер, прочитайте нашу статью «Как защитить и усилить защиту сервера OpenSSH».