From: Alchemist <lipovetskiy@yandex.ru.>
Newsgroups: email
Date: Mon, 21 Dec 2008 17:02:14 +0000 (UTC)
Subject: OpenVPN на Ubuntu Server
Объединение центрального офиса с филиалами, складами и т.д. в единую
сеть - это то, с чем приходится довольно часто сталкиваться
администратору сети. Объединять сети можно "хардвардным"
способом на железяках (Cisco, D-Link, etc) и
"программным" на серваках под разными ОС (Windows, Linux,
BSD). При наличии сервера на железяки можно не разоряться, а
воспользоваться тем что есть, тем более что функционал в этом случае
будет более широкий. В связи с планирующимся расширением фирмы, я решил
заранее выбрать и обкатать наиболее подходящую схему объединения офисов.
Немного погуглив, остановился на OpenVPN, как на более защищенном и не
особо замороченом способе. Дистрибутивом взял Ubuntu Server 8,04 i386
т.к. очень хотелось пощупать Убунту в виде сервера и посмотреть на что
она способна. Экспериментировал в виртуальных сетях под VMware Server.
На каждом сервере поднят межсетевой экран iptables и nat. Для того,
чтобы серверы могли устанавливать ПО из реальной глобальной сети, я
подключал к ним третий bridged интерфейс. Далее в конфигурационных
файлах я его упоминать не стал.
Устанавливаем сервер (serv1)
После нетривиальной установки, которую не буду описывать, конфигурируем
сетевые интерфейсы:
# cat /etc/network/interfaces
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 10.0.0.10
netmask 255.255.255.0
auto eth1
iface eth1 inet static
address 192.168.120.20
netmask 255.255.255.0
Делаем из него роутер путем добавления в /etc/sysctl.conf строчки:
net.ipv4.ip_forward=1
Настраиваем путь к репозиторям из которых будем устанавливать ПО:
# cat /etc/apt/sources.list
deb http://ru.archive.ubuntu.com/ubuntu/ hardy main contrib non-free restricted universe multiverse
deb-src http://ru.archive.ubuntu.com/ubuntu/ hardy main contrib non-free restricted universe multiverse
deb http://ru.archive.ubuntu.com/ubuntu/ hardy-updates main contrib non-free restricted universe multiverse
deb-src http://ru.archive.ubuntu.com/ubuntu/ hardy-updates main contrib non-free restricted universe multiverse
deb http://ru.archive.ubuntu.com/ubuntu/ hardy-security main contrib non-free restricted universe multiverse
deb-src http://ru.archive.ubuntu.com/ubuntu/ hardy-security main contrib non-free restricted universe multiverse
Дальше устанавливаем дополнительное ПО, предварительно обновившись:
Созданные сертификаты должны появиться в вышеуказанной папке, если
конечно вы ее предварительно создали.
Дальше пишем конфиг сервера. Читал разные статьи на эту тему, наступал
на грабли, но в итоге плюнул и без проблем все сделал по примерам,
которые лежат в папке
/usr/share/doc/openvpn/examples/sample-config-files. В итоге получился
такой конфиг:
#cat /etc/openvpn/openvpn.conf
dev tun
tls-server
proto udp
port 3333
comp-lzo
persist-tun
persist-key
# указываем узловые точки виртуальной сети
ifconfig 10.1.0.1 10.1.0.2
# добавляем маршрут к локальной сети филиала
route 192.168.110.0 255.255.255.0
dh /etc/openvpn/keys/dh1024.pem
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/server.crt
key /etc/openvpn/keys/server.key
log /var/log/openvpn.log
verb 3
Все готово, делаем рестарт сервера и убеждаемся в том, что все ОК: