新しい接続を試みると、iptablesにコマンド/スクリプトを実行させます。

新しい接続を試みると、iptablesにコマンド/スクリプトを実行させます。

iptables 新しい接続試行でコマンドやスクリプトを実行するには?

必要:

(サーバインタフェースeth0)--->(サーバインタフェースeth0)入力テーブルに送信された外部パケットがポート22で受信した新しいパケットを検出しました。 --> iptables実行コマンドまたはスクリプト

これまでのところ、私はこのように考えています。

iptables -A INPUT -i eth0 -p tcp --dport 22 -s xxx.xxx.xxx.xxx/24 -d xxx.xxx.xxx.xxx/32 -m state --state NEW (then do something here like run a script or command (but how?) ) -j ACCEPT

同様の質問に対する2つの答えをもっと読んでください。

IPTABLESポートアクセスに基づいてシェルスクリプトを実行してみてください。

答え1

iptablesそんな能力はないようです。私の考えに最適な方法は次のとおりです。

  1. iptables()の-j LOG --log-prefix "NEW_CONN_ATTEMPT "特別なロギング設定
  2. 監視ログtail
  3. 一致するものが見つかった場合にコマンドを実行する

2と3の場合、次のオネライナーがトリックを実行します。

tail -f /var/log/firewall.log | awk '/NEW_CONN_ATTEMPT/ {system("/usr/local/bin/script.sh")}'

関連情報