
- •Установка центра сертификатов
- •Серверные сертификаты
- •Настройка простого клиента
- •Первичное решение проблем
- •Расширенная настройка vpn на сервере в режиме сетевого моста
- •Подготовка настроек интерфейса для сетевого моста на сервере
- •Подготовка настроек сервера для сетевого моста
- •OpenVpn с графическим интерфейсом под Mac os X: Tunnelblick
- •OpenVpn с графическим интерфейсом под Windows 7
Расширенная настройка vpn на сервере в режиме сетевого моста
OpenVPN может быть настроен в двух режимах VPN: маршрутизации (routed) и сетевого моста (bridged). Иногда их относят к VPN уровню-2 (канальный) и уровню-3 (пакетный) сетевой модели OSI. В режиме сетевого моста все VPN кадры (frames) 2-го уровня, такие как кадры ethernet, посылаются VPN партнеру, в то время как в режиме маршрутизации посылаются только пакеты уровня-3. В режиме моста весь трафик, включая традиционно локальный трафик, такой как сетевые широковещательные пакеты, DHCP запросы, ARP запросы и т.д., посылается VPN партнеру, в то время как в режиме маршрутизации он будет отфильтрован.
Подготовка настроек интерфейса для сетевого моста на сервере
Убедитесь, что у вас установлен пакет bridge-utils:
sudo apt-get install bridge-utils
Перед настройкой OpenVPN в режиме сетевого моста вам потребуется изменить настройки вашего интерфейса. Давайте предположим, что ваш сервер подключен через eth0 к интернету, а интерфейс eth1 соединен с вашей локальной сетью для которой вы хотите установить сетевой мост. Ваш файл /etc/network/interfaces должен выглядеть как-то так:
auto eth0
iface eth0 inet static
address 1.2.3.4
netmask 255.255.255.248
default 1.2.3.1
auto eth1
iface eth1 inet static
address 10.0.0.4
netmask 255.255.255.0
Такая настройка прямого перенаправления интерфейсов должна быть исправлена для режима моста, где настройка интерфейса eth1 перемещается на новый интерфейс br0. Плюс мы укажем, что br0 будет интерфейсом моста для eth1. Нам также стоит убедиться, что интерфейс eth1 всегда находится в смешанном (promiscuous) режиме - это скажет интерфейсу пересылать все ethernet пакеты в стек IP.
auto eth0
iface eth0 inet static
address 1.2.3.4
netmask 255.255.255.248
default 1.2.3.1
auto eth1
iface eth1 inet manual
up ip link set $IFACE up promisc on
auto br0
iface br0 inet static
address 10.0.0.4
netmask 255.255.255.0
bridge_ports eth1
На этом этапе вам потребуется перезагрузка сети. Будьте готовы, что это не сработает так, как задумывалось, и вы потеряете удаленный доступ. Убедитесь, что сможете решить проблемы, используя локальный доступ.
sudo /etc/init.d/network restart
Подготовка настроек сервера для сетевого моста
Отредактируйте /etc/openvpn/server.conf, изменив следующие настройки:
;dev tun
dev tap
up "/etc/openvpn/up.sh br0 eth1"
;server 10.8.0.0 255.255.255.0
server-bridge 10.0.0.4 255.255.255.0 10.0.0.128 10.0.0.254
Далее создайте вспомогательный сценарий для добавления tap интерфейса для моста и для проверки, что eth1 находится в смешанном режиме. Создайте /etc/openvpn/up.sh:
#!/bin/sh
BR=$1
ETHDEV=$2
TAPDEV=$3
/sbin/ip link set "$TAPDEV" up
/sbin/ip link set "$ETHDEV" promisc on
/sbin/brctl addif $BR $TAPDEV
Сделайте файл исполняемым:
sudo chmod 755 /etc/openvpn/up.sh
После настройки сервера перезапустите openvpn, введя:
sudo /etc/init.d/openvpn restart
Настройка клиента
Сначала установите openvpn на клиенте:
sudo apt-get install openvpn
Затем с настроенным сервером и скопированными сертификатами клиентов в каталог /etc/openvpn/, создайте файл конфигурации клиента, скопировав пример. В терминале на клиентской машине введите:
sudo cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn
Теперь отредактируйте /etc/openvpn/client.conf, изменив следующие опции:
dev tap
;dev tun
Наконец перезапустите openvpn:
sudo /etc/init.d/openvpn restart
Теперь у вас есть возможность соединиться с удаленной сетью через VPN.
Реализации клиентского программного обеспечения
Графический интерфейс сетевого менеджера Linux для OpenVPN
Множество дистрибутивов Linux, включая варианты Ubuntu desktop, поставляются с программой Network Manager, прекрасным графическим интерфейсом для настройки вашей сети. Он также позволяет управлять вашими VPN соединениями. Убедитесь, что пакет network-manager-openvpn установлен. Здесь вы можете также увидеть установку всех остальных необходимых пакетов:
root@client:~# apt-get install network-manager-openvpn
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
liblzo2-2 libpkcs11-helper1 network-manager-openvpn-gnome openvpn
Suggested packages:
resolvconf
The following NEW packages will be installed:
liblzo2-2 libpkcs11-helper1 network-manager-openvpn
network-manager-openvpn-gnome openvpn
0 upgraded, 5 newly installed, 0 to remove and 631 not upgraded.
Need to get 700 kB of archives.
After this operation, 3,031 kB of additional disk space will be used.
Do you want to continue [Y/n]?
Для информирования network-manager о новых установленных пакетах вам придется его перезагрузить:
root@client:~# restart network-manager
network-manager start/running, process 3078
Откройте интерфейс Network Manager, выберите закладку VPN и затем нажмите кнопку 'Add' (Добавить). Выберите OpenVPN в качестве типа VPN в открывшемся запросе и нажмите 'Create' (Создать). В следующем окне добавьте имя сервера OpenVPN в качестве шлюза, установите тип в 'Certificates (TLS)', укажите в 'User Certificate' ваш пользовательский сертификат, в 'CA Certificate' сертификат вашего Центра Сертификатов и в 'Private Key' файл вашего секретного ключа. Используйте кнопку 'Дополнительно' для разрешения сжатия и других специальных настроек, которые вы устанавливали на сервере. Теперь попробуйте установить ваш VPN.