Безопасность Linux-сервера: 10 шагов для нового VPS
С момента, когда сервер появляется в интернете, его начинают сканировать автоматические боты. По порядку рассказываем о 10 базовых шагах, которые нужно сделать в первый же день, чтобы защитить новый Linux VPS.
Как только вы запускаете новый VPS, IP-адрес сервера становится виден всему интернету. Уже через несколько минут автоматические боты со всего мира начинают пробовать войти по SSH в поисках слабых паролей. Ничего личного: боты сканируют все IP подряд. Хорошая новость в том, что несколько простых шагов сводят на нет практически все такие атаки.
Приведённые ниже команды рассчитаны на Ubuntu и Debian. Предполагается, что вы выполняете их от имени root.
1. Обновите систему
Большинство уязвимостей закрываются обновлениями.
apt update && apt upgrade -y
2. Задайте надёжный пароль
Используйте пароль длиной не менее 16 символов, с буквами, цифрами и специальными символами. Менеджер паролей сильно упростит задачу.
passwd
3. Создайте отдельного пользователя для повседневной работы
Вместо того чтобы делать всё под root, заведите пользователя с правами администратора:
adduser ivan
usermod -aG sudo ivan
4. Перейдите на вход по SSH-ключу
Пароль можно подобрать, а SSH-ключ на практике подобрать невозможно. Как создать ключ, мы пошагово объяснили в нашем руководстве по SSH.
5. Запретите вход по SSH с паролем и под root
Только убедившись, что вход по ключу работает, задайте в файле /etc/ssh/sshd_config следующие строки:
PermitRootLogin no
PasswordAuthentication no
Затем перезапустите сервис:
systemctl restart ssh
Перед этим шагом проверьте в новом окне терминала, что можете войти по ключу. Иначе вы рискуете потерять доступ к серверу.
6. Включите файрвол (UFW)
Разрешите только те порты, которые вам действительно нужны:
apt install ufw -y
ufw allow OpenSSH
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable
Посмотреть правила можно командой ufw status.
7. Защититесь от перебора паролей с помощью Fail2ban
Fail2ban автоматически блокирует на время IP-адреса, с которых раз за разом приходят неудачные попытки входа:
apt install fail2ban -y
systemctl enable --now fail2ban
8. Включите автоматические обновления безопасности
apt install unattended-upgrades -y
dpkg-reconfigure -plow unattended-upgrades
9. Отключите ненужные сервисы
Каждый неиспользуемый сервис — это лишняя дверь для злоумышленников. Чтобы увидеть открытые наружу порты, выполните:
ss -tulpn
Ненужный сервис отключите командой systemctl disable --now ИМЯ_СЕРВИСА. Базу данных (MySQL, PostgreSQL, Redis) по возможности настройте так, чтобы она принимала подключения только на 127.0.0.1.
10. Регулярно делайте резервные копии
Ни одна мера безопасности не даёт стопроцентной защиты. Ваша главная страховка — резервные копии. Регулярно копируйте важные файлы и базу данных в место за пределами сервера и хотя бы раз попробуйте восстановиться из резервной копии.
Бонус: для вашего сайта
- Обязательно публикуйте сайт по HTTPS.
- Вовремя обновляйте WordPress и другие CMS, а также их плагины.
- Удаляйте неиспользуемые плагины и темы.
Часто задаваемые вопросы
Как понять, что мой сервер атакуют?
Неудачные попытки входа можно увидеть в файле /var/log/auth.log. Подозрительными признаками также являются неожиданно высокая нагрузка на CPU, незнакомые процессы или новые пользователи.
Не заблокирую ли я сам себя, включив файрвол?
Если добавить правило ufw allow OpenSSH до команды ufw enable, SSH-соединение не прервётся. Если же что-то пойдёт не так, вы всегда сможете попасть на сервер через консоль в личном кабинете.
Нужно ли устанавливать антивирус?
На Linux-серверах главная угроза — не столько вирусы, сколько слабые пароли, необновлённое ПО и оставленные открытыми сервисы. Описанные выше шаги гораздо эффективнее.
Нужны ли эти шаги на виртуальном хостинге?
Нет. На виртуальном хостинге за безопасность сервера отвечает провайдер. Ваша задача — использовать надёжные пароли и вовремя обновлять программное обеспечение сайта.
Читайте также
Как работает сервер WireGuard или OpenVPN с собственным турецким IPv4-адресом, что происходит после оплаты и к...
Свой VPN сервер — это проще, чем кажется. Разбираем установку WireGuard на VPS с Ubuntu 24.04, правила файрвол...
Замок в адресной строке показывает, что соединение между сайтом и посетителем зашифровано. Рассказываем, как р...