The OpenNET Project / Index page

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




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
И вновь vpn через nat , !*! mylan, 16-Май-06, 16:59  [смотреть все]
Машина с Linux является шлюзом в инет, соответственно имеет два интерфейса eth0 - в инет и eth1 в локалку. Для точности надо упомянуть и маршрутизатор cisco 2621 между провайдером и линухой, как он запрограммирован я не знаю. Стоит задача подключиться извне к одному из локальных компов используя vpn-pptp (WinXP->WinXp). Задача вроде как сегодня распространенная. Ядро 2.4.18. По ходу удалось сделать доступным для инета iis одного из локальных компов добавлением по сути одного правила в iptables
*nat
-A PREROUTING -p tcp -d $LIN_EXT_IP --dport 1717 -j DNAT --to-destination 192.168.1.1
где на порт 1717 настроен iis локальной машины, а 192.168.1.1 - ее ip

Ну, второе правило
*filter
-A FORWARD -i eth0 -d 192.168.1.1 -p tcp --dport 1717 -j ACCEPT

уже было до нас.

Подключился к инет через модем, ввел в браузере $LIN_EXT_IP:1717  -  и увидел родную домашнюю страничку нашего локального iis.
Теперь самое время проделать тоже с vpn. Делаем все по инструкции:
*nat
-A PREROUTING -p tcp -d $LIN_EXT_IP --dport 1723 -j DNAT --to-destination 192.168.1.1
-A PREROUTING -d $LIN_EXT_IP -p 47 -j DNAT --to-destination 192.168.1.1
*filter
-A FORWARD -i eth0 -j ACCEPT

Подключился к инет через модем, создаем vpn подключение и... запиваем холодной водой.
TCPView на машине 192.168.1.1 на несколько секунд показывает попытки подключения строкой типа
locname.domain.suf:1253  $LIN_EXT_IP:pptp   SYN_SENT
команда iptables -t nat -nvxL на линуксе показывает
Chain PREROUTING
  pkts  bytes target prot opt in  out source     destination
     1     48 DNAT   tcp  --  *   *   0.0.0.0/0  $LIN_EXT_IP tcp dpt:1723 to:192.168.1.1
Т.е. один пакет проходит и на этом все... :(
Подскажите, пожалуйста, что еще нужно?
  

  • И вновь vpn через nat , !*! mylan, 12:50 , 18-Май-06 (1)
    Уточнения: tcpview - это я сморозил, показывал пакет отправленный по модему. Ethereal показал, что на сетевой интерфей локальной машины не приходит ни одного пакета. Хотя листинг iptables утверждает следующее:

    Chain PREROUTING (policy ACCEPT 342137 packets, 35872611 bytes)
      pkts   bytes target  prot opt in  out  source destination
         1      48 DNAT    tcp  --  *   *    0/0    $LIN_EXT_IP tcp dpt:1723 to:192.168.1.1
         0       0 DNAT     47  --  *   *    0/0    $LIN_EXT_IP              to:192.168.1.1
    ...
    Chain FORWARD (policy DROP 0 packets, 0 bytes)
      pkts    bytes target     prot opt in     out    
      2       96    ACCEPT     all  --  eth0   eth1

    Непонятно, почему пакеты прошедшие цепочку forward не достигают локальной машины и почему их два?  :(

    • И вновь vpn через nat , !*! mylan, 15:52 , 18-Май-06 (2)
      Так вот они нормально достигали локальной машины. Просто был неправильно настроен фильтр снифера. Каюсь. Но ответ локальная машина не отправляла, поскольку не знала куда. Сеть источника то чужеродная. Очевидно в доках на эту тему считают, что у всех в мире в настройках ip протокола шлюзом настроен ip роутера. Так вот в нашем случае шлюзом был совершенно непричастный ко всем этим проблемам сервак, служащий другим, не менее благородным целям. Короче, решилась проблема добавлением еще двух правил в iptables:
      -A POSTROUTING -d 192.168.1.1 -p tcp --dport 1723 -j SNAT --to-source $LIN_LOC_IP
      -A POSTROUTING -d 192.168.0.30 -p 47 -j SNAT --to-source $LIN_LOC_IP
      Меняющие в пакетах и адрес источника.
      Возможно, сработал бы и вариант добалвения еще одного шлюза в настройках локального компа.
      Спасибо всем за помощь. :)



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

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