首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当IPTables规则匹配时运行系统命令

问当IPTables规则匹配时运行系统命令
EN

Stack Overflow用户
提问于 2012-07-21 02:15:58
回答 3查看 6.5K关注 0票数 9

:)

我希望能够在命中IPTable规则时运行系统命令,将远程设备的IP地址传递给它。

我到处看了看,但什么也没找到。我想过清理日志,但我预计会有很多流量..

任何帮助都是很棒的!

谢谢

(如果有帮助,Ubuntu Linux是我的首选平台)

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-07-21 03:08:24

下面是你如何做到这一点:

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")}'

应该是足够直接的,应该能够处理大量的流量,尾部命令应该足够快…只需确保文件不会增长太多即可。

票数 5
EN

Stack Overflow用户

发布于 2012-07-21 03:44:58

使用knockd来做这件事。您只需配置一个端口的端口敲门序列,然后告诉knockd您想要运行的命令。通常,它用于添加/删除iptables规则--在某个敲门序列之后打开一个服务(例如,ssh访问),但我不明白为什么您不能在一个非常简单的、一个预期端口规则上的一个包之后使用它来运行命令。

在你的Ubuntu系统上安装‘’apt get install knockd‘,手册页上有一些例子,你可以很容易地适应它。

票数 1
EN

Stack Overflow用户

发布于 2018-08-02 04:35:28

这其实很简单。我们有两种方法可以做到这一点。如果使用结尾日志,则iptables将不依赖于日志结果。

你可以使用NFQUEUE

  • 。如果你有时间,请阅读我的文章。在同一篇文章中,我添加了我的linkedin页面。

  • 你可以在应用级别编写简单的路由器,并从iptables发送数据到侦听端口。在编程级别,您可以执行脚本,然后通过某个端口再次发送数据。然后,您可以通过iptables继续。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11584824

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档