XoRe
СitizensContent Type
Profiles
Forums
Events
Everything posted by XoRe
-
Долгими разговорами с клиентами наученный вежливому общению, могу только промолчать )
-
Советую обратить внимание на 3 колонку в выхлопе ipfw. В условии "from any to 192.168.2.2" трафика после tee становится больше ровно в 2 раза (+-0,00001%). До allow доходят и простые пакеты и их копии. Т.е. делаем вывод, что приходящий к клиенту трафик stg-divert выпускает обратно дальше проверяться правилами фаерволла. А в условии "from 192.168.2.3 to any" трафика на allow после tee ровно столько, сколько его на tee. А ведь до allow доходит не сам пакет, а его копия. Следовательно, исходящий от клиента трафик stg-divert не возвращает в фаерволл. Отсюда приходит решение ситуации (раз уж пошли юзать tee): Для исходящего трафика (from client to any) правило подсчета должно быть tee. Для входящего трафика (from any to client) правило должно быть divert. Правила для проверки для ситуации предыдущего топика должны быть такими: ipfw add 10080 divert 15701 ip from any to 192.168.2.3 in via tun0 ipfw add 10082 tee 15701 ip from 192.168.2.3 to any ipfw add 10087 allow ip from any to 192.168.2.3 ipfw add 10088 allow ip from 192.168.2.3 to any ipfw add 10010 divert 15701 ip from any to 192.168.2.2 in via tun0 ipfw add 10012 tee 15701 ip from 192.168.2.2 to any ipfw add 10017 allow ip from any to 192.168.2.2 ipfw add 10018 allow ip from 192.168.2.2 to any
-
В фаерволле. Ещё может быть выключен в сырцах, в ядре, в sysctl.
-
Попробуй такой способ: В файле: stg-2.402.9.7\projects\stargazer\plugins\capture\divert_freebsd\divert_cap.cpp Ищи функцию int DIVERT_CAP::DivertCapRead(char * b, int blen, char ** iface, int n) В ней есть такая функция: sendto(cddiv.sock, buf, bytes, 0, (struct sockaddr*)&divertaddr, divertaddrSize); Как я понимаю, это отсыл пакета обратно. Так вот, попробуй её закомментировать, перекомпилировать бинарник stg и использовать tee вместо диверта. Только перед компиляцией удали объектные и прочие временные файлы от предыдущей компиляции. Тогда на диверт к STG отсылаться будет копия пакета, а обратно возвращаться не будет. Сам не пробовал, но если интересно, попробуй
-
icmp бывают разные. Список типов по номерам: echo reply (0), destination unreachable (3), source quench (4), redirect (5), echo request (8), router advertisement (9), router solicitation (10), time-to-live exceeded (11), IP header bad (12), timestamp request (13), timestamp reply (14), information request (15), information reply (16), address mask request (17) and address mask reply (18). Если я не ошибся в парсинге лога tcpdump, то виндовый tracert посылает echo request (8), а обратно ему летит time-to-live exceeded (11).
-
Возможно, такая фишка изза разных размеров пакетов или ещё каких-то особенностей в служебных данных.
-
traceroute в *nix для отметок хопов по умолчанию использует 33434 порт udp. man traceroute вам расскажет о том, что для этого можно назначить другой протокол, и другой порт (если протокол TCP или UDP). Например traceroute -I будет использовать уже протокол icmp. tracert в винде использует только icmp протокол.
-
Имхо, афтор просто хочет чтобы проект Stargazer продолжал жить и развиваться. Наверное он чувствует, что его отношение к проекту становится скорее негативным, чем позитивным. Вон на форуме человек даже срываться стал. Немудрено, если нет позитивной отдачи от своих действий, то может появиться желание сложить руки. Так что цель хорошая. Человек не хочет бросать проект, он хочет его развивать дальше, для вас, люди. Борис явно говорит, что хочет заниматься проектом. Кому-то только может не понравиться только способ достижения этой цели. По сути, этот способ - те же donations. Только платящий может указывать, какое направление работ он стимулирует. Я бы добавил к направлениям ещё одно: "Поддержка проекта в целом". Лично я вижу ещё один возможный способ оплаты труда Бориса. Есть в опенсорсе случаи, когда одна или несколько фирм прямо оплачивает работу программистов, пишуших какую-то систему. Фирма пользуется этой системой сама и разрешает на доступ к системе и её исходникам остальном миру. (кстати оцените мудрость людей - им важнее то, чтобы это работало у них, а не то, чтобы этого не было у конкурентов) В нашем случае это может быть применимо так: Одна или несколько провайдеров вкладчину берут автора системы Stargazer на постоянное место работы. Борис прямо и целенаправленно пишет код для них. Делать доступным общественности этот код или нет ( или весь код или части ) - как договорятся А зарплата, например, в виде постоянного оклада, или в виде премий за количество проделанных работ, или комбинированный метод. Имхо, последний эффективнее. Хотя это только размышления, что можно в этом случае придумать. Суть в профессиональном подходе на смену хобби. От себя могу добавить, что работа в стиле "для народа" - это работа, использующая нервы, как топливо. Подход на основе обмена "мне хорошо и тебе неплохо" гораздо более стабилен и долговечен. И чем честнее этот обмен, тем стабильнее и долговечнее проект.
-
Вот пример для sh: a=`grep -i "group" /var/stargazer/users/$LOGIN/conf | cut -f2 -d "="`
-
Сканирование на дыры в интернете ведется постоянно. Проводили исследование - к интернету напрямую, т.е. сразу с внешним адресом, подключался компьютер с виндой. Через 15 минут он был уже атакован. Поэтому лучше такие вещи закрывать сразу.
-
Поменяйте, как пишет Slava. Потому что проверка пакета на соответствие правилу идет сверху-вниз до первого совпадения.
-
2Nastya_Obolon: А если бы сосед сказал, что в подключение входит бесплатные эротические и стрптизерские услуги монтажниками, вы бы побежали прихорашиваться? Обижаться надо на соседа, который вам лапшу на ущи навешал. И на себя за то, что поверили.
-
NetUp, LanBilling - оба в базовых поставках стоят 500-700 у.е.
-
Ты хочешь, чтоб в трассировках с юзерских компов не показывался твой шлюз ?
-
Под freebsd подсчет через divert не работает правильно. Под linux подсчет через queue работает правильно.
-
Stargazer - это биллинговая система, которая требует не установки (автоматической или с указанием пары опций), а внедрения в серверную ОС. По большей части это относится к фаерволлу. У всех разные конфиги фаерволлов, как Stargazer узнает, куда нужно добавлять правила при OnConnect/OnDisconnect, и какие это должны быть правила. Админ должен сам придумать, что куда будет добавляться, а потом ручками все это прописать и оттестить. На сайте stg.dp.ua приводятся только рекомендации. И если при отключении юзера Stargazer запустил OnDisconnect, а юзер не отключился, то это косяк админа. И если админ боится, что юзер отключаться не будет, то именно задача админа писать отказоустойчивые скрипты. Не знаете как писать - читайте доки. Прочитали доки, поняли, но все ещё нет идей - читайте форум, тут примеров достаточно. Если нет желания/времени/и т.д., наймите спеца, который это вам сделает. Кстати такая фича несовместима с авансовой системой работы юзеров. Но если уж так хочется иметь такую фичу, то можно сделать что-то наподобие такого: Ставите в систему консольный конфигуратор (sgconf), ту версию, которая может менять параметр AlwaysOnline в настройках юзера. В OnDisconnect пишите команды конфигуратору выставить юзеру кредит на 1 000 000 и выставить флаг AlwaysOnline. А в OnConnect написать снятие кредита и флага. Хотя... я тут у себя поэкспериментировал... Если включить AlwaysOnline, подключиться авторизатором, убрать флаг AlwaysOnline, а потом отключить авторизатор, то интернет остается) Но в целом пространство для экспериментов остается )
-
Запускай ineaccess через планировшик заданий. Там есть опция - загружать при запуске компьютера. Только что я проверил на своем компе с XP SP2, программа запускается ДО входа в систему. В XP должны быть запущены службы терминалов, вторичный вход в систему и совместимость быстрого переключения пользователей. В 2003 наверное понадобится ещё меньше служб.
-
2Max: "На что только не идут русские, чтобы не покупать cisco" © Здесь тот же случай. 2all: Если есть интерес к решению этой задачи, попробуйте заменить divert на tee. Раз отдавать пакеты не хочет, то может быть хоть считать будет )
-
http://stg.dp.ua/download.php?show=all Там жми на: inetaccess/2.55.7/inetaccess.2.55.7.src.rar
-
Понятно. Им бы не на алигархов, а на преступников охотиться) А вообще, я полагаю, если в сети ничего уж специально противозаконного не делается, то работает такое правило. Если милиция нагрянет - отмазаться можно. Спецслужбы - если захотят, сделают.
-
2digim: Начиная с версии FreeBSD 5.0 (может и раньше), открытые divert порты можно посмотреть командой: sockstat -4l | grep div Насчет того, что divert СТГ не возвращает пакеты - была такая фича в версиях 2.0х. Я по этому поводу давно провел исследования и обнародовал их на форуме. Но в твоем случае, имхо, пакеты дивертуются в неоткрытый порт, т.е. вникуда. Поэтому не обрабатываются СТГ и не возвращаются назад. Для исследований можешь попробовать директиву tee - тот же divert, только в порт отправляется копия пакета. А сам пакет продолжает идти по правилам. И копия после обработки может вернуться и дальше путешествовать ) Т.е. запросы от юзера будут удваиваться, но считать СТГ будет только половину ) Если будет считать, конечно )
-
В исходниках авторизатора (2.55.7) ищем файл OptionsUnit.cpp Там смотрим код: void __fastcall TOptionsForm::OkBitBtnClick(TObject *Sender) { unsigned long ip = inet_addr(ServerIPEdit->Text.c_str()); if (ip == INADDR_NONE) { ShowMessage("Неверный IP!"); ServerIPEdit->SetFocus(); return; } Как видим, идет простая проверка на превращение строки в ип-адрес. Откопав у себя исходничек с таким кодом struct hostent *phe; /* pointer to host information entry */ /* Map host name to IP address, allowing for dotted decimal */ if ( phe = gethostbyname(host) ) memcpy(&sin.sin_addr, phe->h_addr, phe->h_length); else if ( (sin.sin_addr.s_addr = inet_addr(host)) == INADDR_NONE ) exit(1); Я решил, что можно сделать что-нибудь приблизительно такое: void __fastcall TOptionsForm::OkBitBtnClick(TObject *Sender) { struct hostent *phe; /* pointer to host information entry */ unsigned long ip; /* Map host name to IP address, allowing for dotted decimal */ if (phe = gethostbyname(ServerIPEdit->Text.c_str())) { ip = inet_addr(phe->h_addr); } else if ( (ip = inet_addr(ServerIPEdit->Text.c_str())) == INADDR_NONE ) { ShowMessage("Неверный IP или домен!"); ServerIPEdit->SetFocus(); return; } Честно скажу, у себя не компилировал, не проверял. Быть может вместо "ip = inet_addr(phe->h_addr);" нужно писать "ip = phe->h_addr". А в целом оставляю, как домашнее задание для программистов )
-
А ещё расшифровку, какой интерфейс куда ведет. Проведу некоторый ликбез: Вот есть шлюз. Представим его в виде сетевух и ядра. ----|in0|----|CORE|----|out0|---- in0 смотрит внутрь в сетку 192.168.0.0/24, имеет адрес 192.168.0.1, шлюза нету out0 смотрит наружу в сетку 100.100.100.0/24, имеет адрес 100.100.100.2, а шлюзом имеет машину провайдера: 100.100.100.1 CORE - это, соответственно ядро ОС. Обработка фаерволом пакетов идет на in0 и на out0. Т.е. любой пакет, идущий насквозь через комп, проходит фаерволл 2 раза. Пакет от клиента вида 192.168.0.2 -> 200.200.200.200, идет сначала через in0. Сейчас он приходящий, т.е. подчиняется условию in. Проходит фаерволл, заканчивая путешествия по правилам фаерволла на каком-нибудь allow. Проходит через ядро в таком же виде, т.е. 192.168.0.2 -> 200.200.200.200. На out0 он nat'ится и получает вид: 100.100.100.2 -> 200.200.200.200. Сейчас он исходящий, т.е. подчиняется условию out. Правилом allow он уходит. Тут следует учесть, что allow должен быть не на 192.168.0.2 -> 200.200.200.200, а на 100.100.100.2 -> 200.200.200.200. Потом приходит ответ от сервера в виде пакета: 200.200.200.200 -> 100.100.100.2. Сейчас он приходящий, т.е. подчиняется условию in. Пакет поступает на фаерволл на in0, попадает в natd и становится пакетом вида: 200.200.200.200 -> 192.168.0.2. Потом первое же подходящее правило allow его пуляет дальше. Пакет 200.200.200.200 -> 192.168.0.2 проходит ядро, не меняясь. На интерфейсе in0 пакет не меняется, т.е. он выглядит как 200.200.200.200 -> 192.168.0.2. Сейчас он исходящий, т.е. подчиняется условию out. И первое подходящее правило пуляет его в локалку. Выводы: 1. Отправлять на диверт к СТГ можно и на внешнем и на внутреннем интерфейсе. НО, трафик локалки удобнее считать на внутреннем интерфейсе. Нет мороки с адресами и можно считать локальный трафик до шлюза, если надо. 2. Отправлять на диверт СТГ только отфильтрованные пакеты. Например, сначала зарезать весь бродкаст, мультикаст и прочую фигню. Т.е. deny на такой трафик должен идти до divert на СТГ. 3. Если вам не нужно считать локальный трафик до шлюза, то его тоже можно не отправлять на диверт. Т.е. allow на такой трафик должен идти до divert на СТГ. 4. Диверт СТГ пакета не меняет, в отличие от divert nat. 5. Если вы хотите иметь диверт СТГ и диверт nat на одном интерфейсе, то опишите правила так, чтобы пакеты отправлялись к СТГ ДО ната, если они идут в мир, и ПОСЛЕ ната, если это ответ из мира. Чтобы был виден локальный айпишник. Т.е. например такая конструкция: divert 7777 ip from 192.168.0.0/24 to any via out0 divert natd ip from any to any divert 7777 ip from any to 192.168.0.0/24 via out0 У меня сложилось мнение, что есть некоторое недопонимание каких-то моментов. Поэтому я описал это максимально подробно. По себе знаю, что пока вот так подробно не представишь движение пакетов, с правилами играться довольно трудно.
-
1. Скинь сюда выхлоп программы ifconfig 2. Скинь сюда выхлоп программы netstat -rn 3. Скинь сюда выхлоп программы arp -na
-
Имхо, тут правило простое: захотят - сделают. Захотят - наедут. Захотят - найдут повод. Вообще да, есть авторские права, есть правила лицензирования программ и ОС. Но если доведут до суда, то в виду хлипкости доказательной базы в сфере IT-технологий, вину доказать сложно. Пример: Ну лежат у меня порнофильмы. Но доступ к ним был под паролем, который я пользователям не давал. Кто вошел, он вошел? Тогда я хочу подать встречный иск на несанкционированный доступ к данным. И.т.д. Логов нет. Если логи есть, то толку от них 0, ибо они ведутся в текстовом виде, и их можно написать самому. Время последнего изменения файлов логов тоже нельзя считать уликой, так как оно легко меняется. С другой стороны, если захотят навредить - навредят. Поэтому я бы посоветовал пообщаться с ними, может они что-то от вас хотят. Имхо, просто так наезжать не будут. Иначе они постоянно ходили бы по конторам с такими проверками.
