Tomsk Sysadmins Forum

Unix => Администрирование => Topic started by: Requiem on September 22, 2005, 11:31:13

Title: p2p VS iptable
Post by: Requiem on September 22, 2005, 11:31:13
Доброго времени суток уважаемые.
Имеется проблема. Есть DirectConnect клиент (какой не важно, пробовал rmDC, DC++, StrongDC результат одинаков). Для его работы необходимо в фаерволе открыть 2 порта, один tcp и один udp. В качестве шлюза используем AltLinux. Разрешаю форвард ч\з порты 1412 таким образом
$IPTABLES -A FORWARD -p tcp --dport 1412 -i $LAN_IFACE -j ACCEPT
$IPTABLES -A FORWARD -p udp --dport 1412 -i $LAN_IFACE -j ACCEPT
но пакеты ч\з эти правила не идут. В чем косяк?
Title: p2p VS iptable
Post by: Diman on September 22, 2005, 12:14:21
Quote
Доброго времени суток уважаемые.
Имеется проблема. Есть DirectConnect клиент (какой не важно, пробовал rmDC, DC++, StrongDC результат одинаков). Для его работы необходимо в фаерволе открыть 2 порта, один tcp и один udp. В качестве шлюза используем AltLinux. Разрешаю форвард ч\з порты 1412 таким образом
$IPTABLES -A FORWARD -p tcp --dport 1412 -i $LAN_IFACE -j ACCEPT
$IPTABLES -A FORWARD -p udp --dport 1412 -i $LAN_IFACE -j ACCEPT
но пакеты ч\з эти правила не идут. В чем косяк?
[snapback]4245[/snapback]

спорт открой
--sport 1412
Title: p2p VS iptable
Post by: Requiem on September 22, 2005, 12:53:17
попробовал не получилось, такое чуство, что клиент пытается не ч\з шлюз долбиться, а напрямую.
вот результаты работы ethereal

Frame 3 (66 bytes on wire, 66 bytes captured)
Ethernet II, Src: 00:13:20:23:e3:27, Dst: 00:10:5a:f1:0d:fc
Internet Protocol, Src Addr: 192.168.48.220 (192.168.48.220), Dst Addr: 212.192.122.27 (212.192.122.27)
Transmission Control Protocol, Src Port: 1221 (1221), Dst Port: 411 (411), Seq: 0, Ack: 0, Len: 0

Frame 4 (66 bytes on wire, 66 bytes captured)
Ethernet II, Src: 00:13:20:23:e3:27, Dst: 00:10:5a:f1:0d:fc
Internet Protocol, Src Addr: 192.168.48.220 (192.168.48.220), Dst Addr: 212.192.122.27 (212.192.122.27)
Transmission Control Protocol, Src Port: 1221 (1221), Dst Port: 411 (411), Seq: 0, Ack: 0, Len: 0

Frame 10 (66 bytes on wire, 66 bytes captured)
Ethernet II, Src: 00:13:20:23:e3:27, Dst: 00:10:5a:f1:0d:fc
Internet Protocol, Src Addr: 192.168.48.220 (192.168.48.220), Dst Addr: 212.192.122.27 (212.192.122.27)
Transmission Control Protocol, Src Port: 1221 (1221), Dst Port: 411 (411), Seq: 0, Ack: 0, Len: 0
Title: p2p VS iptable
Post by: Diman on September 22, 2005, 13:01:02
хуйз 212.192.122.27? Если это тот, с которого ты файло качаешь (должно быть так, вроде), то попробуй открыть указанные порты 1221 и 411, мож заработает?...
Title: p2p VS iptable
Post by: Andry on September 22, 2005, 13:01:08
добавь в iptables в таблицу *nat:
Code: [Select]
-A PREROUTING -p tcp -d <ip-шлюза> --dport 1412 -j DNAT --to-destination <ip-моей машины>:1412
-A PREROUTING -p udp -d <ip-шлюза> --dport 1412 -j DNAT --to-destination <ip-моей машины>:1412
все будет работать.
Title: p2p VS iptable
Post by: Requiem on September 22, 2005, 13:12:39
пробовал уже, и даже по идее должно работать, но не работает  :angry:

я как понимаю, что в снифере я должен увидеть чтото  типа
Src Addr: 192.168.48.220 , Dst Addr: 192.168.48.225
Src Port: 1221 , Dst Port: 1412

или я не прав? почему клиент напрямую стучиться на внешний ip?
Title: p2p VS iptable
Post by: Requiem on September 22, 2005, 13:15:40
for Diman
это адрес хаба, и туда я должен попасть ч\з шлюз, а не на прямую.
а порты клиент постоянно меняет  :ujasnah:

вот кстати настройки клиента
Title: p2p VS iptable
Post by: Andry on September 22, 2005, 13:23:07
Quote
for Diman
это адрес хаба, и туда я должен попасть ч\з шлюз, а не на прямую.
а порты клиент постоянно меняет  :ujasnah:

вот кстати настройки клиента
[snapback]4251[/snapback]

ты укажи клиенту чтобы не случайно порты выбира, а указанный (только 1412). или любой тругой на который настроишь переадресацию. и чтобы отдавал серверу не твой фейковый адрес а адрес шлюза. в rmDC++ это легко делается на первой странице настроек.
Title: p2p VS iptable
Post by: Diman on September 22, 2005, 13:25:44
А если открыться полностью хабу, то работает?
Если работает, тогда все что идет с хаба - в лог
Title: p2p VS iptable
Post by: Requiem on September 22, 2005, 13:27:42
for Diman
действительно, открыл 411 порт и к хабу законнектиться получилось :)
но теперь не могу получить файл лист, для этого клиент по идее должен udp порт использовать, который в настройках прописан
Title: p2p VS iptable
Post by: Diman on September 22, 2005, 13:29:54
Quote
for Diman
действительно, открыл 411 порт и к хабу законнектиться получилось :)
но теперь не могу получить файл лист, для этого клиент по идее должен udp порт использовать, который в настройках прописан
[snapback]4255[/snapback]

Все что идес с хаба и на хаб - в лог, там увидишь что открывать / закрывать
iptables -A INPUT -s <HUB> -j LOG
Title: p2p VS iptable
Post by: Requiem on September 22, 2005, 13:39:19
Quote
Все что идес с хаба и на хаб - в лог, там увидишь что открывать / закрывать
iptables -A INPUT -s <HUB> -j LOG
[snapback]4257[/snapback]

А можно не скромный вопрос? Как мне его просмотреть потом?
Title: p2p VS iptable
Post by: Diman on September 22, 2005, 13:41:55
cat /var/log/messages
Title: p2p VS iptable
Post by: stranger on September 22, 2005, 14:11:19
Э... А маскарад тут не поможет?

И второй вариант поставить socks прокси, например, dante...
Title: p2p VS iptable
Post by: demiurg on September 22, 2005, 15:32:02
Курить доки надо, особенно IPTables Tutorual до полного просветления, ну tcpdump на шлюзе, что бы видеть куда какие пакеты ходят.....
Title: p2p VS iptable
Post by: Diman on September 22, 2005, 15:45:36
Доки особенно хорошо запивать чаем, кофем, пивом. Запивать воткой, колой, манагой, а так же закуривать планой, анашой и другой канаплей не рекомендую: черевато.
Title: p2p VS iptable
Post by: Requiem on September 23, 2005, 10:30:51
ИМХО Когда сам не шаришь проще сказать "кури доки" чем дать дельный совет.
Title: p2p VS iptable
Post by: Diman on September 23, 2005, 10:40:12
Quote
ИМХО Когда сам не шаришь проще сказать "кури доки" чем дать дельный совет.
[snapback]4277[/snapback]

ИМХО "курить доки" надо, но не все в них понятно... У меня документации несколько гигабайт. Есть по любой теме. Но ведь спрашиваю же иногда... Бывает что не все в документации понятно описано, а иногда некоторые вещи вообще не присутствуют.
Title: p2p VS iptable
Post by: Requiem on September 23, 2005, 11:25:16
ладно, с курением доков все понятно :)
До чего я на данный момент дошел. Я разрешил форвард всех пакетов пришедших от ip моей локальной машины
$IPTABLES -A FORWARD -s 192.168.48.220 -j ACCEPT
После этого стал в пассиве работать полностью, т.е. коннектится, качает файллисты и пр.
Но в активе почемуто работать всеравно отказывается. Можете пояснить, в чем разница работы клиета в пассиве и в активе? Т.е. понятно, что из пассива ты с актива ничего не выкачаешь, но мне интересно в чем различаются принципы соединения.
Title: p2p VS iptable
Post by: Diman on September 23, 2005, 11:30:13
$IPTABLES -A FORWARD -s <а тут ip хаба> -j LOG
и увидишь в чем соль...
Title: p2p VS iptable
Post by: Requiem on September 23, 2005, 11:33:23
Quote
$IPTABLES -A FORWARD -s <а тут ip хаба> -j LOG
и увидишь в чем соль...
[snapback]4280[/snapback]

Тык пробовал уже. В var/log/messages пусто.

Я тут почитал и выяснил что в активном режиме я цепляюсь к хабу, только для того, чтобы получить юзерлист, а потом уже работаю напрямую с машиной юзера, с которого хочу чтото скачать. По этому смотреть логи соединения с хабом безсмысленно, там все в порядке.
Title: p2p VS iptable
Post by: Diman on September 23, 2005, 11:44:10
Аа... Ну, я этого не знал... Хотя и подозревал. Попробуй поработать с клиентом, узнай через какие порты работает, а через какие - нет. Поочередно открывай / закрывай залогиные порты.
Title: p2p VS iptable
Post by: Requiem on September 23, 2005, 11:58:35
Quote
Аа... Ну, я этого не знал... Хотя и подозревал. Попробуй поработать с клиентом, узнай через какие порты работает, а через какие - нет. Поочередно открывай / закрывай залогиные порты.
[snapback]4282[/snapback]

Работать он по идее должен ч\з те порты, которые я ему указываю. TCP для качания файлов, UDP для качания файл листа и поиска.

Блин, пока разбирался как мне качание файллистов наладить с меня какойто перец утянул файло  :ujasnah:

Получается это только я не могу ничего утянуть, а с меня запросто.
Title: p2p VS iptable
Post by: Diman on September 23, 2005, 12:02:50
Со знакомым, у которого ДЦ есть, договорись о тестировании
Title: p2p VS iptable
Post by: Diman on September 23, 2005, 12:03:13
И открывай порты только для него
Title: p2p VS iptable
Post by: demiurg on September 23, 2005, 12:28:06
Quote
ладно, с курением доков все понятно :)
До чего я на данный момент дошел. Я разрешил форвард всех пакетов пришедших от ip моей локальной машины
$IPTABLES -A FORWARD -s 192.168.48.220 -j ACCEPT
После этого стал в пассиве работать полностью, т.е. коннектится, качает файллисты и пр.
Но в активе почемуто работать всеравно отказывается. Можете пояснить, в чем разница работы клиета в пассиве и в активе?
[snapback]4279[/snapback]
Для актива необходимо чтобы клиент p2p фактически являлся сервером который ожидает соединения на каком-то там порту. И соответственно firewall должен пропускать входящие соединения по инициативе внешнего хоста.

Ситуация такая же как и с установкой любого другого сервиса ftp/http/smtp и т.д. :)

Другое дело, что протокол p2p видимо очень кучерявый  :ujasnah:  и надо читать доки по тому как он устроен. Возможно есть модули типа p2p_contrack (по аналогии с ftp_contrack) которые занимаются трассировкой соединения.

Мне приходилось решать обратную задачу -- зарубить все p2p полностью. Такой модуль есть. Работает очень эфективно :)

Quote
Т.е. понятно, что из пассива ты с актива ничего не выкачаешь, но мне интересно в чем различаются принципы соединения.
[snapback]4279[/snapback]
Вот этой фразы не понял. Актив может качать от любых клиентов. Пассив только с актива. И прежде чем заниматься настройкой firewallа нужно по основам tcp/ip почитать чего-нибудь.

Кстати p2p работает и при полностью зарубленном UDP.

Для ручной трассировки соединений я еще раз советую запуск tcpdump ну или iptraf на шлюзе. Сразу становиться видно что происходит
--при соединении с сервером
--при скачивании файла в passive или active режиме

У меня при построении правил не раз возникали проблемы с тем какие же правила написать чтобы пропустить определенный протокол, при этом ничего лишнего не открыв -- доки по протоколам и tcpdump всегда помогали  :P
Title: p2p VS iptable
Post by: Requiem on September 23, 2005, 13:08:59
c активом пассивом действительно не так сказал, сорри
tcpdump использовал бы, но его нет, а чтобы его поставить, сначала нужно поставить libpcap, а самое главное gcc, т.к. его тоже нет, поэтому и хотел обойтись без tcpdump
Title: p2p VS iptable
Post by: Diman on September 23, 2005, 13:20:08
Интересно, а как люди обходятся без gcc?
Title: p2p VS iptable
Post by: sam on September 23, 2005, 15:30:18
днат то до 1412 порта сделал?
Title: p2p VS iptable
Post by: Requiem on September 23, 2005, 15:47:19
Quote
днат то до 1412 порта сделал?
[snapback]4305[/snapback]

что имеешь в виду под "до 1412"?
Перенаправление пакетов, приходящих на 1412 на локальную машину сделал, если это имеешь в виду.
Title: p2p VS iptable
Post by: sam on September 23, 2005, 15:52:12
покажи правила iptables прописанные
Title: p2p VS iptable
Post by: Requiem on September 23, 2005, 15:55:02
$IPTABLES -A FORWARD -p tcp --dport 411 -j ACCEPT
$IPTABLES -A FORWARD -p tcp --dport 1412 -j ACCEPT
$IPTABLES -A FORWARD -p udp --dport 1412 -j ACCEPT
$IPTABLES -A FORWARD -p tcp --sport 1412 -j ACCEPT
$IPTABLES -A FORWARD -p udp --sport 1412 -j ACCEPT

$IPTABLES -t nat -A PREROUTING -d $INET_IP -p udp --dport 1412 -j DNAT --to-destination 192.168.48.220
$IPTABLES -t nat -A PREROUTING -d $INET_IP -p tcp --dport 1412 -j DNAT --to-destination 192.168.48.220
Title: p2p VS iptable
Post by: sam on September 23, 2005, 16:02:55
на винде в файрволе 1412 порт на вход открыт?
$INET_IP - точно прописан адрес внешнего интерфейса?
Title: p2p VS iptable
Post by: Requiem on September 23, 2005, 16:05:26
в винде фаервола нет
$INET_IP - точно адрес внешнего интерфейса
Title: p2p VS iptable
Post by: Diman on September 23, 2005, 16:14:18
Он же по-любому не только через 411 и 1412 работает
Title: p2p VS iptable
Post by: Requiem on September 23, 2005, 16:18:45
411 обязательно, а 1412 пофигу какой
Title: p2p VS iptable
Post by: Diman on September 23, 2005, 16:23:28
хм... На p2p.tomsk.ru описывается только 1412...
Title: p2p VS iptable
Post by: Requiem on September 23, 2005, 16:47:14
решил всетаки tcpdump поставить, без него я так чуствую не разбируть куда какие пакеты идут.
скачал дистр, пытаюсь установить
rpm -i имяфайла
говорит segmentation fault
это что еще за такое?
Title: p2p VS iptable
Post by: sam on September 23, 2005, 16:51:25
ставь iptraf или trafshow
просто и понятно
Title: p2p VS iptable
Post by: demiurg on September 23, 2005, 17:05:00
Quote
решил всетаки tcpdump поставить, без него я так чуствую не разбируть куда какие пакеты идут.
скачал дистр, пытаюсь установить
rpm -i имяфайла
говорит segmentation fault
это что еще за такое?
[snapback]4315[/snapback]
Похоже rpm у тебя покарежен или железо гнилое. А дистрибутив какой?
Title: p2p VS iptable
Post by: Diman on September 23, 2005, 17:06:13
Quote
Похоже rpm у тебя покарежен или железо гнилое. А дистрибутив какой?
[snapback]4317[/snapback]

Смотри вверху
Title: p2p VS iptable
Post by: Diman on September 23, 2005, 17:07:15
А мне больше логи нравятся чем tcpdump...
Title: p2p VS iptable
Post by: Requiem on September 23, 2005, 17:43:33
еще бы знать куда он их пишет, и как их потом посмотреть то совсем хорошо
Title: p2p VS iptable
Post by: demiurg on September 23, 2005, 22:49:31
Quote
А мне больше логи нравятся чем tcpdump...
[snapback]4319[/snapback]
:jjosh:
Вы его просто готовить не умеете.
Или месье понимает толк в извращениях.....
C логами и iptables кувыркаться очень долго, а tcpdump запустил и смотри, что нужно, а логи там тоже есть, нужно маны вдумчиво просто читать B) .
Title: p2p VS iptable
Post by: Diman on September 24, 2005, 11:02:19
Маны прочитаны, просто в моем клиническом случае логи более удобочитаемы :)
Title: p2p VS iptable
Post by: Requiem on September 26, 2005, 09:43:57
в общем пообщался с одним из админов р2р, и он мне разъяснил, что при не локальном фаерволе активный режим невозможен вринципе :(

так что придется в пассиве сидеть

всем спасибо за помощь, хоть ничего и не получилось
Title: p2p VS iptable
Post by: demiurg on September 26, 2005, 11:35:41
Quote
в общем пообщался с одним из админов р2р, и он мне разъяснил, что при не локальном фаерволе активный режим невозможен вринципе :(

так что придется в пассиве сидеть

всем спасибо за помощь, хоть ничего и не получилось
[snapback]4387[/snapback]
А к сожалению с протоколом этого p2p не знаком, поэтому поддтвердить или опровергнуть на 100% не могу, но то что это невозможно в принципе -- я сомневаюсь. Возможно админ с возможностями iptables не знаком :)
Title: p2p VS iptable
Post by: Requiem on September 26, 2005, 13:24:54
Quote
А к сожалению с протоколом этого p2p не знаком, поэтому поддтвердить или опровергнуть на 100% не могу, но то что это невозможно в принципе -- я сомневаюсь. Возможно админ с возможностями iptables не знаком :)
[snapback]4390[/snapback]

Да я вот честно говоря вообще не понимаю как клиент в активном режиме с фаерволом работает. Ну открою я два порта, и другой чел другие два порта откроет. Далее я ч\з свои порты к нему стучусь, а они у него закрыты. Когда он ко мне стучится, то наоборот. Я вот не понимаю, почему нельзя было сделать чтобы клиент ходил ч\з определенные порты, а не у каждого ч\з свои. Тогда с активным режимом вообще проблем не было бы. Единственный фаервол с которым это работает, это встроенный в ХР, потомучто он похоже понимает DC протокол.
Title: p2p VS iptable
Post by: sam on September 26, 2005, 14:35:58
Quote
в общем пообщался с одним из админов р2р, и он мне разъяснил, что при не локальном фаерволе активный режим невозможен вринципе :(

мда, у меня работает, причем подобная ситуация  :) (роутер со слакой и iptables в стандартной сборке и виндовая машина за этим роутером, клиент rmDc++, сервер p2p.tomsk.ru)
правда у меня по умолчанию ACCEPT на все
и на локальном компьютере оутпост с фильтрацией входящего трафика, только 7777 порт открыт(он то и в настройках rmDc поставлен)
так что скажи этому админу, что он не прав  :D
а насчет пассива-актива: пассиный не может коннектиться к пассивному - потому что просто не куда будет коннектиться, соединение то peer-to-peer
при соединении активного к активному: соединяющийся уходит в пассив(то есть коннектиться к открытому порту активного)
з.ы. за абсолютную правильность вышенаписанного о принципах работы протокола p2p не ручаюсь - рфк и подобное не читал, все сформулировано только на основе случайных собственных наблюдений.
Title: p2p VS iptable
Post by: sam on September 26, 2005, 14:46:08
нажал ответ вместо правки, извините, не заметил
Title: p2p VS iptable
Post by: khalal on September 27, 2005, 07:25:12
:ujasnah: