如何仅允许子网使用iptables端口


0

我想做的是将任何数据包拖放到特定的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变为真实的)。

Answers:


0

而不是尝试在NAT表上进行阻止,请尝试使用FORWARD表。

iptables -A FORWARD --src 10.8.0.0/24 -p udp --destination-port 63210 -j ACCEPT

iptables -A FORWARD -p udp --destination-port 63210 -j DROP

这将接受您局域网的数据包,并丢弃通过路由器转发的所有其他内容(针对此端口)(即使涉及NAT)。请注意,它不会捕获在路由器本身上发起或终止的请求,因为您将使用INPUT和/或OUTPUT而不是转发链。

转发链在NAT链之前进行解析,因此您可以在其中匹配源IP地址和目标IP地址。


好..我仅在tun0上有10.8.0.0/24 ips ...虐待尝试
滚动

我提供的规则不在乎流量进入或离开哪个接口,并且会在所有接口上起作用。
davidgo,2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.