web-dev-qa-db-ja.com

RHEL7でFirewalldを使用して保存して実行する方法はありますか?

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

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

$ /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

しかし、それが節約であるかどうかは明確に述べていません。

11
Peter Souter

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
21
Michael Hampton

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サービスをファイアウォールに追加しました

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

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

<?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を確認してください-すべて設定されているはずです。

0
Alex N