首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenVPN上的DMZ

OpenVPN上的DMZ
EN

Server Fault用户
提问于 2019-09-29 13:15:01
回答 2查看 2.2K关注 0票数 0

我正在设置一个OpenVPN服务器。我希望它将任何传入连接(端口22 (ssh)和1194 ( VPN服务器本身)除外)重定向到连接到VPN的客户端。

VPN服务器将位于vpn.example.com,客户端为10.8.0.2,VPN网关为10.8.0.1。

我如何设置一个DMZ来做到这一点?

脚注:

我在这里发现了如何在VPN上重定向单个端口:基于OpenVPN的端口转发

基本原则是运行iptables -t nat -A PREROUTING -i eth0 -d VPN_IP_HERE -p tcp --dport PORT_TO_REDIRECT -j DNAT --to-destination 10.8.0.2

然而,这一次只适用于一个端口,我喜欢像--dport *这样的解决方案。

EN

回答 2

Server Fault用户

发布于 2019-09-29 15:12:25

无论如何,这可能已经得到了回答,但您可以在/etc/网络/接口中使用此方法。

代码语言:javascript
复制
 post-up iptables -t nat -A POSTROUTING -s '10.0.0.0/8' -o eth0 -j MASQUERADE
 post-down iptables -t nat -D POSTROUTING -s '10.0.0.0/8' -o eth0 -j MASQUERADE

此规则为任何端口设置完整的nat,设置为10.8.0.3/32,而不是将单个ip设置为eth0上必须由接口替换的任何端口的10.0.0.0/8。

此外,要转发一个特定的端口,您可以使用

代码语言:javascript
复制
--dport 20000:22000

在本例中,将使用从20到22k的端口格式。

票数 1
EN

Server Fault用户

发布于 2019-09-29 16:26:21

如果您只关心将tcp重定向到客户端,则可以使用:

代码语言:javascript
复制
iptables -t nat -A PREROUTING -i eth0 -d VPN_IP_HERE -p tcp --dport ! 22 -j DNAT --to-destination 10.8.0.2

这将重定向所有tcp数据包,但那些数据包重定向到端口22 (sshd)。只要您在udp上运行OpenVPN (通常情况下),它就能工作。如果您也想重定向udp,请添加:

代码语言:javascript
复制
iptables -t nat -A PREROUTING -i eth0 -d VPN_IP_HERE -p udp --dport ! 1194 -j DNAT --to-destination 10.8.0.2

然后是icmp:您可能希望至少重定向其中的一部分。

与其指定流量(在您的情况下几乎全部)重定向,倒转问题可能更简单:

代码语言:javascript
复制
iptables -t nat -A PREROUTING -i eth0 -d VPN_IP_HERE -p udp --dport 1194 -j RETURN
iptables -t nat -A PREROUTING -i eth0 -d VPN_IP_HERE -p tcp --dport 22 -j RETURN
iptables -t nat -A PREROUTING -i eth0 -d VPN_IP_HERE -j DNAT --to-destination 10.8.0.2

-j RETURN意味着停止处理当前链。上面的前2条规则将情况定义为“短路”您的重定向规则。任何与前2条规则不匹配的内容都会被重定向。

一个方便的iptable参考资料:https://www.frozentux.net/iptables-tutorial/iptables-tutorial.html#RETURNTARGET

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/986081

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档