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
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
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
Jak jsi na tom? Můžu zamknout jako vyřešené?