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

Вниз

Отключить интернет   Найти похожие ветки 

 
Den[NSP]   (2003-08-12 01:29) [0]

Пару раз вопрос уже поднимался (в архиве форума нашел), но ничего толкового так и не предлагалось.

Требуется из своей программы отключить инет на локальном компе. Комп подключен к инету ПО ЛОКАЛЬНОЙ СЕТИ, т.е. в настройках TCP/IP указан адрес основного шлюза и все запросы отправляются на него.
Так вот, требуется запретить передачу данных по определенным портам (всем кроме NetBIOS, ICMP)
Лучше всего конечно перекрыть порты, т.е. сделать что-то вроде фильтра пакетов. Но возможны и другие варианты...

Кто поможет с этим? (совет, исходник, линк)


 
Reindeer Moss Eater   (2003-08-12 11:27) [1]

Требуется из своей программы отключить инет на локальном компе.

Где должна работать эта программа?
На компьютере жертвы?
На компьютере-шлюзе?
На компьютере третьего лица?


 
Verg   (2003-08-12 12:22) [2]


> Лучше всего конечно перекрыть порты, т.е. сделать что-то
> вроде фильтра пакетов.

...в просторечье FireWall.

Я думаю, что начиная с Win2K можно наверно откопать способ отключать протоколы в сетевых интерфейсах без перезагруки компа, но если ты отключишь TCP/IP, то ни о каком ICMP и речи уже быть не может.


 
Den[NSP]   (2003-08-13 02:17) [3]

to Reindeer Moss Eater ©:
Программа - клинет системы управления компьютерным клубом (не совсем клуб конечно, но идея та же) Следовательно программа должна работать на каждом компьюере клуба кроме одного, на котором работает серверная часть программы.
Вариант с контролем на шлюзе не подходит, т.к. к серверу нет доступа. На нем настроен NAT, а на всех клиентах в качестве основного шлюза указан адрес этого сервера.

to Verg ©:
Нет, именно фильтр пакетов... фильтр пакетов - всего лишь часть полноценного firewall.
Никто и не говорил про Win2K... система должна работать на Win9x, но в будущем клиенты будут переведены на NT и хотелось бы сохранить функциональность программы.
А в 9х отключить интерфейс без перезагрузки вряд ли получится...
И вообще, отключение TCP/IP не подходит, т.к. мне нужно оставить доступ к локальной сети (в частности - сетевой печати).

Где-то в архиве нашел предложение убивать один из маршрутов в таблице маршрутизации (0.0.0.0), а при необходимости восстанавливать его.
Это конечно вариант, но я не уверен в его надежности.
Единственная проблема - как управлять таблицей из своей программы (не используя командную строку - WinExec и т.п.)
И вообще, где хранится локальная таблица маршрутов?...


 
Verg   (2003-08-13 07:58) [4]

Ну, допустим для 98 можно использовать ф-ии типа

CreateIpForwardEntry
DeleteIpForwardEntry
EnableRouter
GetBestInterface
GetBestRoute
GetIpForwardTable
GetRTTAndHopCount
SetIpForwardEntry
UnenableRouter


 
Reindeer Moss Eater   (2003-08-13 09:21) [5]

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

На нем настроен NAT, а на всех клиентах в качестве основного шлюза указан адрес этого сервера.

Так ведь NAT не сам по себе живет. Он реализован каким-то ПО. К нему тоже доступа нет у администрации?


 
Anatoly Podgoretsky   (2003-08-13 10:19) [6]

Den[NSP] (13.08.03 02:17) [3]
Только на шлюзе, нет доступа, кто мешает поставить отдельный компьютер и на нем файрвол или прокси, главное что бы были две интерфейсные карты, иначе вся работа насмарку. Дешевый Линукс на завалящем компьюере и всего делов.


 
Den[NSP]   (2003-08-14 06:18) [7]

to Reindeer Moss Eater ©:
Это не совсем клуб, как я и писал...
Шлюз настроен у провайдера, т.е. свич локалки соединен со свичем провайдера (хотя трудно сказать что там за железо у него), а свич прова в свою очередь со шлюзом... Так что к серверу доступ исключен.

to Anatoly Podgoretsky ©:
Это конечно разумный вариант, но как я буду из своей проги управлять прокси-сервером? (Уже была такая необходимость в другом проекте, управление WinGate... кое-как криво сделал включение/отключение учеток, но больше я так извращаться не буду...)
К тому же я к администрированию этой локалки отношения не имею... Я только пишу программу. (Да и вряд ли контора разорится на дополнительный сервак, контора государственная с "государственным" финансированием...)

Verg ©:
Насколько я вижу по названиям некоторые функции вполне могл ибы пригодиться...
Но я уже нашел подходящий вариант, кто-то давно советовал в форуме по похожуму вопросу: выставить TTL в 1 или даже в 0 (в первом случае скорее всего будет работать разрешение имен через DNS провайдера, во втором будет обрубаться все что за пределы локалки...). Работает замечательно в 9x и NT... Функция реализована в IPHlpAPI.dll.

Спасибо всем принимавшим участие в обсуждении...


 
Anatoly Podgoretsky   (2003-08-14 07:31) [8]

Den[NSP] (14.08.03 06:18) [7]
Так как будет доступ до файрвола/прокси то управление возможно, при том полнейшее, в данной задаче прокси не обязателен, достоаточно простого файрвола и маршрутизации. Пакет или пропускается или нет, при том даже NAT не требуется.
Какую конкретно использовать программу или самому написать выбор стоит за тобой. Для данной задачи достаточно 486 компьютера с минимумом памяти, например FreeSco не требуется даже диск



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

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

Наверх





Память: 0.47 MB
Время: 0.008 c
1-40425
Oleg_K
2003-10-03 08:34
2003.10.13
Проблема с TDateTimePicker


11-40334
Separotor
2003-01-30 17:59
2003.10.13
[Fatal Error] Klabel.pas(23): File not found: DsgnIntf.dcu


1-40356
Eagle Owl
2003-09-30 23:40
2003.10.13
Delphi 7


1-40347
Темчик
2003-10-01 23:04
2003.10.13
StringGrid


3-40290
bushmen
2003-09-22 10:43
2003.10.13
Трёхзвенная архитектура





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский