Jak pozbyć się okna zapory „akceptuj połączenia przychodzące”?

101

Zaakceptowałem to tyle razy, że zapora sieciowa powinna już to zapamiętać.

Na przykład, dostaję to dla Eclipse podczas uruchamiania moich programów Java w trybie debugowania ... czasami to okno dialogowe jest wyświetlane bardzo krótko, jak pół sekundy, i znika. Dostaję go również dla iTunes (gdy włączę udostępnianie mojej biblioteki) i innych programów, mimo że mam je na liście w panelu preferencji Zapory (ustawienia zaawansowane).

Peter Štibraný
źródło
Jakiej wersji OSX używasz?
Martin Marconcini,
@Martin: dodano tag lamparta śnieżnego. Używam najnowszych i najlepszych 1.6.4.
Peter Štibraný
Według mojej wiedzy zachowanie jest bardzo dziwne. Zapora sieciowa patrzy na sygnaturę aplikacji, aby ją rozpoznać, więc każda zmiana w aplikacji oznacza, że ​​może ona nie zostać rozpoznana, co spowoduje pojawienie się nowego monitu. Leopard był na to bardziej podatny niż 10,6, jednak wciąż dzieje się tak z tego, co mówisz.
Martin Marconcini,
Cały czas widziałem to przez VirtualBox na Snow Leopard. Chciałbym również usłyszeć wyjaśnienie.
Ben Wyatt
Bardzo irytujące. Widzę wyskakujące okienko kilka razy dziennie podczas pracy w Eclipse. Pokazuje się tylko przez sekundę. Dzieje się tak na Mountain Lion z Eclipse Juno SR2.
Gunnar

Odpowiedzi:

12

Istnieją tutaj dwie opcje:

  1. Możesz po prostu wybrać „Zezwól na wszystko” w swojej zaporze ogniowej lub po prostu ją wyłączyć.
  2. Możesz usunąć aplikacje z listy, usunąć plistplik dla tych aplikacji, uruchomić je, a następnie dodać do listy. Plist jest odpowiedzialny za wiele zachowań i jestem gotów się założyć, że aktualizacja systemu operacyjnego lub aplikacja może spowodować zerwanie „linku”.

Informacje o plistplikach ... Plist to specjalny rodzaj pliku tekstowego, który zawiera właściwości aplikacji i innych zasobów, zazwyczaj systemu operacyjnego, używanych do przechowywania i ponownego wykorzystywania informacji potrzebnych do uruchomienia aplikacji. plistjest typem pliku i ma wiele zastosowań, zwykle do przechowywania preferencji użytkownika, ale zasadniczo jest to plik XML. Możesz sprawdzić, czy istnieją jakieś pamięci podręczne, które są zwykle plistplikami, dla aplikacji, o których mowa w /Library/Cachesi /System/Library/Caches. Jest też jedna, ~/Library/Caches/ale złe rzeczy mogą się zdarzyć, gdy się tam chowają, więc zostaw to w spokoju. System wchodzi do tych folderów z wielu różnych powodów i zwykle usuwam pierwsze dwa foldery, które wymieniłem całkowicie raz w miesiącu.

Philip Regan
źródło
Czy możesz wyjaśnić, co masz na myśli mówiąc „usuń plik plist dla tych aplikacji”?
Peter Štibraný
2
Pliki plist zawierają między innymi ustawienia aplikacji (i można je bezpiecznie usunąć, ale zawsze należy wykonać kopię na wszelki wypadek). Każda aplikacja Cocoa musi zostać zaprogramowana do odtworzenia własnej listy odtwarzania, jeśli plik „zniknie”. Lista aplikacji znajduje się zwykle w / Users / your_user / Library / Preferences. Pliki kończą się rozszerzeniem .plist i zwykle mają nazwy takie jak: „com.company.appname.plist” np. Com.adobe.Phosothop.plist. Możesz przenieść je na pulpit i uruchomić aplikację, aby ją „odtworzyć”.
Martin Marconcini,
Czy litery ~s w powyższych ścieżkach plików odnoszą się do folderu domowego bieżącego użytkownika lub katalogu głównego?
2
Przegłosowane, ponieważ w wielu przypadkach nie jest to opcja. komentarz użytkownika465139 jest bardziej odpowiedni. Mimo to nadal stanowi zagrożenie bezpieczeństwa - jest to co najmniej mniej niż dopuszczenie wszystkich aplikacji we / wy.
sholsinger
1
zgadzam się z @sholsinger w tej sprawie, po prostu natknęłem się na to dla Mavericks + PHPStorm, a alternatywa dla samopodpisania jest łatwa, szybka i działa. Ten biznes plist jest trochę niechlujny.
Alex Weber,
61
sudo codesign --force --deep --sign - /path/to/application.app

Nigdy nie musiałem tworzyć certyfikatu przy użyciu tej metody.

Jeśli to nie pomoże, spróbuj bez --deepukośnika:

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

Uwaga: aby było jaśniej: po zastosowaniu podpisu uruchom aplikację, zaakceptuj połączenia przychodzące po raz ostatni, a następnie zamknij i uruchom ponownie, aby sprawdzić, czy żądanie zniknęło.

korytarz
źródło
5
Wiem, bo to zrobiłem? Nie jestem pewien, o co dokładnie prosisz ... korzystając z tej metody udało mi się pozbyć wyskakującego okienka „akceptuj powiadomienia przychodzące” (chociaż po podpisaniu zostaniesz zapytany po raz ostatni, a potem nie więcej ). To zadziałało dla mnie dla Spotify i AppCode. Jeśli potrzebujesz informacji, przeczytaj stronę podręcznika? edycja: Używam Yosemite GM Candidate v3.0, jeśli to ci pomaga.
ahall
2
Chciałbym zmienić jeden mały szczegół: aplikacja, którą należy zaadresować w / path / to / app, musi zawierać końcówkę .app , tj .: /path/to/exampleapp.app.
4
@IconDaemon Użycie opcji „ -po” --signoznacza, że ​​używane jest „podpisywanie ad-hoc”; aby użyć tego polecenia, nie trzeba mieć certyfikatu. Nie rozumiem, dlaczego byłoby to sprzeczne z użyciem terminala. Uruchom, man codesignaby zobaczyć wyjaśnienie.
Mike
3
Prosty i działa. Znacznie lepsza niż zaakceptowana odpowiedź, ponieważ nie chcę usuwać plików plist.
Justin
2
sudo codesign --force --sign - /path/to/application.apppracował dla mnie, ale nie odmiany zaproponowanej przez autora. Zastanawiam się, --deepczy wiodący ukośnik był problemem.
Jose Alban
61

Chociaż link RedYeti jest przydatny, aby zaoszczędzić kilka kliknięć innym, pozwól mi podsumować, jak wygenerować certyfikat podpisu kodu i użyć go do (ponownego) podpisania kodu:

  1. Utwórz własny certyfikat do podpisywania kodu:

    • W Dostęp do pęku kluczy, Dostęp do pęku kluczy> Asystent certyfikatu> Utwórz certyfikat. Spowoduje to uruchomienie Asystenta certyfikatu:

    • Nazwa: Wpisz dowolny ciąg znaków, który możesz zapamiętać. Unikaj spacji, w przeciwnym razie musisz użyć nazwy certyfikatu, gdy używasz codesignz wiersza poleceń.

    • Typ tożsamości: root z podpisem własnym

    • Typ certyfikatu: podpisywanie kodu

    • Zaznacz pole „Pozwól mi zastąpić ustawienia domyślne”, jest to dość ważne

    • Numer seryjny: 1 (OK, o ile kombinacja nazwy certyfikatu / numeru seryjnego jest unikalna)

    • Okres ważności: 3650 (daje 10 lat)

    • Adres e-mail, nazwisko itp. Należy wypełnić zgodnie z życzeniem.

    • Informacje o parach kluczy: ustawione na RSA, 2048 bitów. To naprawdę nie ma znaczenia IMHO.

    • Od „Rozszerzenia użycia klucza” do „Rozszerzenia alternatywnej nazwy podmiotu”: zaakceptuj wartości domyślne.

    • Lokalizacja: brelok logowania.

    • Po utworzeniu ustaw „Zawsze ufaj” w pęku kluczy logowania: kliknij prawym przyciskiem myszy certyfikat, wybierz „Uzyskaj informacje”, aw sekcji „Zaufanie” ustaw „Korzystając z tego certyfikatu” na „Zawsze ufaj”.

  2. Ponowne podpisywanie aplikacji: codesign -f --deep -s <certname> /path/to/app

  3. Sprawdź, czy zadziałało: codesign -dvvvv /path/to/app

Cieszyć się!

Laryx Decidua
źródło
4
Dziękuję Ci! To jedyne rozwiązanie, które pozbyło się dla mnie okien dialogowych zapory ogniowej. Używam OSX 10.10 Yosemite.
Jason
1
bardzo dobrze! łatwe dla programistów, którzy już mają certyfikat!
cwd
1
uwaga dodatkowa: maksymalizowałem okres ważności do 7300 (dni), czyli 20 lat. Zauważyłem przy pewnej próbie, że jest to maksymalna liczba, którą akceptuje pole wprowadzania danych (przynajmniej w OSX Yosemite 10.10.3) - bardzo dobrze, hmm!
DavAlPi
Odpowiedź ahalla jest znacznie prostsza i działała dla mnie na OS X 10.10
n1000
Nie działało dla mnie w systemie OS X 10.11.1 (15B42)
suzanshakya
15

Odnosi się to do tego, czy aplikacja jest podpisana, czy nie. Jeśli nie zostanie podpisany, preferencje nie zostaną zapamiętane.

Aby sprawdzić, czy aplikacja jest podpisana, zrób to w Terminalu:

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

Dla Eclipse - moje mówi, że wcale nie jest podpisane. Nie mogę komentować dalej, jak podpisać aplikację, ponieważ nie zadałem sobie trudu, aby to zrobić, ale ta odpowiedź na temat superużytkownika obejmuje:

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

RedYeti
źródło
1
Chociaż odpowiedź ahalla daje rozwiązanie, ta odpowiedź wyjaśnia, dlaczego. Po połączeniu byłaby to idealna odpowiedź.
not2savvy
3

Tylko uwaga, jeśli używasz środowiska wirtualnego, pamiętaj o podpisaniu aplikacji używanej dla tego środowiska. Wiem, że to oczywiste, ale mimo to należało powiedzieć.

flyboy777
źródło
wielkie dzięki, ale zamiast aplikacji, jak mam podpisać wersję Pythona (powiedzmy python3.6) w środowisku Conda?
Agile Bean
1

Rozumiem, że to stare pytanie i odpowiedzi, ale było to dla mnie pierwsze trafienie w Google, kiedy miałem ten sam problem. Chciałem tylko dodać coś dla innych, którzy mogą tu wylądować.

Aby wykonać dowolne z opisanych tutaj poleceń codeign, konieczne jest zainstalowanie narzędzi wiersza poleceń xcode. Bez nich pojawia się komunikat o błędzie:

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

Aby to naprawić, zainstaluj narzędzia za pomocą:

xcode-select install

Skomentowałbym post ahalla, ale nie mam na to punktów reputacji.

Pete
źródło
0

Otrzymałem to okno dialogowe (Canon ccpd) za każdym razem po uruchomieniu komputera. Otwórz zaporę sieciową> bezpieczeństwo i prywatność> odblokuj, aby włączyć zmiany> kliknij przycisk „Włącz tryb ukryty”> kliknij przycisk „Zablokuj wszystkie połączenia przychodzące”.

Po tym nie ma już irytującego okna dialogowego sterownika drukarki Canon.

Doc Olmo
źródło
Ale aplikacja nie działa ...
not2savvy
0

Próbowałem wszystkich powyższych w Mac 10.13 i nic nie działało.

W końcu napisałem skrypt, który działał przy wylogowaniu dołączony do haka logowania, który wyłączał zaporę ogniową, więc po zalogowaniu nie potrzebował już uprawnień, a następnie za pomocą opóźnionego uruchamiania uruchomił inny skrypt, który włączał zaporę ogniową.

Wszystko dobrze teraz

Ash Dean Wells
źródło
Witamy, aby zapytać inaczej! Możesz udostępnić swój skrypt, aby inni użytkownicy również mogli czerpać zyski z twojego rozwiązania.
Glorfindel
0

Moja sytuacja dotyczy dwóch kopii Eclipse zainstalowanych na MacOS Mojave 10.14.5. Pierwsza kopia została autoryzowana za pomocą zapory MacOS. Druga kopia zawsze wyświetlałaby monit „akceptuj połączenia przychodzące”. Wybranie opcji „Zaakceptuj” spowoduje wyświetlanie komunikatu po każdym ponownym uruchomieniu, najwyraźniej ustawienie zapory nie zostało zaktualizowane.

Rozwiązaniem było otwarcie Preferencji systemowych MacOS -> Bezpieczeństwo i prywatność -> Zapora ogniowa, odblokowanie ekranu, Opcje zapory ogniowej. Wybierz Eclipse.app „Zezwalaj na połączenia przychodzące” i usuń je za pomocą przycisku „-”. Następnym razem, gdy wybrałem „Zezwalaj” na środowisko Eclipse, „Akceptuj połączenia przychodzące”, był ostatni.

Les Grieve
źródło
-2

Rozwiązaniem było dla mnie całkowite wyłączenie zapory. Niezwykle powszechne jest tworzenie programów internetowych, które są oczywiście niepodpisane, ponieważ kompilujesz je natywnie.

Otwórz reflektor za pomocą CMD + Spacja i wyszukaj „prywatność” i wybierz „Bezpieczeństwo i prywatność”. Następnie przejdź do zakładki „Firewall” i tam wyłącz firewall.

anon58192932
źródło
2
Wydaje się to dość kiepskim rozwiązaniem dla większości ludzi, chyba że wiedzą, co robią. Zapory ogniowe są dostępne nie bez powodu - nawet na komputerach Mac.
RedYeti
Myślę, że miałeś na myśli „Zapory ogniowe są denerwujące - nawet na komputerach Mac”. Nie wszyscy są niewykształceni, biegając w otwartych sieciach Wi-Fi na lotniskach, a wszystkie ich porty pobierają wirusy z witryn dystrybucji złośliwego oprogramowania. Moja odpowiedź poprawnie rozwiązuje problem i omija głupio irytujące wyskakujące okienka Apple. Za każdym razem, gdy rekompilujesz plik binarny korzystający z sieci, pojawia się wyskakujące okienko, które jest absolutnie niewybaczalne. Wyskakujące okienko to po prostu kolejny irytujący sposób, w jaki Apple próbuje opiekować się niewykształconymi ludźmi, pozostawiając programistów wysoko i suchych.
anon58192932
1
Zgadzam się - nie wszyscy są niewykształceni. Jednak na ten temat jest zdecydowana większość ludzi. Nawet ci, którzy nie są, powinni wiedzieć lepiej niż wyciągać główny składnik bezpieczeństwa sieci. Przynajmniej ostrzeganie ludzi przed możliwymi konsekwencjami byłoby dobre. Po prostu wyłączając zaporę ogniową, nie liczyłbym się jako „poprawka”, ale bardzo hackerska obejście.
RedYeti