Как настроить безопасность SSH в Linux

{title}1. Как отредактировать файл ssh_config Linux2.Как заблокировать SSH файлы Linux3. Как подтвердить протокол SSH версии 2 Linux4. Как отключить пустые пароли SSH Linux5. Как отключить вход root по SSH в Linux6. Как настроить новый SSH-порт Linux7. Как ограничить доступ к SSH Linux8. Как обновить время отсрочки SSH Linux9. Как создать псевдоним SSH для Linux10. Аутентификация безопасного ключа SSH Linux

Одним из наиболее часто используемых протоколов на уровне безопасности для установления соединений в средах UNIX является протокол SSH (Secure Shell), который предлагает нам ряд функций и специальных функций для защиты данных и установленных соединений.

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

Виды защиты

При использовании протокола SSH у нас будут следующие виды защиты:

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

Теперь в операционных системах Linux мы находим файл конфигурации SSH по пути / etc / ssh / ssh_config, и благодаря этому файлу можно будет выполнить все меры безопасности для SSH-соединений.

В случае систем macOS этот файл находится по пути / private / etc / ssh / ssh_config и имеет символическую ссылку на / etc / ssh / ssh_config для целей совместимости.

При редактировании этого файла необходимо учитывать следующее ..

  • Пустые строки и строки, начинающиеся с символа "#", являются комментариями.
  • Каждая строка начинается с ключевого слова, за которым следуют аргументы.
  • Параметры конфигурации могут быть разделены пробелами или необязательными пробелами и знаком =.
  • Аргументы можно заключить в двойные кавычки ("), чтобы указать аргументы, содержащие пробелы.

1. Как отредактировать файл ssh_config Linux

Чтобы отредактировать этот файл, чтобы установить собственные значения, мы должны выполнить следующее с некоторым редактором:

 sudo nano / etc / ssh / ssh_config 
Мы увидим следующее:

Файл ssh_config организован по хостам, и каждый хост содержит определенные настройки для этого конкретного хоста, там мы можем использовать подстановочные знаки, такие как *, чтобы сопоставить несколько имен хостов с одним объявлением.Некоторые из параметров, которые мы можем использовать в этом файле:

Хозяин

Операторы Restrict предназначены только для хостов, которые соответствуют одному из шаблонов, указанных после ключевого слова.

Матч

Операторы Restrict так, чтобы они применялись только к хостам, которые соответствуют указанным критериям

АдресСемья

Укажите, какое семейство адресов использовать при подключении, допустимые аргументы: any, inet, inet6.

Пакетный режим

С этим значением запрос пароля будет отключен, что позволит избежать случайной блокировки в запросе пароля.

BindAddress

Задает использование адреса, указанного на локальном компьютере, в качестве исходного адреса соединения.

ВызовОтветАутентификация

Позволяет указать, следует ли использовать аутентификацию типа "запрос-ответ". Это в первую очередь унаследованный метод, который был заменен на KbdInteractiveAuthentication.

CheckHostIP

Скажите ssh, чтобы он дополнительно проверил IP-адрес хоста в файле known_hosts.

Шифр

Относится к шифрованию, которое будет использоваться для шифрования сеанса в версии протокола 1.

Шифры

Укажите шифрование, разрешенное для версии 2 протокола, в порядке предпочтения.

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

2. Как заблокировать SSH файлы Linux

Первый шаг перед редактированием файла - убедиться, что и у файла ssh_config, и у файла sshd_config есть владелец и пользователь, настроенный как root, потому что они являются суперпользователем Linux, и никто лучше этого не является владельцем.

Для этого выполняем следующее:

 sudo chown корень: корень / etc / ssh / sshd_config sudo chmod og-rwx / etc / ssh / sshd_config 

3. Как подтвердить протокол SSH версии 2 Linux

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

 Протокол 2 

Там мы также можем неявно настроить протокол с помощью Ciphers, который автоматически установит для Protocol значение 2 для использования современных Ciphers, для этого мы проверяем следующую строку чуть ниже строки Protocol:

 Шифры aes128-ctr, aes192-ctr, aes256-ctr 

4. Как отключить пустые пароли SSH Linux

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

 PermitEmptyPasswords нет 

5. Как отключить вход root по SSH в Linux

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

 PermitRootLogin нет 

6 . Как настроить новый SSH-порт Linux

По умолчанию для SSH назначен порт 22, поэтому злоумышленники с уверенностью знают, через какой порт они будут получать доступ для проведения своих атак, поэтому хорошим методом безопасности является изменение этого порта по умолчанию и указание только авторизованным пользователям Новый порт.

Для этого мы должны найти строку Port и добавить следующий синтаксис:

 Порт XXXXX 

7. Как ограничить доступ к SSH Linux

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

 AllowUsers (разрешает доступ пользователю) AllowGroups (разрешает доступ к группе) DenyUsers (ограничивает доступ пользователей) DenyGroups (ограничивает доступ к группе) 
Например, мы можем выполнить в файле конфигурации следующее:
 AllowUsers Техновики тесты Тест DenyGroups 

8. Как обновить время отсрочки SSH Linux

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

 Войти 

9. Как создать псевдоним SSH для Linux

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

 Host dev HostName dev.solvetic.com Порт 3333 Пользователь TechnoWikis 
В этом конкретном случае мы должны получить доступ следующим образом:
 ssh [адрес электронной почты защищен] -p 3333 

10 . Аутентификация безопасного ключа SSH Linux

ssh будет гораздо более безопасным и полезным при использовании с парами открытый / закрытый ключи для проблем аутентификации вместо использования паролей. Файл ssh_config может объявлять определенный ключ для определенного хоста с помощью ключа IdentityFile, в этом случае мы должны ввести следующее:

 Host dev Имя хоста dev.solvetic.com Порт 3333 Пользователь TechnoWikis IdentityFile ~ / .ssh / dev.solvetic.key 
В этом случае подключение будет следующим:
 ssh -i ~ / .ssh / dev.solvetic.key [защита электронной почты] -p 3333 
Некоторые дополнительные параметры:

Сжатие

Там мы можем использовать такие значения, как yes или no, чтобы включить деактивацию сжатия для хоста.

LogLevel (уровень записи)

Он позволяет определить уровень детализации в записях для ssh-клиента, варианты: QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG1, DEBUG2 и DEBUG3.

StrictHostKeyChecking

Установите предпочтение для добавления хостов в файл known_hosts.

Таким образом, у нас есть разные варианты улучшения безопасности и подключения по SSH в Linux.