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
true
Firewalldが有効で実行中の場合は単に返され、それ以外の場合はfalse
返されます。
したがって、テストは次のようになります。
if [ `systemctl is-active firewalld` ]
then
firewall_status=active
else
firewall_status=inactive
fi
答え2
firewall-cmd
RHEL 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]: ファイアウォールを停止中 - 動的ファイアウォールデーモン。