ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)
Четверг, 19 декабря, 2024

Как защитить SSH-сервер в Ubuntu 20.04 от базового до расширенного

Как изменить стандартный порт SSH в Linux (правильно и безопасно)

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

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

Все зависит от того, какой тип безопасности нам действительно нужен. Поэтому сегодня мы намерены дать вам очень глубокое представление об основных и дополнительных шагах для защиты SSH-сервера в Ubuntu 20.04. Помимо этих методов, мы также поделимся с вами некоторыми дополнительными советами по защите вашего SSH-сервера в качестве бонуса. Итак, давайте начнем с сегодняшнего интересного обсуждения.

 

Метод защиты SSH-сервера в Ubuntu 20.04:

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

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

 

Если эта команда выполнена успешно, вы не увидите никаких результатов.

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

sudo sshd –T

Теперь вы можете начать защищать свой SSH-сервер, переходя от основных шагов к расширенным в Ubuntu 20.04.

 

Основные шаги для защиты SSH-сервера в Ubuntu 20.04:

Основные шаги по защите SSH-сервера в Ubuntu 20.04 следующие:

 

Шаг № 1: Открытие файла конфигурации SSH:

Вы можете открыть файл конфигурации SSH, выполнив в терминале команду, указанную ниже:

sudo nano /etc/ssh/sshd_config

 

Шаг № 2: Отключение аутентификации на основе пароля:

Вместо использования паролей для аутентификации ключи SSH считаются более безопасными. Поэтому, если вы сгенерировали ключи SSH для аутентификации, вы должны отключить аутентификацию на основе пароля. Для этого вам нужно найти переменную PasswordAuthentication, раскомментировать ее и установить для нее значение «нет», как показано на изображении, показанном ниже:
Как защитить SSH-сервер в Ubuntu 20.04 от базового до расширенного

Шаг № 3: Отклонение пустых паролей:

Иногда пользователям очень удобно создавать пустые пароли, чтобы не запоминать сложные пароли. Такая практика может нанести ущерб безопасности вашего SSH-сервера. Следовательно, вам необходимо отклонить все попытки аутентификации с пустыми паролями. Для этого вам нужно найти переменную PermitEmptyPasswords и просто раскомментировать ее, поскольку по умолчанию для нее уже установлено значение «нет», как показано на следующем изображении:
Как защитить SSH-сервер в Ubuntu 20.04 от базового до расширенного

Шаг № 4: Запрет входа в систему с правами root:

Вы должны строго запретить вход в систему с правами root для защиты любого злоумышленника от получения доступа root к вашему серверу. Вы можете сделать это, найдя переменную PermitRootLogin, раскомментируя ее и установив для нее значение «no», как показано на изображении ниже:
Как защитить SSH-сервер в Ubuntu 20.04 от базового до расширенного

Шаг № 5: Использование протокола SSH 2:

Сервер SSH может работать с двумя разными протоколами, т. е. Протоколом 1 и протоколом 2. Протокол 2 реализует более продвинутые функции безопасности, поэтому он предпочтительнее протокола 1. Однако протокол 1 является протоколом SSH по умолчанию, а не протоколом. явно упоминается в файле конфигурации SSH. Поэтому, если вы хотите работать с протоколом 2 вместо протокола 1, вам необходимо явно добавить строку «Protocol 2» в файл конфигурации SSH, как показано на следующем изображении:
Как защитить SSH-сервер в Ubuntu 20.04 от базового до расширенного

Шаг № 6: Установка тайм-аута сеанса:

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

Этот тайм-аут можно установить, найдя переменную ClientAliveInterval, раскомментируя ее и присвоив ей любое значение (в секундах) по вашему выбору. В нашем случае мы присвоили ему значение «300 секунд» или «5 минут». Это означает, что если пользователь находится вдали от SSH-сервера в течение «300 секунд», он автоматически выйдет из системы, как показано на изображении ниже:
Как защитить SSH-сервер в Ubuntu 20.04 от базового до расширенного

Шаг № 7: Разрешение определенным пользователям доступа к SSH-серверу:

Сервер SSH — это не сервер, доступ к которому требуется всем остальным пользователям. Поэтому доступ к нему должен быть ограничен только теми пользователями, которым он действительно нужен. Чтобы разрешить конкретным пользователям доступ к серверу SSH, вам нужно добавить переменную с именем «AllowUsers» в файл конфигурации SSH, а затем записать имена всех тех пользователей, которым вы хотите разрешить доступ к серверу SSH, через пробел. В нашем случае мы хотели разрешить доступ к SSH-серверу только одному пользователю.

 

Шаг № 8: Ограничение количества попыток аутентификации:

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

Вот почему настоятельно рекомендуется ограничить количество попыток аутентификации, чтобы предотвратить атаки подбора пароля. Значение по умолчанию для попыток аутентификации на сервере SSH установлено на «6». Однако вы можете изменить его в зависимости от требуемого уровня безопасности. Для этого вам нужно найти переменные «MaxAuthTries», раскомментировать их и установить для них любое желаемое число. Мы хотели ограничить количество попыток аутентификации числом «3», как показано на изображении ниже:
Как защитить SSH-сервер в Ubuntu 20.04 от базового до расширенного

Шаг № 9: Запуск SSH-сервера в тестовом режиме:

К настоящему времени мы предприняли все основные шаги для защиты нашего SSH-сервера в Ubuntu 20.04. Однако нам по-прежнему необходимо убедиться, что только что настроенные параметры работают правильно. Для этого мы сначала сохраним и закроем наш файл конфигурации. После этого мы попробуем запустить наш SSH-сервер в тестовом режиме. Если он успешно работает в тестовом режиме, это будет означать, что в вашем файле конфигурации нет ошибок. Вы можете запустить свой SSH-сервер в тестовом режиме, выполнив следующую команду в своем терминале:

sudo sshd –t

 

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

 

Шаг № 10: Перезагрузка SSH-сервера с новыми конфигурациями:

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

sudo service sshd reload

 

Если ваш SSH-сервер перезапущен успешно, терминал не будет отображать никаких выходных данных.

 

Расширенные действия по защите SSH-сервера в Ubuntu 20.04:

После выполнения всех основных шагов по защите SSH-сервера в Ubuntu 20.04 вы, наконец, можете перейти к расширенным шагам. Это всего лишь шаг вперед к защите вашего SSH-сервера. Однако, если вы намереваетесь достичь умеренного уровня безопасности, описанных выше шагов будет достаточно. Но если вы хотите пойти немного дальше, вы можете выполнить шаги, описанные ниже:

 

Шаг №1: Открытие файла ~/.ssh/authorized_keys:

Основные шаги по обеспечению безопасности сервера SSH реализованы в файле конфигурации SSH. Это означает, что эти политики будут действовать для всех пользователей, которые попытаются получить доступ к серверу SSH. Это также подразумевает, что основные шаги представляют собой общий метод защиты SSH-сервера. Однако, если мы попытаемся рассмотреть принцип «глубокой защиты», мы поймем, что нам нужно защищать каждый отдельный ключ SSH отдельно. Это можно сделать, задав явные параметры безопасности для каждого отдельного ключа. Ключи SSH хранятся в файле ~/.ssh/authorized_keys, поэтому сначала мы получим доступ к этому файлу, чтобы изменить параметры безопасности. Мы запустим следующую команду в терминале, чтобы получить доступ к файлу ~/.ssh/authorized_keys:

sudo nano ~/.ssh/authorized_keys

 

Выполнение этой команды откроет указанный файл в редакторе nano. Однако вы также можете использовать любой другой текстовый редактор по вашему выбору, чтобы открыть этот файл. Этот файл будет содержать все ключи SSH, которые вы создали на данный момент.

 

Шаг № 2: Определение конкретных конфигураций для определенных ключей:

Для достижения повышенного уровня безопасности доступны следующие пять опций:

 

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

no-port-forwarding DesiredSSHKey

 

Здесь вместо DesiredSSHKey у вас будет фактический SSH-ключ в вашем файле ~/.ssh/authorized_keys. После применения этих параметров для желаемых ключей SSH вам необходимо сохранить файл ~/.ssh/authorized_keys и закрыть его. Этот расширенный метод хорош тем, что вам не потребуется перезагружать SSH-сервер после внесения этих изменений. Скорее, эти изменения будут автоматически прочитаны вашим SSH-сервером.

Таким образом, вы сможете глубоко защитить каждый ключ SSH, применив передовые механизмы безопасности.

 

Некоторые дополнительные советы по защите SSH-сервера в Ubuntu 20.04:

Помимо всех основных и дополнительных шагов, которые мы предприняли выше, есть также несколько дополнительных советов, которые могут оказаться очень полезными для защиты SSH-сервера в Ubuntu 20.04. Эти дополнительные советы обсуждаются ниже:

 

Держите свои данные в зашифрованном виде:

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

 

Держите свое программное обеспечение в актуальном состоянии:

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

 

Убедитесь, что SELinux включен:

SELinux — это механизм, который закладывает фундамент безопасности в системах на базе Linux. Он работает путем реализации обязательного контроля доступа (MAC). Он реализует эту модель управления доступом, определяя правила доступа в своей политике безопасности. Этот механизм включен по умолчанию. Однако пользователям разрешено изменять этот параметр в любое время. Это означает, что они могут отключить SELinux, когда захотят. Однако настоятельно рекомендуется всегда держать SELinux включенным, чтобы он мог защитить ваш SSH-сервер от всех возможных повреждений.

 

Используйте строгие политики паролей:

Если вы защитили свой SSH-сервер паролями, вы должны создать надежные политики паролей. В идеале пароли должны быть длиннее 8 символов. Их нужно менять через определенное время, скажем, каждые 2 месяца. Они не должны содержать словарных слов; скорее, они должны быть комбинацией алфавитов, цифр и специальных символов. Точно так же вы можете определить некоторые другие дополнительные строгие меры для своих политик паролей, чтобы убедиться, что они достаточно надежны.

 

Мониторинг и ведение журналов аудита вашего SSH-сервера:

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

 

Регулярно создавайте резервные копии ваших данных:

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

 

Заключение:

Позаботившись обо всех мерах, описанных в этой статье, вы можете легко защитить или укрепить свой SSH-сервер в Ubuntu 20.04. Однако, если у вас есть опыт работы в области информационной безопасности, вы должны хорошо осознавать тот факт, что нет ничего лучше 100% безопасности. Все, что мы можем получить, — это обещание о максимальном усилии, и это наилучшее усилие будет надежным только до тех пор, пока оно также не будет нарушено. Вот почему даже после принятия всех этих мер нельзя сказать, что ваш SSH-сервер на 100% безопасен; скорее, у него все еще могут быть такие уязвимости, о которых вы даже не могли бы подумать. О таких уязвимостях можно позаботиться, только если мы будем внимательно следить за нашим SSH-сервером и постоянно обновлять его, когда это необходимо.

Exit mobile version