L'équivalent Windows d'iptables?


58

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 sous Windows ce que je peux faire avec iptables? Je recherche simplement une fonctionnalité de base du pare-feu (par exemple, le blocage de certaines adresses IP)


6
Aucune question idiote
— Mark Henderson

4
Bien sûr, il n’ya pas de question idiote, mais ce n’est pas le cas.
— Tâche

Réponses:


38

Une façon serait avec la netshcommande:


8
+1 - netsh advfirewallest une règle absolue à apprendre pour tous ceux qui écrivent des scripts relatifs à la sécurité sur Windows Server
— Mark Henderson

Prend-il en netsh advfirewallcharge les URL ou uniquement les adresses IP?
— Parker

Seulement les adresses IP et autres, bien qu’il puisse également filtrer en fonction du trafic réseau émetteur ou récepteur exécutable, ou des identifiants AD de l’utilisateur / du groupe / de l’ordinateur impliqué. Pour le filtrage d'URL, vous souhaiterez rechercher un type de proxy de filtrage .
— James Sneeringer

7

La liste ci-dessous provient 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: configuration des 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 à la place de l'option "currentprofile":
Domainprofile
Privateprofile
Publicprofile

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 à la place de l'option "currentprofile": Domainprofile
Privateprofile
Publicprofile

Exemple 7: restaurer les valeurs 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 ensemble de pare-feu FileAndPrint netsh advfirewall ensemble de règles de pare-feu = "Partage de fichiers et d'imprimantes" new enable = Oui service de définition de pare-feu netsh RemoteDesktop, activer pare-feu netsh advfirewall groupe de règles = "poste de travail distant" nouveau enable = Oui service RemoteDesktop enable profile = ALL Exécutez les commandes suivantes:

netsh advfirewall ensemble de règles de pare-feu = "Bureau à distance" new enable = Yes profile = domain

netsh advfirewall ensemble de règles de pare-feu = "Bureau à distance" new enable = Yes profile = private


3
Vous voudrez peut-être travailler sur le formatage. Actuellement, il est horrible à lire, invitant les votes négatifs.
— Gerald Schneider


4

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


3

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

Il possède une API grâce à laquelle vous pouvez modifier, activer et désactiver par programme les règles.


1
Je veux quelque chose auquel je puisse accéder par programmation - ajouter des adresses IP au pare-feu à partir d'un script ou d'un module logiciel.
— Aaron F.
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.