私たちはiptablesファイアウォールを使用しています。定義された規則に従ってさまざまなパッケージを記録して削除します。 Iptablesログファイルのエントリは次のとおりです。
2017-08-08T19:42:38.237311-07:00 compute-nodeXXXXX kernel: [1291564.163235] drop-message : IN=vlanXXXX OUT=cali95ada065ccc MAC=24:6e:96:37:b9:f0:44:4c:XX:XX:XX:XX:XX:XX SRC=10.50.188.98 DST=10.49.165.68 LEN=60 TOS=0x00 PREC=0x00 TTL=57 ID=14005 DF PROTO=TCP SPT=52862 DPT=50000 WINDOW=29200 RES=0x00 SYN URGP=0
ドロップされたパケット数を取得する方法はありますか?最後の瞬間、時間中に削除されたパケット数などの指標を計算したいと思います。まもなく。
主な目的は、設定エラーとセキュリティの脆弱性を監視することです。ファイアウォールルールにエラーがあると、突然多くのパケットが廃棄され始めます。同様に、攻撃が発生すると、拒否されたパケットの数が変わると予想されます。
ベストアンサー1
iptablesの各ルールには、オプションで表示できるカウンタがあります-v
。-x
カウンタが非常に大きい場合(例:1104K)、カウンタが短縮されるのを防ぐために追加されました。例えば、
$ sudo iptables -L -n -v -x
Chain INPUT (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
39 22221 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp spts:67:68 dpts:67:68
...
182 43862 LOG all -- * * 0.0.0.0/0 0.0.0.0/0 LOG flags 0 level 4 prefix "input_drop: "
182 43862 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
私のローカルネットワークには破棄されたパケットは表示されませんが、リストされているようなログメッセージとともにicmpによって182が拒否されます。 DROPポリシーを含む構成の最後の2つの規則は次のとおりです。
-A INPUT -j LOG --log-prefix "input_drop: "
-A INPUT -j REJECT --reject-with icmp-host-prohibited
すべてのチェーンのカウンタをゼロにリセットするために使用できますiptables -Z
。
この数は、iptables自体によってドロップされたパケットに適用されます。ただし、輻輳などによってパケットを破棄する他のフィルタリングソフトウェアがあります。彼らが提供する統計を理解するには、それぞれを見てください。 (古い)netstat
プログラムは、iptablesに渡される前に輻輳のためにイーサネットインターフェイスからドロップされたパケットの数を簡単に表示できます。
$ netstat -i
Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR
enp5s0 1500 1097107 0 38 0 2049166 0 0 0
さまざまな理由で、カーネルが他の場所で破棄したパケットに関するいくつかの統計を取得することもできます。
$ netstat -s | grep -i drop
27 outgoing packets dropped
16 dropped because of missing route
2 ICMP packets dropped because socket was locked