Comment se débarrasser du pare-feu «Accepter les connexions entrantes»?


101

J'ai si souvent accepté que le pare-feu devait déjà s'en souvenir.

Par exemple, je l’obtiens pour Eclipse lors du démarrage de mes programmes java en mode débogage ... parfois, cette boîte de dialogue ne s’affiche que très brièvement (demi-seconde, par exemple) et disparaît. Je le récupère également pour iTunes (lorsque j'active le partage de ma bibliothèque) et pour d'autres programmes, même si je les ai répertoriés dans le panneau des préférences du pare-feu (paramètres avancés).


Quelle version d'OSX utilisez-vous?
Martin Marconcini

@Martin: ajout de la balise léopard des neiges. J'utilise le dernier et le plus grand 1.6.4.
Peter Štibraný

Le comportement est très étrange à ma connaissance. Le pare-feu examine la signature de l'application pour la reconnaître. Par conséquent, toute modification apportée à l'application signifie que celle-ci risque de ne plus être reconnue, ce qui entraînera une nouvelle invite. Leopard était plus enclin à cela que 10.6, mais cela se passe toujours d'après ce que vous dites.
Martin Marconcini

J'avais l'habitude de voir cela tout le temps avec VirtualBox sur Snow Leopard. J'aimerais entendre une explication pour cela aussi.
Ben Wyatt

Très ennuyant. Je vois le popup plusieurs fois par jour pendant que je travaillais chez Eclipse. Il n'apparaît que pour une sous-seconde ou deux. Cela se produit sur Mountain Lion avec Eclipse Juno SR2.
Gunnar

Réponses:


12

Il y a deux options ici:

  1. Vous pouvez simplement sélectionner "Autoriser tout" dans votre pare-feu ou simplement le désactiver.
  2. Vous pouvez supprimer les applications de la liste, supprimer le plistfichier correspondant à ces applications, les exécuter, puis les ajouter à la liste. Le plist est responsable de nombreux comportements et je suis prêt à parier qu'une mise à niveau du système d'exploitation ou de l'application peut entraîner la rupture du "lien".

À propos des plistfichiers ... Un plist est un type spécial de fichier texte contenant les propriétés de l'application et d'autres ressources, généralement le système d'exploitation, utilisées pour conserver et réutiliser les informations nécessaires à l'exécution de l'application. plistest un type de fichier et a de nombreuses utilisations, stockant généralement les préférences de l'utilisateur, mais il s'agit essentiellement d'un fichier XML. Vous pouvez vérifier s'il existe des caches, généralement des plistfichiers, pour les applications en question dans /Library/Cacheset /System/Library/Caches. Il y en a aussi un, ~/Library/Caches/mais de mauvaises choses peuvent se produire lorsque vous vous y perdez, alors laissez-le tranquille. Le système va dans ces dossiers pour une grande variété de raisons, et je nettoie généralement les deux premiers dossiers que je cite complètement environ une fois par mois.


Pouvez-vous s'il vous plaît expliquer ce que vous entendez par "supprimer le fichier plist pour ces applications"?
Peter Štibraný

2
les fichiers plist contiennent entre autres les paramètres de l'application (et vous pouvez les supprimer en toute sécurité, mais faites-en toujours une copie au cas où). Toute application Cocoa doit être programmée pour recréer son propre répertoire si le fichier “disparaît”. La liste des applications est généralement située dans / Utilisateurs / votre_utilisateur / Bibliothèque / Préférences. Les fichiers se terminent par l'extension .plist et portent généralement des noms tels que: «com.company.appname.plist», par exemple: com.adobe.Phosothop.plist. Vous pouvez les déplacer sur votre bureau et lancer l’application pour la «recréer».
Martin Marconcini

Les ~s dans les chemins de fichiers ci-dessus font-ils référence au dossier de base de l'utilisateur actuel ou au répertoire racine?

2
Réduit car ce n'est pas vraiment une option dans de nombreux cas. Le commentaire de user465139 est plus approprié. Bien que ce soit toujours un risque pour la sécurité, il est au moins moins que d’autoriser toutes les applications in / out.
Sholsinger

1
Je suis d’accord avec @sholsinger sur celui-ci, je suis tombé sur ça pour Mavericks + PHPStorm et l’alternative à signature automatique est simple, rapide et efficace. Cette affaire de plist est un peu en désordre.
Alex Weber

61
sudo codesign --force --deep --sign - /path/to/application.app

Je n'ai jamais eu à créer de certificat en utilisant cette méthode.

Si cela ne vous aide pas, essayez sans --deepet sans la barre oblique suivante:

sudo codesign --force --sign - /path/to/application.app

Remarque, pour que ce soit plus clair: après avoir appliqué la signature, démarrez l'application, acceptez une dernière fois les connexions entrantes, puis quittez et redémarrez pour vérifier que la requête est partie.


5
Je sais parce que je l'ai fait? Je ne sais pas exactement ce que vous demandez ... en utilisant cette méthode, j'ai pu me débarrasser de la fenêtre contextuelle "Accepter les notifications entrantes" (bien qu'après la signature, il vous sera demandé une dernière fois, puis plus ). Cela a fonctionné pour moi pour Spotify et AppCode. Si vous avez besoin d’informations, lisez la page de manuel? edit: J'utilise Yosemite GM Candidate v3.0 si cela vous aide.
ahall

2
Je voudrais modifier un petit détail: l'application à traiter dans / path / to / app doit contenir la fin .app , c'est-à-dire: /path/to/exampleapp.app.

4
@IconDaemon L'utilisation de -after --signsignifie que la "signature ad-hoc" est utilisée; il n'est pas nécessaire d'avoir un certificat pour utiliser cette commande. Je ne comprends pas pourquoi cela contredirait l'utilisation du terminal. Exécuter man codesignpour voir l'explication.
Mike

3
Simple et fonctionne. Bien mieux que la réponse acceptée car je ne veux pas supprimer les fichiers Plist.
Justin

2
sudo codesign --force --sign - /path/to/application.appa fonctionné pour moi, mais pas la variation suggérée par l'auteur. Je me demande si --deepou si la barre oblique était un problème.
Jose Alban

61

Bien que le lien de RedYeti soit utile, il suffit de sauvegarder quelques clics pour que les autres me permettent de récapituler comment générer un certificat de signature de code et l'utiliser pour la (nouvelle) signature de code:

  1. Créez votre propre certificat de signature de code:

    • Dans Accès au trousseau, Accès au trousseau> Assistant de certificat> Créer un certificat. Ceci lance l'assistant de certification:

    • Nom: Entrez ici une chaîne arbitraire dont vous vous souviendrez. Évitez les espaces, sinon vous devrez échapper le nom du certificat lorsque vous utilisez codesignla ligne de commande.

    • Type d'identité: Racine auto-signée

    • Type de certificat: Code Signing

    • Cochez la case "Permettez-moi de remplacer les valeurs par défaut", c'est assez important

    • Numéro de série: 1 (OK tant que la combinaison nom / numéro de série du certificat est unique)

    • Période de validité: 3650 (vous donne 10 ans)

    • Email, Nom, etc. remplissez comme vous voulez.

    • Info paire de clés: défini sur RSA, 2048 bits. N'importe pas vraiment à mon humble avis.

    • De "Key usage extension" à "Subject Alternate Name Extension": acceptez les valeurs par défaut.

    • Emplacement: trousseau de connexion.

    • Une fois celui-ci créé, définissez-le sur "Toujours faire confiance" dans le trousseau de connexion: faites un clic droit sur le certificat, choisissez "Lire les informations", puis dans la section "Confiance", définissez "Lors de l'utilisation de ce certificat" sur "Toujours faire confiance".

  2. Re-signer une application: codesign -f --deep -s <certname> /path/to/app

  3. Vérifiez que cela a fonctionné: codesign -dvvvv /path/to/app

Prendre plaisir!

MISE À JOUR: Les gens me demandaient pourquoi cela "ne fonctionnait pas" dans macOS 10.14 "Mojave". Maintenant que j'ai enfin mis à jour :-), voici ce que j'ai appris.

Fondamentalement, n'utilisez pas de certificat auto-signé pour la signature de code. Générez un certificat à l'aide de votre identifiant Apple dans Xcode . Pour récapituler brièvement les étapes:

Dans Xcode> Préférences> Comptes, sélectionnez votre identifiant de développeur Apple, cliquez sur "Gérer les certificats", sélectionnez le "+" dans le coin inférieur gauche, l'option "Développement Apple" vous est proposée. Sélectionnez cela, cela fera un certificat pour vous. En appuyant sur Ctrl-clic sur le nouveau certificat, vous pouvez l'exporter (au .p12format), puis en openchargeant ce .p12fichier, il est chargé dans votre trousseau de connexion.

Vous verrez que ce certificat est valide pour un an, "Émis par: Autorité de certification des relations de développeurs Apple dans le monde entier". Je soupçonne que c'est plus digne de confiance qu'un certificat auto-signé.

Maintenant, vous pouvez signer votre application comme avant avec codesign -f -s <apple_ID> /path/to/prog. Je l'ai essayé avec un simple binaire (compilé à partir de hello.c:-)), et cela a pu être vérifié avec codesign -v.

Je n'ai pas encore essayé avec les packages Python, aussi je n'ai aucun conseil à donner aux personnes qui ont mentionné dans leurs commentaires que cela ne peut pas signer "python.app".


4
Je vous remercie! C’est la seule solution qui m’a débarrassé des dialogues de bourrage de pare-feu. J'utilise OSX 10.10 Yosemite.
Jason

1
très agréable! facile pour les développeurs qui ont déjà un cert, aussi!
cwd

1
Une note de côté: j'ai maximisé la période de validité à 7300 (jours), soit 20 ans. J'ai constaté avec quelques tentatives qu'il s'agit du nombre maximal que la zone de saisie accepte (du moins sous OSX Yosemite 10.10.3) - très bien, bravo!
DavAlPi

La réponse de ahall est beaucoup plus simple et a fonctionné pour moi sous OS X 10.10
n1000

N'a pas fonctionné pour moi sur OS X 10.11.1 (15B42)
suzanshakya

15

Cela concerne si l'application est signée ou non. Si ce n'est pas signé, la préférence ne sera pas mémorisée.

Pour voir si une application est signée, faites-le dans Terminal:

cd path/to/your/app
codesign -vvv Eclipse.app/

Pour Eclipse - le mien dit que ce n'est pas signé du tout. Je ne peux pas en dire plus sur la façon de signer l'application car je ne me suis pas donné la peine de le faire, mais la réponse fournie par le superutilisateur la couvre:

https://superuser.com/questions/100013/why-does-the-mac-os-x-firewall-dialog-recurringly-pop-up-and-disappear-by-itself#300841


1
Bien que la réponse de ahall apporte une solution, cette réponse explique pourquoi. Si fusionné, ce serait la réponse parfaite.
not2savvy

3

Remarque: si vous utilisez un environnement virtuel, veillez à signer l'application utilisée pour l'environnement. Je sais que cela est évident, mais devait être dit quand même.


merci beaucoup, mais au lieu d'une application, comment pourrais-je signer une version python (disons python3.6) dans un environnement conda?
Agile Bean

1

Je comprends que c’est un vieux Q & A, mais c’était le premier succès sur Google lorsque j’ai eu le même problème. Je voulais juste ajouter quelque chose pour les autres qui pourraient atterrir ici.

Pour exécuter l'une des commandes codesign décrites ici, il est nécessaire que les outils de ligne de commande xcode soient installés. Sans ceux-ci, on obtient un message d'erreur:

xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun

Pour résoudre ce problème, installez les outils avec:

xcode-select install

J'aurais commenté le post de ahall, mais je n'ai pas les points de réputation pour le faire.


0

J'ai eu cette boîte de dialogue (Canon ccpd) à chaque fois après le démarrage de mon ordinateur. Ouvrez le pare-feu> sécurité et confidentialité> déverrouillez pour activer les modifications> cliquez sur le bouton "Activer le mode furtif"> cliquez sur le bouton "Bloquer toutes les connexions entrantes".

Plus de boîte de dialogue irritante du pilote d'imprimante Canon après cela.


Mais l'application ne fonctionnera pas ...
not2savvy

0

J'ai essayé tout ce qui précède dans Mac 10.13 et rien n'a fonctionné.

En fin de compte, j’ai écrit un script qui s’exécutait lors de la déconnexion et qui était associé au hook de connexion et qui désactivait le pare-feu. Ainsi, lorsqu’il était connecté, il n’avait plus besoin de permission, puis en utilisant delaylauncher, un autre script activait le pare-feu.

Tout va bien maintenant


Bienvenue à Ask Different! Vous voudrez peut-être partager votre script afin que d'autres utilisateurs puissent également tirer profit de votre solution.
Glorfindel

0

Ma situation concerne deux copies d’Eclipse installées sur MacOS Mojave 10.14.5. La première copie a été autorisée avec le pare-feu MacOS. La deuxième copie présentera toujours l'invite "accepter les connexions entrantes". Choisir "Accepter" continuerait à présenter le message après chaque redémarrage, apparemment, le réglage du pare-feu n'était pas mis à jour.

La solution consistait à ouvrir Préférences Système MacOS -> Sécurité et confidentialité -> Pare-feu, déverrouiller l’écran, Options du pare-feu. Sélectionnez Eclipse.app "Autoriser les connexions entrantes" et supprimez-le avec le bouton "-". La prochaine fois que j'ai sélectionné "Autoriser", l'invite "Accepter les connexions entrantes" d'Eclipse était la dernière.


-2

La solution pour moi était de simplement désactiver complètement le pare-feu. Il est extrêmement courant de créer des logiciels Web qui ne sont bien sûr pas signés parce que vous les compilez de manière native.

Ouvrez le projecteur avec la barre d'espacement CMD +, recherchez "privacy" et sélectionnez "Sécurité et confidentialité". Puis passez à l'onglet "Pare-feu" et désactivez le pare-feu.


2
Cela semble être une très mauvaise solution pour la plupart des gens, à moins qu'ils ne sachent ce qu'ils font. Les pare-feu sont là pour une bonne raison - même sur Mac.
RedYeti

Je pense que vous vouliez dire "les pare-feu sont agaçants - même sur les macs". Tout le monde n’est pas éduqué à courir sur les réseaux wifi ouverts des aéroports avec tous ses ports ouverts à télécharger des virus en dehors des sites de diffusion de programmes malveillants. Ma réponse résout correctement le problème et contourne les boîtes à fenêtres stupidement ennuyeuses d’Apple. Chaque fois que vous recompilez un fichier binaire qui utilise le réseau, vous obtenez le popup qui est absolument inexcusable. Le popup est juste une autre manière ennuyeuse qu'Apple essaye de donner aux personnes non éduquées tout en laissant les développeurs asséchés.
anon58192932

1
Je suis d'accord - tout le monde n'est pas éduqué. Cependant sur ce sujet la grande majorité des gens sont. Même ceux qui ne le devraient pas devraient savoir qu'il vaut mieux retirer le composant principal de sécurité du réseau. Au minimum, avertir les gens des conséquences possibles aurait été bon. Désactiver simplement le pare-feu ne serait pas considéré comme un «correctif», mais comme une solution de rechange très astucieuse.
RedYeti
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.