Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2004.02.06;
Скачать: [xml.tar.bz2];

Вниз

Как программно разорвать удаленный диал-ап?   Найти похожие ветки 

 
NikeOLD   (2003-11-29 14:02) [0]

Есть задача: клиенты дозваниваются по диал-апу на сервер, происходит короткий обмен информацией, после чего клиент должен отсоединиться. Некоторые злоупотребляют и мешают другим. Имеется собственная программа по мониторингу клиентов без возможности принудительного их отключения. Как с сервера послать сообщение удаленной машине "повесить трубку" при условии, что клиент звонит не непосредственно на сервер, а на CISCO? TimeOut на CISCO стоять не должен.
Есть вариант, написать службу, которая будет слушать какой-либо порт и повесить ее на клиента. Когда придет сообщение с сервера, служба разорвет диал-ап. Однако есть неувязочка - на CISCO открыт лишь один порт по которому идет обмен.
Может быть можно как-то обойтись без написания службы?


 
Карелин Артем   (2003-12-01 08:00) [1]

Как ты это себе представляешь? В чем разница между службой, мониторящей порт и программой, мониторящей порт? Как ты себе представляешь обмен сообщениями через закрытые порты?
Предлагаю открыть еще один порт на Циске и писать программу для дисконнекта со стороны клинта.


 
NikeOLD   (2003-12-01 12:53) [2]

Благодарю за ответ.
Если есть открытый порт - то все просто. Из своей программы посылаю сообщение клиенту о дисконнекте на порт, прослушиваемый службой. Далее все и так ясно, служба закрывает коннект - задача выполнена.
Только в этом-то и проблема, что порты открывать нельзя, да и не в моей власти Циска. Поэтому и хотел узнать нет ли другого способа разорвать соединение с сервера без установки дополнительного ПО на клиенте.


 
Reindeer Moss Eater   (2003-12-01 13:07) [3]

RAS сервер организован на циске. Стало быть в том линуксе что крутится на циске должен быть процесс, умеющий класть трубу по сигналу твоего сервера, который считает длительность сеанса с клиентом.
Иначе никак. Случаи аппаратного прерывания сеанса связи не рассматриваю.


 
Reindeer Moss Eater   (2003-12-01 13:13) [4]

Только это все равно слабо поможет.
Кто-то может занять канал и без последующего соединения с сервером системы.
И сервер ничего не узнает о том, что канал занят, и сколько именно времени он занят.


 
NikeOLD   (2003-12-01 15:37) [5]

В настоящее время дозвон происходит регулярно по трем телефонам, 3 клиента из 30 могут висеть одновременно. У всех я знаю IP, знаю каждого поименно, значит можно организовать нечто вроде net send для разрыва связи на стороне клиента. Неужели единственным выходом остается писать ServiceApplication, а затем копать техническую службу, чтобы они установили ее у всех клиентов: это ж вся Нижегородская область!!?


 
Карелин Артем   (2003-12-01 15:42) [6]

Ну сдался тебе этот ServiceApplication!! Делай прогу с невидимым окном и пихай в автозагруз.


 
Reindeer Moss Eater   (2003-12-01 15:43) [7]

У всех я знаю IP, знаю каждого поименно, значит можно организовать нечто вроде net send для разрыва связи на стороне клиента.

Это если на дозвонившемся компьютере есть клиентская программа, слушающая команды сервера. (а позвонить может и не клиент твоего сервера)

Это если сервер знает, что клиент позвонил и висит на линии (для этого надо что бы дозвонившийся клиент соединился с твоим сервером)


 
NikeOLD   (2003-12-01 15:49) [8]

В автозагруз это неактуально. Если бы ты знал какие там идиоты работают, то так рисковать не стал бы, слишком серьезные задачи решаются у нас. Да и опыт написания служб пригодился бы...
Но, понимаю, суть от этого не меняется, что служба, что прога - один черт на клиента физически вешать, хотя в случае с прогой дополнительные настройки делать проще, можно даже прямо с сервера.
Спасибо за терпение!
Дальнейшие советы приветствуются. Заранее спасибо.


 
Reindeer Moss Eater   (2003-12-01 15:50) [9]

Вот например схема, которая сведет на нет все твои усилия по квотированию клиентов:

У клиента своя локальная сеть. Модем на одной машине, а твой клиент на другой. Дозвонившийся компьютер служит шлюзом твоему клиенту, и клиент работает с твоим сервером через NAT.

Адрес дозвонившегося хоста ты знаешь, но там нет твоего софта, который может разорвать диалап.
Посланная с сервера команда с просьбой дисконнекта до клиента дойдет, но у него нет "рубильника" что бы разорвать диалап.


 
NikeOLD   (2003-12-01 16:01) [10]

Превосходно! Буду знать на будущее, однако под мои задачи я на 200% знаю, что дозвон будет производиться с клиента, на котором есть модем и моя софтина. В этом заключается работа нашей системы. Если провести дозвон через шлюз - сервер просто пошлет подальше, вернее даже не сервер, а сама Циска.


 
Reindeer Moss Eater   (2003-12-01 16:05) [11]

Если провести дозвон через шлюз - сервер просто пошлет подальше, вернее даже не сервер, а сама Циска.

Щазззз.
Расскажи мне как она узнает, что на звонящей стороне нет вообще нет твоего клиента?

Другой более простой случай.
Клиент дозвонился диалапом, не не спешит делать коннект к сервису твоей системы. Твой сервис даже не узнает, что один канал вот уже полдня как занят.


 
NikeOLD   (2003-12-01 16:12) [12]

Нет здесь суть в том, что все клиенты ходят по статичным IP адресам. Клиент звонит на Циску, его по выделенке кидают на наш сервер приложений. Да он может висеть полдня, но он будет занимать линию, значит банальный пинг по всем известным даст мне "клиента-висуна". Он не может присоединиться никуда кроме моей системы, это ему нафиг не надо. Повременку платить и т.п., он присоединился чтобы забрать информацию или получить ее, но вот получив он может висеть, висеть и висеть.
Вот такая у нас дурацкая система. Кроме того клиент авторизовывается на Циске, никто кроме него не может пройти под его логином и IP, а в самой системе еще целая куча наворотов, которая не позволит чужаку забрать неполагающуюся только ему информацию.


 
Reindeer Moss Eater   (2003-12-01 17:31) [13]

Да он может висеть полдня, но он будет занимать линию, значит банальный пинг по всем известным даст мне "клиента-висуна". Он не может присоединиться никуда кроме моей системы, это ему нафиг не надо. Повременку платить и т.п., он присоединился чтобы забрать информацию или получить ее, но вот получив он может висеть, висеть и висеть.

Ну и что это меняет? Что это дает тебе?

Узнал твой сервер, что IP такой-то все получил и все равно не отсоединяется. И что?
Начинает твой сервер слать душераздирающие крики о необходимости положить трубу, а программа клиент давным давно там выгружена из памяти (труба не положена, а программу выключили).

Подпоркой это называется.

целая куча наворотов, которая не позволит чужаку забрать неполагающуюся только ему информацию.

Еще раз: пофик вообще вся твоя информация. Он позвонил, и сидит. Никуда вообще не коннектится. Информация твоя в порядке, а линия занята.


 
panov   (2003-12-01 17:55) [14]

Так как используешь Cisco, то воспользуйся ее возможностями.
Поключайся в режиме терминала администратором к Cisco, мониторь логи и/или интерфесы и отключай/поднимай соответствующие интерфейсы. И не надо изобретать велосипед и усложнять себе задачу.


 
NikeOLD   (2003-12-01 22:31) [15]


> Узнал твой сервер, что IP такой-то все получил и все равно
> не отсоединяется. И что?
> Начинает твой сервер слать душераздирающие крики о необходимости
> положить трубу, а программа клиент давным давно там выгружена
> из памяти (труба не положена, а программу выключили).

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


> Еще раз: пофик вообще вся твоя информация. Он позвонил,
> и сидит. Никуда вообще не коннектится. Информация твоя в
> порядке, а линия занята.

Даже если он просто законнектился я его вижу своей прогой, сообщения могу слать и т.д. Требуется лишь сказать его машине: "повесь, блин, трубку и не мешай другим"


> Поключайся в режиме терминала администратором к Cisco, мониторь
> логи и/или интерфесы и отключай/поднимай соответствующие
> интерфейсы. И не надо изобретать велосипед и усложнять себе
> задачу.

Циска находится в нескольких улицах от меня, в здание имеют доступ лишь несколько человек (она вообще в ведении третьей организации, которая не позволит мне управлять ее сервисами), а подключиться в режиме терминала без Линукса возможно? Если даже и да, то у меня все равно опыта в Циске 0%. Стоял одно время принудительный дисконнект через 15 минут, несовсем то, что нужно. Иногда разрыв связи приходился на обмен информацией, в итоге программа-сервер считала, что она все передала, а клиент ничего не получил - 2 часа работы в пустоту. Кстати, сервер и клиент написан не мной, я бы так криво в жизни ни написал, ну да меня никто спрашивать не станет, приходится администрировать то, что есть.


 
Reindeer Moss Eater   (2003-12-02 09:14) [16]

...она вообще в ведении третьей организации, которая не позволит мне управлять ее сервисами...

Замечательно.
А теперь подумай, с какой стати ты занимаешся защитой ресурсов чужого устройства, к которому тебя даже не подпускают?

Защищаемый ресурс в этом случае - входная телефонная линия у RAS сервера.

Тебе надо реализовать ограничение длительности сеанса твоего клиента с твоим сервером. Всего лишь. Остальное - не твоего ума дело.


 
Anatoly Podgoretsky   (2003-12-02 09:21) [17]

Не в свое дело однако лезешь, такие действия одназначно могут квалифицироваться как хакерские.


 
Reindeer Moss Eater   (2003-12-02 09:23) [18]

Даже если он просто законнектился я его вижу своей прогой, сообщения могу слать и т.д. Требуется лишь сказать его машине: "повесь, блин, трубку и не мешай другим"

Ну вот позвонил я из Win9x на эту циску. Никакой программы клиента у меня и в помине нет, или я ее не запускаю, или запускаю, но сразу выгружаю из памяти.
Одним словом нет её. WinPopUp тоже выключен.
Что ты мне пошлешь?

Ладно, допустим прислал ты мне открытку с требованием положить трубку.
Клиент сам что ли не знает, что линию занимать нехорошо?
Если не знает, то проведи политинформацию среди пользователей.
А если знает, что отключатся надо, но все же не отключается, то что изменит сообщение полученное от тебя?


 
NikeOLD   (2003-12-02 11:16) [19]


> Тебе надо реализовать ограничение длительности сеанса твоего
> клиента с твоим сервером. Всего лишь. Остальное - не твоего
> ума дело.

Именно это я пытаюсь сделать. Только не средствами Циски, а собственными силами.


> Ну вот позвонил я из Win9x на эту циску. Никакой программы
> клиента у меня и в помине нет, или я ее не запускаю, или
> запускаю, но сразу выгружаю из памяти.
> Одним словом нет её. WinPopUp тоже выключен.
> Что ты мне пошлешь?

Данная система работает только под WIN2000.


> Ладно, допустим прислал ты мне открытку с требованием положить
> трубку.
> Клиент сам что ли не знает, что линию занимать нехорошо?
> Если не знает, то проведи политинформацию среди пользователей.
> А если знает, что отключатся надо, но все же не отключается,
> то что изменит сообщение полученное от тебя?

Открытки я посылать не стану, все от них толку нет, да и велосипед это получиться - можно ведь без доп. сервиса net send послать. Вместо этого принудительный дисконнект. Клиент будет думать, что связь просто оборвалась (то же самое происходит, если кидает сама Циска). Только вот политинформация доходит туго. Многих уже не на одну зарплату начальство наказало, да толку пока маловато.


> Не в свое дело однако лезешь, такие действия одназначно
> могут квалифицироваться как хакерские.

В моем случае - никто вякнуть не посмеет.


 
Reindeer Moss Eater   (2003-12-02 11:22) [20]

> Тебе надо реализовать ограничение длительности сеанса твоего
> клиента с твоим сервером. Всего лишь. Остальное - не твоего
> ума дело.

Именно это я пытаюсь сделать. Только не средствами Циски, а собственными силами.


Нет. Ты пытаешся сделать не это.

Данная система работает только под WIN2000.

И что помешает мне позвонить на циску с win9x? (мне твоя система вообще сто лет не нужна. Я хочу занять линию)

Открытки я посылать не стану, все от них толку нет, да и велосипед это получиться - можно ведь без доп. сервиса net send послать. Вместо этого принудительный дисконнект. Клиент будет думать, что связь просто оборвалась (то же самое происходит, если кидает сама Циска). Только вот политинформация доходит туго. Многих уже не на одну зарплату начальство наказало, да толку пока маловато.

Когда же наконец до тебя дойдет, что дисконнект от твоего сервера - это не одно и тоже что и дисконнект от RAS сервера?

Ну сколько можно об одном и том же??????


 
NikeOLD   (2003-12-02 11:56) [21]


> И что помешает мне позвонить на циску с win9x?

Да звони сколько влезет, если сможешь, конечно. Ты меня интересовать не будешь. Сказано же - не пройдешь. пройти можешь только как один из клиентов (под его логином, паролем и IP). Я же говорил - IP статичный! И радиус-сервер отуствует начисто. Есть IP - есть клиент. Если ты всего-лишь "дух", то ты не пострадаешь от дисконнекта (некому будет отрывать тебя от сети), но настоящий клиент все-равно пострадает тем или иным способом.


 
panov   (2003-12-02 12:03) [22]

Значит остается тебе писать сервис и устанавливать у каждого клиента.


 
Reindeer Moss Eater   (2003-12-02 12:06) [23]

Ты меня интересовать не будешь.

Вот именно. Наклнец-то начинаешь понимать.
То, что я позвонил, и уже полдня занимаю линию у циски ты даже не узнаешь. Потому что я к твоему драгоценному серверу даже не пытаюсь коннектиться.

А ты же хочешь что бы я линию не держал более положенного времени.

Удачи тебе в этом трудном деле.


 
NikeOLD   (2003-12-02 12:19) [24]


> А ты же хочешь что бы я линию не держал более положенного
> времени.

Именно! Так посоветуй что-нибудь конкретное!


 
panov   (2003-12-02 12:36) [25]

>NikeOLD (02.12.03 12:19) [24]

Исходя из исходных данных и уточнений решение может быть только таким:
1. Если клиентская и серверная часть твои, то проблем с отсоединением нет - сервер посылает соответствующее сообщение клиенту в основном потоке данных, клиент обрабатывает сообщение и отключается.
2. Клиентская и/или серверная часть не твои.
В этом случае решения нет.(Из-за условия - "открыт только один порт").
3. Если есть (или получить доступ к циске) - см. panov © (01.12.03 17:55) [14]
4. Договориться о настройке соответствующим Cisco с владельцем оной (Отключение клиентов по тайм-ауту). Cisco позволяет такое делать.


 
Reindeer Moss Eater   (2003-12-02 12:43) [26]

Поставь RAS сервер на компютере со своим сервером, и тогда проблем с отсоединением заснвуших клиентов действительно не будет. Потому что все будет в твоих руках.


 
NikeOLD   (2003-12-02 12:45) [27]


> panov © (02.12.03 12:36) [25]

Огромное спасибо.
Человек хотя бы что-то дельное предложил. Хотя бы ради опыта стоит написать клиентскую часть. А уж вопросы эффективности и/или работоспособности оставим на потом :-) .
Еще раз спасибо!!!


 
NikeOLD   (2003-12-02 12:48) [28]


> Поставь RAS сервер на компютере со своим сервером, и тогда
> проблем с отсоединением заснвуших клиентов действительно
> не будет. Потому что все будет в твоих руках.

Давно пора, но еть определеные проблемы в виде тормознутости и бюрократизированности некоторых наших организаций. Почти 1,5 года твержу про RAS-сервер. В итоге видишь чем заниматься приходится.


 
Reindeer Moss Eater   (2003-12-02 12:50) [29]

А уж вопросы эффективности и/или работоспособности оставим на потом :-) .

Браво. Дык тебе любое решение подходит.
Зачем надо было столько времени мучительно искать решение?


 
NikeOLD   (2003-12-02 12:57) [30]

Надеялся найти наиболее простой путь. А ты бы не стал этого делать в моей ситуации?
Все-равно благодарю за терпение!



Страницы: 1 вся ветка

Форум: "Сети";
Текущий архив: 2004.02.06;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.54 MB
Время: 0.033 c
6-16550
Haxx
2003-12-03 15:51
2004.02.06
Какая библиотека нужна для коннект с MySQL


14-16722
NeyroSpace
2004-01-16 13:03
2004.02.06
Вот заказал песню по РадиоРокс в ближайший час.


14-16724
Lony
2004-01-16 13:11
2004.02.06
Файлы вместо ADO


3-16066
Grihan
2004-01-12 09:49
2004.02.06
Создание базы Interbase с определенной кодировкой


1-16305
SeS
2004-01-23 18:15
2004.02.06
Забор значений из файла





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский