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

Конфигурационный файл SSH в Unix контролирует работу защищенной оболочки. Его можно использовать для упрощения использования команды ssh, настройки определенных функций, требуемых пользователем, или повышения безопасности от потенциальных атак. Хотя относительно простые действия, такие как изменение порта ssh на ваших устройствах, часто могут устранить большое количество «холодных вызовов» на вашем устройстве, файл конфигурации ssh может сделать гораздо больше.

Как настроить параметры SSH для обеспечения максимальной безопасности - Linux

Где находится файл SSH?

Как настроить параметры SSH для обеспечения максимальной безопасности - Linux

В системах Linux вы можете найти общесистемный файл конфигурации ssh в «/ etc / ssh / ssh_config».

В системы macOS , сам файл находится в «/ private / etc / ssh / ssh_config», который для совместимости ссылается на «/ etc / ssh / ssh_config».

Второй пользовательский файл ssh_config можно указать в «~ / .ssh / ssh_config» («~» - это домашний каталог). Этот файл заменяет общесистемный файл конфигурации, позволяя устанавливать пользовательские параметры без изменения конфигурации системы. Системы не всегда поставляются с файлом «~ / .ssh / ssh_config», но их можно легко создать.

С этого момента мы будем называть этот файл конфигурации «ssh_configДля наглядности и простоты.

Отредактируйте файл ssh_config

Чтобы отредактировать файл ssh_config, откройте окно Терминала и отредактируйте файл с помощью вашего любимого текстового редактора. В этой демонстрации мы будем использовать nano, но вместо него можно использовать vi или emacs.

sudo nano / etc / ssh / ssh_config

Это откроет файл с десятками висящих строк, которые объясняют, что делает файл, но это не полное объяснение.

Как настроить параметры SSH для обеспечения максимальной безопасности - Linux

Что такое файл ssh_config и что делает ssh_config?

Файл ssh_config используется для управления работой защищенной оболочки, известной как команда терминала ssh, в вашей системе. Файл ssh_config организован по хостам. У каждого хоста есть определенные настройки для этого хоста. Подстановочные знаки можно использовать как * Чтобы сопоставить несколько имен хостов с помощью одного объявления.

Параметры определяются с помощью пары ключ / определение. Доступно много переключателей. Подробное объяснение функций каждой клавиши можно найти на странице человек ssh_config.

Настройте свой SSH

Блокировать файлы: перед редактированием файла убедитесь, что оба файла ssh_config и sshd_config имеют права администратора и пользователя root. В большинстве случаев вам также необходимо запретить разрешения для всех, кроме root.

sudo chown root:root /etc/ssh/sshd_config

sudo chmod og-rwx /etc/ssh/sshd_config

Подтвердите протокол SSH 2

Убедитесь, что вы используете более новый, современный протокол 2 вместо протокола 1. Старый протокол работает с более слабой проверкой целостности и, как правило, менее безопасен.

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

Protocol 2

Вы также можете неявно установить свой собственный протокол с помощью Ciphers, который автоматически установит протокол на 2 для использования современных Ciphers.

Ciphers aes128-ctr، aes192-ctr، aes256-ctr

Не разрешать пустой пароль

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

PermitEmptyPasswords no

Не позволять root входить в систему

Для большинства пользователей Linux рутирование следует выполнять редко. Предотвращение входа в систему с правами root позволит вам заблокировать учетные записи специально для того, что необходимо, и не предоставлять общесистемное использование. Эта учетная запись также является целью атак. Параметры PermitRootLogin включают «Да», «Нет пароля», «Только принудительные команды» или «Нет». По умолчанию "да". Чтобы полностью прекратить рутирование, мы должны написать строку ниже.

PermitRootLogin no

Измените номер порта

Вы можете изменить номер порта с 22 (по умолчанию), чтобы ограничить прямой доступ к вашему серверу через этот порт. Это ограничит большинство людей, использующих скрипт, который переходит на этот порт, или тех, кто атакует этот порт вручную. Однако это не ограничит тех, кто ищет открытые порты и атакует все, что открыто. Кроме того, вам необходимо убедиться, что любой, кто входит через этот порт, знает новый номер и что этот новый номер порта используется любым клиентом или программой.

Чтобы установить порт, отредактируйте основной сервер ssh в «/ etc / ssh / sshd_config». Вам нужно будет добавить новую строку, указав порт, следуя синтаксису Порт XXXXX.

Как настроить параметры SSH для обеспечения максимальной безопасности - Linux

Ограничить доступ

Если к вашему серверу обращаются несколько человек, вы можете полностью ограничить использование ssh. В этих случаях вы можете разрешать и блокировать пользователей и группы. Для этого вам нужно будет использовать один из следующих ключей, а затем значения, которые вы хотите разрешить или запретить: DenyUsers, AllowUsers, DenyGroups и AllowGroups. Это выполняется в указанном порядке, поэтому даже если вы разрешите пользователю, если он находится в разделе «Утверждено», он будет отклонен.

AllowUsers ramesh john jason

AllowGroups sysadmin dba

DenyUsers cvs apache jane

DenyGroups developers qa

Войти

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

LoginGraceTime 1m

Настройка конфигураций SSH

Создать псевдонимы

Параметры командной строки Ssh можно указать через псевдонимы в ssh_config. Следующие псевдонимы позволяют пользователю подключаться к серверу. DEV Выберите параметры, просто набрав SSH-разработчик в командной строке.

Host dev

    HostName dev.example.com

    Port 22222

    User foobar

Следующая команда работает при выполнении:

ssh foobar@dev.example.com -p 22222

Обратите внимание, что порт ssh был изменен на 22222 для предотвращения холодных вызовов. В противном случае это очень простое соединение ssh, для удобства сокращенное на многие символы.

Аутентификация с помощью безопасных ключей

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

Host dev

    HostName dev.example.com

    Port 22222

    User foobar

    IdentityFile ~/.ssh/dev.example.key

Как и в предыдущих примерах, эта команда ssh запускается с использованием ssh dev, выполняя следующий эквивалент командной строки:

ssh -i ~ / .ssh / dev.example.key foobar@dev.example.com -p 22222

Ставьте другие параметры ssh

Приведенные ниже параметры ssh - это одни из наиболее распространенных ключей, которые можно найти в файлах ssh_config.

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

LogLevel: Установите уровень детализации в журналах ssh на стороне клиента. Варианты от менее подробного к более подробному: QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG1, DEBUG2 и DEBUG3.

Строгий ХостКейПроверка: Установить предпочтение для добавления другого хоста к известным_ хостам. Он никогда не добавит «yes» к known_hosts. Он всегда будет добавлять «нет» к известным_ хостам. Спросить, который используется по умолчанию, будет запрашивать пользователя перед добавлением в файл known_hosts. Yes обеспечивает максимальную защиту от атак троянских коней, но это может быть утомительно с плохо управляемым файлом known_hosts. Нет - наименее безопасный, но может сделать подключение к большому количеству временных хостов менее болезненным.

ПользовательKnownHostsFile: Укажите путь к пользовательскому файлу known_hosts.

Переадресация звонков

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

Местный Форвард: Указывает соединение для пересылки трафика локального порта на удаленный компьютер. Это туннелирует соединение через удаленную сеть.

Удаленный Форвард: Определите удаленный порт для маршрутизации за пределы локального порта. Это противоположность описанному выше варианту.

Динамический Форвард: Настроить локальный порт для использования с протоколом динамической пересылки.

Заключение

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

Источник
Перейти к верхней кнопке