Windows Firewall i wiersz poleceń (CMD)
Sterowanie firewallem Windows i jego konfiguracja może odbyć się na kilka różnych sposobów – w interfejsie graficznym, poprzez Group Policy, Powershell lub CMD i to ostatnie zagadnienie będzie tematem dzisiejszego artykułu.
Generalnie, w Windowsie istnieje polecenie „netsh firewall”, które może przyjąć mnóstwo dodatkowych parametrów, pozwalających podejrzeć lub zmienić konfigurację chyba wszystkich dostępnych opcji Firewalla. Poniżej znajdziecie kilka praktycznych przykładów. Stali czytelnicy naszego Bloga powinni pamiętać, że jak wiele możliwości daje samo „netsh” – używaliśmy go już kilka razy 🙂.
Pierwszych kilka przykładów możecie pamiętać z artykułu o resetowaniu ustawień sieciowych (nie tylko Firewalla).
Jak zatrzymać i uruchomić Windows Firewall?
Zatrzymanie Firewalla:
netsh firewall set opmode disable
Uruchomienie Firewalla:
netsh firewall set opmode enable
Zapisanie i wczytanie konfiguracji Firewalla z Pliku
Zapisanie ustawień:
netsh advfirewall export „C:\firewall_backup.wfw”
Przywrócenie ustawień firewalla z pliku wykonamy poleceniem:
netsh advfirewall import „C:\firewall_backup.wfw”
Reset ustawień Firewalla
To polecenie przywróci wszystkie domyślne ustawienia zapory. W przypadku zastosowania Group Policy, wszystkie opcje powrócą do stanu „not configured”. Wszystkie reguły zostaną skasowane.
netsh advfirewall reset
Profile
Uruchomienie bieżącego profilu:
netsh advfirewall set currentprofile state on
Uruchomienie profilu domenowego:
netsh advfirewall set domainprofile state on
To polecenie zablokuje ruch przychodzący, a pozwoli na ruch wychodzący w bieżącym profilu.
netsh advfirewall set currentprofile firewallpolicy blockinboundalways,allowoutbound
Blokowanie i zezwalanie na dostęp do konkretnych aplikacji i funkcji systemu
Zezwolenie na ruch przychodzący dla ruchu związanego z udostępnianiem drukarek i plików:
netsh advfirewall firewall set rule group=”File and Printer Sharing” new enable=Yes
Zezwolenie na ruch przychodzący dla Pulpitu Zdalnego:
netsh advfirewall firewall set rule group=”remote desktop” new enable=Yes profile=domain
Zezwolenie na ruch przychodzący dla konkretnej aplikacji (w naszym przykładze dozwolona_apka.exe):
netsh advfirewall firewall add rule name=”Secure App” dir=in action=allow program=”C:\Program Files\dozwolona_apka.exe” enable=yes
Operacja odwrotna, czyli zablokowanie ruchu dla konkretnej aplikacji:
netsh advfirewall firewall add rule name=”Secure App” dir=in action=deny program=”C:\Program Files\zablokowana_apka.exe” enable=yes
IP oraz zakresy IP
Zezwolenie na dostęp do aplikacji „program.exe” z adresu 192.168.1.100:
netsh advfirewall firewall add rule name=”Secure App” dir=in action=allow program=”C:\Program Files\program.exe” enable=yes remoteip=192.168.1.100,LocalSubnet profile=domain
Blokowanie i zezwalanie na dostęp do portów
Otworzenie portu 443:
netsh advfirewall firewall add rule name=”Open SSL” dir=in action=allow protocol=TCP localport=443
Jakich wyjątków na Firewallu wymaga Psexec.exe?
To uwielbiane przez nas narzędzie do zdalnej administracji potrzebuje zezwolenia na ruch RPC oraz wspomniany wyżej związany z udostępnianiem plików i drukarek (korzystając z psexec.exe, wchodzicie na udział admin$ na zdalnej maszynie )
netsh AdvFirewall firewall add rule name=PsExec dir=in action=allow protocol=TCP localport=RPC RemoteIP=adres_IP_z_którego_się_będziemy_łaczyć profile=domain,private program=”%WinDir%\system32\services.exe” service=any
netsh advfirewall firewall set rule group=”File and Printer Sharing” new enable=Yes
Psexec.exe to port 445
Dziękuje 🙂
Radość mam z tego wielką 🙂 zarówno, dlatego, że Łukasz wykonał kawał dobrej roboty i się dokształcił 😉 oraz coś powstało dzięki mojej niewiedzy 🙂 Oby tak dalej 🙂 Życzę blogowi wszystko co najlepsze, bo dużo tu wiedzy którą powoli ogarniam i mam nadzieję, że też coś tutaj wniosę…
Próbuje wskazówki zastosować, ale jeszcze mi coś nie wychodzi…na razie nie napisze co, bo chcę się sam z tym zmierzyć…
Pozdrawiam
Benko vel Mirek
Poddaje się…pojawia się błąd: Brak reguł spełniających kryteria.
Sprawdziłem, czy mam uruchomione zdalne wywołanie procedur (RPC) i jest uruchomione, więc już nie wiem co robić…
To się dzieje po tej komendzie:
netsh advfirewall firewall set rule group=”File and Printer Sharing” new enable=Yes
Po:
netsh AdvFirewall firewall add rule name=PsExec dir=in action=allow protocol=TCP localport=RPC RemoteIP=adres_IP_z_którego_się_będziemy_łaczyć profile=domain,private program=”%WinDir%\system32\services.exe” service=any
pojawia się komunikat ok…
W nazwiązaniu do wymagań odnośnie PS Tools.
Dodatkowe warunki które muszą być spełnione to:
– musi działać usługa Workstation
– musi działać usługa Server
– dostępny musi być udział Admin$
– Nie działa na XP Home (prawdopodobnie na żadnej wersji Home)
Jak wpisuję to:
netsh AdvFirewall firewall add rule name=PsExec dir=in action=allow protocol=TCP localport=RPC RemoteIP=adres_IP_z_którego_się_będziemy_łaczyć profile=domain,private program=”%WinDir%\system32\services.exe” service=any
RemoteIP=adres_IP_z_którego_się_będziemy_łaczyć – rozumiem, że mam wpisać adres nie servera tylko kompa na którym chce zdalnie coś zrobić, to pojawia mi się takie coś:
Okreslona wartosc jest nieprawidlowa.
Sposób uzycia: add rule name=
dir=in|out
action=allow|block|bypass
[program=]
[service=|any]
[description=]
[enable=yes|no (domyslnie: yes)]
[profile=public|private|domain|any[,…]]
[localip=any|||||]
[remoteip=any|localsubnet|dns|dhcp|wins|defaultgateway|
||||]
[localport=0-65535|[,…]|RPC|RPC-EPMap|IPHTTPS|any
(domyslnie: any)]
[remoteport=0-65535|[,…]|any (domyslnie: any)]
[protocol=0-255|icmpv4|icmpv6|icmpv4:typ,kod|icmpv6:typ,kod|
tcp|udp|any (domyslnie: any)]
[interfacetype=wireless|lan|ras|any]
[rmtcomputergrp=]
[rmtusrgrp=]
[edge=yes|deferapp|deferuser|no (domyslnie: no)]
[security=authenticate|authenc|authdynenc|authnoencap|notrequired
(domyslnie: notrequired)]
Uwagi:
– Dodaje nowa regule ruchu przychodzacego lub wychodzacego do zasad
zapory.
– Nazwa reguly powinna byc unikatowa i nie moze miec wartosci ,all”.
– Jesli okreslono grupe komputerów lub uzytkowników zdalnych, paramet
security musi miec wartosc authenticate, authenc, authdynenc lub
authencauthnoencap.
– Ustawienie wartosci authdynenc parametru security umozliwia systemo
dynamiczne negocjowanie korzystania z szyfrowania dla ruchu
zgodnego z podana regula Zapory systemu Windows. Szyfrowanie jest
negocjowane na podstawie wlasciwosci reguly zabezpieczen
istniejacego polaczenia. Ta opcja wlacza mozliwosc akceptowania
przez komputer pierwszego pakietu TCP lub UDP przychodzacego
polaczenia IPsec, o ile jest ono zabezpieczone, ale nie zaszyfrowan
za pomoca protokolu IPsec. Po przetworzeniu pierwszego pakietu serw
bedzie ponownie negocjowal polaczenie i uaktualni je, tak aby cala
dalsza komunikacja byla calkowicie szyfrowana.
– Przy ustawieniu action=bypass musi byc okreslona grupa komputerów
zdalnych, gdy obecne jest ustawienie dir=in.
– Przy ustawieniu service=any regula dotyczy tylko uslug.
– Typ lub kod ICMP moze miec wartosc any.
– Ustawienie edge mozna okreslac jedynie w przypadku regul ruchu
przychodzacego.
– Parametrów authenc i authnoencap nie mozna uzywac razem.
– Parametr authdynenc jest prawidlowy, jedynie gdy obecne jest
ustawienie dir=in.
– W przypadku ustawienia parametru authnoencap parametr
security=authenticate staje sie parametrem opcjonalnym.
Przyklady:
Dodanie reguly ruchu przychodzacego dla pliku messenger.exe:
netsh advfirewall firewall add rule name=”zezwol_messenger”
dir=in program=”c:\programfiles\messenger\msmsgs.exe”
security=authnoencap action=allow
Dodanie reguly ruchu wychodzacego dla portu 80:
netsh advfirewall firewall add rule name=”zezwol_80″
protocol=TCP dir=out localport=80 action=block
Dodanie reguly ruchu przychodzacego wymagajacej zabezpieczenia
i szyfrowania dla ruchu na porcie 80 protokolu TCP:
netsh advfirewall firewall add rule
name=”Wymaganie szyfrowania dla ruchu przychodzacego protokolu TCP/80
protocol=TCP dir=in localport=80 security=authdynenc
action=allow
Dodanie reguly ruchu przychodzacego dla pliku messenger.exe
i wymaganie zabezpieczen:
netsh advfirewall firewall add rule name=”zezwol_messenger”
dir=in program=”c:\program files\messenger\msmsgs.exe”
security=authenticate action=allow
Dodanie reguly uwierzytelnionego obejscia zapory dla grupy
acmedomain\skanery identyfikowanej przez ciag SDDL:
netsh advfirewall firewall add rule name=”zezwol_skanery”
dir=in rmtcomputergrp= action=bypass
security=authenticate
Dodanie reguly dopuszczenia ruchu wychodzacego dla portów lokalnych
z zakresu 5000-5010 dla protokolu udp
Add rule name=”Dozwolony zakres portów” dir=out protocol=udp
localport=5000-5010 action=allow
Aha i do czego służy port 443?
Chcę wrócić do tego tematu, bo nie daje mi spokoju, a przydałoby mi się bardzo to narzędzie…więc jeśli mogę prosić o pomoc jeszcze raz to byłbym wdzięczny.
Żeby wejść na cmd zdalnego komputera to muszę mieć uruchomione netsh firewall set portopening tcp 445 smb enable
Ale się tego nie da zrobić zdalnie przez Active Directory, tylko lokalnie na kompie użytkownika.
Próbowałem przez zakładkę zarządzaj wejść ale pojawia się bład:
Nie można zarządzać komputerem nazwa_komputera. Nie można odnaleźć ścieżki sieciowej.
Aby zarządzać innym komputerem, wybierz opcję „Podłącz do innego komputera z menu Akcje.
Więc próbuję metodą nr 3, stąd:
http://support.microsoft.com/kb/840634/pl
I nie wiem o co chodzi w tym punkcie:
d. Kliknij kartę Zasady grupy, a następnie kliknij przycisk Nowy.
Gdzie te zasady grupy są?
yes, yes, yes, yes :))) Udało się mi ustawić przez GPO, yupi, yupi, yupi :)))
Teraz wreszcie będę mógł wszystkie porady z spece.it stosować nie ruszając dooopska od biurka…:))) yes, yes, yes…:))))
Witam – fajne tematy są na tym blogu – zastanawiam się czy od 2014r. wiele się zmieniło – obecnie próbuje się douczyć psexec i ułatwić sobie bieganie po stacjach. ale w firmę mam rożnej maci systemy i muszę zacząć od pokonywania trudnych problemów (brak wiedzy o psexec jak korzystać i co należy uruchomić w tym zakresie też utrudnia zadania) próbuje na Windows 10 pro i nie mogę się połączyć mimo tego ze chyba wszystkie dostępne opcje przećwiczyłem, proszę czy macie jakąś instrukcję lub scenariusz jakie porty, jakie usługi itp. należy uruchomić zezwolić na dostęp itp. aby dało się połączyć z windows 10 pro (do serwera 2k8 bez problemu i żadnych problemów się podłączyłem)