Настройка Firewall (UFW, iptables, nftables) для VPN-сервера

Брандмауэр — это первая линия обороны вашего VPN-сервера. Без правильно настроенного файрвола даже самый современный протокол с имитацией трафика под HTTPS может стать уязвимым для атак или банальной блокировки со стороны провайдера. В этом материале мы разберём все три основных инструмента управления пакетным фильтром в Linux — UFW, iptables и nftables — и покажем, как настроить их для надёжной защиты VPN-сервера, будь то OpenVPN, WireGuard или передовая связка XHTTP + Reality.

📑 Содержание:

Зачем брандмауэр VPN-серверу

VPN-сервер, особенно на базе VPS, постоянно находится под прицелом сканеров и ботов. Если не ограничить входящие соединения, злоумышленники могут попытаться взломать SSH, подобрать пароли к панели управления или использовать ваш сервер для атак. Кроме того, DPI-системы провайдеров часто анализируют не только содержимое пакетов, но и сетевую структуру — открытые порты могут выдать наличие VPN.

Правильно настроенный файрвол решает три задачи:

UFW — простой и надёжный

Uncomplicated Firewall (UFW) — это надстройка над iptables, созданная для упрощения управления правилами. Идеальный выбор для новичков и для быстрой настройки базовой защиты.

🔧 Базовые команды UFW для VPN-сервера:

# Включить UFW и разрешить SSH (обязательно!) sudo ufw allow 22/tcp # Разрешить порт для OpenVPN (обычно 1194 UDP) sudo ufw allow 1194/udp # Или для WireGuard (51820 UDP) sudo ufw allow 51820/udp # Для Xray / XHTTP+Reality — порт 443 (HTTPS) sudo ufw allow 443/tcp # Включить файрвол sudo ufw enable # Проверить статус sudo ufw status verbose

Важно: всегда сначала разрешайте SSH, иначе после включения UFW вы потеряете доступ к серверу. Для дополнительной защиты можно ограничить SSH только доверенными IP-адресами:

sudo ufw allow from 192.168.1.100 to any port 22

iptables — классика с полным контролем

iptables — это стандартный инструмент управления пакетным фильтром в ядре Linux. Он даёт максимальную гибкость: можно фильтровать пакеты по любым параметрам, делать NAT, перенаправлять порты и строить сложные цепочки правил.

Для VPN-сервера минимальный набор правил iptables выглядит так:

# Очистить все правила iptables -F iptables -t nat -F # Политика по умолчанию — запрет всего iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT # Разрешить локальный доступ iptables -A INPUT -i lo -j ACCEPT # Разрешить установленные соединения iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # Разрешить SSH (порт 22) iptables -A INPUT -p tcp --dport 22 -j ACCEPT # Разрешить OpenVPN (UDP 1194) iptables -A INPUT -p udp --dport 1194 -j ACCEPT # Разрешить WireGuard (UDP 51820) iptables -A INPUT -p udp --dport 51820 -j ACCEPT # Разрешить HTTPS для XHTTP+Reality (порт 443) iptables -A INPUT -p tcp --dport 443 -j ACCEPT # Включить форвардинг для VPN-клиентов iptables -A FORWARD -i tun+ -j ACCEPT iptables -A FORWARD -o tun+ -j ACCEPT # NAT для выхода в интернет iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Для сохранения правил после перезагрузки используйте iptables-save > /etc/iptables/rules.v4 и настройте автозагрузку.

nftables — современная замена

nftables пришёл на смену iptables в новых ядрах Linux. Он объединяет все цепочки (filter, nat, mangle) в единый фреймворк, работает быстрее и имеет более читаемый синтаксис. Если вы используете современный дистрибутив (Ubuntu 22.04+, Debian 12+, CentOS 9), настоятельно рекомендуем переходить на nftables.

📝 Пример базового конфига nftables для VPN-сервера:

#!/usr/sbin/nft -f flush ruleset table inet filter { chain input { type filter hook input priority 0; policy drop; # Разрешить локальный трафик iif lo accept # Разрешить установленные соединения ct state established,related accept # SSH tcp dport 22 accept # OpenVPN udp dport 1194 accept # WireGuard udp dport 51820 accept # XHTTP+Reality (HTTPS) tcp dport 443 accept } chain forward { type filter hook forward priority 0; policy drop; # Разрешить форвардинг для VPN-интерфейсов iifname "tun+" accept oifname "tun+" accept } } table inet nat { chain postrouting { type nat hook postrouting priority 100; policy accept; oifname "eth0" masquerade } }

Чтобы применить конфиг, сохраните его в файл (например, /etc/nftables.conf) и выполните nft -f /etc/nftables.conf. Для автозагрузки добавьте сервис nftables.

Правила для OpenVPN, WireGuard и XHTTP+Reality

У каждого протокола свои сетевые особенности, которые важно учитывать при настройке файрвола.

🔷 OpenVPN

Порт: 1194 UDP (или 443 TCP для обхода)

Интерфейс: tun0

Особенности: требует форвардинга и NAT

Классика

⚡ WireGuard

Порт: 51820 UDP

Интерфейс: wg0

Особенности: не требует NAT, работает на уровне L3

Современный

🚀 XHTTP + Reality

Порт: 443 TCP (HTTPS)

Интерфейс: зависит от реализации (Xray)

Особенности: маскировка под Chrome, DPI не видит

Технология будущего

Для XHTTP + Reality важно также разрешить исходящие HTTPS-соединения, так как протокол имитирует реальный браузер. В iptables это выглядит как разрешение порта 443 на выход, но обычно политика OUTPUT по умолчанию ACCEPT, так что дополнительных правил не требуется.

Дополнительная защита: DDoS, брутфорс, логи

Одного файрвола недостаточно. Вот несколько дополнительных слоёв защиты, которые стоит добавить:

Все эти меры в комплексе с правильно настроенным брандмауэром делают ваш VPN-сервер практически неуязвимым для рядовых атак.

Почему личный VPS с файрволом лучше массового VPN

🚀 В чём отличие подхода VPS-VPN?

В отличие от обычных VPN-сервисов, где 1000+ человек сидят на одном IP, вы получаете персональный VPS.

  • Никаких «шумных соседей»: ваш IP-адрес используете только вы. Никто не сможет «подставить» вас своей активностью.
  • Стабильная скорость: пропускная способность не делится между сотнями пользователей.
  • Минимальный риск блокировок: массовые IP-адреса часто попадают в бан-листы из-за действий других пользователей. Ваш личный IP — чистый.
  • Полный контроль над файрволом: вы сами управляете правилами, можете открывать любые порты и настраивать NAT под свои задачи.
  • Технология XHTTP + Reality: ваш трафик маскируется под обычный HTTPS, DPI не может его отличить от обычного браузера Chrome.

🎯 Нас в 1000 раз сложнее заблокировать и отследить.

Потому что каждый клиент VPS-VPN — это отдельный выделенный сервер с уникальным IP-адресом, индивидуальными настройками файрвола и маскировки трафика.

Параметр Массовый VPN Личный VPN на VPS
IP-адрес Общий (1000+ пользователей) Персональный, только ваш
Настройка файрвола Фиксированные правила, без изменений Полный контроль
Скорость Разделяется между всеми Максимальная, только ваша
Риск блокировки Высокий (из-за соседей) Минимальный
Маскировка трафика Стандартные протоколы XHTTP + Reality, имитация Chrome
Сложность обнаружения DPI Легко обнаружить В 1000 раз сложнее

🔥 Получите свой личный VPN-сервер с полным контролем над файрволом

Мы в VPS-VPN предлагаем полностью выделенный VPN-сервер на вашем собственном VPS. Вы сами настраиваете UFW, iptables или nftables под свои задачи.

Ваш трафик будет неотличим от обычного HTTPS — DPI-системы увидят обычный браузер Chrome. Нас в 1000 раз сложнее заблокировать.

🚀 Заказать личный VPN-сервер

Итог: безопасность начинается с файрвола

Брандмауэр — это не просто «галочка» в настройках, а фундамент безопасности вашего VPN-сервера. Без него даже самая современная технология XHTTP + Reality остаётся уязвимой для атак и может быть обнаружена DPI-системами из‑за открытых служебных портов.

Мы рассмотрели три инструмента:

Какой бы инструмент вы ни выбрали, помните главное правило: разрешайте только то, что действительно необходимо, и всегда оставляйте возможность управления (SSH) с доверенных IP.

✅ Ваш VPN — ваши правила.

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

Выбирайте безопасность, скорость и свободу. Выбирайте VPS-VPN.