我想做的是将任何数据包拖放到特定的UDP端口,但那些来自我的安全子网10.8.0.0/24的数据包除外。
iptables -t nat -A --src 10.8.0.0/24 -p udp --destination-port 63210 -j ACCEPT
我收到此错误: Bad argument: 10.8.0.0/24
我不明白为什么这行不通...
- 为什么此命令说IP是错误的说法?
- 如何在子网外丢弃其他任何数据包?
- 我应该使用NAT表吗?
- 如何实现呢?
我找到了这样的解决方案:
UPDATE
iptables -N xchain
iptables -A xchain --source 10.8.0.0/24 -j ACCEPT
iptables -A xchain -j DROP
iptables -I INPUT -p udp --dport 63210 -j xchain
应用此后,我无法从任何IP访问端口...
问题 我在tun0接口上设置了OpenVPN服务器,将数据包转发到eth0像这样:
iptables -I FORWARD -i tun0 -o eth0 \
-s 10.8.0.0/24 -m conntrack --ctstate NEW -j ACCEPT
iptables -I FORWARD -m conntrack --ctstate RELATED,ESTABLISHED \
-j ACCEPT
iptables -t nat -I POSTROUTING -o eth0 \
-s 10.8.0.0/24 -j MASQUERADE
问题是,如何捕获tun0通信并对其进行过滤,而不是eth0(IP变为真实的)。