The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"openvpn bridge фильтрация между клиентами"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [ Отслеживать ]

"openvpn bridge фильтрация между клиентами"  
Сообщение от Susanin_ email(ok) on 28-Мрт-08, 15:40 
Добрый день!

Стоит задача организовать связь между клиентами, разрешив работу только определенных сервисов.
Поднял сервер openvpn, создан интерфейс tap0, все настроил.
Клиенты цепляються, с помощью параметра client-to-client клиенты полностью видят друг друга.
С самого сервера vpn-клиенты никуда дальше не выходят. Т.е. с помощью vpn мы лишь объединяем клиентов в l2 сегмент.
Теперь стоит задача отфильтровать на сервере прохождение пакетов между клиентами только по определенным портам.
И тут засада - на tap0 интерфейсе видны только пакеты, идущие от клиента на сервер vpn. А пакеты между клиентами в незашифрованном виде невидны нигде.

Вопрос - это кривизна настройки или так и должно быть, и нет вариантов для выполнения фильтрации ?

Система - Centos 5.1
Linux 2.6.18-53.1.14.el5
openvpn-2.0.9-1.el5.rf

Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "openvpn bridge фильтрация между клиентами"  
Сообщение от DN (ok) on 28-Мрт-08, 16:44 

>Теперь стоит задача отфильтровать на сервере прохождение пакетов между клиентами только по
>определенным портам.
>И тут засада - на tap0 интерфейсе видны только пакеты, идущие от
>клиента на сервер vpn. А пакеты между клиентами в незашифрованном виде
>невидны нигде.
>
>Вопрос - это кривизна настройки или так и должно быть, и нет
>вариантов для выполнения фильтрации ?

Поднятие дополнительного loopback интерфейса не поможет?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "openvpn bridge фильтрация между клиентами"  
Сообщение от Susanin_ email(ok) on 28-Мрт-08, 17:17 
>
>Поднятие дополнительного loopback интерфейса не поможет?

Незнаю.
Что бы проверить нужно понять - как заставить межабонентский трафик ходить через этот дополнительный loopback  интерфейс ?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "openvpn bridge фильтрация между клиентами"  
Сообщение от DN (ok) on 28-Мрт-08, 20:08 
>>
>>Поднятие дополнительного loopback интерфейса не поможет?
>
>Незнаю.
>Что бы проверить нужно понять - как заставить межабонентский трафик ходить через
>этот дополнительный loopback  интерфейс ?

Policy Routing использовать.


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "openvpn bridge фильтрация между клиентами"  
Сообщение от Susanin_ email(ok) on 31-Мрт-08, 13:16 
>http://openvpn.net/index.php/documentation/howto.html
>Uncomment out the client-to-client directive if you would like connecting clients to
>be able to reach each other over the VPN. By default,
>clients will only be able to reach the server.

Мне как раз и нужна эта директива + фильтрация этого трафика.

>Policy Routing использовать.

Все выходные провел в этой документации.
Но данный способ здесь не применим.
Суть в том, что межклиентское взаимодействие осуществляется "внутри" демона openvpn. Т.е. прохождение пакетов возможно и при состоянии интерфейса tap0 в down. При этом никаких строк в таблице роутинга для vpn-ких IP нет, соотвественно и Policy Routing использовать не получается.
Пакеты выходят в стек TCP/IP сервера только тогда, когда они предназначены для других подсетей. Т.е. когда VPN-клиент хочет выйти в локальную сеть, подключенную к VPN-серверу. Вот тогда эти пакеты видны снифером на интерфейсе tap0 и их можно фильтровать и делать все что угодно.

Первый раз столкнулся с тем, что дистриб на linux проигрывает win*+ком. программа по сетевым позициям.
Тот-же kerio winroute firewall позволяет осуществлять фильтрацию трафика vpn client <--> vpn client.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

8. "openvpn bridge фильтрация между клиентами"  
Сообщение от DogEater (??) on 04-Апр-08, 13:26 
>Мне как раз и нужна эта директива + фильтрация этого трафика.

#grep bin /etc/openvpn/server.conf
learn-address /etc/openvpn/bin/ovpnfw

где learn-address - это директива какой скрипт запускать при подключении/отключении клиента.
/etc/openvpn/bin/ovpnfw - самписный скрипт на Perl, который прописывает/удаляет правила iptables при подключении/отключении каждого клиента в соответствие с конфигурацией для каждого клиента.
Поскольку сервер у меня не кошерный и работает из под рута, то проблем с редактированием "табличек" не возникает. Сервис крутится уже больше 2 лет.
Чем вам не нравится такое решение?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

9. "openvpn bridge фильтрация между клиентами"  
Сообщение от Susanin_ email(ok) on 04-Апр-08, 14:55 
>Чем вам не нравится такое решение?

Правила слушают на интерфейсе ethX ?
Но там пакеты-то шифрованные! Как Вы внутрь него "залезете" что бы запретить, например весь TCP ?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

10. "openvpn bridge фильтрация между клиентами"  
Сообщение от DogEater (??) on 05-Апр-08, 16:05 
>>Чем вам не нравится такое решение?
>
>Правила слушают на интерфейсе ethX ?
>Но там пакеты-то шифрованные! Как Вы внутрь него "залезете" что бы запретить,
>например весь TCP ?

нет, правила фильтруют на интерфейсе tun0 (можно и на tap0). Как вы сами справедливо заметили, фильтровать на eth0 трафик снаружи туннеля есть бессмыслица.

Я не совсем понял, каким это образом часть пакетов не видна на интерфейсе tap0?
у меня на tun0 все пакеты (входящие/исходящие) tcpdump видит как обычно.
Вы пытаетесь сделать отдельные шифрованные сети для клиентов в пространстве одной локалки или просто организуете связь между группами людей подключающихся к вашему серверу с любой точки?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

12. "openvpn bridge фильтрация между клиентами"  
Сообщение от Susanin_ email(ok) on 06-Апр-08, 11:14 

>просто организуете связь между группами людей подключающихся к вашему серверу
>с любой точки?

Именно.
Одна L2 сеть для всех клиентов. Никакого роутинга из/в эту сеть с других подсетей нет.
Поэтому и пакеты идущие от одного клиента к другому, НЕ попадают на tap интерфейс.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

14. "openvpn bridge фильтрация между клиентами"  
Сообщение от DogEater (ok) on 07-Апр-08, 22:16 
>
>>просто организуете связь между группами людей подключающихся к вашему серверу
>>с любой точки?
>
>Именно.
>Одна L2 сеть для всех клиентов. Никакого роутинга из/в эту сеть с
>других подсетей нет.
>Поэтому и пакеты идущие от одного клиента к другому, НЕ попадают на
>tap интерфейс.

Вопрос в том, почему они не попадают туда?
Я мог бы понять ситуацию, когда клиенты существуют в одной локалке. тогда пакеты пойдут напрямую между ними.
Если же люди физически не находятся в одной сети, то проблема скорее в маршрутизации

скинь кусок конфига, который устанавливает клиентам маршруты (и к нему бы желательно схему подключения с примерами ip адресов)

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "openvpn bridge фильтрация между клиентами"  
Сообщение от DogEater (??) on 29-Мрт-08, 22:32 
http://openvpn.net/index.php/documentation/howto.html
Uncomment out the client-to-client directive if you would like connecting clients to be able to reach each other over the VPN. By default, clients will only be able to reach the server.


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "openvpn bridge фильтрация между клиентами"  
Сообщение от S.Listopad email on 01-Апр-08, 09:39 
>[оверквотинг удален]
>И тут засада - на tap0 интерфейсе видны только пакеты, идущие от
>клиента на сервер vpn. А пакеты между клиентами в незашифрованном виде
>невидны нигде.
>
>Вопрос - это кривизна настройки или так и должно быть, и нет
>вариантов для выполнения фильтрации ?
>
>Система - Centos 5.1
>Linux 2.6.18-53.1.14.el5
>openvpn-2.0.9-1.el5.rf

На сколько я понял на сервере запущен всего один процесс openvpn. Попробуйте вариант, когда для кажного клиента на сервере поднимается процесс openvpn, тогда у Вас на сервере будет столько сетевых интефейсов tun/tap сколько клиентов, и соответственно пакетики будут маршрутизироваться между этими интерфейсами, где вы и сможете их фильтровать.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

7. "openvpn bridge фильтрация между клиентами"  
Сообщение от Susanin_ email(ok) on 03-Апр-08, 16:51 
>На сколько я понял на сервере запущен всего один процесс openvpn. Попробуйте
>вариант, когда для кажного клиента на сервере поднимается процесс openvpn, тогда
>у Вас на сервере будет столько сетевых интефейсов tun/tap сколько клиентов,
>и соответственно пакетики будут маршрутизироваться между этими интерфейсами, где вы и
>сможете их фильтровать.

Идея понятна, но в моей ситуации не приемлимая.
Потенциальных клиентов больше тысячи, кто из них и когда будет подключаться - неизвестно. Понятно, что всех сразу не вытянет, но думаю 100-150 сессий одновременных - потянет.
Кроме того, несколько серверов - значит разнесение их по портам, и разные конфиги на клиентах. И клиенты должны будут перебирать порты, пока не найдут свободный демон.

Попробовал m0n0wall - там есть весь функционал, но именно в таком конфиге - не подойдет, ибо нам ненадо изменение дефолтного шлюза. Да и ограничение в 16 сессий не устраивает.
Спросил у них на форуме что за софт они используют для  VPN сервера - ответят - попробую этот сервер поднять на сервере, с ним еще покопаться.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

11. "openvpn bridge фильтрация между клиентами"  
Сообщение от Fresh (??) on 05-Апр-08, 17:20 
>[оверквотинг удален]
>И тут засада - на tap0 интерфейсе видны только пакеты, идущие от
>клиента на сервер vpn. А пакеты между клиентами в незашифрованном виде
>невидны нигде.
>
>Вопрос - это кривизна настройки или так и должно быть, и нет
>вариантов для выполнения фильтрации ?
>
>Система - Centos 5.1
>Linux 2.6.18-53.1.14.el5
>openvpn-2.0.9-1.el5.rf

необходимо просто разрешить форвард клиентам, к примеру:
iptables -I FORWARD -j ACCEPT -i ppp+ -o ppp+ -m multiport --dports 111,222,3333,44444

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

13. "openvpn bridge фильтрация между клиентами"  
Сообщение от Susanin_ email(ok) on 06-Апр-08, 11:15 
>необходимо просто разрешить форвард клиентам, к примеру:
>iptables -I FORWARD -j ACCEPT -i ppp+ -o ppp+ -m multiport --dports
>111,222,3333,44444

В OpenVPN нет интерфейсов ppp+

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

15. "openvpn bridge фильтрация между клиентами"  
Сообщение от Susanin_ email(ok) on 18-Апр-08, 19:01 
Ну в общем, если вдруг кому понадобиться решить похожую задачу - остановил свой выбор на m0n0wall. Делает все, что нужно, кроме пропуска броадкастов.
С нетерпением жду следующей версии pfSense, ибо там обещают фильтрацию OpenVPN Bridged траффика.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

16. "openvpn bridge фильтрация между клиентами"  
Сообщение от PavelR email(??) on 20-Апр-08, 06:53 
>Ну в общем, если вдруг кому понадобиться решить похожую задачу - остановил
>свой выбор на m0n0wall. Делает все, что нужно, кроме пропуска броадкастов.
>
>С нетерпением жду следующей версии pfSense, ибо там обещают фильтрацию OpenVPN Bridged
>траффика.

И какой же софт там используется в качестве впн-сервера ?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

17. "openvpn bridge фильтрация между клиентами"  
Сообщение от Susanin_ email(??) on 20-Апр-08, 13:08 
>И какой же софт там используется в качестве впн-сервера ?

Ответ на мой аналогичный вопрос - http://forum.m0n0.ch/index.php/topic,1826.0.html


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Спонсоры:
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2022 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру