Поиск по сайту:

Рекомендации по безопасности OpenSSH


На этой странице

  1. Безопасность OpenSSH
    1. Используйте надежный пароль
    2. Изменить порт SSH по умолчанию
    3. Всегда используйте протокол 2
    4. Отключить вход в систему root
    5. Ограничить количество пользователей
    6. Использовать аутентификацию на основе ключа

    SSH (Secure Shell) — это криптографический сетевой протокол для безопасного инициирования сеансов текстовой оболочки на удаленных машинах.

    OpenSSH — это стандартный клиент и сервер SSH, используемый в большинстве дистрибутивов Linux. Это инструмент подключения, на который полагаются большинство администраторов при работе на своих серверах Linux и *BSD. OpenSSH шифрует весь трафик (включая пароли) для эффективного предотвращения прослушивания, перехвата соединения и других атак. Другими словами, «OpenSSH гарантирует, что соединение с вашим сервером безопасно». См. статью в Википедии для подробного ознакомления с SSH.

    В этом руководстве рассматриваются передовые методы безопасной настройки вашего SSH-сервера.

    Безопасность OpenSSH

    Вот шесть наиболее важных задач для защиты настройки вашего SSH-сервера:

    1. Используйте надежный пароль.
    2. Измените порт SSH по умолчанию.
    3. Всегда используйте протокол версии 2.
    4. Отключите вход в систему root.
    5. Ограничить доступ пользователей.
    6. Используйте аутентификацию на основе ключа.

    Используйте надежный пароль

    Пароль — это слово или строка символов, используемая для аутентификации пользователя для подтверждения личности или подтверждения доступа для получения доступа к ресурсу. Держите это в секрете от тех, кому не разрешен доступ к серверу. Используйте сложный и длинный пароль, он должен быть легко запоминающимся и уникальным для вас, но не простым для угадывания другими. Не используйте \\admin123\\ или \\admin\\ и т. д., которые легко угадать, и не используйте дни рождения, имя вашей жены и т. д. Хороший пароль также должен содержать специальные символы, такие как .!;/ ( не только символы a-c и 0-9). Используйте символы верхнего и нижнего регистра в пароле.

    Изменить порт SSH по умолчанию

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

    nano /etc/ssh/sshd_config

    Найдите строку \Порт\:

    Port 22

    и измените его на ваш любимый номер порта, например: 1337

    Port 1337

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

    netstat -ntap

    Эта команда приводит к довольно длинному списку, который показывает все открытые порты и соединения. Если вы просто хотите проверить, доступен ли нужный вам порт, используйте вместо этого эту команду:

    netstat -ntap | grep 4422

    В этом примере я проверю, свободен ли порт 4422. Если команда не возвращает результат, значит, порт свободен и может использоваться для SSH.

    Всегда используйте протокол 2

    SSH имеет две версии протокола: старый протокол 1, который небезопасен, и новый протокол 2. Поэтому всегда используйте протокол 2 для вашего ssh-сервера, он более безопасен, чем протокол 1. Подробнее здесь.

    Отключить root-вход

    Вы должны отключить прямой вход в систему для пользователя root, потому что существует множество атак грубой силы против имени суперпользователя root. ВАЖНО: перед отключением учетной записи root проверьте вход по SSH с помощью альтернативного пользователя без полномочий root, которого вы планируете использовать для входа по ssh.

    PermitRootLogin no

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

    Ограничить пользователя

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

    AllowUsers ruiko mikoto

    в /etc/ssh/sshd_config, чтобы ограничить доступ SSH для этих пользователей.

    Используйте аутентификацию на основе ключа

    Я рекомендовал вам использовать этот вариант, потому что он очень прост в настройке и более безопасен, чем аутентификация на основе пароля. Сначала вам нужно создать пару открытого и закрытого ключей на вашем локальном (настольном) компьютере, я использую Linux для его создания.

    Вы можете создать пару открытый/закрытый ключ с помощью этой команды:

    ssh-keygen -t rsa -b 4096

    Он создаст 2 файла, расположенных в каталоге ~/.ssh/, id_rsa в качестве закрытого ключа и id_rsa.pub в качестве открытого ключа. Если он запрашивает пароль, вы можете оставить его пустым или ввести свой пароль. Рекомендуется использовать пароль для защиты ключа.

    Теперь загрузите открытый ключ id_rsa.pub на свой сервер с помощью команды ssh-copy-id.

    ssh-copy-id -i ~/.ssh/id_rsa.pub 

    Он автоматически запишет ваш открытый ключ в файл ~/.ssh/authorized_keys/ на вашем сервере.

    Теперь вернитесь на свой сервер и снова отредактируйте конфигурацию файла ssh.

    nano /etc/ssh/sshd_config

    Раскомментируйте эту строку:

    AuthorizedKeysFile     %h/.ssh/authorized_keys

    и, наконец, перезапустите ваш ssh-сервер:

    systemctl restart sshd

    Теперь попробуйте подключиться к вашему серверу:

    ssh -p '4422' ''

    Заключение

    OpenSSH – это стандарт безопасного удаленного доступа к *Unix-подобным серверам, заменяющий незашифрованный протокол telnet. SSH (и его подпротокол передачи файлов SCP) обеспечивает зашифрованное и безопасное соединение с вашего локального компьютера на сервер. Базовая установка OpenSSH уже достаточно безопасна, но мы можем улучшить ее, следуя приведенному выше руководству.