Comment ouvrir un port spécifique dans Firewall OS X 10.9.4

15

Comment ouvrir un port spécifique dans le pare-feu? Je ne peux pas utiliser le "autoriser les connexions depuis l'application" car je veux ouvrir le port pour Jenkins, qui n'est pas sur la liste ...

Gars
la source
Sur quel (s) port (s) et protocoles voulez-vous que Jenkins puisse écouter? Cet article vous aidera à voir sur quels ports il est configuré ... stackoverflow.com/a/10106086/475228
bmike
Sur le port proto TCP 8080
Guy
Cette couverture de poste ipfwserait-elle pertinente? apple.stackexchange.com/questions/33871/…
bmike

Réponses:

7

OS X Mavericks d'Apple contient trois pare-feu. Tout d'abord, le pare-feu au niveau de l'application qui peut être configuré à l'aide des paramètres système. Mais il y a aussi ipfw, un pare-feu de filtrage de paquets comme netfilter / iptables sur GNU / Linux et pf (FreeBSD / OpenBSD).

Vous pouvez soit configurer ipfw en utilisant la ligne de commande, soit en utilisant un frontal graphique comme le WaterRoof gratuit / libre .

Vous pouvez commencer avec une commande ipfw comme:

sudo ipfw add 31010 allow tcp from any to any dst-port 8080
Malte Bublitz
la source
7
ipfw est déconseillé et est parti à El Capitan
slashdottir
21

J'ai eu le même problème sous OS X Yosemite (10.10.3). Trouvé cet article de blog qui fournit des instructions claires. Nous ne pouvons plus utiliser ipfw, car il est obsolète. Au lieu de cela, utilisez pfctl, qui manque malheureusement d'une manière agréable en ligne de commande pour lui dire d'ouvrir un port. Au lieu de cela, vous devez:

  1. Ouvrez /etc/pf.conf dans un éditeur de texte.
  2. Ajoutez une ligne comme celle-ci:

# Ouvrez le port 8080 pour TCP sur toutes les interfaces

passer en proto tcp de tout à n'importe quel port 8080

  1. Enregistrez le fichier.
  2. Chargez les modifications avec:

sudo pfctl -f /etc/pf.conf

Si vous devez ouvrir un port udp, passez tcpà udp, si vous avez besoin des deux, ajoutez une deuxième ligne. Des détails supplémentaires peuvent être trouvés dans man pf.conf.

Assurez-vous également que votre serveur écoute sur l'interface réelle sur laquelle vous souhaitez qu'il soit accessible (ou sur toutes les interfaces, à l'aide de 0.0.0.0ou ::0), pas sur localhost ( 127.0.0.1ou ::1).

Enthousiaste
la source
3
Whoa, redémarrez? Devez-vous vraiment redémarrer pour ouvrir un port?
jcollum
1
passer -nà pfctl vérifie les règles et ne les charge pas ostensiblement. Utilisez juste -f /etc/pf.confpour charger les règles. Vérifiez qu'ils sont chargés pfctl -sr. Cependant, bien que les règles pfctl soient nécessaires, elles ne semblent pas suffisantes en elles-mêmes pour permettre l'accès à El Capitan sur un port donné.
Brian M. Hunt
... Il faut également s'assurer que l'application est liée au nom d'hôte (pas localhost); on obtient le nom d'hôte avec $ hostnamesur la ligne de commande. En outre, on peut redémarrer le pare-feu, au lieu de redémarrer, en allant dans Préférences Système -> Sécurité et confidentialité -> Pare-feu -> Désactiver le pare-feu, puis Activer le pare-feu.
Brian M. Hunt du
@Keen fantastique avatar - grands souvenirs!
Dónal
6

ipfw est déconseillé par Apple. Mountain Lion et plus tard utilisent pfctl.

http://support.apple.com/kb/ht5413

Kent
la source
6
pouvez-vous publier la commande spécifique pour ouvrir un port?
thias
Si vous souhaitez ajouter un port spécifique, je pense que vous devez modifier le fichier de configuration (voir krypted.com/mac-security/… et recherchez la partie avec 192.168). D'un autre côté, si vous voulez vous assurer qu'une application n'est pas bloquée, jamfnation.jamfsoftware.com/discussion.html?id=6566 a un assez bon résumé dans le commentaire final. J'utilise toujours principalement 10.6, donc je n'ai pas beaucoup travaillé avec pfctl.
Kent
1

Voici une ligne plutôt que d'exiger de l'utilisateur de jouer avec Vim. Utile pour l'automatisation.

sed -i '' -e '$a\pass in proto tcp from any to any port 8080' /etc/pf.conf; pfctl -vnf /etc/pf.conf

Ou une alternative pour les utilisateurs Linux

sed -i -e '$a\pass in proto tcp from any to any port 8080' /etc/pf.conf; pfctl -vnf /etc/pf.conf

Assurez-vous simplement de changer 8080dans l'exemple ce que vous avez en tête. Échangez TCP avec UDP si vous le souhaitez.

BarryMode
la source