我已经build立了一个openvpn服务器旁边的一个Apache网站,只能在同一台机器上的8100端口访问。 我的/etc/openvpn/server.conf文件如下所示:
port 1194 proto tcp dev tun ca ./easy-rsa2/keys/ca.crt cert ./easy-rsa2/keys/server.crt key ./easy-rsa2/keys/server.key # This file should be kept secret dh ./easy-rsa2/keys/dh1024.pem # Diffie-Hellman parameter server 10.8.0.0 255.255.255.0 ifconfig-pool-persist ipp.txt # make sure clients can still connect to the internet push "redirect-gateway def1 bypass-dhcp" keepalive 10 120 comp-lzo persist-key persist-tun status openvpn-status.log verb 3
现在我试图让连接到vpnnetworking的客户端通过端口8100访问apache上的网站。所以我定义了几个iptables规则:
#!/bin/sh # My system IP/set ip address of server SERVER_IP="10.0.0.10" # Flushing all rules iptables -F iptables -X # Setting default filter policy iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP # Allow incoming access to port 8100 from OpenVPN 10.8.0.1 iptables -A INPUT -i tun0 -p tcp --dport 8100 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -o tun0 -p tcp --sport 8100 -m state --state ESTABLISHED -j ACCEPT # outgoing http iptables -A OUTPUT -o tun0 -p tcp --dport 8100 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A INPUT -i tun0 -p tcp --sport 8100 -m state --state ESTABLISHED -j ACCEPT
现在,当我从客户端计算机连接到服务器并尝试访问10.0.0.10:8100上的网站时,我的浏览器无法打开它。 我需要将tun0的stream量转发到eth0吗? 或者还有什么我失踪?
仅供参考:我正在运行Ubuntu的服务器12.04.1 LTS。 Iptables已安装。
由于您使用的子网/ IP不同于OpenVPN提供的子网/ IP,因此您可能需要允许服务器进行NAT以使其工作。
运行以下命令:
echo 1 > /proc/sys/net/ipv4/ip_forward iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
你应该调整iptables规则来适应你的需要。 这应该让你工作。