Брандмауэр на VPS: базовые правила
Брандмауэр — фильтр входящих соединений: оставляем только нужные порты (SSH, веб), остальное закрываем. Стандартный инструмент Ubuntu/Debian — ufw, тонкий слой над iptables. Правило № 1: сначала разрешите SSH, потом включайте брандмауэр — иначе забаните себя.
Правильный порядок
Заголовок раздела «Правильный порядок»# 1. Разрешить SSH (ПОСЛЕ ЭТОГО ничего не сломается)ufw allow 22/tcp # или ваш порт для NAT-серверов
# 2. Разрешить вебufw allow 80/tcp # httpufw allow 443/tcp # https
# 3. Включить фильтрufw enableufw status verboseПосле enable всё, что не разрешено явно, отклоняется — сервер сразу закрыт по периметру.
Типовые наборы правил
Заголовок раздела «Типовые наборы правил»Веб-сервер с доменом в Xipher: порт веб-сервера внутри + SSH. Трафик от сети Xipher приходит на ваш порт origin — открывать сотни адресов не нужно.
NAT-сервер: разрешаете порты своих сервисов внутри ВМ (то, что слушает ваш софт). Внешние NAT-порты проброшены нодой — ufw фильтрует уже на вашем сервере: порт, который закрыт в ufw, не ответит даже через проброс.
Закрыть админку от всех, кроме себя: ufw allow from ВАШ_IP to any port 5432 — так закрывают PostgreSQL, Redis и прочие «внутренние» сервисы.
Полезные команды
Заголовок раздела «Полезные команды»ufw status numbered # пронумерованный список правилufw delete 2 # удалить правило №2 из спискаufw allow 8443/tcp # добавить портufw deny from 203.0.113.50 # забанить адресufw reset # выключить и снести все правилаЕсли что-то пошло не так
Заголовок раздела «Если что-то пошло не так»| Симптом | Причина | Лечение |
|---|---|---|
| Включил ufw — SSH пропал | Не разрешили порт SSH до enable | VNC-консоль → ufw allow 22/tcp |
| Сайт работает напрямую, но не через Xipher | Закрыт порт origin | Откройте порт origin в ufw |
| Сайт через Xipher не работает | Закрыли адреса сети | Разрешите порт origin всем — правила сети Xipher добавят сами себя заголовками |
| ufw: command not found | Не установлен | apt install ufw |
Про iptables
Заголовок раздела «Про iptables»ufw — обёртка над iptables/nftables; всё, что делает ufw, можно сделать и напрямую (iptables -A INPUT -p tcp --dport 22 -j ACCEPT). Для новичка ufw безопаснее: правила читаются человеком, ошибиться сложнее. Если ваш софт требует своих iptables-правил (Docker и т. п.), ufw с ним сосуществует, но у Docker свои цепочки — правила для контейнеров добавляются в DOCKER-USER.
Частые вопросы
Заголовок раздела «Частые вопросы»Брандмауэр обязателен?
Нет, но хорошая практика: сервис, который слушает 0.0.0.0 «на всякий случай», перестаёт быть сюрпризом. Пару правил ufw — и периметр закрыт.
Нужно ли открывать порты для работы NAT-пробросов?
Да: нода доставляет пакет на ваш порт, а ufw решает на своей стороне. Закрытый в ufw порт не ответит и через проброс.
Забаню сам себя — что делать?
VNC-консоль в панели работает мимо сети сервера: входите через неё и правьте ufw. Поэтому правило № 1 — SSH разрешаем первым.