Часовой пояс: UTC + 3 часа




Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 22 • Страница 1 из 21  2  >
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 

Member
Статус: Не в сети
Регистрация: 04.12.2003
Откуда: Луганск
Значит ситуация такая:
Есть гейт с линуксом, на нем pptpd server и модем и второй комп соединеный по eth с ним.

Нужно:
При подключении по VPN со второго компа получить доступ в инет через ppp0.

В etc/ppp/if-up/ пишу скрипт определяющий подключение по ВПН(ppp1) и устанавливающий правила для IPTables

172.1.1.2 ИП впн сервера ; 172.1.1.1 ИП клиента

iptables -t nat -A POSTROUTING -s 172.1.1.1 -o ppp0 -j MASQUERADE - это нат для проброса пакетов с клиента

А вот как обратный сделать я что-то не пойму никак.
Пишу iptables -t nat -A PREROUTING -i ppp0 -d ! 192.168.1.2 -j DNAT --to-destination 172.1.1.1 - пакеты к клиенту приходят, но у них source ip не совпадает и ничего не работает.

Как сделать чтобы все пакеты приходящие с ppp0 шли в тоннель, а приходящие с тоннеля соответственно шли в ppp0 ?
:oops:



Партнер
 

Member
Статус: Не в сети
Регистрация: 30.09.2003
Откуда: ДОНЕЦК
iptables -t nat -A POSTROUTING -s 172.1.1.1 -j MASQUERADE
лучше вот так


 

Member
Статус: Не в сети
Регистрация: 04.12.2003
Откуда: Луганск
VovkaFX
Спасибо, попробую.


 

Member
Статус: Не в сети
Регистрация: 09.04.2004
Откуда: Москва
в не легче поднимать соединение ВПН с роутингом по умолчанию

_________________
Сервисная компания http://comp-service.ru/


 

Member
Статус: Не в сети
Регистрация: 04.12.2003
Откуда: Луганск
Dima-1
Расскажите пожалуйста как.
Потому как он включен(default gateway), но даже пинги не ходят.
Сейчас вот так
iptables -t nat -A POSTROUTING -s 0/0 -o ppp0 -j MASQUERADE
iptables -t nat -A PREROUTING -i ppp0 --dport 80 -j DNAT --to-destination 172.1.1.1:80
Но увы с 80 портом клиента обмен данными не идет. Только видно пакеты приходящие к клиенту и все.

Мне надо чтобы, скажем, на гейте был доступен порт 21, а все остальные порты транслировались клиенту


 

Member
Статус: Не в сети
Регистрация: 09.04.2004
Откуда: Москва
Ironfist писал(а):
Dima-1
Расскажите пожалуйста как.
Потому как он включен(default gateway), но даже пинги не ходят.
Сейчас вот так
iptables -t nat -A POSTROUTING -s 0/0 -o ppp0 -j MASQUERADE
iptables -t nat -A PREROUTING -i ppp0 --dport 80 -j DNAT --to-destination 172.1.1.1:80
Но увы с 80 портом клиента обмен данными не идет. Только видно пакеты приходящие к клиенту и все.

Мне надо чтобы, скажем, на гейте был доступен порт 21, а все остальные порты транслировались клиенту


Прочитай про NAT

iptables -t nat -A POSTROUTING -p TCP -j MASQUERADE

потом

echo 1 > /proc/sys/net/ipv4/ip_forward

запиши всё это в стартовые скрипты

если не знаешь как то пиши раскажу

А клиентам должен дать шлюз по умолчанию адрес твоего сервера VPN (ведь они через pptp к тебе лазиют?). Лучше раздай все настройки сети клиентам по DHCP чтоб не было вопросов как настроить сеть
а к провайдеру ты как цепляешься?
Добавлено спустя 11 часов, 4 минуты, 44 секунды
и если честно зачем нат когда они к тебе через pptp конектятся??? Объясни подробней что ты хочешь добиться?

_________________
Сервисная компания http://comp-service.ru/


 

Member
Статус: Не в сети
Регистрация: 04.12.2003
Откуда: Луганск
Dima-1 писал(а):
Прочитай про NAT

Dima-1 писал(а):
запиши всё это в стартовые скрипты

Читал. Форвардинг включен.
Dima-1 писал(а):
А клиентам должен дать шлюз по умолчанию адрес твоего сервера VPN

Видимо тут ошибка, я использовал default gateway on remote network.
DHCP мне не нужен, ибо клиент один ;)
И провайдер - не совсем провайдер, скажем так, модемное соединение, но через шлюз.
Dima-1 писал(а):
и если честно зачем нат когда они к тебе через pptp конектятся???

Да просто я пробую разные варианты, и подбираю что будет удобнее.
Dima-1 писал(а):
Объясни подробней что ты хочешь добиться?

Надо чтобы у клиента был полноценный доступ, т.е он мог коннектится, и к нему могли тоже по любому порту, за исключением портов 21,80,3128


 

Member
Статус: Не в сети
Регистрация: 09.04.2004
Откуда: Москва
Ironfist

Ну так как включить нат я те написал,
Шлюз по умолчанию у клиерта должен быть адрес твоего сервера

А что стоит на машине клиенте?


 

Dima-1 писал(а):
Ironfist

Ну так как включить нат я те написал,
Шлюз по умолчанию у клиерта должен быть адрес твоего сервера

А что стоит на машине клиенте?


Очевидно, винда со стандартным PPTP клиентом...
Добавлено спустя 17 минут, 1 секунду
Короче говоря, для того чтобы клиент прозрачно ходил по всем портм наружу, а также, чтобы он принимал все входящие соединения кроме как на порты 21/20(ftp-data), делаем следующее:

iptables -t nat -A POSTROUTING -s $CLIENT_FAKE_IP -j MASQUERADE

iptables -t nat -A PREROUTING -d $PPP0_IP --dport 20 -j ACCEPT
iptables -t nat -A PREROUTING -d $PPP0_IP --dport 21 -j ACCEPT
iptables -t nat -A PREROUTING -d $PPP0_IP -j DNAT --to-destination $CLIENT_FAKE_IP

должны быть вгружены модули ядра ip_conntrack, iptable_nat, ipt_state, ipt_MASQUERADE
скорее всего, они загрузятся автоматически, но лучше проверить через "lsmod"

кроме этого, проверяем, чтобы эти же пакеты получали ACCEPT в след. цепочках:
FILTER/FORWARD, MANGLE/FORWARD, MANGLE/PREROUTING, MANGLE/POSTROUTING
таблица MANGLE наверняка не используется, но лучше проверить...
внимательно проверяем policy для всех таблиц, чтобы нужные пакеты нигде не рубились

и еще один момент - не путаем IP клиента в лок. сети (Ethernet) и его IP в PPTP соединении.
статический IP для PPTP клиента можно прибить так:
vasya pptpd "password" 172.16.0.10
т.е. Вася всегда будет получать IP 172.16.0.10


 

Member
Статус: Не в сети
Регистрация: 04.12.2003
Откуда: Луганск
Dima-1 писал(а):
А что стоит на машине клиенте?

rm-rf писал(а):
Очевидно, винда со стандартным PPTP клиентом...

Да, вин2003.
rm-rf писал(а):
Короче говоря, для того чтобы клиент прозрачно ходил по всем портм наружу, а также, чтобы он принимал все входящие соединения кроме как на порты 21/20(ftp-data), делаем следующее:

Хех, может конечно, я что-то упустил, но я так и делал, и ничего не вышло, поэтому и спросил.
Все нужные модули подгружены. Правил для фаерволла вообще нет, только вышеописанное.
iptables -t nat -A POSTROUTING -s $CLIENT_FAKE_IP -j MASQUERADE
После этого, с клиента идут пинги, устанавливается коннект на удаленный комп и т.д , все работает.
iptables -t nat -A PREROUTING -d $PPP0_IP -j DNAT --to-destination $CLIENT_FAKE_IP (тут вместо PPP0_IP стоит 0/0 т.к ИП динамический)
После этого удаленный клиент может коннектится к клиенту, но не полноценно, скажем к http-серверу не может или к БД. А скажем телнетом может на порт подключится и послать че нить и у клиента это будет видно.
Попробую нарисовать схемку:
[удаленный клиент]-->ppp0--> ISPgate <--ppp0<--[мой гейт]<--ppp1<--[клиент]

[мой гейт] и [клиент] соединены по eth0, 192.168.1.1 , 192.168.1.2 соотв.
При pptp ip у сервера 172.1.1.2, у клиента - 172.1.1.1
ppp0 - динамический ип

pptp можно и не использовать, сейчас настроено без него, просто у клиента default gateway прописан
:roll:


 

Цитата:
После этого удаленный клиент может коннектится к клиенту, но не полноценно, скажем к http-серверу не может или к БД. А скажем телнетом может на порт подключится и послать че нить и у клиента это будет видно.

Т.е. как я понял, всё работает, только WKS вроде HTTP или какого-нить MS-SQL недоступны.
Что в этот момент видно tcpdump'ом на ppp0 на твоем гейте?
например, "tcpdump -i ppp0 port 80"
может, входящие соединения на эти порты закрыты у твоего провайдера? такое бывает...


 

Member
Статус: Не в сети
Регистрация: 04.12.2003
Откуда: Луганск
rm-rf писал(а):
Т.е. как я понял, всё работает, только WKS вроде HTTP или какого-нить MS-SQL недоступны.

Работет только то, что как бы "не нуждается в ответе" , т.е на порт можно послать что-нибудь, вот только ответа не будет.
Вот например, если клиент подключается к удаленному клиенту через VNC , vnc виснет, т.к он похоже открывает порт и слушает его, а на него ничего не приходит или приходит не то. :?:
rm-rf писал(а):
может, входящие соединения на эти порты закрыты у твоего провайдера?

Нет, в этом плане все ОК.
Дамп выложу чуть позже.
Через iptraf видно приблизительно такое:
[remote_ppp0_ip]:[port] Флаги -p--
[local_ppp0_ip]:80 Флаги -pa-


 

Цитата:
Работет только то, что как бы "не нуждается в ответе" , т.е на порт можно послать что-нибудь, вот только ответа не будет.

Не совсем так... Если ты говоришь, что можешь telnel'ом прицепиться в какой-то открытый порт, значит как минимум один пакет прошел в обратную сторону - TCP так устроен.
Советую всё-таки внимательно посмотреть tcpdump'ом трафик на обоих интерфейсах (ppp0/eth0) - я так понял, pptp - только в перспективе и пока его нету?


 

Member
Статус: Не в сети
Регистрация: 04.12.2003
Откуда: Луганск
rm-rf писал(а):
начит как минимум один пакет прошел в обратную сторону - TCP так устроен.

Я это понимаю, но совершенно не понимаю почему эта связка не работает.
rm-rf писал(а):
Советую всё-таки внимательно посмотреть tcpdump'ом

tcpdump у меня вообще молчит долго, и только потом, минут через 10 , начинает ловить пакеты. Поэтому смотрю iptraf, думаю разница не принципиальна ?
Дело в том, что там все как надо. [remote_ip]:[port] - [myip]:[80] , передает 3 кб, и принимает 400-500 байт. У удаленного юзера в флагах стоит Done. Т.е вроде как передал все что нужно и закрыл соединение, но итог один.
rm-rf писал(а):
pptp - только в перспективе

pptp есть, просто сейчас за ненадобностью отключен.

Скажите пожалуйста, то , что я делаю в принципе возможно ? Я то уверен что да, но ....


 

Если я понимаю требования, то более, чем реально.
т.е. маскарад всех портов наружу + отдать все вход. порты, кроме определенных - это вообще не должно вызывать сложностей.
Думаю, чего-то где-то забыли, разберемся :-)
Сейчас некогда, бо сильно хочется домой и чтоб монитор не видеть до понедельника, если что - отпишу в начале след. недели.
А пока описывайте подробнее свои действия...


 

Member
Статус: Не в сети
Регистрация: 04.12.2003
Откуда: Луганск
rm-rf писал(а):
т.е. маскарад всех портов наружу + отдать все вход. порты, кроме определенных - это вообще не должно вызывать сложностей.

Я тоже так думал :)
Еще раз, по порядку:
1. iptables -F ; iptables -t nat -F
2. В if.up скрипт
iptables -t nat -A POSTROUTING -s 192.168.1.1 -j MASQUERADE
iptables -t nat -A PREROUTING -d 0/0 -j DNAT --to-destination 192.168.1.1
И все.
IP Forward > 1
У клиента в TCP/IP прописан Gateway 192.168.1.2 ; DNS 192.168.1.2
Пинги ходят, клиент может коннектится к httpd удаленного клиента, но иногда при аутентификации загрузка просто останавливается и все. Пробовал в играх - нет коннекта ни к клиенту, ни к удаленному клиенту.
:bandhead:


 

с ДНС всё нормально? Он там на 192.168.1.2 есть и форвардит запросы?

с играми помочь немогу, т.к. особо не играюсь... во всяком случае по сети :-)

да, и еще... проверь, что происходит с правилами iptables при переподключении ppp0... поидее, всё должно быть ок, но посмотри через iptables -L, iptables -t nat -L


 

Member
Статус: Не в сети
Регистрация: 04.12.2003
Откуда: Луганск
rm-rf писал(а):
с ДНС всё нормально?

Да
rm-rf писал(а):
с играми помочь немогу, т.к. особо не играюсь...

Это я запускал, чтобы проверить возможность коннекта :)
rm-rf писал(а):
да, и еще... проверь, что происходит с правилами iptables при переподключении ppp0

Все ОК, в if.down стоит скрипт который их удаляет, а потом ip.up опять их устанавливает.
Что еще может быть не так :?:


 

Цитата:
...иногда при аутентификации загрузка просто останавливается и все.

на 2003 случайно нету "IE enchanced security settings"?

а еще как насчет фаервола на самой 2003 винде, что там в плане сервис пака - он есть?


 

Member
Статус: Не в сети
Регистрация: 04.12.2003
Откуда: Луганск
rm-rf писал(а):
на 2003 случайно нету "IE enchanced security settings"?

Нет ничего такого нет, собственно IE вообще не используется.

Но главное не то, вчера все сделал.
Проблема была в разных mtu, опера , как я понял, сначало посылает пинг на порт , а потом только коннект делает, а телнет этого не делает, поэтому он и работал. Подправил мту - все заработало.

Спасибо за участие ! :beer:


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 22 • Страница 1 из 21  2  >
-

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan