运行在我的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?
我的接口是: tun0
和eth0
。
我试图做跟踪:
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-client
和redirect-gateway def1
上。 据我所知,stream量到我的主机从客户端通过隧道,tun0,然后获取eth0,最后到达本地端口/应用程序…