OpenVPN – 仅通过iptables为客户端打开端口

运行在我的Ubuntu服务器上的OpenVPN服务器( tun模式)。 我的问题是,我不能设置一些端口只能访问VPN客户端。 我有一个肮脏的解决scheme,但我想要更好。

我没有iptables规则,除了在这里听,任何东西都可以从网上访问。 我的OpenVPN服务器子网是10.8.0.0/24所以我很容易打开一些端口只能通过访问10.8.0.1,这是只有VPN用户访问:

 iptables -A INPUT -s 10.8.0.0/24 -p tcp --dport 6000:7000 -j ACCEPT iptables -A INPUT -p tcp --dport 63000:64000 -j REJECT 

这是有效的,因为10.8.0.1仅在VPNnetworking内部(在客户端上)被转发给我的主机,否则它就会到别的地方。 但这是不正确的:有IP欺骗做法,可以绕过我的iptables afaik [在服务器上],并且,可能, 10.8.0.1不应该直接使用,如果可能的话,对我来说..有没有更好的解决scheme?

我的接口是: tun0eth0

我试图做跟踪:

 iptables -t nat -A POSTROUTING -p tcp --dport 6000 -j LOG --log-prefix "routing xx::" 

这是来自vpnnetworking的请求追踪:

 routing xx::IN=eth0 OUT= MAC=....... SRC=my real ip address DST=vpn server host LEN=48 TOS=0x08 PREC=0x00 TTL=116 ID=26271 DF PROTO=TCP SPT=60889 DPT=63210 WINDOW=8192 RES=0x00 SYN URGP=0 

-i在这样的数据包总是eth0 ,因为在这里我不知道如何过滤出tun0数据包,并只允许他们…

所以只允许VPN内部的请求。 这是可能的,或者我以错误的方式思考?

我有client-to-clientredirect-gateway def1上。 据我所知,stream量到我的主机从客户端通过隧道,tun0,然后获取eth0,最后到达本地端口/应用程序…