Я установил сервер 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
Теперь я попытался разрешить доступ к веб-сайту на apache через порт 8100 только клиентам, подключенным к сети vpn. Поэтому я определил несколько правил 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 на eth0? Или что-то еще мне не хватает?
К вашему сведению: я использую сервер ubuntu 12.04.1 LTS. Iptables установлен.
Поскольку вы используете подсеть / IP, отличный от того, который предоставляется OpenVPN, вам, вероятно, необходимо разрешить серверу выполнять NAT, чтобы это работало.
Выполните следующие команды:
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
Вам следует точно настроить правило iptables в соответствии с вашими потребностями. Это должно заставить вас работать.