OpenVPN-объединяем сети

tuxИмееться 2-е сети в двух офисах 192.168.1.0/24 и 192.168.2.0/24
В качестве маршрутизатора, в одной сети стоит машина с CеntOS, в другой с Debian
Задача: создать туннель между маршрутизаторами посредством OpenVPN и настроить маршруты таким образом, чтобы сети за маршрутизаторами видели друг друга.


Для примера будем считать что IP на CentOS — 10.10.11.1, а на Debian — 10.10.12.2

И так,
CentOS:
# yum install openvpn
Debian:
# apt-get install openvpn

Далее
CentOS:

сгенерируем KEY
# cd /etc/openvpn
# openvpn —genkey —secret office1.key

создадим файл конфигурации office2.conf такого содержания

dev  tun
ifconfig 192.168.68.1 192.168.68.2
secret  /etc/openvpn/office1.key
port   1194
proto  udp
comp-lzo
keepalive 10 60
ping-timer-rem
persist-tun
persist-key
user  nobody
daemon
log-append /var/log/openvpn.log
up ./office2_route.up

далее создадим там же файл office2_route.up и пропишем в него следующее:

#!/bin/sh
route add -net 192.168.2.0 netmask 255.255.255.0 gw $5

даём права на выполнение:
# chmod a+x office2_route.up

запускаем /etc/init.d/openvpn start

с настройкой на стороне CentOS мы закончили, петерь переходим к настройкам Debian, предварительно скопировав созданный нами ранее ключь office1.key на машину с Debian.

# cp office1.key /etc/openvpn/
# chmod 600 /etc/openvpn/office1.key
# cd /etc/openvpn/
создадим файл конфигурации office1.conf такого содержания

remote   10.10.11.1
dev  tun
ifconfig 192.168.68.2 192.168.68.1
secret  /etc/openvpn/office1.key
port   1194
proto  udp
comp-lzo
keepalive 10 60
ping-timer-rem
persist-tun
persist-key
user  nobody
daemon
log-append /var/log/openvpn.log
up ./office1_route.up

далее создадим там же файл office1_route.up и пропишем в него следующее:

#!/bin/sh
route add -net 192.168.1.0 netmask 255.255.255.0 gw $5

даём права на выполнение:
# chmod a+x office1_route.up

запускаем /etc/init.d/openvpn start

теперь можем посмотреть вывод ifconfig на обоих маршрутизаторах:

tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:192.168.68.2  P-t-P:192.168.68.1  Mask:255.255.255.255
ВВЕРХ POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
коллизии:0 txqueuelen:100
RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

дальше попробуйте пропиговать из одной сети, машину в другой сети, результат должен быть положительный. Если вдруг что-то пошло ни так, смотреть /var/log/openvpn.log с обоих сторон.

Ну вот и всё, задача решена, буквально за 5-10 минут.

Удачи в настройках!

© shadow_alone

  • На машинах с CеntOS и Debian обязательно должны быть WAN IP? Вариант с port-mapping на модеме будет работать? Имеется ADSL с PPOE, WAN IP на модеме.

  • Если модем может прокидывать UDP