web-dev-qa-db-fra.com

Équivalent Windows d'iptables?

Question stupide:

Existe-t-il un équivalent d'iptables sous Windows? Puis-je en installer un via cygwin?

La vraie question: comment puis-je accomplir sur Windows ce que je peux accomplir via iptables? Recherche de fonctionnalités de pare-feu de base (par exemple, blocage de certaines adresses IP)

58
Aaron F.

Une façon serait d'utiliser la commande netsh:

38
James Sneeringer

Ce qui suit est de: https://support.Microsoft.com/en-us/kb/947709

Exemple 1: activer un programme

Ancienne commande Nouvelle commande

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  

Exécutez les commandes suivantes:

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

Pour plus d'informations sur l'ajout de règles de pare-feu, exécutez la commande suivante:

netsh advfirewall firewall add rule ?

Exemple 2: activer un port

Ancienne commande Nouvelle commande

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

Pour plus d'informations sur l'ajout de règles de pare-feu, exécutez la commande suivante:

netsh advfirewall firewall add rule ?

Exemple 3: supprimer des programmes ou des ports activés

Ancienne commande Nouvelle commande

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

Pour plus d'informations sur la suppression des règles de pare-feu, exécutez la commande suivante:

netsh advfirewall firewall delete rule ?

Exemple 4: configurer les paramètres ICMP

Ancienne commande Nouvelle commande

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

Pour plus d'informations sur la configuration des paramètres ICMP, exécutez la commande suivante:

netsh advfirewall firewall add rule ?

Exemple 5: définir la journalisation

Ancienne commande Nouvelle commande netsh firewall set logging %systemroot%\system32\LogFiles\Firewall\pfirewall.log 4096 ENABLE ENABLE Exécutez les commandes suivantes:

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

Pour plus d'informations, exécutez la commande suivante:

netsh advfirewall set currentprofile ?

Si vous souhaitez définir la journalisation pour un profil particulier, utilisez l'une des options suivantes au lieu de l'option "profil actuel":
Profil de domaine
Profil privé
Profil public

Exemple 6: activer le pare-feu Windows

Ancienne commande Nouvelle commande

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

Exécutez les commandes suivantes:

Netsh advfirewall set currentprofile state on 

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

Exécutez les commandes suivantes:

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

Pour plus d'informations, exécutez la commande suivante:

netsh advfirewall set currentprofile ?

Si vous souhaitez définir l'état du pare-feu pour un profil particulier, utilisez l'une des options suivantes au lieu de l'option "currentprofile": Domainprofile
Profil privé
Profil public

Exemple 7: restaurer les paramètres par défaut de la stratégie

Ancienne commande Nouvelle commande

netsh firewall reset
netsh advfirewall reset

Pour plus d'informations, exécutez la commande suivante: netsh advfirewall reset? Exemple 8: activer des services spécifiques

Ancienne commande Nouvelle commande netsh firewall set set service FileAndPrint netsh advfirewall firewall set rule group = "File and Printer Sharing" new enable = Yes netsh firewall set service RemoteDesktop enable netsh advfirewall firewall set set rule group = "remote desktop" new enable = Yes netsh firewall set service RemoteDesktop enable profile = ALL Exécutez les commandes suivantes:

netsh advfirewall firewall set set rule group = "remote desktop" new enable = Yes profile = domain

netsh advfirewall firewall set set rule group = "remote desktop" new enable = Yes profile = private

7
Adrianio

WIPFW semble très prometteur, surtout si votre saveur de création de règles iptables après.

4
Nick Kavadias

Il existe un pare-feu intégré dans XP, Server 2003 et versions ultérieures.

Il a une API à travers laquelle vous pouvez modifier, activer et désactiver les règles par programmation.

3
poolie