Windows odpowiednik iptables?

58

Głupie pytanie:

Czy w systemie Windows istnieje odpowiednik iptables? Czy mogę zainstalować jeden za pośrednictwem Cygwina?

Prawdziwe pytanie: jak mogę osiągnąć w systemie Windows to, co mogę osiągnąć za pomocą iptables? Po prostu szukam podstawowej funkcjonalności zapory (np. Blokowanie niektórych adresów IP)

Aaron F.
źródło
6
Nie ma czegoś takiego jak głupie pytanie
Mark Henderson
4
Oczywiście jest takie głupie pytanie, ale to nie jedno.
Zadanie

Odpowiedzi:

37

Jednym ze sposobów byłoby netshpolecenie:

James Sneeringer
źródło
8
+1 - netsh advfirewalljest absolutną konieczną zasadą, aby dowiedzieć się dla każdego, kto pisze w skryptach wszelkie zabezpieczenia związane z Windows Server
Mark Henderson
Czy netsh advfirewallobsługuje adresy URL, czy tylko adresy IP?
Parker
Tylko adresy IP i tym podobne, chociaż może również filtrować na podstawie wykonywalnego wysyłania lub odbierania ruchu sieciowego lub poświadczeń AD użytkownika / grupy / komputera. Do filtrowania adresów URL warto poszukać jakiegoś proxy filtrującego .
James Sneeringer
6

Poniżej znajduje się: https://support.microsoft.com/en-us/kb/947709

Przykład 1: Włącz program

Stare polecenie Nowe polecenie

netsh firewall add allowedprogram C:\MyApp\MyApp.exe "My Application" ENABLE    
netsh advfirewall firewall add rule name="My Application" dir=in action=allow program="C:\MyApp\MyApp.exe" enable=yes
netsh firewall add allowedprogram program=C:\MyApp\MyApp.exe name="My Application" mode=ENABLE scope=CUSTOM addresses=157.60.0.1,172.16.0.0/16,LocalSubnet profile=Domain   netsh advfirewall firewall add rule name="My Application" dir=in action=allow program="C:\MyApp\MyApp.exe" enable=yes remoteip=157.60.0.1,172.16.0.0/16,LocalSubnet profile=domain
netsh firewall add allowedprogram program=C:\MyApp\MyApp.exe name="My Application" mode=ENABLE scope=CUSTOM addresses=157.60.0.1,172.16.0.0/16,LocalSubnet profile=ALL  

Uruchom następujące polecenia:

netsh advfirewall firewall add rule name="My Application" dir=in action=allow program="C:\MyApp\MyApp.exe" enable=yes remoteip=157.60.0.1,172.16.0.0/16,LocalSubnet profile=domain

netsh advfirewall firewall add rule name="My Application" dir=in action=allow program="C:\MyApp\MyApp.exe" enable=yes remoteip=157.60.0.1,172.16.0.0/16,LocalSubnet profile=private

Aby uzyskać więcej informacji na temat dodawania reguł zapory, uruchom następujące polecenie:

netsh advfirewall firewall add rule ?

Przykład 2: Włącz port

Stare polecenie Nowe polecenie

netsh firewall add portopening TCP 80 "Open Port 80"    
netsh advfirewall firewall add rule name="Open Port 80" dir=in action=allow protocol=TCP localport=80

Aby uzyskać więcej informacji na temat dodawania reguł zapory, uruchom następujące polecenie:

netsh advfirewall firewall add rule ?

Przykład 3: Usuń włączone programy lub porty

Stare polecenie Nowe polecenie

netsh firewall delete allowedprogram C:\MyApp\MyApp.exe netsh advfirewall firewall delete rule name=rule name program="C:\MyApp\MyApp.exe"
delete portopening protocol=UDP port=500    netsh advfirewall firewall delete rule name=rule name protocol=udp localport=500

Aby uzyskać więcej informacji na temat usuwania reguł zapory, uruchom następujące polecenie:

netsh advfirewall firewall delete rule ?

Przykład 4: Skonfiguruj ustawienia ICMP

Stare polecenie Nowe polecenie

netsh firewall set icmpsetting 8    netsh advfirewall firewall add rule name="ICMP Allow incoming V4 echo request" protocol=icmpv4:8,any dir=in action=allow
netsh firewall set icmpsetting type=ALL mode=enable netsh advfirewall firewall add rule name="All ICMP V4" protocol=icmpv4:any,any dir=in action=allow
netsh firewall set icmpsetting 13 disable all   netsh advfirewall firewall add rule name="Block Type 13 ICMP V4" protocol=icmpv4:13,any dir=in action=block

Aby uzyskać więcej informacji na temat konfigurowania ustawień ICMP, uruchom następujące polecenie:

netsh advfirewall firewall add rule ?

Przykład 5: Ustaw rejestrowanie

Stare polecenie Nowe polecenie netsh firewall set logging %systemroot%\system32\LogFiles\Firewall\pfirewall.log 4096 ENABLE ENABLE Uruchom następujące polecenia:

netsh advfirewall set currentprofile logging filename %systemroot%\system32\LogFiles\Firewall\pfirewall.log

netsh advfirewall set currentprofile logging maxfilesize 4096
netsh advfirewall set currentprofile logging droppedconnections enable

netsh advfirewall set currentprofile logging allowedconnections enable

Aby uzyskać więcej informacji, uruchom następujące polecenie:

netsh advfirewall set currentprofile ?

Jeśli chcesz ustawić rejestrowanie dla określonego profilu, użyj jednej z następujących opcji zamiast opcji „currentprofile”:
Domainprofile
Privateprofile
Publicprofile

Przykład 6: Włącz zaporę systemu Windows

Stare polecenie Nowe polecenie

netsh firewall set opmode ENABLE    netsh advfirewall set currentprofile state on
netsh firewall set opmode mode=ENABLE exceptions=enable 

Uruchom następujące polecenia:

Netsh advfirewall set currentprofile state on 

netsh advfirewall set currentprofile firewallpolicy blockinboundalways,allowoutbound
netsh firewall set opmode mode=enable exceptions=disable profile=domain 

Uruchom następujące polecenia:

Netsh advfirewall set domainprofile state on 

netsh advfirewall set domainprofile firewallpolicy blockinbound,allowoutbound
netsh firewall set opmode mode=enable profile=ALL   Run the following commands:

netsh advfirewall set domainprofile state on 

netsh advfirewall set privateprofile state on

Aby uzyskać więcej informacji, uruchom następujące polecenie:

netsh advfirewall set currentprofile ?

Jeśli chcesz ustawić stan zapory dla określonego profilu, użyj jednej z następujących opcji zamiast opcji „currentprofile”: Domainprofile
Privateprofile
Publicprofile

Przykład 7: Przywróć ustawienia domyślne zasad

Stare polecenie Nowe polecenie

netsh firewall reset
netsh advfirewall reset

Aby uzyskać więcej informacji, uruchom następujące polecenie: netsh advfirewall reset? Przykład 8: Włącz określone usługi

Stara komenda Nowa komenda netsh firewall zestaw usług FileAndPrint netsh advfirewall firewall set grupa reguł = „Udostępnianie plików i drukarek” new enable = Tak netsh firewall set service RemoteDesktop włącz netsh advfirewall firewall set grupa reguł = „zdalny pulpit” nowe enable = Tak netsh firewall set usługa RemoteDesktop enable profile = ALL Uruchom następujące polecenia:

netsh advfirewall firewall ustaw regułę grupa = „pulpit zdalny” nowy enable = Tak profil = domena

netsh advfirewall firewall ustaw regułę grupa = „pulpit zdalny” nowy enable = Tak profil = prywatny

Adrianio
źródło
3
Możesz chcieć popracować nad formatowaniem. Obecnie czytanie jest okropne, zachęcając do wyrażania opinii.
Gerald Schneider
1
Zgrane
4

WIPFW wygląda bardzo obiecująco, szczególnie jeśli Twój styl tworzenia iptables rządzi potem.

Nick Kavadias
źródło
3

W XP, Server 2003 i późniejszych wersjach jest wbudowana zapora ogniowa .

Ma interfejs API, za pomocą którego można programowo zmieniać, włączać i wyłączać reguły.

poolie
źródło
1
Chcę czegoś, do którego mam dostęp programowy - dodaj adresy IP do zapory ogniowej z poziomu skryptu lub modułu oprogramowania.
Aaron F.