jus*_*ane 6 linux routing iptables process conntrack
我试图确定是否可以通过特定接口有选择地从进程或进程组路由 IP 数据包,而所有其他数据包都通过另一个接口路由。也就是说,我希望所有流量/usr/bin/testapp
都通过,eth1
而所有其他数据包通过eth0
。这种情况下的数据包可以是 TCP、UDP、ICMP 等,并且可以由最终用户配置为使用各种端口。
因为我无法轻松地强制相关进程绑定到特定接口,所以我试图通过路由实现相同的结果。这可能吗?
- - 编辑 - -
通过这里和其他许多地方的一个有用建议,是基于 UID 标记数据包;这并不是真正的目标。目标是基于 process 标记/过滤/路由,而不管 user。也就是说,如果说了,alice
,bob
和charlie
所有运行自己的实例/usr/bin/testapp
; 来自所有三个实例的所有数据包都应该通过,eth1
而来自系统的所有其他数据包都应该通过eth0
。
请注意,通过源/目标端口、用户名/UID 等进行标记是不够的,因为不同的用户可能会运行testapp
并且他们可能会自行设置不同的端口~/.config/testapp.conf
或其他任何内容。问题是关于按流程过滤。
一个可用的选项,尽管我不知道它有多大帮助,是/bin/(ba|z)?sh
在本机二进制文件周围使用基于 -based 的包装器。
- - 编辑 - -
我指的是在运行现代 Linux 内核(例如 4.0 或更高版本)的系统上进行路由。如果有软件依赖性超越iproute2
,nftables
,conntrack
和类似的工具,我愿意探索开源解决方案,但基本工具是优选的。
归档时间: |
|
查看次数: |
7819 次 |
最近记录: |