четверг, 9 декабря 2010 г.

OpenVPN Fedora 14 tap L2

(Пока не удалось подключиться с виртуальной машины, поэтому фиг знает работает всё это или нет)
Расширенная конфигурация туннеля L2 (Ethernet-туннель, aka "bridged")
Настраивал по статьям openvpn-with-fedora-8 и openvpn-for-fedora-12
Опять же FAQ тож не мешает почитать http://forum.ixbt.com/topic.cgi?id=14:40906:1#1 и http://forum.ixbt.com/topic.cgi?id=14:49976

Нужно установить пакеты openvpn bridge-utils

Авторизация будет происходить по паролю

Потом создаются конфиги такого плана

/etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
BOOTPROTO=dhcp
IPV6INIT=yes
IPV6_AUTOCONF=yes
ONBOOT=yes
NM_CONTROLLED=no
TYPE=Bridge

/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
TYPE=Ethernet
BRIDGE=br0
BOOTPROTO=dhcp

/etc/sysconfig/network-scripts/ifcfg-tap0
EVICE=tap0
DEVICETYPE=ovpn
ONBOOT=yes
BRIDGE=br0
BOOTPROTO=dhcp
USERCTL=yes

/etc/sysconfig/network-scripts/ifdown-ovpn
#!/bin/bash
. /etc/init.d/functions
cd /etc/sysconfig/network-scripts
. ./network-functions
[ -f ../network ] && . ../network
CONFIG=${1}
source_config
/usr/sbin/openvpn --rmtun --dev ${DEVICE}
retcode=$?
exit $retcode

/etc/sysconfig/network-scripts/ifup-ovpn
#!/bin/bash
. /etc/init.d/functions
cd /etc/sysconfig/network-scripts
. ./network-functions
[ -f ../network ] && . ../network
CONFIG=${1}
need_config ${CONFIG}
source_config
/usr/sbin/openvpn --mktun --dev ${DEVICE}
if [ -n "${BRIDGE}" -a -x /usr/sbin/brctl ]; then
     if ! LC_ALL=C /usr/sbin/brctl show | LC_ALL=C grep -q "^${BRIDGE} "; then
        /usr/sbin/brctl addbr ${BRIDGE} 2>/dev/null
     fi
     /sbin/ip addr flush dev ${DEVICE} 2>/dev/null
     /sbin/ip link set dev ${DEVICE} up
     if [ -n "$ETHTOOL_OPTS" ] ; then
        /sbin/ethtool -s ${REALDEVICE} $ETHTOOL_OPTS
     fi
     [ -n "${LINKDELAY}" ] && /bin/sleep ${LINKDELAY}
     /usr/sbin/brctl addif ${BRIDGE} ${DEVICE}
     # Upon adding a device to a bridge,
     # it's necessary to make radvd reload its config
     [ -r /var/run/radvd/radvd.pid ] && kill -HUP `cat /var/run/radvd/radvd.pid`
     exit 0
fi



Добавляем openvpn в автозапуск и устанавливаем атрибуты для скриптов
# chkconfig --level 2345 openvpn on
# chmod +x /etc/sysconfig/network-scripts/ifdown-ovpn
# chmod +x /etc/sysconfig/network-scripts/ifup-ovpn


В седующем конфиге нужно обратить внимание на строку 5, если система не 64-битная, то нужно подправить адрес (стереть 64). Так же обратить внимние на строки 9 и 10 - исправить имена файлов ключей.
/etc/openvpn/tap0.conf
proto tcp-server
mode server
tls-server
dev tap0
plugin /usr/lib64/openvpn/plugin/lib/openvpn-auth-pam.so login
client-cert-not-required
username-as-common-name
ca keys/ca.crt
cert keys/home.crt
key keys/home.key  # This file should be kept secret
dh keys/dh1024.pem
client-to-client
duplicate-cn
keepalive 10 120
comp-lzo
persist-key
persist-tun
status openvpn-status.log
verb 3


Перезапуск сервисов
/etc/init.d/network restart
/etc/init.d/openvpn restart

Поверка, что мост создан успешно (обязательно наличие br0 [eth0, tap0]:
# brctl show

У меня вылазиет такое:
bridge name     bridge id               STP enabled     interfaces
br0             8000.90e6bad771c7       no              eth0
                                                        tap0



Ещё у меня при перезапуске сервисов вылазит какая-то ботва про тун-тап.

Создание файлов сертификатов.
# cd /usr/share/openvpn/easy-rsa/2.0/
# . ./vars
# ./clean-all
# ./build-ca
# ./build-inter $( hostname | cut -d. -f1 )
# ./build-dh
# mkdir /etc/openvpn/keys
# cp -ai keys/$( hostname | cut -d. -f1 ).{crt,key} keys/ca.crt keys/dh1024.pem /etc/openvpn/keys/
 

Комментариев нет:

Отправить комментарий