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