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

Почему безопасность сервера должна быть на первом месте?
Многие начинающие разработчики и фрилансеры, развернув своего 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-upgrades2. Создание нового пользователя и предоставление прав 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 sshd7. Мониторинг системных логов
Необходимо постоянно быть в курсе того, что происходит на сервере. Для проверки неудачных попыток входа отслеживайте следующий файл журнала:
sudo tail -f /var/log/auth.logЕсли вы заметите подозрительную активность или незнакомые IP-адреса, сразу же проанализируйте их и при необходимости внесите в черный список.
Заключение
Выполнение этих 7 шагов займет у вас всего 10–15 минут при настройке нового сервера. Однако эти простые правила повысят безопасность вашего проекта на 99% и защитят от неожиданной потери данных. Помните: безопасность — это не разовое действие, а постоянная системная практика.
Теги: #Linux #DevOps #VPS #Server Xavfsizligi #Ubuntu