Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

openvpn тунель

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Unix
Предыдущая тема :: Следующая тема  
Автор Сообщение
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 мимо туннеля, для экономии трафика.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Unix Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...