Назад | Перейти на главную страницу

Как получить доступ к порту только через OpenVpn

Я установил сервер 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 в соответствии с вашими потребностями. Это должно заставить вас работать.