⚙️ VPS: настройка и безопасность

1. Первоначальная настройка VPS

После получения доступа к серверу (обычно root-пароль приходит на почту) необходимо выполнить базовую настройку. Подключитесь по SSH:

ssh root@IP_АДРЕС_СЕРВЕРА

Обновление системы

Первым делом обновите пакеты и установите необходимые утилиты:

apt update && apt upgrade -y
apt install -y curl wget nano ufw fail2ban htop git

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

Работать под root — плохая практика. Создайте пользователя с правами sudo:

adduser username
usermod -aG sudo username

Затем скопируйте SSH-ключ для нового пользователя (если ещё не настроен):

rsync --archive --chown=username:username ~/.ssh /home/username
💡 Замените username на желаемое имя пользователя. После этого можно переключиться: su - username.

2. SSH-безопасность и защита от брутфорса

Смена порта SSH и отключение root-логина

Отредактируйте конфигурацию SSH:

sudo nano /etc/ssh/sshd_config

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

⚠️ Перед изменением порта убедитесь, что новый порт открыт в防火墙 (firewall). Иначе потеряете доступ!

После изменений перезапустите SSH:

sudo systemctl restart sshd

Установка и настройка Fail2Ban

Fail2Ban автоматически блокирует IP-адреса после нескольких неудачных попыток входа. Создайте локальный конфиг:

sudo nano /etc/fail2ban/jail.local

Вставьте следующее содержимое (замените порт 2222, если использовали другой):

[sshd] enabled = true port = 2222 filter = sshd logpath = /var/log/auth.log maxretry = 3 bantime = 3600 findtime = 600

Перезапустите Fail2Ban:

sudo systemctl restart fail2ban

Проверьте статус:

sudo fail2ban-client status sshd
🔒 Дополнительно можно установить sshguard или crowdsec, но Fail2Ban — классика и проверенное решение.

3. Настройка UFW (Uncomplicated Firewall)

UFW — простой интерфейс для управления iptables. Настроим базовые правила.

Разрешаем SSH (обязательно!)

Если вы сменили порт SSH на 2222, разрешите именно его. Иначе потеряете доступ:

sudo ufw allow 2222/tcp

Если порт стандартный (22):

sudo ufw allow 22/tcp
⚠️ Всегда сначала разрешайте SSH-порт, и только потом включайте UFW! Иначе рискуете заблокировать себе доступ.

Разрешаем HTTP и HTTPS

Для веб-сервера откройте стандартные порты:

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

Включаем UFW

sudo ufw enable

Проверьте статус и список правил:

sudo ufw status verbose

Дополнительные полезные команды UFW

🛡️ UFW автоматически применяет правила при загрузке. Для MySQL/PostgreSQL не открывайте порты наружу без необходимости — используйте локальные подключения или SSH-туннели.

4. Дополнительные меры безопасности

Автоматические обновления безопасности

Установите unattended-upgrades для автоматической установки патчей безопасности:

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

Защита от брутфорса на уровне ядра (sysctl)

Добавьте параметры для защиты от SYN-флуда и других атак:

sudo nano /etc/sysctl.conf

Добавьте в конец файла:

net.ipv4.tcp_syncookies = 1 net.ipv4.conf.all.rp_filter = 1 net.ipv4.conf.default.rp_filter = 1 net.ipv4.icmp_echo_ignore_broadcasts = 1 net.ipv4.conf.all.accept_source_route = 0 net.ipv6.conf.all.accept_source_route = 0

Примените изменения:

sudo sysctl -p

Установка и настройка аудита (auditd)

Для мониторинга подозрительной активности:

sudo apt install auditd -y && sudo systemctl enable auditd
🔍 Регулярно проверяйте логи: sudo tail -f /var/log/auth.log и sudo journalctl -u sshd.

5. Проверка и итоговые рекомендации

Чек-лист безопасности

Проверка открытых портов

sudo ss -tulpn

Проверка статуса Fail2Ban и UFW

sudo fail2ban-client status sshd && sudo ufw status
❗ Никогда не отключайте UFW и Fail2Ban после настройки. Регулярно проверяйте логи и обновляйте систему. Для критичных сервисов используйте дополнительно VPN или Port Knocking.

Теперь ваш VPS защищён на базовом уровне. Не забывайте делать резервные копии и мониторить подозрительную активность.