首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在CentOS中不使用IPTables或Firewalld阻止出站通信?

如何在CentOS中不使用IPTables或Firewalld阻止出站通信?
EN

Unix & Linux用户
提问于 2021-06-06 08:32:17
回答 1查看 1.6K关注 0票数 1

我正在尝试实现类似混沌工程的东西,所以手动实现这些功能。其中一个功能是在不使用IPTables或firewalld的情况下阻止出站DNS通信。

我在这里完全没有想法,我的需求在下面

  • 没有IPTables或防火墙
  • 我应该可以提到协议的类型( TCP/ UDP )。
  • 和端口号

任何帮助,都非常感谢。

谢谢。

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 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)“动作下降”注释:
    • u8在IPv4的9层网络上是IPv4 4报头中的协议字段:它的值与tcp的6或udp的17相比较。
    • 6层网络上的u8用于IPv6是IPv6 6固定报头中几乎但不是等价的下一个标头字段。这并不是所有的情况:如果固定头和有效载荷头之间存在扩展头,那么上面使用的IPv6 6‘S固定报头的下一个标头将不匹配有效负载协议(6用于tcp,17用于udp)。由于可能有多个链接扩展头,所以tc不适合这样做,除非它在某些模块中获得了内置支持。
    • 上面2层的u16是两者都有 协议的目的端口。

这不会被本地应用程序捕获。

  • nftablesnft.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之前进行)。
票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/653055

复制
相关文章

相似问题

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