我有以下iptables
规则:
-A INPUT -i eth0 -p udp -m udp --dport 1194 -m state --state NEW -j ACCEPT
-A INPUT -i tun+ -j ACCEPT
-A INPUT -j DROP
-A FORWARD -i tun+ -j ACCEPT
-A FORWARD -i tun+ -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth0 -o tun+ -m state --state RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -o tun+ -j ACCEPT
-A OUTPUT -o eth0 -p udp -m udp --dport 1194 -j ACCEPT
我和他们有问题。如果有-m state --state NEW
- 则我无法连接到 OpenVPN。如果我将其中的第一条规则更改为:
-A INPUT -i eth0 -p udp -m udp --dport 1194 -j ACCEPT
我可以自由连接和使用OpenVPN。
为什么-m state --state NEW
作品会这样呢?
答案1
状态扩展区分连接的以下状态:NEW
、ESTABLISHED
、RELATED
、INVALID
以及其他三个很少使用的状态。NEW
通俗地说,只有当服务器和客户端没有以任何方式进行通信时,数据包才存在。此后,数据包通常属于一个ESTABLISHED
连接或属于RELATED
一个连接。
这意味着您需要接受带有状态ESTABLISHED
和 的数据包RELATED
。目前,仅接受第一个数据包,后面的数据包将被静默丢弃。使用以下方法修复您的设置:
iptables -I INPUT 1 -m state --state ESTABLISHED,RELATED -j ACCEPT