Ответ
Набор портов, которые необходимо открыть на фаерволе, зависит от используемого VPN-протокола. Вот основные из них:
| Протокол | Порт(ы) и Протокол | Назначение |
|---|---|---|
| OpenVPN | UDP 1194 (по умолчанию) | Основной порт для данных. Можно использовать любой другой UDP/TCP порт. |
| WireGuard | UDP 51820 (по умолчанию) | Единственный порт для всего трафика. Порт настраиваемый. |
| IPsec/IKEv2 | UDP 500 (IKE), UDP 4500 (NAT-Traversal), Протокол 50 (ESP) / 51 (AH) | Фаза 1 (IKE), обход NAT, инкапсулированный трафик. |
| L2TP/IPsec | UDP 500, UDP 4500, UDP 1701 | Комбинация IPsec (для шифрования) и L2TP (для туннелирования). |
| SSTP | TCP 443 | Использует HTTPS, поэтому часто обходит ограничения. |
Практический пример настройки правил iptables для OpenVPN:
# Разрешить входящие соединения на порт OpenVPN
sudo iptables -A INPUT -p udp --dport 1194 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -p udp --sport 1194 -m conntrack --ctstate ESTABLISHED -j ACCEPT
# Включить форвардинг (IP forwarding) и маскарадинг для клиентов VPN
sudo sysctl -w net.ipv4.ip_forward=1
sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
Важно: Необходимо также проверить и открыть эти порты на маршрутизаторе (если VPN-сервер находится за NAT) и в облачном провайдере (Security Groups в AWS, правила фаервола в GCP и т.д.).