linux – Iptables:“ – p udp –state ESTABLISHED”

让我们看看这两个经常用于允许传出DNS的iptables规则:
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是无状态的.

这是我的直觉 – 我想知道,这是不正确的:

手册页告诉我:

state

06001

那么,iptables基本上会记住用于传出数据包的端口号(对于UDP数据包还记得什么?),然后允许在短时间内发回的第一个传入数据包?攻击者必须猜测端口号(这真的太难了吗?)

关于避免冲突:

内核会跟踪哪些端口被阻止(由其他服务或以前的传出UDP数据包阻止),以便这些端口不会在时间范围内用于新的传出DNS数据包? (怎么会发生,如果我不小心试图在时间范围内在该端口上启动服务 – 该尝试会被拒绝/阻止吗?)

请在上面的文字中找到所有错误:-)谢谢,

克里斯

解决方法

So,iptables basically remembers the
port number that was used for the
outgoing packet (what else Could it
remember for a UDP packet?),

我很确定UDP的源端口和目标端口以及地址都存储起来.

如果要检查状态表,请安装conntrack和/或netstat-nat.

(What would happen,if I accidentally
tried to start a service on that port
within the timeframe – would that
attempt be denied/blocked?)

由于您使用的是OUTPUT和INPUT,因此您正在谈论本地服务.该端口已被使用我不相信您的系统将允许您启动另一项服务,因为某些东西已经在该端口上侦听.我想你可以停止第一个服务,如果你真的想要启动另一个服务,那么响应可能会得到你的服务.服务对数据包的作用取决于数据包的内容是什么,以及它是什么服务.

相关文章

/etc/sysctl.conf这个目录主要是配置一些系统信息,/etc/sys...
1.作用 useradd或adduser命令用来建立用户帐号和创建用户的起...
它们都是多模式编辑器,不同的是vim 是vi的升级版本,它不仅...
不管是我们在安装软件还是监测软件的使用性能,我们都要随时...
装好Tomcat7后,发现除了本机能访问外界访问不了,岂有此理。...
修改防火墙配置需要修改 /etc/sysconfig/iptables 这个文件,...