Доступ по PPTP через NAT (iptables)

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модераторы: SLEDopit, Модераторы разделов

maxi
Сообщения: 51
ОС: CentOS 5.5

Доступ по PPTP через NAT

Сообщение maxi »

Приветствую!

Debian 4-х годичной давности. Кто настраивал толком не известно. Работает как прокси (SQUID).
Локальная сеть inet addr:192.168.100.0/24 Bcast:192.168.100.255 Mask:255.255.255.0
внешка inet addr:192.168.29.2 Bcast:192.168.29.3 Mask:255.255.255.252

Возникла необходимость пробросить из локальной сети клиентские ПК по PPTP до сервера снаружи.
В начале разбора полетов обнаружилось что iptables вообще остановлен. Загрузил. Посмотрел на правила, удивился.


Код: Выделить всё

gw:/var# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
LOG        all  --  gw                   anywhere           LOG level debug
DROP       all  --  gw                   anywhere
LOG        all  --  127.0.0.0/8          anywhere           LOG level debug
DROP       all  --  127.0.0.0/8          anywhere
ACCEPT     all  --  localhost            localhost
ACCEPT     all  --  gw                   gw
ACCEPT     all  --  10.16.32.82          gw
DROP       all  --  192.168.100.78       anywhere
ACCEPT     tcp  --  192.168.1.0/24       anywhere           tcp dpt:3128
ACCEPT     tcp  --  192.168.1.0/24       192.168.100.13     tcp dpt:smtp
ACCEPT     tcp  --  192.168.1.0/24       192.168.100.13     tcp dpt:pop3
ACCEPT     tcp  --  192.168.100.0/24     anywhere           tcp dpt:3128
ACCEPT     tcp  --  192.168.100.0/24     192.168.100.13     tcp dpt:mdm
ACCEPT     tcp  --  192.168.100.0/24     192.168.100.13     tcp dpt:smtp
ACCEPT     tcp  --  192.168.100.0/24     192.168.100.13     tcp dpt:pop3
DROP       tcp  --  anywhere             gw                 tcp dpt:pop3
DROP       tcp  --  anywhere             gw                 tcp dpt:webcache
DROP       tcp  --  anywhere             gw                 tcp dpt:mysql
ACCEPT     udp  --  81.1.200.155         gw                 udp dpts:16384:65535
ACCEPT     tcp  --  81.1.200.155         gw                 tcp dpts:10000:65535
ACCEPT     tcp  --  81.1.200.155         gw                 tcp dpt:5060
ACCEPT     tcp  --  81.1.200.155         gw                 tcp dpt:1721
ACCEPT     tcp  --  81.1.200.155         gw                 tcp dpt:1720
ACCEPT     tcp  --  81.1.200.155         gw                 tcp dpt:1719
ACCEPT     udp  --  anywhere             gw                 udp dpt:domain
ACCEPT     tcp  --  anywhere             gw                 tcp dpt:domain
ACCEPT     tcp  --  anywhere             gw                 tcp dpt:smtp
ACCEPT     icmp --  anywhere             anywhere
ACCEPT     udp  --  anywhere             anywhere           udp dpts:1024:65535
ACCEPT     tcp  --  anywhere             anywhere           tcp dpts:1024:65535
LOG        udp  --  anywhere             gw                 LOG level debug
DROP       udp  --  anywhere             gw
LOG        tcp  --  anywhere             gw                 tcp flags:SYN,RST,ACK/SYN LOG level debug
DROP       tcp  --  anywhere             gw                 tcp flags:SYN,RST,ACK/SYN


удалил правила не неизвестный 81.1.200.155. И попытался сделать правила для PPTP, открыв для него порт... но подумал и забил, открыл все для конкретного IP. и внутрь с хоста к которому соединяемся, в итоге получилось вот так:

Код: Выделить всё

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     tcp  --  localhost            anywhere
ACCEPT     tcp  --  192.168.100.194      anywhere
ACCEPT     tcp  --  217.151.xx.xx        192.168.100.194
ACCEPT     tcp  --  gw                   217.151.xx.xx


Но клиент при попытке подключения, хоста не видит вообще.

Подскажите плиз что не так, что надо сделать в этом случае, или хотя бы суть необходимых действий? А то я iptables сегодня первый раз "увидел", торможу...
Best regards, maxi.
Место жительства -- OmskLUG.ru
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Доступ по PPTP через NAT

Сообщение sash-kan »

maxi писал(а):
09.09.2010 13:16
не видит вообще
что означает «не видит»? что происходит с пакетами при обращении?
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
maxi
Сообщения: 51
ОС: CentOS 5.5

Re: Доступ по PPTP через NAT

Сообщение maxi »

По "netstat -с" я обращений с ip клиента вообще не видел, а по tcpdump если и видел то не понял где именно они.

Где их лучше смотреть?
Best regards, maxi.
Место жительства -- OmskLUG.ru
Спасибо сказали:
patrius
Сообщения: 337
ОС: Debian (4 & 5) -> Gentoo

Re: Доступ по PPTP через NAT

Сообщение patrius »

maxi, останови свой сквид и посмотри что получиться.
Хелп инфу
смотришь тут
потом тут
потом тут
и отпишись о результатах
Спасибо сказали:
maxi
Сообщения: 51
ОС: CentOS 5.5

Re: Доступ по PPTP через NAT

Сообщение maxi »

Спасибо за советы!

пересобрал ядро, с поддержкой модулей, понаставил там все что нагуглил... и может даже зря. Уж хз. Но и со старым ядром все тоже работает. Ну ничего. Будет запасное ядро. :)

Вообще, на мысль о том что у меня все довольно плохо навел ответ:

iptables v1.2.6a: can't initialize iptables table `NAT': Table does not exist (do you need to insmod?)
Perhaps iptables or your kernel needs to be upgraded.

на

Код: Выделить всё

# iptables -t NAT -L


А щас после опытов с ядром, я получил только добавку в виде: modprobe: Can't locate module ip_tables

Уже совсем было впав в непонятки копался в системе пытаясь разобраться какого фига он не грузит этот модуль ставил разные опыты. И как-то листав старые команды увидел "iptables -t NAT -L". Взял за написал там вместо заглавных, строчные "nat" и все мне сразу стало ясно, таблица nat появилась из небытья =)

Посмотрев что там и как, чуть покопавшись с разрешениями, в итоге сделал:
iptables -A POSTROUTING -t nat -s 192.168.100.251 -d 217.151.***.*** -p tcp --dport 1723 -j MASQUERADE

И вуаля, есть pptp связь! :)

В общем вопрос решен.

Теперь бы еще разобраться как сделать так чтобы после перезагрузки сервера правила которые я использую:

/etc/init.d/iptables load active

грузились по умолчанию... :)

upd: все. Нашел. Скрипт для iptables в rc.ipfw. Подправлю и все ништяк. :) Сколько зря времени потерял, жуть. Ну ничего, на первый раз простительно ))
Best regards, maxi.
Место жительства -- OmskLUG.ru
Спасибо сказали:
maxi
Сообщения: 51
ОС: CentOS 5.5

Re: Доступ по PPTP через NAT

Сообщение maxi »

рано радовался. На этапе "Проверка имени и пароля" задумывается и в итоге - Удаленный компьютер не отвечает.

Может не получается у него второе соединение через NAT сделать для начала работы... или что ему еще надо то.
Best regards, maxi.
Место жительства -- OmskLUG.ru
Спасибо сказали:
patrius
Сообщения: 337
ОС: Debian (4 & 5) -> Gentoo

Re: Доступ по PPTP через NAT

Сообщение patrius »

ВНИМАТЕЛЬНО читаем документы приведенные по ссылкам выше.
проблема уже решена далеко не однократно.
ГДЕ ЛОГИ?
Спасибо сказали:
maxi
Сообщения: 51
ОС: CentOS 5.5

Re: Доступ по PPTP через NAT

Сообщение maxi »

Да. Я читал по ссылкам что выше. Как я понял проблема решается очень просто - установкой patch-o-matic. Но после установки пары версий, одну июня 2006-го, вторую от марта 2006-го, не одна из них не помогла, т.к. ключемой компонент в этой проблеме не появился.
modprobe ip_nat_pptp
говорит "иди нафиг, нету". Версию POM выбирал под версию установленных iptables. Чтобы были примерно одного времени.

Может быть есть иной способ? Или можно как-то просто подгрузить эту ip_nat_pptp отдельно?

Логи? Какие именно логи?
Best regards, maxi.
Место жительства -- OmskLUG.ru
Спасибо сказали:
patrius
Сообщения: 337
ОС: Debian (4 & 5) -> Gentoo

Re: Доступ по PPTP через NAT

Сообщение patrius »

modprobe ip_nat_pptp
говорит "иди нафиг, нету".

Покопайся в ядре на предмет подобного модуля.
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Доступ по PPTP через NAT

Сообщение sash-kan »

см. вывод
$ /sbin/modprobe -l | grep pptp
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали: