我正在尝试实现类似混沌工程的东西,所以手动实现这些功能。其中一个功能是在不使用IPTables或firewalld的情况下阻止出站DNS通信。
我在这里完全没有想法,我的需求在下面
任何帮助,都非常感谢。
谢谢。
发布于 2021-06-06 13:57:25
这里有三种“不使用IPTables或firewalld”的方法。如果可能的话,我还可以轻松地处理IPv6。
tc:可能任何版本的CentOS,即使是EOL版本,都需要知道出站接口名称(因此,路由是如何提前完成的)。假设将用于传出通信量的接口名为eth0。可以使用tc命令在接口上添加过滤器。过滤器只能在类规则上添加,因此在这里添加了一个“虚拟”类qdisc,它的属性不会在这里真正使用: prio。tc添加dev eth0根句柄1: eth0父节点1: pref 1协议ip基本匹配(cmp (9层网络eq 6的u8)或cmp (9层网络eq 17上的cmp )和cmp(2层传输eq 53中的u8)‘动作删除’tc过滤器添加dev eth0父级1: pref 2协议ipv6 basic match (cmp (6层网络eq 6)或cmp(6层网络eq 17中的u8))和cmp(6层网络eq 17中的cmp(u16 ))。2层传输eq 53)“动作下降”注释:这不会被本地应用程序捕获。
nft.CentOS 7或8甚至CentOS 7's 3.10内核都得到了支持版本的nftable。只需用nftable添加等效的iptables即可。inet家族表同时处理IPv4和IPv6。nft添加表inet t nft添加链inet t output '{ type filter钩子输出优先级0;策略接受;}‘nft添加规则inet t输出udp dport 53 drop nft添加规则inet输出tcp dport 53 drop不清楚本地应用程序是否会因为这些规则而捕获错误。也将影响本地系统到其自身的本地连接,除非添加异常。ip rule。CentOS 8只因为这个需要内核>= 4.17更新的内核也可以使用端口来匹配路由规则。因此,只要有一些规则将任何内容删除到udp端口53和tcp端口53,而不是路由它。ip规则添加ipproto udp dport 53黑洞ip规则添加ipproto tcp dport 53黑洞ip -6规则添加ipproto udp 53黑洞ip -6规则添加ipproto udp 53黑洞,这将被一个本地应用程序捕获(如.ip route(8)中所述)。改变网络“中断”的类型可能会改变错误,从而改变行为(例如:从黑洞到禁止)。不会影响从系统到自身的本地连接(其本地路由评估在优先级0之前进行)。https://unix.stackexchange.com/questions/653055
复制相似问题