SSH — это широко используемый протокол, используемый для безопасного доступа к серверам Linux. Большинство пользователей используют SSH-соединения с настройками по умолчанию для подключения к удаленному серверу. Однако незащищенные конфигурации по умолчанию также представляют различные риски безопасности.
Учетная запись root сервера с открытым доступом по SSH может быть подвержена риску. И особенно если вы используете общедоступный IP-адрес, взломать пароль root гораздо проще. Поэтому необходимо иметь знания о безопасности SSH.
Вот как вы можете защитить свои соединения SSH-сервера в Linux.
1. Отключить логины root-пользователей
Для этого сначала отключите SSH-доступ пользователя root и создайте нового пользователя с правами root. Отключение доступа к серверу для пользователя root — это стратегия защиты, которая не позволяет злоумышленникам достичь своей цели — вторжению в систему. Например, вы можете создать пользователя с именем пример root следующим образом:
useradd -m пример root
пример пароля root
usermod -aG sudo exampleroot
Вот краткое объяснение вышеупомянутых команд:
- пользовательдобавить создает нового пользователя и -м параметр создает папку под дом каталог для пользователя, которого вы создали.
- пароль Команда предназначена для назначения пароля новому пользователю. Помните, что пароли, которые вы назначаете пользователям, должны быть сложными и трудными для угадывания.
- usermod -aG судо добавляет вновь созданного пользователя в группу администраторов.
После процесса создания пользователя необходимо внести некоторые изменения в sshd_config файл. Вы можете найти этот файл в /etc/ssh/sshd_config. Откройте файл любым текстовым редактором и внесите в него следующие изменения:
# Аутентификация:
#LoginGraceTime 2 м
PermitRootЛогин нет
AllowUsers пример root
РазрешитьRootВойти строка не позволит пользователю root получить удаленный доступ с помощью SSH. Включая пример root в Разрешить пользователей list предоставляет необходимые разрешения пользователю.
Наконец, перезапустите службу SSH с помощью следующей команды:
sudo systemctl перезапустить ssh
Если это не удается и вы получаете сообщение об ошибке, попробуйте выполнить команду ниже. Это может отличаться в зависимости от используемого вами дистрибутива Linux.
sudo systemctl перезапустить sshd
2. Изменение порта по умолчанию
Порт подключения SSH по умолчанию — 22. Конечно, все злоумышленники это знают и поэтому необходимо изменить номер порта по умолчанию, чтобы обеспечить безопасность SSH. Хотя злоумышленник может легко найти новый номер порта со сканированием Nmap, цель здесь состоит в том, чтобы усложнить работу злоумышленника.
Чтобы изменить номер порта, откройте /etc/ssh/sshd_config и внесите в файл следующие изменения:
Включают /etc/ssh/sshd_config.d/*.conf
Порт 5922
После этого шага снова перезапустите службу SSH с помощью sudo systemctl перезапустить ssh. Теперь вы можете получить доступ к своему серверу, используя только что определенный порт. Если вы используете брандмауэр, вы также должны внести необходимые изменения в правила. При запуске netstat -тлпн Команда, вы увидите, что ваш номер порта для SSH изменился.
3. Блокировать доступ для пользователей с пустыми паролями
В вашей системе могут быть пользователи без паролей, которых вы могли создать случайно. Чтобы запретить таким пользователям доступ к серверам, вы можете установить Разрешить пустые пароли значение строки в sshd_config файл в нет.
PermitEmptyPasswords нет
4. Ограничение попыток входа/доступа
По умолчанию вы можете получить доступ к серверу, сделав столько попыток ввода пароля, сколько захотите. Однако злоумышленники могут использовать эту уязвимость для взлома сервера. Вы можете автоматически прекратить SSH-соединение после определенного количества попыток, указав количество разрешенных попыток ввода пароля.
Для этого измените MaxAuthTries значение в sshd_config файл.
MaxAuthTries 3
5. Использование SSH версии 2
Вторая версия SSH была выпущена из-за множества уязвимостей в первой версии. По умолчанию вы можете разрешить серверу использовать вторую версию, добавив Протокол параметр для вашего sshd_config файл. Таким образом, все ваши будущие соединения будут использовать вторую версию SSH.
Включают /etc/ssh/sshd_config.d/*.conf
Протокол 2
6. Отключение переадресации портов TCP и переадресации X11
Злоумышленники могут попытаться получить доступ к другим вашим системам путем переадресации портов через SSH-соединения. Чтобы предотвратить это, вы можете отключить Разрешить TCPForwarding а также X11Переадресация особенности в sshd_config файл.
X11Номер переадресации
AllowTcpForwarding нет
7. Подключение с помощью SSH-ключа
Один из самых безопасных способов подключения к вашему серверу — использование ключа SSH. При использовании ключа SSH вы можете получить доступ к серверу без пароля. Кроме того, вы можете полностью отключить парольный доступ к серверу, изменив параметры, связанные с паролем, в sshd_config файл.
Когда вы создаете ключ SSH, есть два ключа: Общественный а также Частный. Открытый ключ загружается на сервер, к которому вы хотите подключиться, а закрытый ключ хранится на компьютере, с помощью которого вы будете устанавливать соединение.
Создайте ключ SSH с ssh-keygen команду на вашем компьютере. Не оставляйте Парольная фраза поле пустое и запомните введенный здесь пароль. Если вы оставите это поле пустым, вы сможете получить к нему доступ только с помощью файла ключа SSH. Однако, если вы установите пароль, вы можете предотвратить доступ злоумышленника с файлом ключа к нему. Например, вы можете создать ключ SSH с помощью следующей команды:
ssh-keygen
8. Ограничения IP для SSH-соединений
В большинстве случаев брандмауэр блокирует доступ с помощью фреймворков собственных стандартов и направлен на защиту сервера. Однако этого не всегда достаточно, и вам необходимо увеличить этот потенциал безопасности.
Для этого откройте /etc/hosts.allow файл. С помощью дополнений, которые вы вносите в этот файл, вы можете ограничить разрешение SSH, разрешить блокировку определенного IP-адреса или ввести один IP-адрес и заблокировать все оставшиеся IP-адреса с помощью команды отказа.
Ниже вы увидите несколько примеров настроек. После этого перезапустите службу SSH, как обычно, чтобы сохранить изменения.
Важность безопасности сервера Linux
Данные и вопросы безопасности данных достаточно подробно описаны и должны учитываться всеми администраторами серверов. Безопасность серверов — очень деликатный вопрос, так как основным объектом атак являются веб-серверы, а они содержат почти всю информацию о системе. Поскольку большинство серверов работают в инфраструктуре Linux, очень важно быть знакомым с системой Linux и администрированием серверов.
Безопасность SSH — это лишь один из способов защиты серверов. Можно свести к минимуму получаемый вами урон, остановив, заблокировав или замедлив атаку. Помимо обеспечения безопасности SSH, существует множество различных методов, которые вы можете реализовать для защиты своих серверов Linux.