Назад | Перейти на главную страницу

DMZ через OpenVPN

Я настраиваю сервер OpenVPN. Я хочу, чтобы он перенаправлял любое входящее соединение (кроме портов 22 (ssh) и 1194 (сам VPN-сервер)) клиенту, подключенному к VPN.

VPN-сервер будет жить на vpn.example.com. Клиент - 10.8.0.2, VPN-шлюз - 10.8.0.1.

Как мне настроить DMZ для этого?

Сноски:

Я нашел, как перенаправить один порт через VPN здесь: Перенаправление портов с OpenVPN

Суть в том, чтобы бежать iptables -t nat -A PREROUTING -i eth0 -d VPN_IP_HERE -p tcp --dport PORT_TO_REDIRECT -j DNAT --to-destination 10.8.0.2

Однако это работает только для одного порта за раз, мне понравится такое решение, как --dport *

Если вы заботитесь о перенаправлении только tcp вашему клиенту, вы можете использовать:

iptables -t nat -A PREROUTING -i eth0 -d VPN_IP_HERE -p tcp --dport ! 22 -j DNAT --to-destination 10.8.0.2

Это перенаправит все пакеты tcp Кроме те к порту 22 (sshd). Это должно работать, пока вы используете OpenVPN на udp (обычный случай). Если вы также хотите перенаправить udp, добавьте:

iptables -t nat -A PREROUTING -i eth0 -d VPN_IP_HERE -p udp --dport ! 1194 -j DNAT --to-destination 10.8.0.2

И еще есть icmp: вы, вероятно, тоже захотите перенаправить хотя бы часть из этого.

Вместо того, чтобы указывать трафик (почти весь в вашем случае) для перенаправления, может быть проще обратить проблему:

iptables -t nat -A PREROUTING -i eth0 -d VPN_IP_HERE -p udp --dport 1194 -j RETURN
iptables -t nat -A PREROUTING -i eth0 -d VPN_IP_HERE -p tcp --dport 22 -j RETURN
iptables -t nat -A PREROUTING -i eth0 -d VPN_IP_HERE -j DNAT --to-destination 10.8.0.2

В -j RETURN означает остановить обработку текущей цепочки. Первые 2 правила выше определяют случаи, когда ваше правило перенаправления «закорачивается». Все, что не соответствует первым двум правилам, перенаправляется.

Одна удобная ссылка на iptables: https://www.frozentux.net/iptables-tutorial/iptables-tutorial.html#RETURNTARGET

в любом случае на это, возможно, уже был дан ответ, но вы можете использовать это в своем / etc / network / interfaces

 post-up iptables -t nat -A POSTROUTING -s '10.0.0.0/8' -o eth0 -j MASQUERADE
 post-down iptables -t nat -D POSTROUTING -s '10.0.0.0/8' -o eth0 -j MASQUERADE

это правило устанавливает полный nat для любых портов, это можно ограничить, установив значение i. е. 10.8.0.3/32 вместо 10.0.0.0/8 для одного ip для nat любого порта на eth0, который должен быть заменен вашим интерфейсом

Кроме того, для пересылки определенного диапазона портов вы можете использовать

--dport 20000:22000

в этом примере будет перенаправлен порт от 20 до 22k