我需要在 UFW 中实施以下规则,但不知道具体如何执行:
iptables -t nat -A POSTROUTING -o eth0 -s 10.8.0.0/24 -j MASQUERADE
#Note: If you use tcp protocol you must change -p udp to -p tcp and --ddport 1194 to --ddport 443
iptables -A INPUT -i eth0 -p udp --dport 1194 -j ACCEPT
iptables -A INPUT -i tun0 -j ACCEPT
iptables -A FORWARD -i tun0 -o eth0 -s 10.8.0.0/24 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
#Note: If you use tcp protocol you must change -p udp to -p tcp and --ddport 1194 to --ddport 443
ip6tables -A INPUT -i eth0 -p udp --dport 1194 -j ACCEPT
ip6tables -A INPUT -i tun0 -j ACCEPT
ip6tables -A FORWARD -i tun0 -o eth0 -s 2a01:4f8:c2c:5fc7:80::/112 -m state --state NEW -j ACCEPT
我怎样才能正确地做到这一点?
感谢您。
答案1
您应该学习使用 UFW 框架来实现所需的效果,而不是逐字复制现有规则。
开放特定端口的说明请参见man ufw
手册中解释了如何设置 NAT 和 IP 伪装man ufw-framework
并要求:
IP伪装
允许 eth1 上 10.0.0.0/8 网络的计算机进行 IP 伪装以共享 eth0 上的单个 IP 地址:
编辑
/etc/ufw/sysctl.conf
为:net.ipv4.ip_forward=1
在 的末尾
/etc/ufw/before.rules
,在以下*filter
部分之后添加:*nat :POSTROUTING ACCEPT [0:0] -A POSTROUTING -s 10.0.0.0/8 -o eth0 -j MASQUERADE COMMIT
对于一些更复杂的场景,UFW 框架还没有提供好的解决方案,对于这些用例,它支持加载“原始”iptables 规则。