11 votes

Comment puis-je bloquer les paquets sortants vers un hôte / port spécifique ?

Je veux tester quelque chose localement. Pour cela, je voudrais pouvoir bloquer les paquets sortants envoyés à un hôte/port spécifique. J'ai essayé de manipuler les règles pf en utilisant Murus (la version non gratuite), mais sans succès.

Je suis à l'aise dans le terminal, mais je ne sais pas où apporter des modifications et comment les appliquer. Je connais iptables sur Linux.

Puis-je obtenir des instructions sur la manière d'atteindre cet objectif?

0 votes

Voir la réponse à cette question de @klanomath.

0 votes

Veuillez ajouter votre version système. Préférez-vous une solution Murus (pour mieux comprendre Murus) ou ma réponse liée est-elle suffisante?

0 votes

Merci @klanomath. Désolé, j'étais hors ligne pendant quelques jours.

18voto

klanomath Points 63400

Pour bloquer définitivement le trafic sortant vers des domaines spécifiques et/ou des ports, vous devez créer un nouveau fichier d'ancre et l'ajouter à pf.conf.

  1. Créez un fichier d'ancre org.user.block.out dans /private/etc/pf.anchors

    sudo touch /private/etc/pf.anchors/org.user.block.out

    avec le contenu suivant et une ligne vide à la fin

    mybadtcphosts = "{ www.domaine.com, domaine.com, 135.0.9.17, 10.0.0.17 }"
    mybadtcpports = "{ 443, 80 }"
    mybadudphosts = "{ www.domaine3.com, domaine3.com, 27.134.89.124, 192.168.5.37 }"
    mybadudpports = "{ 53, 5353 }"
    
    bloquer chute dehors proto tcp de any to $mybadtcphosts port $mybadtcpports
    bloquer chute dehors proto udp de any to $mybadudphosts port $mybadudpports

    Les noms de domaines/IP supplémentaires dans mybad*hosts sont juste un exemple de comment ajouter des domaines supplémentaires. Il en va de même pour les ports 80/5353 dans mybad*ports.

    Une solution simple mais moins flexible est :

    bloquer chute dehors proto tcp de any to domaine.com port 80
  2. Modifiez le fichier /private/etc/pf.conf mais gardez une ligne vide à la fin

    fichier d'origine :

    scrub-anchor "com.apple/*"
    nat-anchor "com.apple/*"
    rdr-anchor "com.apple/*"
    dummynet-anchor "com.apple/*"
    ancre "com.apple/*"
    charge ancre "com.apple" à partir de "/etc/pf.anchors/com.apple"

    à

    scrub-anchor "com.apple/*"
    nat-anchor "com.apple/*"
    rdr-anchor "com.apple/*"
    dummynet-anchor "com.apple/*"
    ancre "com.apple/*"
    ancre "org.user.block.out"
    charge ancre "com.apple" à partir de "/etc/pf.anchors/com.apple"
    charge ancre "org.user.block.out" à partir de "/etc/pf.anchors/org.user.block.out"
  3. Parsez et testez votre fichier d'ancre pour vous assurer qu'il n'y a pas d'erreurs :

    sudo pfctl -vnf /etc/pf.anchors/org.user.block.out
  4. Modifiez maintenant /System/Library/LaunchDaemons/com.apple.pfctl.plist de

        pfctl
        -f
        /etc/pf.conf

    à

        pfctl
        -e
        -f
        /etc/pf.conf

    Vous devez désactiver la Protection de l'Intégrité du Système si El Capitan est installé pour accomplir ceci. Après avoir modifié le fichier, réactivez SIP. Après avoir redémarré votre Mac, pf sera activé (c'est l'option -e).

    Alternativement, vous pouvez créer votre propre démon de lancement similaire à la réponse ici : Utiliser Server 5.0.15 pour partager internet SANS le partage internet.

Après une mise à jour ou une mise à niveau du système, certains des fichiers d'origine ci-dessus peuvent avoir été remplacés et vous devrez réappliquer tous les changements.


Murus :

Ouvrez Murus. Cliquez sur l'engrenage dans le panneau de configuration pour créer une règle personnalisée :

Murus Config

Entrez tous les détails nécessaires :

règle personnalisée

Appuyez sur le bouton bleu Ajouter une règle PF personnalisée et démarrez PF dans le coin supérieur droit avec la flèche vers la droite (ou le bouton "play").

17voto

hetOrakel Points 261

Vous pouvez utiliser le pare-feu PF :

Ajoutez cette ligne à /etc/pf.conf pour bloquer tous les paquets vers l'IP et le port donnés

block drop out quick proto tcp  to 192.168.1.103 port 80

Après avoir modifié pf.conf, vous devriez le recharger avec

sudo pfctl -f /etc/pf.conf

Éventuellement, vous devrez l'activer avec

sudo pfctl -e

0 votes

Assurez-vous d'avoir une nouvelle ligne après la règle, sinon l'analyseur pense que le fichier contient des erreurs de syntaxe

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X