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)

Aaron F.
la source
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:

James Sneeringer
la source
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

Adrianio
la source
3
Vous voudrez peut-être travailler sur le formatage. Actuellement, il est horrible à lire, invitant les votes négatifs.
Gerald Schneider
1
Également extrait de support.microsoft.com/en-us/kb/947709
chappjc
4

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

Nick Kavadias
la source
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.

poolie
la source
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.