HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > РАЗРАБОТКА > Для Администратора > Linux, Freebsd, *nix
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 31.03.2009, 14:57
past0r
Познающий
Регистрация: 03.11.2008
Сообщений: 96
С нами: 9220465

Репутация: 0
По умолчанию

router office-1 router office-2
router VPN Server router VPN Client
LAN-1 ------| eth0 tap0 | --------- VPN ---------- | tap0 eth0 | ------ LAN-2
eth1 | --Inet Inet-- | eth1

LAN-1 = eth0 = 192.168.100.1/24
LAN-2 = eth0 = 192.168.150.1/24
VPN = tap0 = 192.168.200/24

Версия OpenVPN: 2.1_rc11 i486-pc-linux-gnu [SSL] [LZO2] [EPOLL] [PKCS11] built on Sep 18 2008

Параметры роутера с сервером OpenVPN
Версия OpenVPN: 2.1_rc11 i486-pc-linux-gnu [SSL] [LZO2] [EPOLL] [PKCS11] built on Sep 18 2008

VPN Server Config
---------------------
iGate:~# cat /etc/openvpn/server.conf
mode server
tls-server
daemon

ifconfig 192.168.200.1 255.255.255.0

port 1194
proto tcp-server
dev tap0

ca /root/openvpn/keys/ca.crt
cert /root/openvpn/keys/iGate.crt
key /root/openvpn/keys/iGate.key # This file should be kept secret
dh /root/openvpn/keys/dh1024.pem

client-config-dir /etc/openvpn/ccd
route 192.168.150.0 255.255.255.0 192.168.200.1
keepalive 10 120
client-to-client
comp-lzo
persist-key
persist-tun
verb 9
log-append /var/log/openvpn.log
---------------------

в /etc/openvpn/ccd находится 1 файл
---------------------
iGate:/etc/openvpn/ccd# cat NTagil
# приcваиваем ip-адрес
ifconfig-push 192.168.200.2 255.255.255.0

# роутинг на сети центрального офиса
push "route 192.168.100.0 255.255.255.0 192.168.200.1"
---------------------

кусочек конфига фаервола
---------------------
echo 1 > /proc/sys/net/ipv4/ip_forward
ipt="/sbin/iptables"

$ipt -v -A INPUT -i tun+ -j ACCEPT
$ipt -v -A OUTPUT -o tun+ -j ACCEPT
$ipt -A FORWARD -i tun+ -j ACCEPT
$ipt -A FORWARD -o tun+ -j ACCEP
---------------------

Таблица маршрутов:
---------------------
iGate:/etc/openvpn/ccd# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
217.199.246.12 * 255.255.255.252 U 0 0 0 eth1
localnet * 255.255.255.0 U 0 0 0 eth0
192.168.150.0 192.168.200.2 255.255.255.0 UG 0 0 0 tap0
192.168.200.0 * 255.255.255.0 U 0 0 0 tap0
default XXX.XXX.XXX.XX 0.0.0.0 UG 0 0 0 eth1
---------------------

Конфа Роутера в филиале
Версия OpenVPN: 2.1_rc11 i486-pc-linux-gnu [SSL] [LZO2] [EPOLL] [PKCS11] built on Sep 18 2008

Client config
---------------------
tgate:~/net# cat /etc/openvpn/client.conf
client
dev tap0
proto tcp

# адрес сервера в центрально офисе
remote XXX.XXX.XXX.XXX 1194
resolv-retry infinite
nobind
persist-key
persist-tun
comp-lzo
ns-cert-type server
ca /root/openvpn/keys/ca.crt
cert /root/openvpn/keys/ekb.crt
key /root/openvpn/keys/ekb.key
log-append /var/log/openvpn.log
status /var/log/openvpn/openvpn-status.log
---------------------

кусочек конфига фаервола
---------------------
echo 1 > /proc/sys/net/ipv4/ip_forward
ipt="/sbin/iptables"

$ipt -v -A INPUT -i tun+ -j ACCEPT
$ipt -v -A OUTPUT -o tun+ -j ACCEPT
$ipt -A FORWARD -i tun+ -j ACCEPT
$ipt -A FORWARD -o tun+ -j ACCEP
---------------------

Таблица маршрутов:
---------------------
tgate:~/net# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
93.95.168.96 * 255.255.255.252 U 0 0 0 eth1
192.168.100.0 192.168.200.1 255.255.255.0 UG 0 0 0 tap0
192.168.150.0 * 255.255.255.0 U 0 0 0 eth0
192.168.200.0 * 255.255.255.0 U 0 0 0 tap0
default XXX.XXX.XXX.XXX 0.0.0.0 UG 0 0 0 eth1
---------------------

История такая:

OpenVPN работает. Роутеры друг друга пингуют.
С роутера филиала (office-2) можно пропиновать ВСЮ локальную сеть центрального офиса LAN-1, а из локальной сети филиала (LAN-2) не пингуется ни роутер, ни локальная сеть.
И локальной сети центрально офиса можно пинговать роутер филиала, а дальше уже не идет.

В Чем может быть загвоздка, я уже голову всю сломал! Ж(

Проблема не в openvpn. Он работает стабильно, по какой то причине не порпрасываются пакеты между интерфейсами. на рутере удаленного подразделения, в чем может быть проблема, если форвардинг включен
 
Ответить с цитированием

  #2  
Старый 08.04.2009, 12:03
xatop
Участник форума
Регистрация: 20.02.2009
Сообщений: 163
С нами: 9063230

Репутация: 0
По умолчанию

allow tcp from me to [vpn server] dst-port 1723 out
allow tcp from [vpn server] 1723 to me in
 
Ответить с цитированием

  #3  
Старый 08.04.2009, 12:13
php_master
Новичок
Регистрация: 06.03.2010
Сообщений: 8
С нами: 8517442

Репутация: 5
По умолчанию

Ты уверен что

Цитата:

tgate:~/net# cat /etc/openvpn/client.conf
client
dev tap0
proto tcp

и

Цитата:

$ipt -v -A INPUT -i tun+ -j ACCEPT
$ipt -v -A OUTPUT -o tun+ -j ACCEPT
$ipt -A FORWARD -i tun+ -j ACCEPT
$ipt -A FORWARD -o tun+ -j ACCEP

это нормально?
 
Ответить с цитированием

  #4  
Старый 08.04.2009, 12:29
xatop
Участник форума
Регистрация: 20.02.2009
Сообщений: 163
С нами: 9063230

Репутация: 0
По умолчанию

Рискну слегка - может давно юзаете

но мне эторешение очень нравится:

Соединяем две ethernet сетки чтобы они видели друг друга
как будто находятся в одному коммутаторе.

Делать будем на основе ядерного netgraph,
в частности модули ng_ether и ng_bridge.

Добавляем в /boot/loader.conf

netgraph_load="YES"
ng_ether_load="YES"
ng_bridge_load="YES"

Есть 2 варианта работы системы

1. Без модуля ng_bridge.
Мы получим как бы объединение сетевых интерфейсов в один невидимый.
Сами сервера с этими интерфейсами не будут видеть трафик на них.
Получается прозрачное соединение как будто между сетями
протянули физический кабель.
Весь трафик приходящий на интерфейс одного из серверов
будет прозрачно проходить на другой.

2. С модулем ng_bridge.
Мы получим как бы включение интерфейсов на обоих серверах в один свитч.
Сервера будут видеть трафик на интерфейсах.
Трафик не предназначеный для соседней
сети не пойдет по каналу (реализация обычного свитча).

Конфигурация:

Имеем два типичных роутера.

1.
Два сетевых интерфейса
fxp0 - белый интернет адрес для примера 1.1.1.1
fxp1 - серый локальный адрес 192.168.0.1

2.
Два сетевых интерфейса
fxp0 - белый интернет адрес для примера 1.1.1.2
fxp1 - серый локальный адрес 192.168.0.2

При загрузке модуля ng_ether на обоих роутерах в netgraph
атоматически были созданы узлы с названием сетевых карт.

lmik# ngctl list
There are 3 total nodes:
Name: ngctl3178 Type: socket ID: 00000009 Num hooks: 0
Name: fxp0 Type: ether ID: 00000001 Num hooks: 0
Name: fxp1 Type: ether ID: 00000002 Num hooks

Вариант №1 непрактичный и рассматривать его не будем,
просто напишу конфигурацию графов вдруг кому-то понадобится.

ngctl mkpeer fxp0 ksocket lower inet/dgram/udp
ngctl msg switch:link1 bind inet/1.1.1.1:1234
ngctl msg switch:link1 connect inet/1.1.1.2:1234
ngctl msg fxp1: setpromisc 1
ngctl msg fxp1: setautosrc 0

Вариант №2

На первом сервере конфигурация нетграфов будет выглядеть так:

#Создаем узел bridge и подключаем к его хуку link0 физический (нижний) уровень fxp1
ngctl mkpeer fxp1: bridge lower link0
#назовем этот узел switch
ngctl name fxp1:lower switch
#создадим узел ksocket и подсоединим его хуком inet/dgram/udp к хуку link1 нашего switch
ngctl mkpeer switch: ksocket link1 inet/dgram/udp
#Отправляем сообщение узлу switch:link1 (туда подключен узел ksocket)
#чтобы тот забиндил сокет для входящего трафика на нашем внешнем IP
ngctl msg switch:link1 bind inet/1.1.1.1:1234
#Отправляем команду узлу switch:link1 (туда подключен узел ksocket)
#чтобы тот соединился со вторым сервером
ngctl msg switch:link1 connect inet/1.1.1.2:1234
#Соединяем хук link2 нашего switch с верхним уровнем интерфейса fxp1
#т.е подключаем наш сервер в наш виртуальный свитч.
ngctl connect switch: fxp1: link2 upper
#включаем на сетевой карте прослушку всех пакетов,
#а не только тех что предназначаются ей.
ngctl msg fxp1: setpromisc 1
ngctl msg fxp1: setautosrc 0

На втором нужно изменить строчки:

ngctl msg switch:link1 bind inet/1.1.1.2:1234
ngctl msg switch:link1 connect inet/1.1.1.1:1234

Просто поменять местами адреса.

Для красоты оформляем запуск нашего виртуалсвитча в скрипт
и при желании кладем в /usr/local/etc/rc.d

#!/bin/sh

#тут указываем наш белый адрес
self=1.1.1.1
peer=1.1.1.2
#тут порт по которому будет бегать трафик
port=1234
#интерфейс который включаем в свитч
if=fxp1
case "$1" in
start)
echo "Starting netgraph switch."
ngctl mkpeer ${if}: bridge lower link0
ngctl name ${if}:lower switch
ngctl mkpeer switch: ksocket link1 inet/dgram/udp
ngctl msg switch:link1 bind inet/${self}:${port}
ngctl msg switch:link1 connect inet/${peer}:${port}
ngctl connect switch: ${if}: link2 upper
ngctl msg ${if}: setpromisc 1
ngctl msg ${if}: setautosrc 0
echo "Ok."
exit 0
;;
stop)
echo "Stopping netgraph switch."
/usr/sbin/ngctl shutdown ${if}:
/usr/sbin/ngctl shutdown switch:
echo "Ok."

exit 0
;;
restart)
sh $0 stop
sh $0 start
;;
*)
echo "Usage: `basename $0` { start | stop | restart }"
exit 64
;;
esac

Красота какая, никаких впн крутить не надо, просто запустить скрипт,
никаких реконектов и т.п...

Для просмотра скрытого содержимого необходимо иметь 5 сообщений, у вас 0 сообщений.
 
Ответить с цитированием

  #5  
Старый 08.04.2009, 12:33
php_master
Новичок
Регистрация: 06.03.2010
Сообщений: 8
С нами: 8517442

Репутация: 5
По умолчанию

Красиво, только от необходимости в VPN это не спасает.
 
Ответить с цитированием

  #6  
Старый 08.04.2009, 13:04
xatop
Участник форума
Регистрация: 20.02.2009
Сообщений: 163
С нами: 9063230

Репутация: 0
По умолчанию

Цитата:

PHP_Master написал(а):

Красиво, только от необходимости в VPN это не спасает.

с чуть большими заморами в конфиах запускается связка с шифрованием траффика.
 
Ответить с цитированием

  #7  
Старый 09.04.2009, 20:50
past0r
Познающий
Регистрация: 03.11.2008
Сообщений: 96
С нами: 9220465

Репутация: 0
По умолчанию

Опытным путем выяснил, что между собой не общаются tap0 и eth0 на втором шлюзе, который находится в удаленном подразделении.

ip_forward = 1

в чем может быть проблема?
 
Ответить с цитированием

  #8  
Старый 10.04.2009, 12:17
xatop
Участник форума
Регистрация: 20.02.2009
Сообщений: 163
С нами: 9063230

Репутация: 0
По умолчанию

Цитата:

past0r написал(а):

Опытным путем выяснил, что между собой не общаются tap0 и eth0 на втором шлюзе, который находится в удаленном подразделении.

ip_forward = 1

в чем может быть проблема?

вот так и хочется сказать: ы жедезе!
Но пока не говорю, спрашиваю: что там за шелезяго?
 
Ответить с цитированием

  #9  
Старый 10.04.2009, 14:12
past0r
Познающий
Регистрация: 03.11.2008
Сообщений: 96
С нами: 9220465

Репутация: 0
По умолчанию

Цитата:

xatop написал(а):

вот так и хочется сказать: ы жедезе!
Но пока не говорю, спрашиваю: что там за шелезяго?

Что именно интересует? Железка старая, очень!
 
Ответить с цитированием

  #10  
Старый 10.04.2009, 15:27
xatop
Участник форума
Регистрация: 20.02.2009
Сообщений: 163
С нами: 9063230

Репутация: 0
По умолчанию

Цитата:

past0r написал(а):

Что именно интересует? Железка старая, очень!

вот и попробуй сменить, не поможет - будем думать дальше.
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.