Защита сервера Ubuntu: первый час после установки

Практический чек-лист с командами: личная учётная запись администратора, SSH-ключи, firewall, автоматические обновления безопасности и fail2ban.

Только что установленный сервер Linux, подключённый к интернету, через несколько минут начинает получать попытки входа. Эти шаги занимают около часа и закрывают самые распространённые пути атаки. Они подходят для актуальных LTS-выпусков Ubuntu и, с небольшими изменениями, для Debian.

Перед началом: держите одну SSH-сессию открытой, пока меняете настройки SSH и firewall, и проверяйте новый вход во втором окне, прежде чем закрыть первое. Замените 192.168.88.0/24 на свою офисную или VPN-сеть, а SERVER_IP — на адрес сервера.

Шаг 1. Создайте личную учётную запись администратора

У каждого администратора своя учётная запись с правами sudo — никаких общих логинов и работы под root.

sudo adduser admin1
sudo usermod -aG sudo admin1

Шаг 2. Входите по SSH-ключам

Создайте ключ на своём компьютере и скопируйте его на сервер. Защитите ключ парольной фразой.

# on your own computer:
ssh-keygen -t ed25519
ssh-copy-id admin1@SERVER_IP

Шаг 3. Отключите вход root и вход по паролю через SSH

Убедившись, что вход по ключу работает, отключите вход по паролю и под root.

sudo nano /etc/ssh/sshd_config.d/99-hardening.conf
# put these lines in the file:
PermitRootLogin no
PasswordAuthentication no
KbdInteractiveAuthentication no
# check and apply:
sudo sshd -t && sudo systemctl restart ssh

Шаг 4. Включите firewall

Блокируйте всё входящее, кроме действительно нужного серверу. В примере SSH разрешён только из офисной или VPN-сети, а веб-сервер открыт для всех.

sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow from 192.168.88.0/24 to any port 22 proto tcp
sudo ufw allow 80,443/tcp
sudo ufw enable
sudo ufw status verbose

Шаг 5. Установите обновления и включите автоматические обновления безопасности

Обновления безопасности будут устанавливаться ежедневно. Планируйте перезагрузки после обновления ядра.

sudo apt update && sudo apt full-upgrade
sudo apt install unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades

Шаг 6. Замедлите подбор паролей с fail2ban

fail2ban временно блокирует адреса с многократными неудачными попытками входа.

sudo apt install fail2ban
printf '[sshd]\nenabled = true\n' | sudo tee /etc/fail2ban/jail.local
sudo systemctl enable --now fail2ban
sudo fail2ban-client status sshd

Шаг 7. Проверьте, что слушает сервер и поддерживается ли выпуск

Каждый открытый порт — возможный путь внутрь, остановите ненужные службы. Если у выпуска закончилась стандартная поддержка (например, Ubuntu 20.04), подключите Ubuntu Pro, чтобы получать исправления безопасности, или запланируйте обновление.

sudo ss -tlnp
lsb_release -a
sudo pro status

Дальнейшие шаги

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

Первый час жизни сервера определяет, как пройдут следующие годы.

Нужна помощь? Свяжитесь с CySec — первая консультация бесплатно.


Все статьи

Нужна помощь с этим?

Наши инженеры проанализируют вашу текущую инфраструктуру и предложат конкретные улучшения.