Linux で Shorewall ファイアウォール構成を調べる方法
前回の記事では、Shorewall のインストール、構成ファイルのセットアップ、NAT 経由のポート転送の構成について学びました。この記事では、Shorewall に関連する一般的なエラーを詳しく調べ、解決策を提供し、そのコマンド ライン オプションを紹介します。
Shorewall は、コマンド ラインで実行できる幅広いコマンドを提供します。 マンショアウォールを見るとたくさんのことが分かるはずですが、最初に実行するタスクは設定ファイルのチェックです。
sudo shorewall check
Shorewall は、すべての設定ファイルとその中に含まれるオプションのチェックを出力します。
出力は次のようになります。
Determining Hosts in Zones...
Locating Actions Files...
Checking /usr/share/shorewall/action.Drop for chain Drop...
Checking /usr/share/shorewall/action.Broadcast for chain Broadcast...
Checking /usr/shrae/shorewall/action.Invalid for chain Invalid...
Checking /usr/share/shorewall/action.NotSyn for chain NotSyn..
Checking /usr/share/shorewall/action.Reject for chain Reject...
Checking /etc/shorewall/policy...
Adding Anti-smurf Rules
Adding rules for DHCP
Checking TCP Flags filtering...
Checking Kernel Route Filtering...
Checking Martian Logging...
Checking Accept Source Routing...
Checking MAC Filtration -- Phase 1...
Checking /etc/shorewall/rules...
Checking /usr/share/shorewall/action.Invalid for chain %Invalid...
Checking MAC Filtration -- Phase 2...
Applying Policies...
Checking /etc/shorewall/routestopped...
Shorewall configuration verified
私たちが探している魔法の行は、下部にある「Shorewall 構成が確認されました」という行です。エラーが発生した場合は、カーネル構成にモジュールが欠落していることが原因である可能性が高くなります。
最も一般的な 2 つのエラーを解決する方法を示しますが、マシンをファイアウォールとして使用する予定がある場合は、必要なモジュールをすべて含むカーネルを再コンパイルする必要があります。
最初のエラーは、最も一般的なエラーですが、NAT に関するエラーです。
Processing /etc/shorewall/shorewall.conf...
Loading Modules...
Checking /etc/shorewall/zones...
Checking /etc/shorewall/interfaces...
Determining Hosts in Zones...
Locating Actions Files...
Checking /usr/share/shorewall/action.Drop for chain Drop...
Checking /usr/share/shorewall/action.Broadcast for chain Broadcast...
Checking /usr/shrae/shorewall/action.Invalid for chain Invalid...
Checking /usr/share/shorewall/action.NotSyn for chain NotSyn..
Checking /usr/share/shorewall/action.Reject for chain Reject...
Checking /etc/shorewall/policy...
Adding Anti-smurf Rules
Adding rules for DHCP
Checking TCP Flags filtering...
Checking Kernel Route Filtering...
Checking Martian Logging...
Checking Accept Source Routing...
Checking /etc/shorewall/masq...
ERROR: a non-empty masq file requires NAT in your kernel and iptables /etc/shorewall/masq (line 15)
これに似たものが表示される場合は、現在のカーネルがNATをサポートするようにコンパイルされていない可能性があります。これは、ほとんどのすぐに使えるカーネルで一般的です。開始するには、「Debian カーネルをコンパイルする方法」に関する私のチュートリアルを読んでください。
チェックによって生成されるもう 1 つの一般的なエラーは、iptables とロギングに関するエラーです。
shorewall check
Checking...
Processing /etc/shorewall/params...
Processing /etc/shorewall/shorewall.conf
Loading Modules..
ERROR: Log level INFO requires LOG Target in your kernel and iptables
これは新しいカーネルにコンパイルすることもできますが、ULOG を使用したい場合は簡単な修正方法があります。 ULOG は、syslog とは異なるログ記録メカニズムです。使い方はとても簡単です。
これを設定するには、/etc/shorewall 内のすべての設定ファイルで、「info 」のすべてのインスタンスを「ULOG 」に変更する必要があります。 。次のコマンドを使用すると、これを行うことができます。
cd /etc/shorewall
sudo sed –i ‘s/info/ULOG/g’ *
その後、/etc/shorewall/shorewall.conf ファイルを編集して回線を設定します。
LOGFILE=
ログを保存したい場所。私のファイルは /var/log/shorewall.log にあります。
LOGFILE=/var/log/shorewall.log
次のコマンドを再度実行すると、正常な状態の証明書が得られるはずです。
shorewall check
Shorewall のコマンド ライン インターフェイスには、システム管理者向けの便利なワンライナーが多数付属しています。特にファイアウォールに多数の変更を加える場合によく使用されるコマンドの 1 つは、現在の構成状態を保存して、問題が発生した場合にロールバックできるようにすることです。
この構文は簡単です。
sudo shorewall save <filename>
ロールバックも同様に簡単です。
sudo shorewall restore <filename>
Shorewall を起動し、代替構成ディレクトリを使用するように構成することもできます。これを開始コマンドとして指定できますが、最初に確認することをお勧めします。
sudo shorewall check <config-directory>
単に構成を試して、動作している場合は起動したい場合は、try オプションを指定できます。
sudo shorewall try <config-directory> [ ]
Shorewall は、Linux システムで利用できる数多くの堅牢なファイアウォール ソリューションの 1 つにすぎません。ネットワークのどの端にいても、多くの人はそれがシンプルで便利であると感じています。
これは小さなスタートにすぎず、ネットワーキングの概念にあまり深く立ち入ることなく、始めることができます。いつものように、マニュアルページやその他のリソースを調べてご覧ください。 Shorewall のメーリング リストは素晴らしい場所で、最新の状態でよく管理されています。