ガイド | iptablesルールが正しく機能していない場合は、トラブルシューティングのためにiptablesパケットをログに記録することをお勧めします。この記事では、iptablesのロギングモジュールの使用方法について説明します。 |
例:sshサービスのすべてのログインログを記録します
まず、すべてのiptablesINPUTチェーンデータパケットを記録する方法を理解する必要があります/var/log/messages
。すでにiptablesルールがある場合は、ログルールをこれらのルールの先頭に配置します。ルールの後に配置すると、ログは記録されません。
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m limit --limit 4 / min -j LOG --log-prefix "Iptables-SSH-IN:" --log-level 4 iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j ACCEPT iptables -A INPUT -m state --state RELATED、ESTABLISHED -j ACCEPT iptables -P INPUT DROP
上記の例では、次のことを行います。
- 最初のルールは、宛先ポート22へのすべてのアクセスを記録し、ログを記録し、ログを1分あたり4つに制限し、ログプレフィックスは「Iptables-SSH-IN:」であり、ログレコードレベルは警告です。
- 2番目のルールは、送信元アドレスからのすべての新しい接続が宛先ポート22にアクセスすることを許可します。
- 3番目のルールは、確立されたすべての接続がこのマシンにアクセスすることを許可します。
- INPUTチェーンのデフォルトルールをDROPに設定します。
上記の最初のルールは次のように説明しています。
- -m limit:制限モジュールを使用します。このオプションでは、-limitオプションを使用してアクセスレートを制限できます。
- --limit 4 / min:これはレコードの最大平均アクセスレートを示します。この例では、同様のパケットのログレコードを1分あたり4つに制限しています。2 /秒、2 /分、2 /時間、2 /日に設定することもできます。
- -j LOG:これは、このパケットの宛先がLOGであることを意味します。つまり、ログファイルに書き込まれます。
- --log-prefix "Iptables-SSH-IN:"任意のログプレフィックスを指定でき、これらのプレフィックスは
/var/log/messages
ログファイルに書き込まれます。 - --log-level4これは標準のシステムログレベルです。4は警告です。0から7までの数値を使用できます。0は緊急、1はアラート、2はクリティカル、3はエラー、4は警告、5は通知、6は情報、7はデバッグです。
iptablesログの保存場所を変更します
デフォルトでは、iptablesは/var/log/messages
すべてのメッセージをログに記録するために使用します。独自のカスタムログファイルに変更する場合は、次のコマンドを追加し/etc/rsyslog.conf
てください。前提条件は、rsyslogサービスをインストールする必要があります。
#rsyslogサービスをインストールします [root @ localhost〜] #yum -y install rsyslog #起動を設定してすぐに開始します[root @ localhost〜] #systemctl enable rsyslog --now #/ etc / rsyslog.confファイルを編集し、以下を追加しますファイルの最後に 移動します [root @ localhost〜] #vim /etc/rsyslog.conf kern.warning /var/log/iptables.log
設定したログファイルを表示します。
[root @ localhost〜] #ll -h / var / log / iptables.log-rw -------。1ルートルート2.0K 2月9日10:46 / var / log / iptables.log [root @ localhost〜] #tail -f /var/log/iptables.log
IPTablesログを読み取る方法は?
[root @ localhost〜] #cat /var/log/iptables.log2月9日10:46:20localhostカーネル:Iptables-SSH-IN:IN = ens160 OUT = MAC = 00:0c:29:ae:7d:09 :00:50:56:c0:00:08:08:00 SRC = 192.168.43.1 DST = 192.168.43.137 LEN = 52 TOS = 0x00 PREC = 0x00 TTL = 128 ID = 49928 DF PROTO = TCP SPT = 16512 DPT = 22 WINDOW = 64240 RES = 0x00 SYN URGP = 0
- Iptables-SSH-IN:-log-prefixオプションを指定することにより、これはロギングで使用するプレフィックスです
- IN = ens160 OUT =:これは、このインターフェースからの着信データパケットを意味します。発信パケットの場合は空になります。
- IN = OUT =:これは、データパケットがこのインターフェイスから送信されることを意味します。着信パケットの場合は空になります。
- MAC =:00:0c:29:ae:7d:09時間のターゲットMACアドレス、00:50:56:c0:00:08は送信元MACアドレス、08:00は上位層のプロトコルコードです。これはIPを意味します。プロトコル。
- SRC =:送信元IPアドレス
- DST =:宛先IPアドレス
- LEN =:データパケットの長さ
- PROTO =:使用されるプロトコルのタイプ
- SPT =:送信元ポート
- DPT =:宛先ポート
総括する
iptablesルールが正しく機能していない場合は、トラブルシューティングのためにiptablesパケットをログに記録することをお勧めします。この記事では、iptablesのロギングモジュールの使用方法について説明します。これがLinuxの学習方法です