Redhat 7でファイアウォールが停止していることを確認する方法

Redhat 7でファイアウォールが停止していることを確認する方法

Redhat 7システムでファイアウォールが停止/無効になっていることを確認するためのエレガントな方法は何ですか?

例:

ファイアウォールを停止します。

systemctl  status firewalld.service

ファイアウォールの状態を確認する方法は次のとおりです。

systemctl  status firewalld.service

● firewalld.service - firewalld - dynamic firewall daemon
 Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor 
preset: enabled)
Active: inactive (dead)

だから

私のbashスクリプトでファイアウォールが停止/無効になっていることを確認するには:

if [[ `  systemctl  status firewalld.service | grep Active | awk '{print $2}' ` = inactive ]] 
then
       firewall_status=inactive
else
       firewall_status=active
fi

しかし、このように結果を確認するのはやや不器用です。

答え1

より良い、きれいな方法があります。

systemctl is-active firewalld

trueFirewalldが有効で実行中の場合は単に返され、それ以外の場合はfalse返されます。

したがって、テストは次のようになります。

if [ `systemctl is-active firewalld` ]
then
    firewall_status=active
else
    firewall_status=inactive
fi

答え2

firewall-cmdRHEL 7には、ファイアウォールで使用できるコマンドが導入されました。しかし、問題はルートアクセスが必要であるということです。

スクリプトをrootとして実行している場合は、次のコードを使用できます。

if [[ `firewall-cmd --state` = running ]]
then
    firewall_status=active
else
    firewall_status=inactive
fi

しかし、スクリプトをrootとして実行しない場合は、残念ながらスクリプトを使用することが唯一の方法です。

答え3

次のコマンドを使用して、Redhat Linux 7でファイアウォールの状態を確認できます。

systemctl status firewalld

状態が表示されます -

Firewalld.service - Firewalld - 動的ファイアウォールデーモンがロードされました:ロード済み(/usr/lib/systemd/system/firewalld.service;無効)
アクティブ:非アクティブ(死)

Aug 21 14:55:54 ホスト systemd[1]: Firewalld 起動 - 動的ファイアウォールデーモン... Aug 21 14:55:57 ホスト systemd[1]: Firewalld 起動 - 動的ファイアウォールデーモン。 Sep 24 15:43:03 ホスト systemd[1]: ファイアウォールを停止中 - 動的ファイアウォールデーモン... Sep 24 15:43:04 ホスト systemd[1]: ファイアウォールを停止中 - 動的ファイアウォールデーモン。

関連情報