![Переадресация IP-адресов Linux для OpenVPN — правильная настройка брандмауэра?](https://rvso.com/image/488022/%D0%9F%D0%B5%D1%80%D0%B5%D0%B0%D0%B4%D1%80%D0%B5%D1%81%D0%B0%D1%86%D0%B8%D1%8F%20IP-%D0%B0%D0%B4%D1%80%D0%B5%D1%81%D0%BE%D0%B2%20Linux%20%D0%B4%D0%BB%D1%8F%20OpenVPN%20%E2%80%94%20%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F%20%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0%20%D0%B1%D1%80%D0%B0%D0%BD%D0%B4%D0%BC%D0%B0%D1%83%D1%8D%D1%80%D0%B0%3F.png)
У меня OpenVPN запущен на машине Linux. VPN-сервер имеет публичный IP-адрес (xxxx), а VPN-клиентам назначаются адреса на устройстве "tun" в 10.8.0.0\24. У меня есть правило IPTables для NAT-маскировки 10.8.0.0\24 на публичный IP-адрес.
Чтобы запустить VPN-сервер, мне пришлось включить переадресацию IP (поэтому я установил net.ipv4.conf.default.forwarding=1).
... Другими словами, это именно то, что говорится в руководстве OpenVPN, без каких-либо замысловатых трюков.
Все это работает, но меня беспокоит часть, связанная с включением переадресации. Ядуматьмашина теперь будет пересылать пакеты с любого IP-адреса на любой IP-адрес, что не кажется подходящим. Поскольку у него есть общедоступный IP-адрес, это особенно плохо.
Есть ли какие-либо предложения по правилам брандмауэра для ограничения нежелательного поведения пересылки? Я думаю, что ответ будет одним или несколькими правилами IPTables в цепочке FORWARD, но вот здесь я застрял.
Спасибо!
решение1
Если вы используете эти правила для переадресации таблиц, то все будет в порядке.
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -s 10.8.0.0/24 -j ACCEPT
-A FORWARD -j REJECT
Вы можете поместить правила в файл /etc/sysconfig/iptables и перезапустить брандмауэр. Для пробной версии командной строки сначала выполните
iptables -F
чтобы удалить отклонение пересылки трафика по умолчанию и добавить «iptables» перед каждым из трех вышеуказанных правил.
решение2
Вот часть того, что я настроил на своем шлюзе OpenVPN:
iptables -A FORWARD -i tun0 -o tun0 -j ACCEPT # vpn to vpn
iptables -A FORWARD -i tun0 -o eth0 -j ACCEPT # vpn to ethernet
iptables -A FORWARD -i eth0 -o tun0 -j ACCEPT # ethernet to vpn
Обратите внимание, что это всего лишь подмножество; остальная часть правила выполняет стандартные действия NAT.