让我们看一下这两个iptables规则,这些规则通常用于允许传出DNS:
iptables -A OUTPUT -p udp --sport 1024:65535 --dport 53
-m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -p udp --sport 53 --dport 1024:65535
-m state --state ESTABLISHED -j ACCEPT
我的问题是:我应该如何确切地理解UDP中的ESTABLISHED状态?UDP是无状态的。
这是我的直觉-我想知道这是否不正确:
手册页告诉我:
州
与连接跟踪结合使用时,该模块可以访问 此数据包的连接跟踪状态。 -状态...
因此,iptables基本上会记住用于传出数据包的端口号(对于UDP数据包还能记住什么?),然后允许在短时间内发送回的第一个传入数据包?攻击者必须猜测端口号(这真的太难吗?)
关于避免冲突:
内核跟踪哪些端口被阻塞(被其他服务或先前的传出UDP数据包阻止),以便这些端口在该时间范围内不用于新的传出DNS数据包?(如果我不小心尝试在该时间范围内在该端口上启动服务,将会发生什么情况?该尝试会被拒绝/阻止吗?)
请在上面的文本中找到所有错误:-)谢谢,
克里斯