web-dev-qa-db-ja.com

openvzで実行されているOpenVPNサーバー。マスカレードなしでiptablesルールを書く方法は?

Tunインターフェースを使用して、openvzで実行されているVPSをOpenVPNサーバーとして構成しています。

MASQUERADEが使用できないため、iptablesルールに問題があります。

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はopenvpnサーバーのパブリックIPアドレスです

6
Rich

グローバルIPv4アドレスが頻繁に変更される場合(ADSLなど)にのみ実際にMASQUERADEが必要になります。それ以外の場合は、一般的に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をVMの実際のパブリックIPに置き換えます。また、OpenVZボックスであるため、eth0はveth0またはvenet0であると想定します。

6
Olipro