Windows Firewall i wiersz poleceń (CMD)

Firewall_CMD_300Sterowanie 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

Na koniec, z dedykacją dla użytkownika Benko, który zadał to pytanie w komentarzach i zmusił mnie do dokształcenia się :). Blogerzy lubią aktywnych czytelników :).

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

Łukasz Skalikow

Obecnie Manager IT. Przez lata byłem Inżynierem systemów. Jestem entuzjastą i specem od vSphere, Windows serwer, GPO. Od zawsze byłem zwolennikiem wiersza poleceń i automatyzacji. Obecnie, ze względu na pracę, rodzinę i wyjazdy służbowe, dużo mniej udzielam się na blogu, ale mam nadzieję, że pośród kilkuset porad opublikowanych na spece.it, wiele osób znajdzie dla siebie coś przydatnego :)

Przeczytaj także...

8 komentarzy

  1. Tomasz pisze:

    Psexec.exe to port 445

  2. Mirek pisze:

    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

  3. Mirek pisze:

    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…

  4. UndeaD pisze:

    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)

  5. Benko pisze:

    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?

  6. Mirek pisze:

    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ą?

    • Mirek pisze:

      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…:))))

  7. Tomasz Pruś pisze:

    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)

Dodaj komentarz