如何阻止Mac要求接受传入的网络连接?


13

我正在使用Syncthing,这是一个用于在两台或多台计算机之间同步文件的应用程序。我认为需要允许Syncthing(在github上接受传入的网络连接才能正常工作。

Mac OS X有一个内置防火墙,它会不断询问我是否要允许同步以弹出窗口的形式接受传入的网络连接。通常,对于应用程序仅询问一次,但是出于某种原因,该弹出窗口每天至少出现4次。

它可能与自动更新功能有关,该功能会导致偶尔显示一次新的二进制文件(类似于Google Chrome所做的事情)。但是,与我收到的弹出窗口相比,此应用程序的更新频率要低得多。

任何想法我可以做些什么来使Mac OS X不再询问特定应用程序的问题,还是没有办法解决?

如果在我离开机器的情况下还可以进行默认选择,那就太好了。知道如何实现此目标- 无需关闭防火墙吗?

Answers:


9

这可能是由于数字签名缺失或错误引起的。像苹果公司解释的那样

如果您运行的防火墙列表中未列出未签名的应用程序,则会显示一个对话框,其中包含允许或拒绝该应用程序连接的选项。如果选择允许,则OS X将对该应用程序签名并自动将其添加到防火墙列表中。

[...]

某些应用在打开时会检查其自身完整性,而无需使用代码签名。如果防火墙识别出此类应用程序,则不会对其进行签名。而是在每次打开应用程序时显示“允许或拒绝”对话框。可以通过升级到由开发人员签名的应用程序版本来避免这种情况。

如果对应用程序进行了签名,则每次也会显示此对话框,但是应用程序本身的签名却被破坏了,甚至iTunes也是如此

您可以通过在终端中运行以下命令来检查签名(在这里我不确定您的应用程序的名称):

codesign --verify -vv /Applications/Syncthing.app/

或者,可以在防火墙设置中删除该应用程序,然后查看再次接受是否足以停止OS X提示您?还是通过这些设置明确添加它?

至于默认值:确保已启用选项“自动允许签名的软件来接收传入的连接”


很好的答案-我发现您提到的默认设置,但这并不令人满意,因为所有传入连接都将以这种方式自动启用,但是我想这是唯一的选择
克里斯(Chris)

1
@Chris,如果(正确地)担心允许已签名的应用程序接受传入连接,则请注意,OS X防火墙仅过滤传入连接。它允许所有传出连接,因此从安全角度考虑,我认为任何其他防火墙都比OS X防火墙更受青睐。(但是有些不同意,而另一些人不同意 ……)
Arjan 2015年

那么,@ Chris,签名检查的结果如何?然后从防火墙设置中删除该应用程序,以查看此后是否仍然允许“允许”(可能直到下一次更新...)?
Arjan 2015年

感谢您的提示-实际上,出于您所解释的原因,我实际上正在使用LittleSnitch来使用更好的防火墙,但仍启用了OS X防火墙-我将测试从那里将其删除,看看是否有任何作用
Chris

1
是的,这就是我所做的并希望发生的事情。但是,即使我相信内部同步最近已更新,OS X防火墙也没有再次打扰我(到目前为止)。防火墙实际上“知道”它是内部可执行文件,它要求许可并且不添加包装器应用程序(其签名被破坏)。内部可执行文件始终具有有效的签名(每次更新后),但是我不知道OS X防火墙是否检查签名的更改?在这种情况下,Skype等也应在每次更新后请求权限(据我所知这不是)。
克里斯

0

该说明会永久禁用此烦人的弹出窗口,并且该解决方案适用于所有缺少或签名错误的应用。

简而言之:

sudo codesign --force --deep --sign - path-to-the-app.app

对该应用程序进行签名似乎是使该弹出式窗口在没有签名的情况下消失的好方法。但是上述命令似乎对我不起作用。我从未签署过应用程序。首先要生成一些密钥吗?或配置设置?我通常会得到error: The specified item could not be found in the keychain
Pierre-Antoine
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.