Linux

ID #1541

Настройка OpenVPN и карты SkyStar3 в Ubuntu 8.04


Данное руководство совсем не претендует на авторские права, т.к оно было составленно из многочисленных источников в интернете. Эксперемент проводился на свеже установленной Ubuntu 8.04 без дополнительных настроек. Итак приступим.

0. Установка карты.

Подключать OpenVPN будем к спутнику AM22. У нас имеется комп, находящийся в локалке и выходящий в мир через шлюз ака NAT. Устанавливаем DVB карту Skystar 3  в свободный PCI слот и после перезагрузки компа смотрим в dmesg. Команда sudo dmesg | grep dvb покажет нам[ 31.734591] saa7146: register extension 'budget dvb'. Далее нам предстоит отключить засыпание карты, чтобы она не выключалась сама по себе, когда ей вздумается. Раньше это делалось опцией dvb_shutdown_timeout=0. Но так как это не работает в новых ядрах, мы выставляем значение в секундах. Создаем файл /etc/modprobe.d/dvb_core.modprobe и добаляем туда одну единственную строчку options dvb_core dvb_shutdown_timeout=915360000. Этим мы препятствуем засыпанию карты.

После этого перезагружаем компьютер. Устанавливаем dvb-utils командой sudo apt-get install dvb-utils. Эти утилиты помогут нам в дальнейшем. Далее пытаемся поймать сигнал со спутника. Но cначала сделаем файл настроек.

Создаем файл «/etc/channels.conf» Добавляем в него строчку AM22:11096:v:0:6164:0:0:0

Здесь:
* AM22 – название канала. Может быть любым.
* 11096 – частота
* v – поляризация. Может быть H – горизонтальная и V – вертикальная
* 0 – FEC: 0 – Авто, 3 – 3/4,...
* 6164 – Величина потока (Symbol rate)
* 0 – Видео PID
* 0 – Аудио PID
* 0 – Program id

Пробуем захватить сигнал. Для этого используем утилиту szap из состава dvb-utils.

szap -c /etc/channels.conf -n 1 ( -с означет использовать конфигурационный файл, -n 1 указывает на строку, из которой брать настройки) Она выдает нам следующее:

status 07 | signal 9797 | snr 3270 | ber 0000ff00 | unc 00000000 |
status 1f | signal 9696 | snr d344 | ber 00001800 | unc 00000000 | FE_HAS_LOCK

Сигнал залочен. Ключевые параметры status 1f и FE_HAS_LOCK.

Кроме szap можно также использовать femon. И мало того, утилита femon может показывать уровень сигнала в процентах. Для этого надо использовать опцию -o1.

I. Приступаем к настройке OpenVpn.

Входим в режим суперпользователя:

sudo -s

Cоздаем директорию, в которой будут помещены src для оpenvpn:

mkdir /usr/local/src/openvpn/ ;cd /usr/local/src/openvpn

Качаем последнюю версию openvpn:

wget http://openvpn.net/release/openvpn-2.0.9.tar.gz

Устанавливаем необходимые библиотеки для сжатия данных:

apt-get install liblzo-dev libssl-dev

Распаковываем:

tar -zxvvf openvpn-2.0.9.tar.gz

Заходим в директорию:

cd openvpn-2.0.9

Запускаем конфигуратор с параметром !!!

./configure --enable-password-save

Собираем. Устанавливаем :

make && make install

II. Настроиваем OpenVpn.

Качаем из личного кабинета архив с ключами для openvpn.
Cохраняем его в /etc/openvpn/
Распаковываем:

сd /etc/openvpn
tar -zxvvf key.tar.gz

Создаем в /etc/openvpn файл password.txt и записываем в него друг под другом логин и пароль.
Меняем права доступа для этого файла и файла с ключом.

chmod 0400 /etc/openvpn/password.txt
chmod 0400 /etc/openvpn/i0xxxxxx.key

Открываем с помощью какого-нибудь любимого редактора файл client.ovpn и
изменяем его содежимое на:

client
dev tap
proto udp

remote 80.81.209.163 55104

resolv-retry infinite
nobind
persist-key
persist-tun

ca /etc/openvpn/ca.crt
cert /etc/openvpn/i0151538.crt
key /etc/openvpn/i0151538.key

route-noexec
tun-mtu 1500
tls-client

ns-cert-type server
verb 3
comp-lzo
comp-noadapt
user administrator #### измените на соответсвующую учетную запись в вашей системе

group administrator #### см. ниже листинг openvpn

auth-user-pass /etc/openvpn/password.txt

Сохраняем. Закрываем.

III. Пробуем как это все заработает.

Справочная Информация:
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

для нашего случая с AM22:
pid подписки 5004
ip подписки 10.247.4.97
mac 00:00:0A:XX:XX:XX

cервер спутника 80.81.209.163
ip серверной стороны туннеля 10.247.4.1
наземный шлюз 192.168.0.101
наземный IP в локалке 192.168.0.54

sudo -s

захватываем сигнал, когда он станет стабильным запоминаем его:

szap -c /etc/channels.conf -n 1 -x

создаем интерфейс спутниковой карты :

dvbnet -p 5004

поднимаем его:

ifconfig dvb0_0 hw ether 00:00:0A:XX:XX:XX 10.247.4.97 netmask 255.255.255.0 up

на данном этапе было бы неплохо проверить приходят ли на нашу карту пакеты или нет. набираем в командной строке:

tcpdump -i dvb0_0 -n -p

Затем, снова идем в личный кабинет и отправляем себе 5 тестовых пакетов. Еслипакеты приходят, то полдела сделано. Т.к. дальше проблемы могутбыть либо с маршрутизацией, либо с настройками в /etc/openvp/client.ovpn. А вот если не приходят, то надо проверять правильность указания MAC и IP адреса при создании интерфейса dvb0_0 и возможно настройки фаервола, если таковой имеется. Лучше конечно его отключить во время настройки. Запускаем openvpn:

openvpn /etc/openvpn/client.ovpn

# openvpn /etc/openvpn/client.ovpn
Mon Oct 6 17:32:28 2008 OpenVPN 2.0.9 i686-pc-linux [SSL] [LZO] [EPOLL] built on Sep 30 2008
Mon Oct 6 17:32:28 2008 IMPORTANT: OpenVPN's default port number is now 1194, based on an official port number assignment by IANA. OpenVPN
2.0-beta16 and earlier used 5000 as the default port.
Mon Oct 6 17:32:28 2008 WARNING: file '/etc/openvpn/i0151538.key' is group or others accessible
Mon Oct 6 17:32:28 2008 LZO compression initialized
Mon Oct 6 17:32:28 2008 Control Channel MTU parms [ L:1574 D:138 EF:38 EB:0 ET:0 EL:0 ]
Mon Oct 6 17:32:28 2008 Data Channel MTU parms [ L:1574 D:1450 EF:42 EB:135 ET:32 EL:0 AF:3/1 ]
Mon Oct 6 17:32:28 2008 Local Options hash (VER=V4): 'd79ca330'
Mon Oct 6 17:32:28 2008 Expected Remote Options hash (VER=V4): 'f7df56b8'
Mon Oct 6 17:32:28 2008 NOTE: UID/GID downgrade will be delayed because of --client, --pull, or --up-delay
Mon Oct 6 17:32:28 2008 UDPv4 link local: [undef]
Mon Oct 6 17:32:28 2008 UDPv4 link remote: 80.81.209.163:55104
Mon Oct 6 17:32:28 2008 TLS: Initial packet from 80.81.209.163:55104, sid=16087ea8 21013cfc
Mon Oct 6 17:32:30 2008 VERIFY OK: depth=1, /C=RU/ST=MW/L=MOSCOW/O=RadugaVPN/emailAddress=support@telecom-service.net
Mon Oct 6 17:32:30 2008 VERIFY OK: nsCertType=SERVER
Mon Oct 6 17:32:30 2008 VERIFY OK: depth=0, /C=RU/ST=MW/O=RadugaVPN/CN=RadugaVPN/emailAddress=support@telecom-service.net
Mon Oct 6 17:32:42 2008 Data Channel Encrypt: Cipher 'BF-CBC' initialized with 128 bit key
Mon Oct 6 17:32:42 2008 Data Channel Encrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Mon Oct 6 17:32:42 2008 Data Channel Decrypt: Cipher 'BF-CBC' initialized with 128 bit key
Mon Oct 6 17:32:42 2008 Data Channel Decrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Mon Oct 6 17:32:42 2008 Control Channel: TLSv1, cipher TLSv1/SSLv3 DHE-RSA-AES256-SHA, 1024 bit RSA
Mon Oct 6 17:32:42 2008 [RadugaVPN] Peer Connection Initiated with 80.81.209.163:55104
Mon Oct 6 17:32:43 2008 SENT CONTROL [RadugaVPN]: 'PUSH_REQUEST' (status=1)
Mon Oct 6 17:32:43 2008 PUSH: Received control message: 'PUSH_REPLY,redirect-gateway,dhcp-option DNS 80.81.209.163,route-gateway 10.247.4.1,ping
30,ping-restart 120,route 0.0.0.0 0.0.0.0 10.247.4.1,dhcp-option DNS 80.81.209.162,ifconfig 10.247.4.97 255.255.255.0'
Mon Oct 6 17:32:43 2008 OPTIONS IMPORT: timers and/or timeouts modified
Mon Oct 6 17:32:43 2008 OPTIONS IMPORT: --ifconfig/up options modified
Mon Oct 6 17:32:43 2008 OPTIONS IMPORT: route options modified
Mon Oct 6 17:32:43 2008 OPTIONS IMPORT: --ip-win32 and/or --dhcp-option options modified
Mon Oct 6 17:32:43 2008 TUN/TAP device tap0 opened
Mon Oct 6 17:32:43 2008 /sbin/ifconfig tap0 10.247.4.97 netmask 255.255.255.0 mtu 1500 broadcast 10.247.4.255
Mon Oct 6 17:32:43 2008 GID set to administrator
Mon Oct 6 17:32:43 2008 UID set to administrator
Mon Oct 6 17:32:43 2008 Initialization Sequence Completed

Нас интересует последняя строчка. Если никаких ошибок не возникает, то открываем новое окошко консоли и пробуем настраивать маршрутизацию.

sudo -s

Удаляем наземный шлюз из таблицы:

route del default

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

ip route add 10.247.0.1 dev tap0

Добавляем шлюз для туннеля по-умолчанию вместо наземного:

route add default gw 10.247.0.1 tap0

Добавляем маршрут к спутниковому серверу через наземный шлюз:

ip route add 80.81.209.163 via 192.168.0.101 src 192.168.0.54

Выключаем rp_filter, фильтрующий пакеты которые не могут уйти через тот же интерфейс что ипришли. В нашем случае пакет приходит через один интерфейс, а уходитчерез другой:

echo 0 > /proc/sys/net/ipv4/conf/dvb0_0/rp_filter

Разрешаем пересылку пакетов:

echo 1 > /proc/sys/net/ipv4/ip_forward

После всех этих манипуляций моя таблица маршрутизации стала выглядить так:

Kernel IP routing table
Destination       Gateway          Genmask               Flags Metric Ref Use    Iface
10.247.4.1       0.0.0.0             255.255.255.255   UH        0        0     0    tap0
80.81.209.163 192.168.0.101 255.255.255.255   UGH     0        0     0    eth0
10.247.4.0       0.0.0.0             255.255.255.0       U          0        0     0    dvb0_0
10.247.4.0       0.0.0.0             255.255.255.0       U          0        0     0    tap0
192.168.0.0     0.0.0.0             255.255.255.0       U          0        0     0    eth0
169.254.0.0     0.0.0.0             255.255.0.0           U          1000  0     0    eth0
0.0.0.0             10.247.0.1       0.0.0.0                   UG        0       0     0    tap0

# ping ya.ru
PING ya.ru (213.180.204.8) 56(84) bytes of data.
64 bytes from ya.ru (213.180.204.8): icmp_seq=1 ttl=56 time=394 ms
64 bytes from ya.ru (213.180.204.8): icmp_seq=2 ttl=56 time=374 ms
64 bytes from ya.ru (213.180.204.8): icmp_seq=24 ttl=56 time=445 ms

5 минут, полет нормальный....

TheEnd.

 

 

 

Записи: -

Связанные записи:

Последние обновление: 2009-12-17 14:12
Опубликовал: Андрей
Оценка: 1.1424

Digg it! Отправить на печать Отправить другу Скомпилировать PDF файл
Предложить перевод на Предложить перевод на
Пожалуйста оцените этот ответ:

Рейтинг ответа: 2.57 из 5 (14 Голосов )

Так себе 1 2 3 4 5 Очень
сильно помог

Вы можете оставить свой комментарий