Question Refuser l'accès à un port depuis localhost sur OSX


Je veux tester une stratégie de repli pour mon pilote memcached (dans le cas où le port est protégé par un pare-feu). Comment puis-je refuser l'accès à un port spécifique, sur 127.0.0.1?


4
2017-11-13 17:01


origine


selon la version de MacOS que vous utilisez, utilisez soit la réponse de jaume (= vous êtes sur 10.7 ou plus récent) ou la mienne (vous êtes sur 10.6). - Florenz Kley
@FlorenzKley: Merci à vous deux pour les réponses, je les ai toutes les deux votées. J'ai décidé d'accepter la réponse, car je suis sur OSX Snow Leopard :) - Vlad Zloteanu
oh wow :-) merci Vlad. - Florenz Kley
: P :) Merci pour la réponse! ;) - Vlad Zloteanu


Réponses:


Exemple pour Mac OS X 10.6 (Snow Leopard)

pour refuser les connexions à localhost, port SSH (= 22, lire depuis /etc/services):

sudo ipfw add deny tcp from any to localhost ssh

1
2017-11-13 17:57



ipfw est obsolète dans OSX 10.7 et OSX 10.8 et n'est plus disponible sur OSX 10.9 - Guido
c'est pourquoi il est dit "Exemple pour Mac OS X 10.6" dans ma réponse ... - Florenz Kley


Vous pouvez utiliser pfctl.

OS X 10.7 "Lion" et plus tard utiliser le OpenBSD PF (Filtre de paquets). Un pseudo-périphérique appelé /dev/pf permet aux outils de l'espace utilisateur de configurer le filtre de paquets. La commande pfctl fournit la plupart des fonctionnalités.

Pour filtrer le port 1234 sur l'interface de bouclage, vous pouvez utiliser une règle comme celle-ci:

block drop quick on lo0 proto tcp from any to any port = 1234

Cette règle bloque tout le trafic entrant / sortant sur lo0 pour le port 1234 (quick signifie dans ce contexte que si cette règle correspond, aucune autre règle ne devrait être appliquée).

La commande pour charger la règle dans PF est la suivante:

(sudo pfctl -sr 2>/dev/null; echo "block drop quick on lo0 proto tcp from any to any port = 1234") | sudo pfctl -nf -

Commander pfctl -sr 2>/dev/null liste toutes les règles actuelles (et envoie le message d'erreur assez ennuyeux No ALTQ support in kernel ALTQ related functions disabled à /dev/null). le echo ajoute la règle ci-dessus à la sortie, qui est dirigée vers pfctl. Option -n veux dire ne pas appliquer, il suffit de vérifier.

S'il n'y a pas de message d'erreur (à part ce qui précède No ALTQ support message et l'avertissement pfctl: Use of -f option, could result in flushing of rules present in the main ruleset added by the system at startup), vous pouvez appliquer la règle:

(sudo pfctl -sr 2>/dev/null; echo "block drop quick on lo0 proto tcp from any to any port = 1234") | sudo pfctl -f - 2>/dev/null

Cette commande diffère de la précédente en ce que j'ai supprimé -n. Notez que vous devrez peut-être ajouter une option -e pour activer le filtre de paquets (merci pour votre commentaire, casey): (sudo pfctl -sr 2>/dev/null; echo "block drop quick on lo0 proto tcp from any to any port = 1234") | sudo pfctl -e -f - 2>/dev/null

Vous pouvez maintenant lister les règles pour vérifier qu'il a bien été ajouté:

sudo pfctl -sr 2>/dev/null
(...)
block drop quick on lo0 proto tcp from any to any port = 1234

Lorsque vous avez terminé, vous pouvez supprimer la règle:

  1. soit en chargeant le jeu de règles d'origine:

    sudo pfctl -f /etc/pf.conf 
    
  2. ou en supprimant la règle de la même manière, la règle a été ajoutée:

    (sudo pfctl -sr 2>/dev/null | fgrep -v "block drop quick on lo0 proto tcp from any to any port = 1234") | sudo pfctl -f -
    

(J'ai testé l'ensemble de la procédure sur OS X 10.8.2 "Mountain Lion" et j'ai parfaitement fonctionné.)

Vous pouvez trouver plus d'informations dans cette excellente introduction: http://nomoa.com/bsd/gateway/pf/valid/pfctl.html.

ipfw est toujours inclus dans OS X 10.7 et 10.8 mais est obsolète:

IPFW(8)                   BSD System Manager's Manual                  IPFW(8)

NAME
     ipfw -- IP firewall and traffic shaper control program (DEPRECATED)

SYNOPSIS
(...)

DESCRIPTION
     Note that use of this utility is DEPRECATED. Please use pfctl(8) instead.

17
2017-11-13 20:34



Je pensais qu'il était de coutume d'ajouter un commentaire pour expliquer une décote, est-ce que quelque chose ne va pas dans ma réponse? - jaume
sur un nouvel ordinateur, vous devrez peut-être l'activer également. juste changer -f à -ef - casey
@ Merci Merci, j'ai édité ma réponse pour ajouter les informations dans votre commentaire. - jaume