Настройка OpenVPN в Linux

Материал из Raduga.

Перейти к: навигация, поиск

Настройка OpenVPN под OC Linux (в моем случае Ubuntu 7.10)

Краткие сведения:

Система: P3-700MHz (256 SDRAM)
Наземный канал: выделенная линия (NAT)
DVB карта: SkyStar2 2.6D
Спутник: IntelSat904

1. Скачиваем с сайта последнюю версию OpenVPN (в моем случае версия 2.0.9). Для установки потребуется библиотека LZO(в моем случае версия 2.02), качаем отсюда (полный пакет). Разархивируем LZO:

tar -xvvzf lzo-2.02.tar.gz

в соответствующем каталоге собираем:

./configure
make
make install

Разархивируем OpenVPN

tar -xvvzf openvpn-2.0.9.tar.gz	

в соответствующем каталоге собираем (у меня ругалась на библиотеку OpenSSL, установите пакет libssl-dev либо openssl-devel)

./configure
make
make install

2. Скачиваем ключи для OpenVPN в личном кабинете, разархивируем в папку /etc/openvpn

3. (в нужных строках впишите свои параметры) ip адреса наших серверов для разных спутников:
IPадресНашегоСервера - для Intelsat 904(платформа A,B и C) - 80.81.208.82
IPадресНашегоСервера - для Yamal 201 Ku - 80.81.208.66
IPадресНашегоСервера - для Yamal 201 С - 217.17.162.2
IPадресНашегоСервера - для Yamal 202 C - 217.17.162.2
IPадресНашегоСервера - для ABS-1 - 81.222.123.2
IPадресНашегоСервера - для Sirius-4 - 81.222.123.4
IPадресНашегоСервера - для Express AM1- 80.81.209.162
IPадресНашегоСервера - для Express AM22 - 80.81.209.163

Открываем файл client.ovpn, запоминаем порт, ip адрес подписки, заменяем текст конфиг файла нижепреведенным

dev tap
port НомерПорта
proto udp
remote IPадресНашегоСервера

comp-lzo
comp-noadapt

ifconfig ВашIPадресПодписки 255.255.255.0

route-noexec
tun-mtu 1400
tls-client

ca /etc/openvpn/ca.crt
cert /etc/openvpn/ВашЛогинПодписки.crt
key /etc/openvpn/ВашЛогинПодписки.key

ns-cert-type server
user nobody
group nobody
verb 4 

4. Поднимаем dvb0_0, ловим сигнал, прописываем PID и IP адрес (в данной инструкции рассматривается уже настроенная dvb-карта)

szap -c /etc/channels.list -n 3 (ловим транспондер)	
/usr/bin/dvbnet -p 4155 (в моем случае PID 4155dec)
ifconfig dvb0_0 192.168.238.238 (ip адрес на интерфейсе dvb в случае настройки OpenVPN значения не имеет)

5. Проверяем DVB-карту на прием пакетов

tcpdump -i dvb0_0 -n

6. Прописываем маршрут до сервера (необходим пакет iproute2)

ip route add IPадресНашегоСервера via ВашIPшлюзаНаземного src ВашIPадресИсходящийНаземный

7. Запускаем OpenVPN (должен появиться интерфейс tap0)

openvpn --config /etc/openvpn/client.ovpn

8. После запуска не нужно сразу же удалять маршрут по умолчанию, предварительно нужно проверить работу туннеля.

ip route add IPадресСервернойСтороныТуннеля dev tap0

Где IPадресСервернойСтороныТуннеля - это ВашIPадресПодписки, только в последнем разряде должна быть всегда "1". Пример для Intelsat 904 и подписки, у которой ВашIPадресПодписки 10.255.139.17:

ip route add 10.255.139.1 dev tap0

9. Проверьте работу туннеля(рассмотрено на моем ip подписки)

ping 10.255.139.1
PING 10.255.139.1 (10.255.139.1) 56(84) bytes of data.
64 bytes from 10.255.139.1: icmp_seq=1 ttl=63 time=276 ms
64 bytes from 10.255.139.1: icmp_seq=2 ttl=63 time=289 ms

10. Удаляем default маршрут и прописываем маршрутом default туннель OpenVPN

ip route del default
ip route add default via IPадресСервернойСтороныТуннеля src ВашIPадресПодписки

11. Вот и все... Далее можно написать скрипт для быстрого старта, для примера мой выглядит так:

#!/bin/bash

/usr/bin/dvbnet -p 4155
ifconfig dvb0_0 192.168.238.238
szap -c /etc/channels.conf -n3 > /tmp/szap.log &
openvpn --config /etc/openvpn/client.ovpn > /tmp/openvpn.log &
sleep 15
ip route add 80.81.208.82 via 192.168.0.101 src 192.168.0.30
ip route add 10.255.139.1 dev tap0
route del default
ip route add default via 10.255.139.1 src 10.255.139.17

12. Скрипт отключения и восстановления default маршрута наземного провайдера:

#!/bin/bash

killall szap
route add -net default gw 192.168.0.101 dev eth0
killall openvpn
route del 80.81.208.82
Личные инструменты