Безопасность Linux-сервера: 7 важных шагов для настройки VPS

Автор: Javohir Abdullayev · · Сервер и DevOps

Безопасность Linux-сервера: 7 важных шагов для настройки VPS

Почему безопасность сервера должна быть на первом месте?

Многие начинающие разработчики и фрилансеры, развернув своего Telegram-бота или проект на Django на новом VPS (Virtual Private Server), совершенно забывают о безопасности. Однако факт остается фактом: уже через несколько минут после запуска нового сервера автоматизированные боты начинают сканировать его 22-й порт и пытаться подобрать стандартные пароли (brute-force).

Если на вашем сервере останется стандартный пользователь root с простым паролем, злоумышленники могут легко получить над ним контроль, превратить его в спам-бота или удалить вашу базу данных. В этом практическом руководстве мы рассмотрим 7 проверенных шагов по защите вашего сервера на базе Ubuntu/Debian.

1. Обновление системы и автоматические пакеты безопасности

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

sudo apt update && sudo apt upgrade -y

Также рекомендуется настроить пакет unattended-upgrades для автоматической установки критических обновлений безопасности:

sudo apt install unattended-upgrades -y
sudo dpkg-reconfigure --priority=low unattended-upgrades

2. Создание нового пользователя и предоставление прав sudo

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

Создайте нового пользователя и предоставьте ему права администратора (sudo):

# Создание нового пользователя (например: developer)
adduser developer

# Добавление пользователя в группу sudo
usermod -aG sudo developer

После этого войдите в систему под новым пользователем и выполняйте все дальнейшие операции из этой учетной записи.

3. Настройка входа по SSH-ключам (SSH Keys)

Какими бы сложными ни были пароли, их можно подобрать или перехватить, тогда как вход по SSH-ключам (Ed25519 или RSA 4096) обеспечивает практически неуязвимый уровень защиты.

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

ssh-keygen -t ed25519 -C "vash_email@example.com"

Скопируйте полученный открытый ключ на сервер:

ssh-copy-id -i ~/.ssh/id_ed25519.pub developer@SERVER_IP_MANZILI

Убедившись, что вход по ключу успешно работает, обязательно полностью отключите аутентификацию по паролю.

4. Ужесточение стандартных настроек SSH

Отредактируйте файл конфигурации /etc/ssh/sshd_config на сервере, запретив вход для root и аутентификацию по паролю:

sudo nano /etc/ssh/sshd_config

Найдите в файле следующие параметры и измените их:

  • PermitRootLogin no — блокирует прямой вход под пользователем root.
  • PasswordAuthentication no — разрешает вход исключительно по SSH-ключам.
  • Port 2222 (необязательно) — смена стандартного 22-го порта защитит от массового автоматического сканирования ботами.

Сохраните изменения и перезапустите службу SSH:

sudo systemctl restart ssh

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

5. Настройка межсетевого экрана UFW (Uncomplicated Firewall)

Фаервол — это главный рубеж обороны вашего сервера. На нем должны быть открыты только разрешенные порты. Например, если вы запускаете веб-сайт, достаточно открыть порты для SSH, HTTP (80) и HTTPS (443).

Закроем все входящие соединения с помощью UFW и разрешим только необходимые:

# Запретить все входящие подключения, разрешить исходящие
sudo ufw default deny incoming
sudo ufw default allow outgoing

# Разрешить порт SSH (если вы изменили порт, укажите новый номер)
sudo ufw allow 22/tcp

# Разрешить веб-трафик
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

# Включить фаервол
sudo ufw enable

Для проверки состояния фаервола используйте команду sudo ufw status verbose.

6. Защита от Brute-Force атак с помощью Fail2ban

Утилита Fail2ban непрерывно анализирует логи сервера. Если с определенного IP-адреса фиксируются неоднократные безуспешные попытки ввода пароля, Fail2ban автоматически блокирует этот IP-адрес на уровне фаервола на заданное время.

Установка и запуск выполняются очень просто:

sudo apt install fail2ban -y
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo systemctl enable --now fail2ban

Чтобы посмотреть список заблокированных ботов в Fail2ban, выполните команду:

sudo fail2ban-client status sshd

7. Мониторинг системных логов

Необходимо постоянно быть в курсе того, что происходит на сервере. Для проверки неудачных попыток входа отслеживайте следующий файл журнала:

sudo tail -f /var/log/auth.log

Если вы заметите подозрительную активность или незнакомые IP-адреса, сразу же проанализируйте их и при необходимости внесите в черный список.

Заключение

Выполнение этих 7 шагов займет у вас всего 10–15 минут при настройке нового сервера. Однако эти простые правила повысят безопасность вашего проекта на 99% и защитят от неожиданной потери данных. Помните: безопасность — это не разовое действие, а постоянная системная практика.

Теги: #Linux #DevOps #VPS #Server Xavfsizligi #Ubuntu