Главная страницаSelf-HostingУстановка и настройка Ubuntu ServerБазовая безопасность в Ubuntu Server
Базовая безопасность в Ubuntu Server

Базовая безопасность в Ubuntu Server

Если ваш сервер будет доступен из интернета, то аутентификация по паролю небезопасна. Буквально через пару часов вы можете наблюдать в логах что боты пытаются подобрать пароль для доступа через SSH.

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

После экспериментов и окончательной настройки сервера обязательно произведите эти базовые настройки

Что такое SSH ключи?

Благодаря SSH-ключам можно произвести аутентификацию без пароля. Ключи представляют собой набор из сотен различных символов, общая длина часто составляет от 1024 до 4096 бит.

Для аутентификации нужно два SSH-ключа — публичный и приватный.

Публичный ключ

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

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

Приватный ключ

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

Генерация SSH ключей

Ключи будем генерировать на вашем рабочем компьютере, а не на сервере! Можно сгенерировать и на сервере, но если вы работаете в Windows, то нужна будет дополнительная конвертация. В данной статье не будем рассматривать этот вариант.

Windows

С официального сайта разработчика скачайте и установите PuTTY.

Если скачиваете пакет установки, то после установки у вас будет весь набор утилит. Так же можно скачать их по отдельности, нам понадобятся: putty.exe и puttygen.exe

Запустите puttygen.exe, в открывшемся окне выберите классический и повсеместно использующийся тип ключа для генерации — RSA. Длину оставляем 2048 бит и нажимаем кнопку нажмите Generate (Генерировать)

puttygen
  1. Во время генерации нужно водить курсором по серой области внутри окна до заполнения зеленой полоски. Это позволит улучшить защищенность генерируемого ключа, благодаря созданию псевдослучайности.
  2. После успешной генерации нужно сохранить публичный и приватный ключ на компьютере, кнопками Save public key (Открытый ключ) и Save private key (Личный ключ)
  3. Сохраните приватный (личный) ключ в надежное место и никому его не передавайте. При утере этого ключа вы не сможете восстановить его. Публичный ключ, в случае утери, можно сгенерировать с помощью приватного ключа. Для доступа к разным серверам можно использовать одну и ту же пару ключей, необязательно каждый раз создавать новую.

macOS / Linux

Откройте терминал на рабочем компьютере (не подключаясь к серверу по SSH) и введите команду:

ssh-keygen -t rsa

Появится сообщение:

Enter file in which to save the key (/home/user/.ssh/id_rsa):

Нажмите Enter. Тем самым подтвердите создание ключей в вашей локальной папке.

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

Если все прошло успешно, то вы получите сообщение Your identification has been saved in … На этом настройка ключей завершена.

Чтобы получить сгенерированный открытый ключ введите команду:

cat ~/.ssh/id_rsa.pub

Настройка пользователя

Отключение вход пользователя root

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

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

Команду ниже нужно копировать и вставлять полностью, а не по строчно. После вставки нажмите Enter и введите пароль

sudo rm -r /etc/ssh/sshd_config.d/* && sudo tee -a /etc/ssh/sshd_config.d/safe_ssh.conf <<EOF
ChallengeResponseAuthentication no
PasswordAuthentication no
UsePAM no
PermitRootLogin no
EOF

Добавление ключа для вашего пользователя

Windows

Найдите файл, который сохраняли в программе puttygen.exe кнопкой Save public key (Открытый ключ).

macOS / Linux

Содержимое файла, которое можно смотреть выполнив команду cat ~/.ssh/id_rsa.pub на рабочем компьютере.

После выполнения следующих команд, откроется текстовый редактор nano, в который вставьте публичный ключ.

mkdir -p ~/.ssh
touch ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys
nano ~/.ssh/authorized_keys

Ключ нужно вставлять как есть, без добавления/удаления любых символов. Выйти из редактора nano можно сочетанием Ctrl + x, подтвердив сохранение файла вводом y.

Проверьте содержимое файла командой:

cat ~/.ssh/authorized_keys

Перезагрузите сервер:

sudo reboot

После загрузки сервера попробуйте подключиться к нему с помощью ключа. Аутентификация по паролю больше не будет доступна. Как подключиться к серверу по SSH с помощью ключа описано в статье.

Был ли полезен материал?

Нам очень важно получать обратную связь. Пожалуйста, оцените материал. Так мы поймем в какую сторону его стоит изменить.

Оставить комментарий