Iptables
連接到埠 445 時執行 shell 腳本
我的機器目前有 445 埠向網際網路開放。我正在查看此埠的掃描頻率,我計劃通過在有人連接到此埠時執行 shell 腳本來實現這一目標。我怎麼能用 IPtables 做到這一點?我正在使用 Debian 10。
您的問題的解決方案非常古老,但不涉及 iptables。它被稱為inetd超級伺服器。它的配置 - /etc/inetd.conf - 允許您定義要偵聽的埠和協議 - 在 /etc/services 中定義的“服務” - 以及在連接時執行的程序 - 這可能是您的日誌記錄腳本.
該服務將是
microsoft-ds 445/tcp # Microsoft Naked CIFS
您無法從 IPtables 啟動程序或腳本,但您可以記錄到達 IPtables 中某個埠的流量。
這將在系統日誌(Debian 上的 /var/log/syslog)中記錄條目,每當 udp 或 tcp 埠 445 出現日誌前綴和有關連接的詳細資訊(時間戳、源埠、源 IP,…)
iptables -I INPUT -p tcp --dport 445 -j LOG --log-prefix "PORT 445 connnection!!" iptables -I INPUT -p udp --dport 445 -j LOG --log-prefix "PORT 445 connnection!!"
如果您想在埠 445 上出現某些東西時啟動一些腳本,則需要使用 inetd 或在 Debian 10 上,當埠 445 上出現某些東西時,您還可以使用 systemd 套接字通過服務啟動腳本。
根據您的需要,您最好只在日誌中記錄到埠 445 的連接並按某個計劃執行腳本,該腳本將計算日誌中的條目或提取它們。