![在防火墙 CentOS 6.2 中通过 iptables 设置 openvpn 规则](https://linux22.com/image/39028/%E5%9C%A8%E9%98%B2%E7%81%AB%E5%A2%99%20CentOS%206.2%20%E4%B8%AD%E9%80%9A%E8%BF%87%20iptables%20%E8%AE%BE%E7%BD%AE%20openvpn%20%E8%A7%84%E5%88%99.png)
防火墙 (FW),三段:
- eth0:172.16.1.101
- eth1:192.168.99.99(局域网)
- eth2:10.0.0.1(DMZ)
我openvpn
用隧道模式安装在FW中,已经可以了:
- tun0:192.168.10.0/24。
如果我使用shorewall
代理squid
固件就可以了。旁边可以使用我公司的服务连接到FW、LAN、DMZ。
现在,我想使用iptables
规则+squid
代理。
openvpn 需要设置什么规则?
我设置了以下规则,但未连接到安装的服务器防火墙openvpn
:
数据包转发
net.ipv4.ip_forward = 1
开放VPN
iptables -A INPUT -i eth0 -m state --state NEW -p udp --dport 1194 -j ACCEPT
允许 TUN 接口连接到 OpenVPN 服务器
iptables -A INPUT -i tun+ -j ACCEPT
允许TUN接口连接通过其他接口转发
iptables -A FORWARD -i tun+ -j ACCEPT iptables -A FORWARD -i tun+ -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A FORWARD -i eth0 -o tun+ -m state --state RELATED,ESTABLISHED -j ACCEPT
将 VPN 客户端流量通过 NAT 传输至互联网
iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o eth0 -j MASQUERADE
如果您的默认 iptables OUTPUT 值不是 ACCEPT,您还需要如下行:
iptables -A OUTPUT -o tun+ -j ACCEPT