Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
named
Зарегистрирован: 25.09.2005 Сообщения: 112
|
Добавлено: Вт Апр 18 2006 10:17 Заголовок сообщения: openvpn тунель |
|
|
всем привет.
вопрос простой но предполагаю что вы потребуете от меня дополнительных разъяснений.
установил openvpn на двух машинах. Мандрайк 10,2
дал сеть для канала 10.1.3.0 соответственно ip на шлюзах 10.1.3.1 и 10.1.3.2
вот )
в конфиге
1
ifconfig 10.1.3.2 10.1.3.1
route 10.1.2.0 255.255.255.128 10.1.3.1 (локальная сеть 10.1.1.0)
2
ifconfig 10.1.3.1 10.1.3.2
route 10.1.1.0 255.255.255.128 10.1.3.2 (локальная сеть 10.1.2.0)
Tun -ы поднимаются, ip локально со шлюза пингуються и из той сети в которой шлюз, но удалённые ip не пингуются.
когда нет связи как я понял, выдается ошибка error 111
но у меня после инициализации интерфейсов суцефул.
помогите с логикой происходящего. и как мне быть с фаерволом ? там тоже ведь что то нужно писать. Что то я замучился . спасибо.
proto udp
dev tun
port 5005
comp-lzo
ping 15
verb 3
user openvpn
group openvpn
persist-tun
persist-key
remote 192.192.192.192
ifconfig 10.1.3.2 10.1.3.1
route 10.1.2.0 255.255.255.128 10.1.3.1
secret /etc/keys.k
auth MD5
cipher DES-CBC
tun-mtu 1500
proto udp
dev tun
port 5005
comp-lzo
ping 15
verb 3
user openvpn
group openvpn
persist-tun
persist-key
remote 168.168.168.168
ifconfig 10.1.3.1 10.1.3.2
route 10.1.1.0 255.255.255.128 10.1.3.2
secret /etc/keys.f
auth MD5
cipher DES-CBC
tun-mtu 1500 |
|
Вернуться к началу |
|
|
Sol
Зарегистрирован: 05.12.2003 Сообщения: 427 Откуда: Томск
|
Добавлено: Вт Апр 18 2006 13:03 Заголовок сообщения: |
|
|
на сайте openvpn достаточно подробно расписаны настройки, в том числе и по фаерволу..
Как минимум в фаерволе надо разрешить приём пакетов с туннельных интерфейсов.. _________________ In My Humble Opinion |
|
Вернуться к началу |
|
|
and3008
Зарегистрирован: 12.10.2001 Сообщения: 14893 Откуда: Н.Новгород
|
Добавлено: Вт Апр 18 2006 23:40 Заголовок сообщения: |
|
|
Там же на сайте написано как правильно отдавать клиенту информацию о маршрутизации методом PUSH.
Почитайте внимательно. Там вроде все ясно и понятно.
Только будьте аккуратны с передачей подсети, в которой стоит сам VPN-сервер. У меня случился казус, на клиенте была загрузка CPU 100% и трафик не шел.
Решение в том, что надо сперва передать отдельно адрес VPN-сервера и шлюзом через Интернет, а уж потом можно передать всю подсеть в которой стоит VPN. |
|
Вернуться к началу |
|
|
named
Зарегистрирован: 25.09.2005 Сообщения: 112
|
Добавлено: Пт Май 12 2006 16:28 Заголовок сообщения: |
|
|
поднял я тунель, если кому интересно тут описание что как делал
за основу взята статья с onix.opennet.ru
Туннель на OpenVPN
На шлюзах стоит Mandrake 10.2.
Внешние интерфейсы eth0
Внутренние интерфейсы eth1
Интерфейсы туннеля tun0
Локальная сеть 1 А.А.А.А
eth0 X.X.X.X
eth1 A.A.A.1
tun0 C.C.C.1
Локальная сеть 2 В.В.В.В
eth0 Y.Y.Y.Y
eth1 B.B.B.1
tun0 C.C.C.2
на шлюзе сети 1
linux.conf
proto udp
dev tun
port 5009
comp-lzo
ping 15
verb 3
user openvpn
group openvpn
persist-tun
persist-key
local X.X.X.X
remote Y.Y.Y.Y
ifconfig C.C.C.1 C.C.C.2
route В.В.В.В 255.255.255.0 C.C.C.2
secret /etc/static.key
auth MD5
cipher DES-CBC
tun-mtu 1500
на шлюзе сети 2
linux.conf
proto udp
dev tun
port 5009
comp-lzo
ping 15
verb 3
user openvpn
group openvpn
persist-tun
persist-key
local Y.Y.Y.Y
remote X.X.X.X
ifconfig C.C.C.2 C.C.C.1
route A.A.A.A 255.255.255.0 C.C.C.1
secret /etc/static.key
auth MD5
cipher DES-CBC
tun-mtu 1500
скрипт запуска на обоих машинах
#!/bin/sh
#
# chkconfig: 345 80 30
# Location of openvpn binary
openvpn="/usr/local/sbin/openvpn"
# Lockfile
lock="/var/lock/subsys/openvpn"
# PID directory
piddir="/var/run/openvpn"
# Our working directory
work=/etc
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0
[ -f $openvpn ] || exit 0
# See how we were called.
case "$1" in
start)
gprintf "Starting openvpn: "
/sbin/modprobe tun >/dev/null 2>&1
# From a security perspective, I think it makes
# sense to remove this, and have users who need
# it explictly enable in their --up scripts or
# firewall setups.
#echo 1 > /proc/sys/net/ipv4/ip_forward
if [ ! -d $piddir ]; then
mkdir $piddir
fi
if [ -f $lock ]; then
# we were not shut down correctly
for pidf in `/bin/ls $piddir/*.pid 2>/dev/null`; do
if [ -s $pidf ]; then
kill `cat $pidf` >/dev/null 2>&1
fi
rm -f $pidf
done
rm -f $lock
sleep 2
fi
rm -f $piddir/*.pid
cd $work
# Start every .conf in $work and run .sh if exists
errors=0
successes=0
for c in `/bin/ls *.conf 2>/dev/null`; do
bn=${c%%.conf}
if [ -f "$bn.sh" ]; then
. $bn.sh
fi
rm -f $piddir/$bn.pid
$openvpn --user openvpn --group openvpn --daemon --writepid $piddir/$bn.pid --config $c --cd $work
if [ $? = 0 ]; then
successes=1
else
errors=1
if [ -f "$bn.pos.sh" ]; then
. $bn.pos.sh
fi
fi
done
if [ $errors = 1 ]; then
failure; echo
else
success; echo
fi
if [ $successes = 1 ]; then
touch $lock
fi
;;
stop)
gprintf "Shutting down openvpn: "
for pidf in `/bin/ls $piddir/*.pid 2>/dev/null`; do
if [ -s $pidf ]; then
kill `cat $pidf` >/dev/null 2>&1
fi
rm -f $pidf
done
success; echo
rm -f $lock
;;
restart)
$0 stop
sleep 2
$0 start
;;
reload)
if [ -f $lock ]; then
for pidf in `/bin/ls $piddir/*.pid 2>/dev/null`; do
if [ -s $pidf ]; then
kill -HUP `cat $pidf` >/dev/null 2>&1
fi
done
else
gprintf "openvpn: service not started\n"
exit 1
fi
;;
reopen)
if [ -f $lock ]; then
for pidf in `/bin/ls $piddir/*.pid 2>/dev/null`; do
if [ -s $pidf ]; then
kill -USR1 `cat $pidf` >/dev/null 2>&1
fi
done
else
gprintf "openvpn: service not started\n"
exit 1
fi
;;
condrestart)
if [ -f $lock ]; then
$0 stop
# avoid race
sleep 2
$0 start
fi
;;
status)
if [ -f $lock ]; then
for pidf in `/bin/ls $piddir/*.pid 2>/dev/null`; do
if [ -s $pidf ]; then
kill -USR2 `cat $pidf` >/dev/null 2>&1
fi
done
gprintf "Status written to /var/log/messages\n"
else
gprintf "openvpn: service not started\n"
exit 1
fi
;;
*)
gprintf "Usage: openvpn {start|stop|restart|condrestart|reload|reopen|status}\n"
exit 1
esac
exit 0
что делать что бы всё заработало.
Ставим пакеты openssl liblzo liblzo-devel openvpn, могут понадобится пакеты связанные с шифрованием.
Я конкретно ставил так
Urpmi openvpn
И тд.
Добавляем пользователя и группу
useradd openvpn
генерим ключ
openvpn --genkey --secret /etc/static.key
проверям ключ
openvpn --test-crypto --secret /etc/static.key
итак, у нас 3 файла получилось на машинах
- скрипт запуска openvpn /etc/init.d
- ключ static.key /etc
- конфиг linux.conf /etc
static.key копируется с машины на которой был сгенерён туда где его ещё нет.
Запускаем openvpn
После этого должен появиться tun0, на обоих концах.
Он должен пинговаться по крайней мере на шлюзе. Далее пингуем удаленный tun.
И так далее пингуем сети.
У меня стоит shorewall. Поэтому я просто отредактировал соответствующие файлы.
Interfaces
Понятно что там уже было
net eth0 detect
loc eth1 detect
я добавил только
tun tun0 detect
policy
loc net ACCEPT
loc fw ACCEPT
fw loc ACCEPT
fw net ACCEPT
# добавил
loc tun ACCEPT
tun loc ACCEPT
#
net all DROP info
all all REJECT info
и в zones добавил
tun tun tunnel
перезагрузил соответствующие сервисы.
И туннель поднялся. При этом если на машине в локальной сети не прописать «шлюз по умолчанию»
в сетевых настройках, то эта машина не будет иметь доступа к другим машинам из другой сети – понятно почему )
Кстати при этом интернетовский трафик ходит через squid мимо туннеля, для экономии трафика. |
|
Вернуться к началу |
|
|
|