Доброго времени суток уважаемые.
Имеется проблема. Есть 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
for Diman
это адрес хаба, и туда я должен попасть ч\з шлюз, а не на прямую.
а порты клиент постоянно меняет :ujasnah:
вот кстати настройки клиента
[snapback]4251[/snapback]
ты укажи клиенту чтобы не случайно порты выбира, а указанный (только 1412). или любой тругой на который настроишь переадресацию. и чтобы отдавал серверу не твой фейковый адрес а адрес шлюза. в rmDC++ это легко делается на первой странице настроек.
for Diman
действительно, открыл 411 порт и к хабу законнектиться получилось :)
но теперь не могу получить файл лист, для этого клиент по идее должен udp порт использовать, который в настройках прописан
[snapback]4255[/snapback]
Все что идес с хаба и на хаб - в лог, там увидишь что открывать / закрывать
iptables -A INPUT -s <HUB> -j LOG
Все что идес с хаба и на хаб - в лог, там увидишь что открывать / закрывать
iptables -A INPUT -s <HUB> -j LOG
[snapback]4257[/snapback]
А можно не скромный вопрос? Как мне его просмотреть потом?
ИМХО Когда сам не шаришь проще сказать "кури доки" чем дать дельный совет.
[snapback]4277[/snapback]
ИМХО "курить доки" надо, но не все в них понятно... У меня документации несколько гигабайт. Есть по любой теме. Но ведь спрашиваю же иногда... Бывает что не все в документации понятно описано, а иногда некоторые вещи вообще не присутствуют.
$IPTABLES -A FORWARD -s <а тут ip хаба> -j LOG
и увидишь в чем соль...
[snapback]4280[/snapback]
Тык пробовал уже. В var/log/messages пусто.
Я тут почитал и выяснил что в активном режиме я цепляюсь к хабу, только для того, чтобы получить юзерлист, а потом уже работаю напрямую с машиной юзера, с которого хочу чтото скачать. По этому смотреть логи соединения с хабом безсмысленно, там все в порядке.
Аа... Ну, я этого не знал... Хотя и подозревал. Попробуй поработать с клиентом, узнай через какие порты работает, а через какие - нет. Поочередно открывай / закрывай залогиные порты.
[snapback]4282[/snapback]
Работать он по идее должен ч\з те порты, которые я ему указываю. TCP для качания файлов, UDP для качания файл листа и поиска.
Блин, пока разбирался как мне качание файллистов наладить с меня какойто перец утянул файло :ujasnah:
Получается это только я не могу ничего утянуть, а с меня запросто.
ладно, с курением доков все понятно :)
До чего я на данный момент дошел. Я разрешил форвард всех пакетов пришедших от 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 полностью. Такой модуль есть. Работает очень эфективно :)
Т.е. понятно, что из пассива ты с актива ничего не выкачаешь, но мне интересно в чем различаются принципы соединения.
[snapback]4279[/snapback]
Вот этой фразы не понял. Актив может качать от любых клиентов. Пассив только с актива. И прежде чем заниматься настройкой firewallа нужно по основам tcp/ip почитать чего-нибудь.
Кстати p2p работает и при полностью зарубленном UDP.
Для ручной трассировки соединений я еще раз советую запуск tcpdump ну или iptraf на шлюзе. Сразу становиться видно что происходит
--при соединении с сервером
--при скачивании файла в passive или active режиме
У меня при построении правил не раз возникали проблемы с тем какие же правила написать чтобы пропустить определенный протокол, при этом ничего лишнего не открыв -- доки по протоколам и tcpdump всегда помогали :P
днат то до 1412 порта сделал?
[snapback]4305[/snapback]
что имеешь в виду под "до 1412"?
Перенаправление пакетов, приходящих на 1412 на локальную машину сделал, если это имеешь в виду.
решил всетаки tcpdump поставить, без него я так чуствую не разбируть куда какие пакеты идут.
скачал дистр, пытаюсь установить
rpm -i имяфайла
говорит segmentation fault
это что еще за такое?
[snapback]4315[/snapback]
Похоже rpm у тебя покарежен или железо гнилое. А дистрибутив какой?
Похоже rpm у тебя покарежен или железо гнилое. А дистрибутив какой?
[snapback]4317[/snapback]
Смотри вверху
А мне больше логи нравятся чем tcpdump...
[snapback]4319[/snapback]
:jjosh:
Вы его просто готовить не умеете.
Или месье понимает толк в извращениях.....
C логами и iptables кувыркаться очень долго, а tcpdump запустил и смотри, что нужно, а логи там тоже есть, нужно маны вдумчиво просто читать B) .
в общем пообщался с одним из админов р2р, и он мне разъяснил, что при не локальном фаерволе активный режим невозможен вринципе :(
так что придется в пассиве сидеть
всем спасибо за помощь, хоть ничего и не получилось
[snapback]4387[/snapback]
А к сожалению с протоколом этого p2p не знаком, поэтому поддтвердить или опровергнуть на 100% не могу, но то что это невозможно в принципе -- я сомневаюсь. Возможно админ с возможностями iptables не знаком :)
А к сожалению с протоколом этого p2p не знаком, поэтому поддтвердить или опровергнуть на 100% не могу, но то что это невозможно в принципе -- я сомневаюсь. Возможно админ с возможностями iptables не знаком :)
[snapback]4390[/snapback]
Да я вот честно говоря вообще не понимаю как клиент в активном режиме с фаерволом работает. Ну открою я два порта, и другой чел другие два порта откроет. Далее я ч\з свои порты к нему стучусь, а они у него закрыты. Когда он ко мне стучится, то наоборот. Я вот не понимаю, почему нельзя было сделать чтобы клиент ходил ч\з определенные порты, а не у каждого ч\з свои. Тогда с активным режимом вообще проблем не было бы. Единственный фаервол с которым это работает, это встроенный в ХР, потомучто он похоже понимает DC протокол.