ssh

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

Как защитить SSH-сервер в Ubuntu 20.04 с базового уровня на расширенный
Как и все другие серверы, 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.бак


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

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

sudo sshd -T


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

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

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

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

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

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

sudo nano / etc / ssh / sshd_config


Файл конфигурации SSH показан на следующем изображении:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

sudo sshd -t


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

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

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

sudo service sshd перезагрузка


Если ваш 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 Желаемый SSHKey

Здесь вместо 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-сервером и постоянно обновлять его всякий раз, когда это необходимо.

Игры HD Remastered для Linux, ранее не выпускавшиеся для Linux
Многие разработчики и издатели игр придумывают HD-ремастеры старых игр, чтобы продлить жизнь франшизы, порадовать фанатов, требующих совместимости с с...
Как использовать AutoKey для автоматизации игр под Linux
AutoKey - это утилита автоматизации рабочего стола для Linux и X11, запрограммированная на Python 3, GTK и Qt. Используя его функции сценариев и MACRO...
Как показать счетчик FPS в играх для Linux
Игры для Linux получили серьезный толчок, когда Valve объявила о поддержке Linux для клиента Steam и своих игр в 2012 году. С тех пор многие игры AAA ...