Zakaz programu pristupu na net (Problem pro experty)

Dobry vecer

************************************************** **************************************************
Predem upozornuji ze se jedna o problem ktery nedokaze vyresit laik
Proto predem prosim at odepisuji jen ti co se v teto problematice vyznaji
************************************************** ************************************************** *
Mam program dam mu treba nazev "ABC" ktery po spusteni komunikuje z internetem
veskerou komunikaci chci zakazat a to pro spojeni "In" a "Out"

Jako prvni vec me napadlo zjistit jak presne tento program komunikuje z internetem
Na to jsem pouzil program "CurrPorts" zkracene "cports"

Zjistil jsem ze program komunikuje na adrese treba "0.0.0.1" a ze k tomu pouziva https atd.

Napadlo me pro tento ucel pouzit soubor "hosts" ktery se nachazi
C:\Windows\System32\drivers\etc
Vecinou se vyuziva pro zmenu DNS pro test serveru atd.

Nevim ale jestli jde napsat adresa jako ciselna hodnota
www.seznam.cz hostuje na adrese: "77.75.76.3"
napr.

127.0.0.1 www.seznam.cz =zapis funguje
127.0.0.1 77.75.76.3 =zapis nefunguje

Takze pri zadani
127.0.0.1 0.0.0.1 =zapis nefunguje

Pak je taky moznost ze program "ABC" nepouziva treba jenom "0.0.0.1" ale take "0.0.0.2" a vice
A veskerou komunikaci soubor "hosts" zakazat nedovede
Takze by tento postup nebyl zcela dobry

Vzpomnel jsem si na "windows firewall"

Vytvoril jsem nove pravidlo a programu "ABC" Zakazal veskerou komunikaci "In" a "Out"
***Program "ABC" nadale nijak nekomunikoval***

Jenom ze zde jsem narazil na dalsi problem

Dejme tomu ze nekdo jini ma stejny problem
A nechce aby program komunikoval u "hosts" souboru to neni zadny problem

Staci vytvorit ".bat" soubor ktery bude pracovat ze souborem hosts
napr.

@echo off
echo TEXT TEXT TEXT TEXT TEXT
pause
if exist "%windir%\system32\drivers\etc\hosts_original" del "%windir%\system32\drivers\etc\hosts_original"
copy "%windir%\system32\drivers\etc\hosts" "%windir%\system32\drivers\etc\hosts_original"
attrib -s -h -r %windir%\system32\drivers\etc\hosts > nul 2>&1
echo. >> "%windir%\system32\drivers\etc\hosts"
echo 127.0.0.1 www.seznam.cz >> "%windir%\system32\drivers\etc\hosts"
echo Dokonceno...
pause

***Timto jsme zakazali pristup na stranku seznamu***
A tento soubor ".bat" muzu nekomu poslat a problem bude ihned vyresen

A zde je kamen urazu u "windows firewall" uz je to jina liga a import i export nastaveni
je omezeno tim ze pokud importujeme nebo exportujeme nastaveni nemuzeme si vybrat co presne chceme
vzdycky se pracuje z celym nastavenim a cele toto nastaveni se uklada v souboru "wfw" a aby toho nebylo malo
tento soubor se neda nejak rozumne editovat nebo aspon ja jsem na nic neprisel...
Nejhorsi na tom je ze i kdybych soubor editoval na to co ja potrebuji pri importu se predchozi nastaveni smaze a nahradi se novim

Napadlo me jak rucne toto nastaveni pridat nastaveni "windows firewall" se uklada v registrech
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\servic es\SharedAccess\Parameters\FirewallPolicy\Firewall Rules

Tak jsem vytvoril tohle soubor ".reg"

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\ SharedAccess\Parameters\FirewallPolicy\FirewallRul es]
"{00000000-0000-0000-0000-000000000001}"="v2.10|Ac tion=Block|Active=TRUE|Dir=In|App=%ProgramFiles%\\ ABC\\ABC.exe|Name=(Příchozí)|"
"{00000000-0000-0000-0000-000000000002}"="v2.10|Ac tion=Block|Active=TRUE|Dir=Out|App=%ProgramFiles%\ \ABC\\ABC.exe|Name=(Odchozí)|"

Dejme tomu ze program "ABC" se nachazi "C:\Program Files\ABC\ABC.exe"

Podival jsem se do "windows firewall" a tyto dve pravidla tam byla jenom nebyla v zalozce "Sledovani/Brana firewall"
Tato zalozka je podle me na to ze urcite pravidlo je spustene a potvrzene chtel jsem teda tato dve pravidla potvrdit a bouzel to neslo

Jestli jsem nekde neco udelal spatne to nevim mozne to je...
Dale me napadlo ze by se urcita vijimka dala pridat v prikazovem radku teda v souboru ".bat" ale je me zahadou prozatim jak

***Hledam jakekoliv jine reseni nebo doreseni toho meho aby splnili tyto podminky***
-musi se jednat o reseni ktere jiny uzivatel zvladne v par krocich jako je soubor ".bat" nebo rovnou instalace
-nesmi zpusobit zadne jine potize a zbytece nastavovani neceho

Predem dekuji za odpoved

Obrázek uživatele Jiří Moos

Záleží na typu programu, který chceš blokovat, jelikož o něm nic nevím, těžko budu radit.. Program může komunikovat různými způsoby - aktualizace, různá porovnávání databází, atd atd. Znáš všechny druhy komunikace, které program provádí? Jestli ne, je první metoda dosti nešťastná, protože nevíš, jestli blokuješ všechno.. Proto je lepší zakázat komunikaci v jakékoliv formě přímo pro danou aplikaci a služby - třeba přes Windows Firewall..

Podotýkám, že WinFirewall není nic moc extra, ale záleží komu chceš výsledný automatizační skript distribuovat.

Asi nejjednodušší bude použít Netsh advfirewall přes příkazový řádek - vidím, že jsi s ním kamarád...

Netsh advfirewall:
http://technet.microsoft.com/en-us/library/cc771920%28WS.10%29.aspx

Firewall Commands:
http://technet.microsoft.com/en-us/library/dd734783%28WS.10%29.aspx

Obrázek uživatele hcx37b

Dekuji to jsem presne hledal myslel jsem si ze to existuje ale nikdy jsem to nedelal hned se du na to mrknout :-) pak odepisu jak jsem dopadl

Obrázek uživatele Jiří Moos

Jak jsi na tom? Můžu zamknout jako vyřešené?