Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
Tue Jul 20 23:14:14 2004 14: UID set to openvpn
Tue Jul 20 23:14:14 2004 15: UDPv4 link local (bound): [undef]:5000
Tue Jul 20 23:14:14 2004 16: UDPv4 link remote: 80.80.20.131:5000
Tue Jul 20 23:14:18 2004 17: Peer Connection Initiated with 80.80.20.131:5000
Как только увидите надпись «Peer Connection Initiated with», считайте, что дело сделано. Теперь с помощью команды ping можно проверить, видны ли оконечные адреса из соединяемых частных сетей. В нашем примере это 10.10.120.1 и 10.10.140.1. Не забываем настроить компьютеры, находящиеся в наших локальных сетях так, чтобы они считали машины Linux и FreeBSD шлюзами по умолчанию.
Кстати, стоит отметить, что openvpn может вполне успешно работать и без всяких конфигурационных файлов. Дело в том, что все параметры можно передать в программу и из командной строки. К примеру, для поднятия того же самого туннеля можно было скомандовать вот так:
# openvpn --remote 80.80.20.128 --dev tun --port 5001 --ifconfig 10.3.0.1 10.3.0.2 --route 10.10.130.0 255.255.255.0 10.3.0.2
--secret /etc/openvpn/static.key --ping 10 --verb 3 --tun-mtu 1500 --user openvpn --group openvpn --auth MD5 --cipher DES-CBC
Хотя, с моей точки зрения, данный способ выглядит несколько громоздко.
Стоит отметить один интересный факт: дистрибутив openvpn для Linux устанавливает в систему скрипт /etc/rc.d/init.d/openvpn, который помогает удобно управлять нашими туннелями с помощью команды service openvpn. Главной особенностью скрипта является способность поднять туннели для всех *.conf-файлов, находящихся в /etc/openvpn. Таким образом, нам не надо придумывать, как автоматически запустить требуемое количество экземпляров openvpn с нужными настройками после перезагрузки системы.
Во FreeBSD тоже есть скрипт подобного предназначения. Сразу после инсталляции он обычно находится в /usr/local/etc/rc.d/openvpn.sh.sample. Посмотрев внутрь него, понимаем, что он совершенно бесполезен, так как практически ничего не умеет делать. Поэтому нам придется смастерить свой собственный вариант такого скрипта. Для этого нужно создать файл openvpn.sh и внести в него следующие данные:
#! /bin/sh
case x$1 in
xstart)
/usr/local/sbin/openvpn --config /etc/openvpn/freebsd-linux.conf &
/usr/local/sbin/openvpn --config /etc/openvpn/freebsd-windows.conf &
;;
xstop)
killall -SIGTERM openvpn
route delete 10.10.130.0
route delete 10.10.140.0
;;
*) echo >&2 "Usage: $0 {start|stop}"
esac
Обязательно кладем файл в /usr/local/etc/rc.d/ и даем ему право на выполнение. Стоит обратить внимание на наличие знака «&» после запуска каждого экземпляра openvpn. Сделано это потому, что данная программа жестко привязывается к терминалу, с которого была запущена. Соответственно при отсутствии этого знака второй процесс openvpn не запустится до тех пор, пока терминал не освободится, а этого при правильном развитии событий не должно произойти никогда. Вторым важным моментом является наличие команд route, удаляющих записи о маршрутах в той ветке скрипта, которая отвечает за выполнение действия stop. Удалять маршруты приходится вручную, потому что к моменту завершения работы openvpn выполняется от лица одноименного пользователя и группы, а изменять таблицу маршрутизации имеет право только root. Конечно, можно было бы портировать под FreeBSD версию скрипта, поставляющуюся в комплекте с Linux-версией программы, но сейчас заниматься этим как-то недосуг. Возможно, я сделаю это в следующей статье.
Настало время перейти к настройке
Windows-системы. На первый взгляд здесь все довольно просто. Берем дистрибутив
для этой платформы на родном сайте программы