web-dev-qa-db-ja.com

Firewalld CentOS 7マスカレード

私はfirewalldでこのiptablesルールと同等のことをやろうとしています

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

これどうやってするの?

8
Jacob Tomlinson

外部ゾーンでマスカレードを設定するには、次のように入力します。

# firewall-cmd --zone=external --add-masquerade

external:マスカレードが特にルーターで有効になっている外部ネットワークで使用します。コンピューターに害を与えないようにネットワーク上の他のコンピューターを信頼しません。選択された着信接続のみが受け入れられます。

internal:内部ネットワークで使用します。ネットワーク上の他のコンピュータを信頼して、コンピュータに害を与えないようにします。選択された着信接続のみが受け入れられます。

参考のため:

http://www.certdepot.net/rhel7-get-started-firewalld/

6
TBI Infotech

または、次のルールを追加できます。/ etc/firewalld/direct.xmlファイル.

<?xml version="1.0" encoding="utf-8"?>
<direct>
...
  <rule priority="0" table="filter" ipv="ipv4" chain="POSTROUTING">-table nat -jump MASQUERADE --source 10.8.0.0/24 --out-interface eth0</rule>  
</direct>

次に:

firewall-cmd --reload
1
arober11

そのようなルールを直接使用することはありません。インターフェース(eth0)をexternalゾーンに配置するだけです。これは、RHEL7/CentOS7ですでに構成済みであり、マスカレードがオンになっているか、インターフェースが存在するゾーンでマスカレードを有効にできます。デフォルトでは、公衆。したがって、正しい答えは次のいずれかです。

# firewall-cmd --zone=public --add-masquerade

または

# firewall-cmd --change-zone=eth0 --zone=external

それが本当にあなたがする必要があるすべてです。 NATを特定のサブネットまたは範囲でのみ有効にするには、リッチルールまたはダイレクトルールが必要です。これは少し複雑です。他のパケットを拒否することもできますが、これもオプションのようです。

1
lzap