Защита Ubuntu Server: Практический подход к защите контейнеров и развертываний

watch 1m, 23s
views 2

13:49, 17.08.2026

Содержание статьи
arrow

  • Начальные этапы настройки
  • Создание нового пользователя
  • Включение аутентификации по SSH-ключам
  • Проверка пользователя deploy и настройка sudo
  • Ограничение входа по SSH-ключам
  • Настройка брандмауэра
  • Автоматизация обновлений безопасности
  • Внедрение Fail2Ban
  • Включение двухфакторной аутентификации
  • Настройка Logwatch
  • Завершение настройки

Существует несколько эффективных способов обеспечить безопасность сервера Ubuntu. Именно поэтому мы решили поделиться некоторыми практическими рекомендациями по этой теме.

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

Начальные этапы настройки

Самым первым и в то же время важнейшим шагом является выбор пароля для пользователя root. Здесь необходимо выбрать что-то более сложное, и генератор паролей может стать хорошим выбором для таких ситуаций. С помощью генератора паролей вы сможете автоматически сгенерировать нужный пароль всего за пару секунд и дополнительно зашифровать его с помощью мастер-пароля. Какой бы инструмент вы ни использовали для генерации паролей, вам также следует подумать о какой-либо другой форме шифрования. Пароль root может понадобиться в случае возникновения проблем с паролем sudo.

Ещё одним важным шагом является обновление и установка последних исправлений в системе. Вот как это сделать:

apt-get update
apt-get upgrade

Создание нового пользователя

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

# Создать пользователя «deploy»
useradd deploy
# Создать домашний каталог для пользователя «deploy»
mkdir -p /home/deploy
# Создание каталога «.ssh» внутри домашнего каталога пользователя «deploy»
mkdir -p /home/deploy/.ssh
# Установите соответствующие права доступа для каталога «.ssh»
chmod 700 /home/deploy/.ssh
# При желании измените владельца домашнего каталога и каталога «.ssh» на пользователя «deploy»
chown -R deploy:deploy /home/deploy

Следующим шагом является настройка необходимой оболочки с помощью команды:

usermod -s /bin/bash deploy 

Включение аутентификации по SSH-ключам

Ещё одна полезная рекомендация — избегать использования паролей для входа на серверы. Вот несколько моментов, касающихся этой темы:

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

Теперь скопируем id_rsa.pub1:

vim /home/deploy/.ssh/authorized_keys  

Вот как должны быть настроены правильные права доступа:

chmod 400 /home/deploy/.ssh/authorized_keys

chown deploy:deploy /home/deploy -R

Проверка пользователя deploy и настройка sudo

В ходе этого процесса мы оставим SSH-соединение с правами root и попробуем проверить пользователя deploy. Затем мы установим пароль для пользователя deploy. Чтобы создать более безопасный пароль, мы воспользуемся специальным менеджером, который также обеспечит определённый уровень шифрования.

passwd deploy

Затем запустите sudo с помощью команды:

visudo

Теперь добавим группу sudo под пользователем root:

root ALL=(ALL) ALL

%sudo   ALL=(ALL:ALL) ALL

Добавьте пользователя deploy в группу sudo с помощью команды:

usermod -aG sudo deploy

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

exec su -l deploy

Ограничение входа по SSH-ключам

Настройка находится здесь:

vim /etc/ssh/sshd_config

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

PermitRootLogin no

PasswordAuthentication no

AllowUsers deploy@(ваш-VPN-или-статический-IP)

Затем необходимо перезапустить службу SSH:

service ssh restart

Настройка брандмауэра

Настройку брандмауэра можно выполнить с помощью Iptables или воспользоваться упрощённым аналогом Iptables — ufw. В системе Ubuntu ufw установлен по умолчанию, тогда как в системе Debian его необходимо установить дополнительно с помощью команды:

apt-get install ufw

Начните с открытия файла конфигурации:

vim /etc/default/ufw

Измените следующее значение на yes:

IPV6=yes

Теперь вы можете настроить всё из командной строки с помощью ufw следующим образом:

sudo ufw allow from {укажите-IP} to any port 22

sudo ufw allow 80

sudo ufw allow 443

sudo ufw disable

sudo ufw enable

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

Автоматизация обновлений безопасности

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

apt-get install unattended-upgrades

vim /etc/apt/apt.conf.d/10periodic

Внесите в файл следующие изменения:

APT::Periodic::Update-Package-Lists "2";

APT::Periodic::Download-Upgradeable-Packages "2";

APT::Periodic::AutocleanInterval "14";

APT::Periodic::Unattended-Upgrade "1";

Ещё одна важная рекомендация — включать только обновления безопасности, поскольку обычные обновления могут привести к сбою приложения во время обновления, а это в большинстве случаев не является идеальным вариантом.

vim /etc/apt/apt.conf.d/50unattended-upgrades

Внесите в файл следующие изменения:

Unattended-Upgrade::Allowed-Origins {

    "${distro_id}:${distro_codename}";

    "${distro_id}:${distro_codename}-security";

    "${distro_id}:${distro_codename}-updates";

    "${distro_id}:${distro_codename}-backports";

};

Внедрение Fail2Ban

Внедрение Fail2Ban — отличный выбор, который позволит заблокировать множество подозрительных действий. Этот пакет работает за счёт добавления правил в iptables и блокировки подозрительных IP-адресов, демонстрирующих странную активность.

Пакет использует ряд полезных протоколов фильтрации и обеспечивает отличную интеграцию с другими сервисами, гарантируя более надёжную защиту от атак методом перебора или DDoS-атак. Вам следует регулярно проверять настройки Fail2Ban, так как он может заблокировать некоторых реальных пользователей. Чтобы упростить этот процесс, вы можете интегрировать инструмент с SendMail, и вы будете немедленно получать уведомления при блокировке того или иного IP-адреса.

Для установки используйте:

apt-get install fail2ban

Включение двухфакторной аутентификации

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

  • Получить доступ к VPN, завладев ключом или сертификатом
  • Получить доступ к вашему компьютеру, чтобы заполучить закрытый ключ
  • Каким-то образом добыть парольную фразу
  • И, наконец, для двухфакторной аутентификации потребуется доступ к вашему телефону

Даже если это станет возможным, им придётся получить root-доступ через sudo, а для этого хакерам нужно каким-то образом заполучить пароль деплоя, который зашифрован, а это — огромная проблема.

Для установки используйте:

apt-get install libpam-google-authenticator

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

su deploy

google-authenticator

Настройка Logwatch

Logwatch — ещё один полезный инструмент, необходимый для проверки файлов журналов. Ежедневно вы будете получать данные обо всех попытках, произошедших за этот период, благодаря чему у вас будет чёткое представление о том, что происходит с вашим сервером. Этот инструмент можно использовать для мониторинга, а его установка очень проста:

apt-get install logwatch

Затем добавьте задание:

vim /etc/cron.daily/00logwatch

Добавьте в открытый файл следующую строку:

/usr/sbin/logwatch --output mail --mailto admin@example.com --detail high

Завершение настройки

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

Поделиться

Была ли эта статья полезной для вас?

Популярные предложения VPS

-10%

CPU
CPU
4 Xeon Cores
RAM
RAM
8 GB
Space
Space
100 GB SSD
Bandwidth
Bandwidth
Unlimited
10Ge-KVM-SSD 8192 Linux

£ 98.7

£

При оплате за год

-10%

CPU
CPU
6 Epyc Cores
RAM
RAM
8 GB
Space
Space
100 GB NVMe
Bandwidth
Bandwidth
Unlimited
Keitaro KVM 8192
OS
CentOS
Software
Software
Keitaro

£ 24.77

£

При оплате за год

-8.9%

CPU
CPU
6 Xeon Cores
RAM
RAM
16 GB
Space
Space
400 GB HDD
Bandwidth
Bandwidth
Unlimited
wKVM-HDD 16384 Windows

£ 47.86

£

При оплате за год

-10%

CPU
CPU
6 Xeon Cores
RAM
RAM
16 GB
Space
Space
400 GB HDD
Bandwidth
Bandwidth
300 Gb
KVM-HDD HK 16384 Linux

£ 34.61

£

При оплате за год

-7.2%

CPU
CPU
2 Epyc Cores
RAM
RAM
1 GB
Space
Space
10 GB NVMe
Bandwidth
Bandwidth
Unlimited
KVM-NVMe 1024 Linux

£ 5.89

£

При оплате за год

-10%

CPU
CPU
4 Epyc Cores
RAM
RAM
4 GB
Space
Space
50 GB NVMe
Bandwidth
Bandwidth
Unlimited
aiKVM-NVMe 4096 Linux

£ 14.43

£

При оплате за год

-8.4%

CPU
CPU
4 Xeon Cores
RAM
RAM
2 GB
Space
Space
75 GB SSD
Bandwidth
Bandwidth
Unlimited
10Ge-wKVM-SSD 2048 Windows

£ 31.96

£

При оплате за год

-10%

CPU
CPU
4 Xeon Cores
RAM
RAM
2 GB
Space
Space
60 GB HDD
Bandwidth
Bandwidth
300 Gb
KVM-HDD HK 2048 Linux

£ 5.39

£

При оплате за год

-9.7%

CPU
CPU
10 Xeon Cores
RAM
RAM
64 GB
Space
Space
300 GB SSD
Bandwidth
Bandwidth
Unlimited
wKVM-SSD 65536 Windows

£ 118.77

£

При оплате за год

-9.7%

CPU
CPU
10 Epyc Cores
RAM
RAM
64 GB
Space
Space
300 GB NVMe
Bandwidth
Bandwidth
Unlimited
wKVM-NVMe 65536 Windows

£ 119.2

£

При оплате за год

Другие статьи на эту тему

cookie

Принять файлы cookie и политику конфиденциальности?

Мы используем файлы cookie, чтобы обеспечить вам наилучший опыт работы на нашем сайте. Если вы продолжите работу без изменения настроек, мы будем считать, что вы согласны получать все файлы cookie на сайте HostZealot.