:)
我希望能够在命中IPTable规则时运行系统命令,并将远程设备的IP地址传递给它。
我已经环顾四周但却一无所获。我想过要点击日志,但我期待很多流量..任何帮助都会很棒!
由于
(如果有帮助,Ubuntu Linux是我的首选平台)
答案 0 :(得分:3)
以下是您的操作方法:
iptables -I FORWARD -p tcp --dport 80 -d a.b.c.d -j LOG --log-prefix="TRIGGER ME NOW !!!"
tail -f some-logfile | awk '/some-pattern/ {system("run-some-command")}'
应该足够直接并且应该能够处理大量流量,tail命令应该足够快......只要确保文件不会增长太多。
答案 1 :(得分:0)
用敲击来做。您只需配置一个端口的端口敲门序列,然后告诉您要运行的命令。通常它用于添加/删除iptables规则 - 在某个敲门序列之后打开服务(例如ssh访问),但是我不明白为什么你不能只用它来运行一个非常简单的命令之后一个预期的端口规则上的数据包。
在您的Ubuntu系统上运行'apt-get install knockd',手册页中有一些示例,您可以轻松适应这一点。答案 2 :(得分:0)
实际上很容易。 我们有两种方法可以做到这一点。如果使用tail log,则iptables将不依赖于日志结果。
您可以使用NFQUEUE。如果有时间,请阅读我的文章。 https://medium.com/@farizmuradov/useful-notes-about-nfqueue-80a2c271db1a 同一篇文章,我已经添加了我的linkedin页面。
您可以在应用程序级别编写简单的路由器,并将数据从iptables发送到侦听端口。在编程级别,您可以执行脚本并再次从某个端口发送数据。然后,您可以继续使用iptables。