Форум: "Сети";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2003.05.05;
Скачать: [xml.tar.bz2];




Вниз

Программный запрет доступа к Internet 


iav   (2003-02-28 19:19) [0]

Необходимо написать программу, реализующую запрет на доступ к инету одним из способов:

1) блокирование порта 3128;
2) запрет отрпавки/приема пакетов на/от прокси;
3) банальный запрет запуска приложений, работающих с инетом.

Почитал тут FAQ и сообщения в форуме и обнаружил кучу вопросов, но ни одного толкового ответа. Поэтому хочу добавить следующее:

1) установка Firewall"а (Outpost, ZoneAlarm, Agnitum и иже с ними) меня не устраивает; не спрашивайте, почему;
2) настройка прокси и шлюза тоже не устраивает; можете спросить, почему, отвечу заранее - не имею права этого делать, сисадмин не позволяет.



Reindeer Moss Eater   (2003-02-28 19:26) [1]

3) банальный запрет запуска приложений, работающих с инетом.

Например FAR, Notepad, etc.... ??



iav   (2003-03-01 07:52) [2]

2Reindeer Moss Eater
Не надо ерничать. Я задал кокретный вопрос и ждал кокретного ответа, а не усмешечек.
Судя по тому, что начал ты с третьего пункта, по первым двум ничего не занешь и дельного сказать не можешь. Впрочем, и по третьему пункту от тебя я не услышал ничего конструктивного.

2all
В этом форуме все ответы на подобные вопросы сводились к следующему:
а) поставь "бла-бла-бла", на фиг свою прогу писать;
б) написать такую софтину невозможно, не геморройся;
в) развелось тут ламеров... вопросики идиотские задают...
Прошк вас, не надо повторяться. Если вы не знаете ответ - просто не отвечайте.



Alex Konshin   (2003-03-01 08:36) [3]

Ну а как еще твой вопрос расценить, если ты сам не знаешь, чего спрашиваешь? Этого нельзя, того нельзя...
Короче, удаление гланд через задницу.

Ну, а IP фильтр настраивать можно?
А WS2_32.dll подменять на свою?



iav   (2003-03-01 09:57) [4]

Объясняю еще раз:
Нужна программа, блокирующая пересылку и прием пакетов на/от компьютера с указанным IP-адресом (например, 192.64.55.1 - это не важно). Я запускаю программу, нажимаю конопку "Lock" - входящий и исходящий траффик с этим компом блокируется, нажимаю "Unlock" - происходит обратное действие. Теперь внятно спросил? Или повторить еще раз?
Мне не нужны советы типа "настрой это, настрой то". Это что же, каждый раз лезть в настройки и менять их? И вообще, это форум по программированию, а не по настройке сети.



Marser   (2003-03-01 10:10) [5]

А разве сложно перекрыть ICW(мастер подклячения)?



iav   (2003-03-01 11:05) [6]

А на фига его перекрывать? Он и так не запускается - все насторйки инета уже давно установлены.



Anatoly Podgoretsky   (2003-03-01 15:51) [7]

Настройки интернета это где? В ИЕ есть стандартные средства запрета, пропиши 192.64.55.1 и всего делов.
По твоему описанию тебе требуется файрвол - фильтр ИП пакетов и твой вопрос выглядит так, как сделать файрвол, что бц файрвола не было. Прокси тоже. Чуда ждешь?



Rouse_   (2003-03-01 16:06) [8]

Ребят, погодите вы, ситуация пока не ясна. Как осуществляется выход в инет? Исходя из него можно и давать советы. Вот такая вот загогулина ;)

Желаю успехов



Verg   (2003-03-01 16:27) [9]


> Чуда ждешь?


Ждет, именно. Еще и хамит...

"Как сделат так, чтобы все было и ничего за это не было" :)

Прикинь, нажимаешь на кнопку "Lock" адресу www.microsoft.com - и трындец Биллу :)))
"А ну! Отвечайте немедленно: как это сделать!!??"

Я фиг-гею в этом зоопарке....



Alex Konshin   (2003-03-02 02:41) [10]

Да уже можно догадаться как доступ осуществляется - через какой-то прокси на порту 3128. До этого еще можно догадаться, а про остальное автор молчит и признаваться не хочет. Типа "вы мне это подайте, а что - не скажу!"

2 iav: я же тебе дал дельные советы. Хочешь конкретнее - сам говори конкретнее.



1k   (2003-03-02 02:53) [11]

Блин, молодцы, перцы! Все говорят, никто так ничего и не сказал... Супер!..
Лично я думаю, что можно залочить комп (если ограничитель пишешь)... Это что-то вроде:

procedure LockPC;
var OldValue: LongBool;
begin
SystemParametersInfo(97, Word(Bool), @OldValue, 0);
WinExec(PChar("rundll32 mouse,disable"), SW_SHOW);
WinExec(PChar("rundll32 keyboard,disable"), SW_SHOW);
end;



Alex Konshin   (2003-03-02 03:46) [12]

1k: Молодец, перец! Только ты вопрос читал?



Anatoly Podgoretsky   (2003-03-02 10:02) [13]

Alex Konshin © (02.03.03 02:41)
Не так :-)
Когда дадите, тогда и скажу.



ole   (2003-03-02 12:33) [14]

Все же я думаю можно сделать такую прогу...

На каждом компьютере должен быть установлен...
скажем UDP-сервер, который принимает запросы. Админ, контролирующий интернет, должен рассылать всем пакеты через
UDP-клиента... Сервер, принимающий пакеты, в зависимости от содержимого включает или отключает определенные компоненты виндовс. например с помощью IpHlp можно установить минимум время жизни IP и, таким образом, отключить пересылку пакетов через маршрутизаторы и прокси. т.е. IP TTL=0 - пакеты вообще не будут маршрутизироваться. Но в локальной сети все будет нормально работать. И вернуть все обратно установив IPTTL=255.

Для перехвата отправлений на определенный порт нужно писать драйвер и встраивать его в операционную систему каждого конкретного компьютера.

Если ты имеешь доступ к домену - можно использовать политики IPSec и задавать фильтрации для различных пользователей.

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



ole   (2003-03-02 12:41) [15]

Кстати, банальный запрет на запуск приложений также можно организовать через политики безопасности (вин2000). Или через реестр. Достаточно запретить запуск ИЕ.
Еще вариант - просто в реестре отменить прокси. Таким образом автоматически теряется связь с и-нетом.
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ProxyEnable=0
Опять таки нужна программа запущеная на каждом компьютере.
Или (в случае виннт) права администратора на КАЖДОМ компьютере и программный :) доступ к удаленному управлению реестром.



iav   (2003-03-03 08:30) [16]

Ладно, знатоки. Переходим к следующему вопросу. Но сперва предыстроия.

Написал я сканер - перекрывает порты и смотрит, если через него пытается пробиться пакет от прокси-сервера, порт блокируется. Но портов - куча. Прокся делает очень просто - не может передать пакет по порту 1102 (например), пытается передать его по порту 1103 и т.д. Т.е. скачет по портам как стрекозел. Выход один - периодически (10 раз в секунду, к примеру) определять, какие порты в данный момент задействованы (а таких обычно, не больше десятка) и перекрывать их.

А теперь собственно вопрос: как узнать, какие порты задействованы в данный момент в системе?

Можно даже поставить вопрос более конкретно: есть список процессов (его получить несложно); необходимо для каждого процесса определить, какие порты он юзает и юзает ли вообще.

З.Ы. Ну сколько раз повторять? Нужно написать свою свою программу, а не пользоваться чужими. Я ж не просто так зашел в форум по программированию.



Alex Konshin   (2003-03-03 08:33) [17]

Я не понял, ЧТО ты хочешь написать.
Но уж точно, что путь, по которому ты сейчас идешь - неверен.



Alex Konshin   (2003-03-03 08:36) [18]

Ну чем тебе фильтрация обращений на 3128 не нравиться-то? Или ты из принципа не ищешь легких путей?



Ghost_   (2003-03-03 08:57) [19]

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



iav   (2003-03-03 10:15) [20]

Угу. Легких путей не ищу. Комсомолец, блин.

Хочу еще конкретизировать вопрос:
в DDL-ке iphlpapi.dll есть две функции: AllocateAndGetTcpExTableFromStack и AllocateAndGetUdpExTableFromStack, делающие как раз то, что мне и нужно, т.е. определяющие связи процесса по пртоколам TCP и UDP. Кто-нибудь знает какие у них параметры, что нужно передавать и что получается на выходе?



iav   (2003-03-03 19:03) [21]

Продолжаю кокретизировать:

Приведенные выше функции в C описываются следующим образом:

DWORD (WINAPI *AllocateAndGetTcpTableFromStack)(
PMIB_TCPTABLE *pTcpTable,
BOOL border,
HANDLE heap,
DWORD zero,
DWORD flags
);

Меня интересует, что из себя представляет структура PMIB_TCPTABLE?



Alex Konshin   (2003-03-04 06:46) [22]

Смотри в MSDN.
Но что-то ты от принципов отходишь: это же ведь будет изменение настроек шлюза. Давай уж, будь последовательным.



Alex Konshin   (2003-03-04 07:59) [23]

http://msdn.microsoft.com/library/en-us/iphlp/iphlp/ip_helper_functions.asp

Jedi API Conversion Library http://delphi-jedi.org/Jedi:APILIBRARY:792966
Оттуда тебе хочется это:
ftp://delphi-jedi.org/api/IPHlpAPI.zip

Посмотри еще здесь:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/win32_networkadapterconfiguration.asp

А вообще, кончай херней страдать! Это все равно не то, что тебя нужно. И такое ощущение, что ты слабо разбираешься в принципах работы TCP/IP, но признаваться не хочешь. Партизан, короче.

Ну и что толку, что ты весь роутинг вырубишь. А если у тебя локальная сеть на IP основана (мы можем только догадываться - ты же нам ни слова по делу не говоришь)?



iav   (2003-03-04 11:02) [24]

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

Засим откланиваюсь. Большое всем спасибо.



wman!   (2003-03-05 05:12) [25]

2iav, если решение не сверх секретное выложи pls.
мне тоже требуется отрубать попытки достучаться до
прокси настроенном на порту 3128.



Evil   (2003-03-07 08:10) [26]

можно просто повесить на порт 3128 свою прогру (занять сервис)



Прохожий   (2003-03-10 00:54) [27]

Как вариант пакетный фильтр типа http://www.ntkernel.com/products/winpkfilter.shtml



alexteam   (2003-03-11 13:20) [28]

Удалено модератором
Примечание: Задай СВОЙ вопрос в отдельной своей ветке




Форум: "Сети";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2003.05.05;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.78 MB
Время: 0.035 c
14-12888          sapsi                 2003-04-17 08:22  2003.05.05  
что за тип скрипта запускается?


3-12636           galexis               2003-04-08 16:28  2003.05.05  
Фильтр Query1 по Query2


1-12736           Seldon                2003-04-22 21:32  2003.05.05  
Как спрятать каретку в RichEdit?


1-12697           Zergling              2003-04-23 06:26  2003.05.05  
Копия динамического массива


14-12944          Agent[007]            2003-04-17 13:53  2003.05.05  
Function