Tuesday, July 25th, 2017

OpenVPN на Ubuntu Server

Published on Март 30, 2009 by   ·   Комментариев нет

Объединение центрального офиса с филиалами, складами и т.д. в единую

сеть — это то, с чем приходится довольно часто сталкиваться
администратору сети. Объединять сети можно «хардвардным»
способом на железяках (Cisco, D-Link, etc) и
«программным» на серваках под разными ОС (Windows, Linux,
BSD). При наличии сервера на железяки можно не разоряться, а
воспользоваться тем что есть, тем более что функционал в этом случае
будет более широкий. В связи с планирующимся расширением фирмы, я решил
заранее выбрать и обкатать наиболее подходящую схему объединения офисов.
Немного погуглив, остановился на OpenVPN, как на более защищенном и не
особо замороченом способе. Дистрибутивом взял Ubuntu Server 8,04 i386
т.к. очень хотелось пощупать Убунту в виде сервера и посмотреть на что
она способна. Экспериментировал в виртуальных сетях под VMware Server.

Схема соединения сетей следующая:

 192.168.120.0 <serv1> 10.0.0.0 <serv2> 192.168.110.0

На каждом сервере поднят межсетевой экран 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

Дальше устанавливаем дополнительное ПО, предварительно обновившись:

        # aptitude update
        # aptitude upgrade
        # aptitude install console-cyrillic mc traceroute openvpn vsftpd

Для работы OpenVPN необходимо создать сретификаты и конфигурационный
файл openvpn.conf.

Для генерирования сертификатов переходим в каталог easy-rsa:

# cd /usr/share/doc/openvpn/examples/easy-rsa/2,0

Заполняем шаблонный файл с пременными vars. Я заполнил только последнюю
часть с данными о фирме, городе и т.п., плюс изменил директорию с
ключами:

        export KEY_DIR="/etc/openvpn/keys"

Генерируем сертификаты:

        # ./build-dh
        # ./pkitool -initca
        # ./pkitool -server server
        # ./pkitool client

Созданные сертификаты должны появиться в вышеуказанной папке, если
конечно вы ее предварительно создали.

Дальше пишем конфиг сервера. Читал разные статьи на эту тему, наступал
на грабли, но в итоге плюнул и без проблем все сделал по примерам,
которые лежат в папке
/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

Все готово, делаем рестарт сервера и убеждаемся в том, что все ОК:

        # /etc/init.d/openvpn restart
        # ps -ely | grep openvpn

Для полного счастья добавляем правила в iptables (приведенный ниже
вариант может отличаться, в зависимости от вашей конфигурации):

        iptables -A INPUT -p udp -dport 3333 -j ACCEPT
        iptables -A INPUT -i tun0 -j ACCEPT
        iptables -A FORWARD -i tun0 -j ACCEPT
        iptables -A FORWARD -o tun0 -j ACCEPT

Установка клиента (serv2)

В плане установки и настройки системы проделываем то же самое, что и с
предыдущем сервером.

        # cat /etc/network/interfaces

        auto lo
        iface lo inet loopback

        auto eth0
        iface eth0 inet static
        address 10.0.0.20
        netmask 255.255.255.0

        auto eth1
        iface eth1 inet static
        address 192.168.110.10
        netmask 255.255.255.0

Сертификаты нужно скопировать с центрального сервера. Я для этих целей
поднимал там ftp.

        dev tun
        tls-client
        remote 10.0.0.10
        proto udp
        port 3333
        comp-lzo
        persist-tun
        persist-key

        # указываем узловые точки виртуальной сети
        ifconfig 10.1.0.2 10.1.0.1
        # добавляем маршрут к локальной сети офиса
        route 192.168.120.0 255.255.255.0

        dh /etc/openvpn/keys/dh1024.pem
        ca /etc/openvpn/keys/ca.crt
        cert /etc/openvpn/keys/client.crt
        key /etc/openvpn/keys/client.key

        log /var/log/openvpn.log
        verb 3

Запускаем:

   # /etc/init.d/openvpn restart

Правим фаервол:

        iptables -A INPUT -i tun0 -j ACCEPT
        iptables -A FORWARD -i tun0 -j ACCEPT
        iptables -A FORWARD -o tun0 -j ACCEPT

Пингуем хосты противоположных сетей по их внутренним адресам с обоих
серверов и с клиентских машин каждой локальной сети.

Итоговые впечатления: все стабильно, секьюрно и удобно, а Ubuntu Server
может быть достойной заменой Debian.

zp8497586rq






























Смотрите также:

Readers Comments (Комментариев нет)

Comments are closed.

Exchange 2007

Проведение мониторинга Exchange 2007 с помощью диспетчера System Center Operations Manager 2007 (часть 3)

Если вы хотите прочитать предыдущие части этой серии статей, перейдите по ссылкам: Проведение мониторинга Exchange 2007 с помощью диспетчера System ... [+]

Практическое рассмотрение перехода с Exchange 2003 на Exchange 2007 (часть 1)

Введение В этой статье из нескольких частей я хочу показать вам процесс, который недавно использовал для перехода с существующей среды Exchange 2003 ... [+]

Использование инструмента Exchange Server Remote Connectivity Analyzer Tool (часть 2)

Если вы пропустили первую часть этой серии, пожалуйста, прочтите ее по ссылке Использование инструмента Exchange Server Remote Connectivity Analyzer Tool (Часть ... [+]

Мониторинг Exchange 2007 с помощью диспетчера System Center Operations Manager 2007 (часть 2)

Если вы пропустили предыдущую часть этой серии статей, перейдите по ссылке Мониторинг Exchange 2007 с помощью диспетчера System Center Operations ... [+]

Подробное рассмотрение подготовки Active Directory для Exchange 2007 (часть 5)

Если вы пропустили предыдущие части этой серии статей, перейдите по ссылкам: Подробное рассмотрение подготовки Active Directory для Exchange 2007 (часть 1) ... [+]

Установка и настройка Exchange 2007 из командной строки (Часть 3)

If you missed the previous parts in this article series please read: Exchange 2007 Install and Configuration from the command line (Part ... [+]

Использование инструмента Exchange Server Remote Connectivity Analyzer Tool (часть 1)

Инструмент ExRCA Текущий выпуск инструмента предоставляется только в целях тестирования и оснащен 5 опциями: Тест подключения Outlook 2007 Autodiscover Тест подключения Outlook 2003 RPC ... [+]

Развертывание сервера Exchange 2007 Edge Transport (часть 5)

Если вы хотите прочитать предыдущие части этой серии статей, перейдите по ссылкам: Развертывание сервера Exchange 2007 Edge Transport (часть 1) Развертывание ... [+]

Установка и настройка Exchange 2007 из командной строки (часть 2)

Если вы пропустили первую статью данного цикла, пожалуйста, перейдите по ссылке: Exchange 2007 Install and Configuration from the command line (Part ... [+]

Использование интегрированных сценариев Using Exchange Server 2007 – часть 2: генерирование отчетов агента Transport AntiSpam Agent

Если вы пропустили предыдущую часть этой серии статей, перейдите по ссылке Использование интегрированных сценариев Using Exchange Server 2007 – часть ... [+]