LINUX.ORG.RU
ФорумAdmin

Настройка OpenVPN на VPS с виртуализацией OpenVZ


0

2

Есть VPS, система debian-6.0-i386-minimal 32-битная, виртуализация OpenVZ. TUN/TAP включен. OpenVPN устанавливал по этим руководствам Настройка OpenVPN шлюза в интернет на Debian, который на OpenVZ http://habrahabr.ru/post/188474/ Теплый и ламповый VPN http://habrahabr.ru/post/153855/ Установка OpenVPN на CentOS 6.4 http://habrahabr.ru/post/194144/

Установил OpenVPN, сервер запустился, сетевой интерфейс tun0 создался. Но выделенного IP у VPS нет, есть только внутренний адрес 10.0.1.95 на который проброшены порты с общего IP адреса. Пока есть 3 порта проброшенные на общий IP адрес. Один порт для подключения по SSH и ещё два порта: Web serwer port (80): 1685 Extra port: 1695 Для OpenVPN я прописывал порт TCP 1695 Iptables на VPS отключен из-за угрозы безопасности основному узлу. Я писал хостеру и мне ответили вот что:

Iptables отключен из-за угрозы безопасности основному узлу. Вам нужно передать трафик непосредственно через VPN без NAT.

OpenVPN установил, подключение устанавливается, но выхода в интернет нет, сайты не загружаются. Я предпологаю что это потому что не настроена маршрутезация на сервере. По руководству нужно выполнить вот эти команды:

iptables -t nat -A POSTROUTING -o venet0 -j SNAT --to IP_АДРЕС_ВАШЕГО_СЕРВЕРА
iptables -A FORWARD -i venet0 -o tun0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i tun0 -o venet0 -j ACCEPT

но так как Iptables отключен, мне их выполнить не удалось. Сейчас в server.conf прописано вот что:

local 10.0.1.95
port 1695
proto tcp
dev tun
ca ca.crt
cert server.crt
key server.key  
dh dh1024.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
client-to-client
keepalive 10 120
comp-lzo
user nobody
group nobody
persist-key
persist-tun
status openvpn-status.log
log /var/log/openvpn.log
verb 3
mute 20

Вот что прописано в клиентском конфигурационном файле myvpnconfig.ovpn

client 
remote 95.128.47.39 1695
proto tcp
dev tun 
push "redirect-gateway def1"
resolv-retry infinite 
nobind 
persist-key 
persist-tun 
ca ca.crt 
cert client.crt
key client.key 
remote-cert-tls server
tls-client
comp-lzo
verb 4
mute 20

Сетевые интерфейсы VPS

root@vps93:~# ifconfig
lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
          inet addr:10.8.0.1  P-t-P:10.8.0.2  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:719 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          RX bytes:116681 (113.9 KiB)  TX bytes:0 (0.0 B)

venet0    Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
          inet addr:127.0.0.2  P-t-P:127.0.0.2  Bcast:0.0.0.0  Mask:255.255.255.255
          UP BROADCAST POINTOPOINT RUNNING NOARP  MTU:1500  Metric:1
          RX packets:966 errors:0 dropped:0 overruns:0 frame:0
          TX packets:972 errors:0 dropped:719 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:225258 (219.9 KiB)  TX bytes:120433 (117.6 KiB)

venet0:0  Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
          inet addr:10.0.1.95  P-t-P:10.0.1.95  Bcast:0.0.0.0  Mask:255.255.255.255
          UP BROADCAST POINTOPOINT RUNNING NOARP  MTU:1500  Metric:1

		  
root@vps93:~# netstat -npl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.0.1:53            0.0.0.0:*               LISTEN      1332/dnsmasq
tcp        0      0 10.8.0.1:53             0.0.0.0:*               LISTEN      1332/dnsmasq
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1321/sshd
tcp        0      0 10.0.1.95:1695          0.0.0.0:*               LISTEN      1315/openvpn
tcp6       0      0 :::22                   :::*                    LISTEN      1321/sshd
udp        0      0 127.0.0.1:53            0.0.0.0:*                           1332/dnsmasq
udp        0      0 10.8.0.1:53             0.0.0.0:*                           1332/dnsmasq
Active UNIX domain sockets (only servers)
Proto RefCnt Flags       Type       State         I-Node   PID/Program name    Path

Лог с сервера после трёх подключений http://pastebin.com/P4Ns5A7Y

Лог из Windows 7 из которой я подключался http://pastebin.com/KTyDUULL

IP адрес интерфейса при подключении к VPN всегда 10.8.0.6

Сейчас клиентские ключи у меня такие:

ca.crt
client.crt 
client.key
myvpnconfig.ovpn 

Как настроить маршрутизацию чтобы подключение заработало? Подключение устанавливается, но выхода в интернет нет, сайты не загружаются.


Ответ на: комментарий от sin_a

Для veth нужен соответствующий модуль в ядре. Для меня лучше nat (через venet). Может кто-нибудь рассказать подробнее как это сделать.

Sergo ()
Ответ на: комментарий от Sergo

Может быть включить iptables, и выполнить правила из руководства?

sin_a ★★★★★ ()
Ответ на: комментарий от Sergo

А если хостер не хочет разрешать iptables, то можно обратить его внимание что хостеров вообще-то много.

sin_a ★★★★★ ()
Ответ на: комментарий от sin_a

Я за NAT провайдера, порты закрыты и входящие соединения мне не доступны. Цель создания этого VPN это открыть порты для входящих соединений. Как я уже писал есть проброшенные порты на общий IP и можно попросить ещё пробросить портов TCP и UDP. Прокси мне не подайдёт для этого.

Sergo ()
Ответ на: комментарий от Sergo

Насколько я понимаю, на venet без nat работать не будет. Да, и для проброса портов тебе тоже всё равно будет нужен iptables. Адрес-то за vpn у тебя серый.

Для http можно сделать nginx. Это реверс прокси.

sin_a ★★★★★ ()
Последнее исправление: sin_a (всего исправлений: 1)
Ответ на: комментарий от MrClon

Конечная цель создания VPN, это открыть порты для входящих соединений. Пробросом портов через SSH-тоннель входящие соединения будут работать?

Sergo ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.