RHEL7のfirewalldで保存するだけで実行する方法はありますか?


11

私はRHEL7を使い始め、systemdに伴う変更について少し学びました。

/sbin/service iptables savefirewalldで実行する方法はありますか?

$ /sbin/service iptables save
The service command supports only basic LSB actions (start, stop, restart, try-restart, reload, force-reload, status). For other actions, please try to use systemctl.

ドキュメントから見つけることができる最も近い類似点は--reload次のとおりです。

Reload the firewall without loosing state information:
$ firewall-cmd --reload

しかし、それが保存されているかどうかを明示的に言っていません。

回答:


21

RHEL 7.0のfirewalldのバージョンには「保存」スクリプトがなく、実行中のファイアウォール構成を永続的な構成にコピーする方法がありません。--permanentコマンドラインに変更を加えて、firewalldでファイアウォールの変更を保存します。これがないと、変更は一時的なものであり、システムの再起動時に失われます。

例えば:

firewall-cmd --add-service=http                 # Running config
firewall-cmd --add-service=http --permanent     # Startup config

firewalldの新しい(RHEL 7以降)バージョンには、実行中の構成を保存する方法が含まれています。これは、FedoraおよびRHEL 7.1で利用可能になりました。この場合、コマンドは単純です:

firewall-cmd --runtime-to-permanent

2
マイケル・ハンプトンのコメントを続けるには、「firewall-cmd --runtime-to-permanent」を実行した後、特にファイアウォールルールを正しく保存するために、firewalldサービス(「systemctl restart firewalld」)を再起動する必要があることがわかりました。 iptablesを介していくつかのルールを手動で削除する必要があります。ファイアウォールがいくつかのルールをキャッシュしているように見えるので、「firewall-cmd --reload」は「--runtime-to-permanent」コマンドで削除すべきファイアウォールdからルールを再設定する場合があります。
アントニーグエン

2
--runtime-to-permanentコマンドはタブ補完では表示されませんが、実際にはそこにあることに注意してください(CentOS 7.5システムでテスト済み)。
ドデキサヘドロン

@AntonyNguyen firewalldがルールを管理しているときは、iptablesコマンドを使用しないでください。FIrewalldには変更を知る方法がありません(定期的にポーリングする必要があり、nftablesによって修正された設計のためにファイアウォールのパフォーマンスが低下します)use 'firewall-cmd --direct --passthrough ipv4 -A FORWARD ... -j DROP '
AdamKalisz

0

SIPサービスといくつかのIPを追加する必要がありました

ディレクトリ/ usr / lib / firewalld / services /に、他のxmlサービスファイルに基づいてsip.xmlを追加しました。

<?xml version="1.0" encoding="utf-8"?>
<service>
  <short>SIP</short>
  <description>This is SIP, Yo! </description>
  <port protocol="udp" port="5060"/>
</service>

次に、sipサービスをfirewalldに追加しました

# firewall-cmd --add-service=sip --permanent 

次に、/ etc / firewalld / zones / public.xmlでサービスにIPを追加しました

<?xml version="1.0" encoding="utf-8"?>
<zone>
  <short>Public</short>
  <description></description>
  <service name="dhcpv6-client"/>
  <service name="http"/>
  <service name="ssh"/>
  <service name="https"/>

  <rule family="ipv4">
    <source address="x.x.x.x/32"/>
    <service name="sip"/>
    <accept/>
  </rule>

</zone>

ロギングのレベルを追加する場合は、LOGを追加することもできます

  <rule family="ipv4">
    <source address="x.x.x.x/32"/>
    <service name="sip" 
    <log prefix="sip" level="info"/>
    <accept/>
  </rule>

ゾーンにルールを追加した後、実行します

# firewall-cmd --reload

あなたのiptablesを確認してください-あなたはすべて設定する必要があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.