:::: MENU ::::

C.a.T!

CATch a TAIL!

Japanese sub culture and tech.

  • 2013/12/12
  • 0
apple, mac

MacのFirewallがデスクトップ共有をブロックしてしまったときの対処法

20131212

Mac OSXにはWindowsと同様、標準でFirewallが搭載されていて、基本的に全ての外部からの接続を拒否します。
ただ、sshやデスクトップ共有などのサービスを有効にすると、それに必要なポートは自動的に開けてくれます。

自動的に開けてくれるはずなのですが、デスクトップ共有については非常に怪しい挙動をします。
サービスは有効にしているのに、ポートはブロックされたままで接続できないことがよく発生します。
そんな時にはまらないための対処法を紹介します。

前置き

まず、別に接続できなくなっても直接操作すればいいじゃない、という突っ込みの言い訳をしておきます。
自分は、Mac miniをサーバ(このblogをホスティングしている)として運用しています。
このMac miniには、ディスプレイもキーボードもマウスもつないでいません。
なので、操作するときは基本的にsshで接続しています。
ただ、OSのアップデート作業などはデスクトップ接続せざるを得ないので、その時デスクトップ共有が必要になります。

仕掛け

要は、sshでFirewallを一時的に無効にするだけです。
Firewallを無効にするにはsshで接続して、以下のコマンドを実行します。

sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate off

逆に有効に戻す時は以下のコマンドオプションになります。

sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate on

また、以下のように -l オブションをつけると、現在のアクセス制御設定などが表示されます。

sudo /usr/libexec/ApplicationFirewall/socketfilterfw -l

これで確認すると、

TRUSTEDAPPS AppleVNCServer

と、デスクトップ共有のためのVNCサーバが信頼するアプリとして登録されているんですがね。
なんで接続できなくなるのか。

まとめ

  • Firewallは、socketfilterfwコマンドで操作できる
  • Appleさん、この怪しい挙動早くなんとかして

Leave a comment