The OpenNET Project / Index page

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

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

"Проблема проброса порта через OpenVPN канал"  +/
Сообщение от SpiN email(ok) on 30-Мрт-12, 15:57 
Здравствуйте, несколько дней рою топики, но никак не удаётся добиться результата.

Итак, описание систем и задачи:
2 компьютера на базе Fedora 16 соединены виртуальной сетью, OpenVPN 2.2.2 запущена сервером на одном (далее Сервер) и клиентом на другом (далее, Клиент).

Задача - сделать так, чтобы другие компьютеры при коннекте на Клиент по специальному порту (далее Порт) попадали на Сервер по другому порту (можно по этому же) через VPN канал.

Интерфейсы на Сервере:
eht0 - имеет сразу внешний выделенный ип адрес - <внешний ип>.
tun0 - виртуальный интерфейс, созданный OpenVPN сервером. Адрес - 10.10.0.1.

Конфиг OpenVPN на Сервере:
server 10.10.0.0 255.255.255.0
client-config-dir /etc/openvpn/ccd
route 192.168.207.0 255.255.255.0
(остальное ничего не менял из стандартного конфига)

Файл Клиента в ccd на Сервере:
iroute 192.168.207.0 255.255.255.0

Route на Сервере:
default        *.ru       0.0.0.0          UG  0  0  0  eht0
10.10.0.0      *          255.255.255.0    UG  0  0  0  tun0
10.10.0.2      *          255.255.255.255  UH  0  0  0  tun0
<внешний ип>   *          255.255.255.0    U   1  0  0  eht0
192.168.207.0  10.10.0.2  255.255.255.0    UG  0  0  0  tun0

Интерфейсы на Клиенте:
p33p1 - сетевая карта, адрес 192.168.207.100, внетренняя сеть.
tun1 - виртуальный интерфейс, созданный OpenVPN клиентом. Адрес - 10.10.0.6.

*На адрес 192.168.207.100 проброшен Порт с роутера 192.168.207.1, который выходит в интернет.

Конфиг OpenVPN на Клиенте - стандартный.

Route на Клиенте:
default           192.168.207.1    0.0.0.0          UG   0  0  0  p33p1
10.10.0.0         10.10.0.5        255.255.255.0    UG   0  0  0  tun1
10.10.0.5         *                255.255.255.255  UH   0  0  0  tun1
192.168.207.0     *                255.255.255.0    U    1  0  0  p33p1

Для перенаправления порта пробовал iptables и rinetd.

В конечном итоге нужно:
Любой компьютер из интернета при подключении к внешнему адресу роутера сети Клиента, а так же компьютеры внутренней сети Клиента при подключении к нему проходили такую цепочку:

Сonnect <внешний адрес роутера сети Клиента>:Порт --- (NAT роутера) --->> 192.168.207.100:Порт (p33p1 Клиента) --- (iptables/rinetd/другое) --->> 10.10.0.1:Порт/другой порт (tun0 Сервера). Протокол - UDP.

Итак, канал OpenVPN работает.
Пинг с Сервера на 10.10.0.6 (tun1 Клиента) проходит.
Пинг с Клиента на 10.10.0.1 (tun0 Сервера) проходит.
Пинг с Сервера на 192.168.207.100 (p33p1) проходит.

Проблема 1: Пинг с Сервера на 192.168.207.1 и внутренние компьютеры сети Клиента 192.168.207.* не проходит. Думаю, если Сервер не знает адреса запроса, то и соединения не выйдет из-за отсутствия отклика.

Проблема 2: Чем лучше и как пробросить Порт на Клиенте. Служба rinetd вроде бы должна перебросить, если прописать строчку 192.168.207.100 Порт 10.10.0.1 Порт/другой порт. Либо спец. правила SNAT, DNAT + FORWARD в iptables. Только узнать этого я не могу пока не разрешится Проблема 1.

Спасибо.

Ответить | Правка | Cообщить модератору

Оглавление

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


1. "Проблема проброса порта через OpenVPN канал"  +/
Сообщение от reader (ok) on 30-Мрт-12, 20:09 
>[оверквотинг удален]
> Сonnect <внешний адрес роутера сети Клиента>:Порт --- (NAT роутера) --->> 192.168.207.100:Порт
> (p33p1 Клиента) --- (iptables/rinetd/другое) --->> 10.10.0.1:Порт/другой порт (tun0
> Сервера). Протокол - UDP.
> Итак, канал OpenVPN работает.
> Пинг с Сервера на 10.10.0.6 (tun1 Клиента) проходит.
> Пинг с Клиента на 10.10.0.1 (tun0 Сервера) проходит.
> Пинг с Сервера на 192.168.207.100 (p33p1) проходит.
> Проблема 1: Пинг с Сервера на 192.168.207.1 и внутренние компьютеры сети Клиента
> 192.168.207.* не проходит. Думаю, если Сервер не знает адреса запроса, то
> и соединения не выйдет из-за отсутствия отклика.

хотите tun интерфейс, читайте про iroute в openvpn

> Проблема 2: Чем лучше и как пробросить Порт на Клиенте. Служба rinetd
> вроде бы должна перебросить, если прописать строчку 192.168.207.100 Порт 10.10.0.1 Порт/другой
> порт. Либо спец. правила SNAT, DNAT + FORWARD в iptables. Только
> узнать этого я не могу пока не разрешится Проблема 1.

tcpdump можно было бы и запустить, а там может что интересного увидели бы. DNAT должен справится, а вот с UDP можно и на не явные грабли наступить

> Спасибо.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Проблема проброса порта через OpenVPN канал"  +/
Сообщение от Кегна on 30-Мрт-12, 21:33 
>[оверквотинг удален]
>> и соединения не выйдет из-за отсутствия отклика.
> хотите tun интерфейс, читайте про iroute в openvpn
>> Проблема 2: Чем лучше и как пробросить Порт на Клиенте. Служба rinetd
>> вроде бы должна перебросить, если прописать строчку 192.168.207.100 Порт 10.10.0.1 Порт/другой
>> порт. Либо спец. правила SNAT, DNAT + FORWARD в iptables. Только
>> узнать этого я не могу пока не разрешится Проблема 1.
> tcpdump можно было бы и запустить, а там может что интересного увидели
> бы. DNAT должен справится, а вот с UDP можно и на
> не явные грабли наступить
>> Спасибо.

чота мне кажется что udp не полетит ))

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

8. "Проблема проброса порта через OpenVPN канал"  +/
Сообщение от reader (ok) on 01-Апр-12, 09:19 
>[оверквотинг удален]
>> хотите tun интерфейс, читайте про iroute в openvpn
>>> Проблема 2: Чем лучше и как пробросить Порт на Клиенте. Служба rinetd
>>> вроде бы должна перебросить, если прописать строчку 192.168.207.100 Порт 10.10.0.1 Порт/другой
>>> порт. Либо спец. правила SNAT, DNAT + FORWARD в iptables. Только
>>> узнать этого я не могу пока не разрешится Проблема 1.
>> tcpdump можно было бы и запустить, а там может что интересного увидели
>> бы. DNAT должен справится, а вот с UDP можно и на
>> не явные грабли наступить
>>> Спасибо.
> чота мне кажется что udp не полетит ))

почему же, чисто технически, сменили адрес в заголовке пакета, а дальше как обычно.
другой вопрос что с ними дальше будут делать

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

3. "Проблема проброса порта через OpenVPN канал"  +/
Сообщение от PavelR (ok) on 30-Мрт-12, 23:21 
> Здравствуйте, несколько дней рою топики, но никак не удаётся добиться результата.
> Итак, описание систем и задачи:
> 2 компьютера на базе Fedora 16 соединены виртуальной сетью, OpenVPN 2.2.2 запущена
> сервером на одном (далее Сервер) и клиентом на другом (далее, Клиент).

по сути, на Сервер будет два провайдера.

Исходя из этого, читайте

http://www.opennet.dev/tips/2009_policy_route_linux.shtml
http://www.opennet.dev/tips/1651_route_iptables_linux_nat.shtml

На всё что прилетит по туннельному интерфейсу, Сервер должен будет ответить в него же.
Именно поэтому мы и считаем, что у Сервер будет два провайдера, поскольку сервисом Сервер через туннель будет пользоваться весь Интернет, а не ограниченный набор подсеток.
(Также, если ответы пойдут туда же, откуда пришли, то решится Проблема1).

на Клиент возможно тоже делать маркировки и маршрутизацию исходя из значений маркеров,
но вникание в дальнейшую суть ситуации  говорит, что вам этого не потребуется.

>[оверквотинг удален]
>  0  tun0
> <внешний ип>   *        
>   255.255.255.0    U   1  
> 0  0  eht0
> 192.168.207.0  10.10.0.2  255.255.255.0    UG  0  
> 0  0  tun0
> Интерфейсы на Клиенте:
> p33p1 - сетевая карта, адрес 192.168.207.100, внетренняя сеть.
> tun1 - виртуальный интерфейс, созданный OpenVPN клиентом. Адрес - 10.10.0.6.
> *На адрес 192.168.207.100 проброшен Порт с роутера 192.168.207.1, который выходит в интернет.

Если возможно, то стоит избежать DNAT/ проброса порта на Клиенте, указав на 192.168.207.1 маршрут к Сервер через Клиент и исправив проброс порта непосредственно на конечное назначение.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

4. "Проблема проброса порта через OpenVPN канал"  +/
Сообщение от SpiN email(ok) on 31-Мрт-12, 00:57 
> по сути, на Сервер будет два провайдера.
> Исходя из этого, читайте
> http://www.opennet.dev/tips/2009_policy_route_linux.shtml
> http://www.opennet.dev/tips/1651_route_iptables_linux_nat.shtml

Статьи серьёзные, почитаю. Спасибо.

> Если возможно, то стоит избежать DNAT/ проброса порта на Клиенте, указав на
> 192.168.207.1 маршрут к Сервер через Клиент и исправив проброс порта непосредственно
> на конечное назначение.

На компьютере внетренней сети Клиента прокинул роут до сети 10.10.0.* и, о чудо, есть пинг и коннект на Сервер. Пока не знаю, есть ли возможность сделать по аналогии с роутером на 192.168.207.1. Однако, это решение, хоть и не совсем безопасное.

Роюсь дальше.

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

5. "Проблема проброса порта через OpenVPN канал"  +/
Сообщение от SpiN email(ok) on 31-Мрт-12, 20:34 
Странно, прописываю на компьютере внетренней сети route ADD 10.10.0.0 MASK 255.255.255.0 192.168.207.100, попадаю на Сервер (при подключении на 10.10.0.1). Прописываю аналог в разделе маршрутизации на роутере + проброс Порта на 10.10.0.1 - нет отклика. ((
Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

6. "Проблема проброса порта через OpenVPN канал"  +/
Сообщение от PavelR (??) on 31-Мрт-12, 23:10 
> Странно, прописываю на компьютере внетренней сети route ADD 10.10.0.0 MASK 255.255.255.0
> 192.168.207.100, попадаю на Сервер (при подключении на 10.10.0.1). Прописываю аналог в
> разделе маршрутизации на роутере + проброс Порта на 10.10.0.1 - нет
> отклика. ((

Никаких странностей, только правила маршрутизации и трансляции адресов.

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

7. "Проблема проброса порта через OpenVPN канал"  +/
Сообщение от reader (ok) on 01-Апр-12, 09:16 
> Странно, прописываю на компьютере внетренней сети route ADD 10.10.0.0 MASK 255.255.255.0
> 192.168.207.100, попадаю на Сервер (при подключении на 10.10.0.1). Прописываю аналог в
> разделе маршрутизации на роутере + проброс Порта на 10.10.0.1 - нет
> отклика. ((

потому что нет маршрута через tun для ответных пакетов на сервере, адрес то там не внутренней сети, не доделали вы своих двух провайдеров, для проверки сделайте SNAT на tun клиента

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

9. "Проблема проброса порта через OpenVPN канал"  +/
Сообщение от SpiN email(ok) on 01-Апр-12, 19:42 
> потому что нет маршрута через tun для ответных пакетов на сервере, адрес
> то там не внутренней сети, не доделали вы своих двух провайдеров,
> для проверки сделайте SNAT на tun клиента

Скорее всего других вариантов нет.
Пробовал на другом роутере маршрутизацию на 10.10.0.* - сеть пингует, но вот пробросить порт можно только в подсеть роутера 192.168.207.*, другого выбора не даёт. Возможно, такие малофункциональные роутеры.

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

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

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

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