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

Сервер OpenVPN, работающий на openvz. Как написать правило iptables без маскарада?

Я настраиваю VPS, который работает на openvz, как сервер OpenVPN, используя интерфейс tun.

У меня возникли проблемы с правилом iptables, поскольку MASQUERADE недоступен.

Если бы MASQUERADE был доступен, я бы написал правила iptables следующим образом:

iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -s 10.8.0.0/24 -j ACCEPT
iptables -A FORWARD -j REJECT
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

Однако, учитывая, что я не могу использовать MASQUERADE, как я могу переписать эти правила, используя вместо этого SNAT или DNAT?

заранее спасибо

-------------- РЕДАКТИРОВАТЬ ---------------

Спасибо Olipro за решение. Вот правила, которые у меня сработали:

iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -s 10.8.0.0/24 -j ACCEPT
iptables -A FORWARD -j REJECT
iptables -t nat -A POSTROUTING  -s 10.8.0.0/24 -o venet0 -j SNAT --to-source 1.2.3.4

Где 1.2.3.4 - публичный IP-адрес сервера openvpn.

Вам действительно нужен MASQUERADE, только если ваш глобальный IPv4-адрес часто меняется (например, на ADSL), в противном случае предпочтительнее использовать SNAT.

Вместо правила MASQUERADE используйте SNAT следующим образом:

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j SNAT --to-source 1.2.3.4

замените 1.2.3.4 фактическим общедоступным IP-адресом виртуальной машины ... Кроме того, я бы ожидал, что eth0 будет veth0 или venet0, поскольку это ящик OpenVZ.