1

Тема: pppoe+vpn одновременно

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

iptables -t nat -A PREROUTING —s 95.90.10.3 —protocol tcp —source-port 4780 —in-interface ppp0
iptables -t nat -A POSTROUTING —s 192.168.20.20 —protocol udp —destination-port 4780 —in-interface vpn0

тоесть ип 95,90,10,3 стучится на пппое интерфейс по порту 4780 и его отсылают на  192,168,20,20 также на порт 4780
впн поднят до 192,168,20,20.
или надо еще чтото?)))
еще не вкурил как автозапуск делать. пока курю.

Debian 5.0

2

Re: pppoe+vpn одновременно

arenkir пишет:

как известно два шлюза в линуксе быть не может. или не должно.

Это ты о чем? Кажется ты в терминах проседаешь.
По правилам. Критерия я вижу а где действие??
Задавая вопрос прояви уважение к тем, от кого ждешь помощи.
Сформулируй по человечески суть проблемы.
А то фразы:
"есть локалка.
в локалку надо поднять впн. и через него пробросить тех, кто лезет на пппое на определеный порт."
У меня вызывают ассоциации с "Абырвалг"-гом Шарикова wink.

"Есть в демократии что-то такое,
до чего неприятно касаться рукою."
----------------------------------------------------------------------------------------------------------------
"Когда в обществе нет цветовой дифференциации штанов — то нет цели! А когда нет цели…"

3

Re: pppoe+vpn одновременно

на компе 3 сетевых
через eth0 подниматся ppp0 для инета
через eth1 домашняя сеть
через eth2 локалка
на компе еще поднимается vpn0 до ip адреса (там vpn сервер) находящегося в локалке
надо чтобы внешние юзеры (определённый диапозон) заходившие по внешнему ip и по определеному порту (через ppp0), перенапрявлялись через vpn0 до того сервера в локалке через eth2 интерфейс

Debian 5.0

4

Re: pppoe+vpn одновременно

У vpn0 какой адрес? 192.168.20.20?
И какой протокол?
У тебя в первом правиле критерий tcp во втором udp

"Есть в демократии что-то такое,
до чего неприятно касаться рукою."
----------------------------------------------------------------------------------------------------------------
"Когда в обществе нет цветовой дифференциации штанов — то нет цели! А когда нет цели…"

5

Re: pppoe+vpn одновременно

vpn0 имеет 192.168.20.252
192.168.20.20 это ип впн сервера в локалке до которого поднимается vpn0
про эту путаницу немного понял. а без протокола можно просто портфорвардинг сделать? туда обратно один порт 4780
дополнение
программа работает по upd
изменил пост.
получается так?

iptables -t nat -A PREROUTING —s 95.90.10.3 —p upd —sport 4780 —in-interface ppp0
iptables -t nat -A POSTROUTING —s 192.168.20.252(или тут ип серва в локалке надо?) —p udp —dport 4780 —in-interface vpn0

но как понимаю это в одну сторону. надо еще и в обратную же сделать?

iptables -t nat -A PREROUTING —s 192.168.20.252(или тут ип серва в локалке надо?) —p upd —sport 4780 —in-interface vpn0
iptables -t nat -A POSTROUTING —s 95.90.10.3 —p udp —dport 4780 —in-interface ppp0

Отредактировано arenkir (2010-03-27 14:46:18)

Debian 5.0

6

Re: pppoe+vpn одновременно

iptables -t nat -A PREROUTING -p udp -m udp --dport 4780 -s 95.90.10.3 -j DNAT --to-destination 2.2.2.2

кажется вот так...

Debian 5.0

7

Re: pppoe+vpn одновременно

Это сработает если шлюз по умолчанию на OpenVPN будет через твой сетевой интерфейс.
Сейчас попытаюсь нарисовать.
Предположим я имя адрес 193.169.37.18 обращаюсь к  95.90.10.3
Тогда имеем такой ip заголовок (упращенно):

+++++++++++++++++++++++++++++++++
|  Source IP         (SIP)  193.169.37.18      |
+++++++++++++++++++++++++++++++++
| Destination IP  (DIP)        95.90.10.3       |
+++++++++++++++++++++++++++++++++

Когда ты делаешь DNAT ты подменяешь DIP
И в твоем случае получается следующие:

+++++++++++++++++++++++++++++++++
|  Source IP         (SIP)  193.169.37.18      |
+++++++++++++++++++++++++++++++++
| Destination IP  (DIP)        2.2.2.2              |
+++++++++++++++++++++++++++++++++

С одной стороны да ты добился цели.
Пакет уйдет на адресс 2.2.2.2.
Но как он сможит ответить?
Если он даже имеет свое подключение к internet.
И он оташлет ответ на мой адрес 193.169.37.18.
То мой хост не ждет пакетов с адреса VPN сервера, а ждет от 95.90.10.3
По этому тебе необходимо делать DNAT и SNAT

И тогда имея :
+++++++++++++++++++++++++++++++++
|  Source IP         (SIP)  193.169.37.18      |
+++++++++++++++++++++++++++++++++
| Destination IP  (DIP)        95.90.10.3       |
+++++++++++++++++++++++++++++++++

iptables -t nat -A PREROUTING -p udp -m udp --dport 4780 -s 95.90.10.3 -j DNAT --to-destination 2.2.2.2
iptables -t nat -A POSTROUTING -p udp --dport 4780 -s 2.2.2.2 -j SNAT --to-source 2.2.2.1 (Тут твой ip  от VPN сервера)
Получим:

+++++++++++++++++++++++++++++++++
|  Source IP         (SIP)  2.2.2.1                   |
+++++++++++++++++++++++++++++++++
| Destination IP  (DIP)    2.2.2.2                  |
+++++++++++++++++++++++++++++++++

"Есть в демократии что-то такое,
до чего неприятно касаться рукою."
----------------------------------------------------------------------------------------------------------------
"Когда в обществе нет цветовой дифференциации штанов — то нет цели! А когда нет цели…"

8

Re: pppoe+vpn одновременно

спасибо. немного помогло. на правильные пути натолкнуло.

Debian 5.0