これには、Linuxカーネルのiptablesサポートを使用できます。利点は、適度に有用であるために追加のソフトウェアを必要としないことです。欠点は、セットアップするのにルート権限が必要なことです(ただし、ポート443について話しているので、これはほとんどのソリューションでルート権限が必要です)。
次のようなiptablesルールを追加します。
sudo iptables -I INPUT -p tcp --dport 443 --syn -j LOG --log-prefix "HTTPS SYN: "
(-I INPUT
好みに合わせてパーツを調整します。)
ルールがトリガーされると、カーネルによってsyslogエントリーが発行されます。たとえば、入力ルールでは、ログエントリは次のようになります。
12月5日09:10:56ホスト名カーネル:[1023963.185332] HTTPS SYN:IN = ifX OUT = MAC = 80:80:80:80:80:80:80:80:80:80:80:80:08:00 SRC = ABCD DST = WXYZ LEN = 52 TOS = 0x00 PREC = 0x20 TTL = 119 ID = 11901 DF PROTO = TCP SPT = 37287 DPT = 443 WINDOW = 8192 RES = 0x00 SYN URGP = 0
その後、任意の実行ログ監視ツールを使用して、この情報を使用して有用なことを実行できます。syslog実装でサポートされている場合は、これらを個別のログファイルに送信して、追加のソフトウェアなしで2番目にタイムスタンプされたファイルに接続データを書き込むという要件を効果的に満たすこともできます。
LOG
ターゲットは非終了ターゲットであることに注意してください。これは、それに続くルールが引き続き評価され、LOGルール自体によってパケットが拒否または受け入れられないことを意味します。これにより、LOG
ターゲットはファイアウォールルールのデバッグにも役立ちます。
ログのフラッディングを回避するにはlimit
、これと組み合わせてモジュールを使用することを検討してください。詳細については、iptables(8)のマニュアルページを参照してください。