Centos 6 Openvpn server технология net-to-net

Centos 6 Openvpn server технология net-to-net.

Решил добавить статейку, пришлось недавно повозиться на эту тему, зато теперь есть сеть центральный офис и два филиала.

И так ставим пакет из репозитария Epel. Установка как обычно yum -y install openvpn. Конфигурация:

1. Центральный офис:

cat /etc/openvpn/server.conf

port 1194
proto udp
dev tun
ca /etc/openvpn/easy-rsa/2.0/keys/ca.crt
cert /etc/openvpn/easy-rsa/2.0/keys/main.crt
dh /etc/openvpn/easy-rsa/2.0/keys/dh1024.pem
server 192.168.100.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push «route 192.168.1.0 255.255.255.0»
push «route 192.168.3.0 255.255.255.0»
push «route 192.168.2.0 255.255.255.0»
client-config-dir /etc/openvpn/ccd
keepalive 10 60
max-clients 10
persist-key
persist-tun
status openvpn-status.log
log openvpn.log
log-append openvpn.log
verb 3
tcp-nodelay
tun-mtu 1500
mssfix
client-to-client
route 192.168.3.0 255.255.255.0
route 192.168.2.0 255.255.255.0

В каталоге /etc/openvpn/ccd создаются одноименные файлы как и сертификаты клиентов, с тем же именем. К примеру для одного из филиалов:

cat firma

iroute 192.168.2.0 255.255.255.0

2. Конфигурация на стороне клиента:

cat /etc/openvpn/client.conf

client
dev tun
proto udp
remote MyRealServer.ru 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca /home/keys/ca.crt
cert /home/keys/firma.crt
key /home/keys/firma.key
ns-cert-type server
verb 3
pull
route 192.168.1.0 255.255.255.0
push «route 192.168.2.0 255.255.255.0»

И все генерируем сертификаты, кладем по путям указанным в конфигурации.

3. Генерация сертификатов на сервере:

Отредактируем /etc/openvpn/easy-rsa/vars

export KEY_COUNTRY=RU
export KEY_PROVINCE=MSK
export KEY_CITY=MOSCOW
export KEY_ORG=»OpenVPN-TEST-INSTALLATION»
export KEY_EMAIL=»admin@example.com»

4. Создаем ключи:

cd /etc/openvpn/easy-rsa

. ./vars

./clean-all
./build-ca
./build-key-server vpnserver
./build-dh

Ну, а дальше осталось только запустить службы service openvpn start на обоих концах.

P.S>: Использую протокол UDP, т.к скорость стабильно 40 Мбит больше никак не получиться выжать единственный минус. А также отключено сжатие и компрессия. Все эти параметры отключены на всех концах туннеля. И не забываем про iptables.


6 комментариев

  • unkn0wn

    12 августа 2012

    В тему — не сталкивался с такой проблемой: когда начинают теряться пакеты, связь, ессно, теряется. Виндовый клиент вроде автоматом переподключается и рапортует, что все ОК, но соединения по VPN нет, приходится делать дисконнект, потом коннект, только так все подключается. Роуты после автопереподключения нормальные, кажут куда надо, авторизация через файл сертификата. Проблема осложняется тем, что сервер не в моей юрисдикции, находится в другом городе и обслуживается сторонними аутсорсерами, которые уже месяц не могут или не хотят решать проблему, хотя два года все было нормалек на трех разных провайдерах. Что-то они там намудили в конфигах и ушли в несознанку, а-ля «Проблемы на вашей стороне», и счаз надо разобраться, куда копать, чтобы им вставить по первое число.

  • Андрей Гаркин

    15 августа 2012

    Не у меня такого нету. И слава богу ибо центральный офис где я этим рулю, 4-е филиала в каждом от 50 до 200 рыл, все работают в терминале со мной сквозь тунель. + 5 складов число юзеров от 2 до 10 в каждом+ТСД (вот эти хрени то как раз очень капризные к качеству тунеля.)

    Плюс такого решения все сети видят друг друга.

    Были проблемы и низкая скорость. Решение юзать UDP+отключить сжатие скорость с 7 мбит подняла до 38 мбит. Больше 40 на тунель разработчики руками разводят.

  • Андрей Гаркин

    15 августа 2012

    Вообще пока не прочел официальную книгу по OPENVPN никак не мог толком вкурить,а в книге очень много примеров решения.

  • unkn0wn

    18 августа 2012

    Да с ТСД как раз минимальные проблемы, раз в сутки данные скидываются на сервер, на все-про все пять минут. Проблема в том, что три года все было ОК, потом на сервере что-то покрутили шаловливыми ручками, и при потере пакетов туннель перестал восстанавливаться, хотя в статусе «Подключено».

    Кстати, каким боком филиалы видят друг друга? Netbios же работает на броадкасте, который при дефолтных настройках не роутится, а за роутинг броадкаста за пределы броадкаст-домена надо по рукам бить. Тут либо всем выдавать адреса из сети /23, либо делать мостовую схему вместо роутинговой, иначе только по IP можно простучаться.

  • Андрей Гаркин

    19 августа 2012

    У меня Netbios выключен в каждом филиале стоит КД. т.е схема домена domain.ru 5 КД, 1.1 2.1 3.1 4.1 5.1 (подсети) лес собран и все работает нормально. Тоже долго решал а потом решился. Единственный минус глобальный каталог только в главной сети в 1.1, но тут резервирование сделано 2 одноправных участника стоят. Везде не стал делать роль глобального каталога ибо трафик бешеный гонять, смысл. Ну, а тут по планировщику 2 раза в час синхронизация… И вот уже пол года полет отличный…

  • unkn0wn

    21 августа 2012

    Дык ну и правильно, зачем глобальный каталог отдавать в филиалы, когда вполне достаточно ввести филиальный домен в лес и реплицировать его с ГК раз в час — так и у местных админов четко очерчен круг прав, и лес не поедет из-за филиальных сбоев.

Добавить комментарий