なぜクラウドMacを強化するのか?
専用Macサーバーは、プロビジョニングされた瞬間から公共のインターネットに到達可能になります。ユーザー名とパスワードによるアクセスは便利ですが、パスワードはブルートフォース攻撃を受ける可能性があり、開いた管理ポートは自動化された攻撃を招きます。良い知らせは、よく理解されたいくつかのステップ(SSHキー、厳格なファイアウォール、プライベートVPN)によって、そのリスクの大半を取り除けることです。MyRemoteMacのすべてのサーバーは、鍵ベースの認証、マネージドファイアウォール、WireGuard VPNを最初から標準でサポートしています。
多層防御:単一の対策だけでは不十分です。鍵ベースのSSH、デフォルト拒否のファイアウォール、VPN限定の管理を組み合わせることで、攻撃者は複数の独立した層を突破せざるを得なくなります。
前提条件
始める前に、以下を用意しておいてください:
- SSHアクセスが可能なMyRemoteMacのMacサーバー
- ローカルマシン上のSSHクライアント(macOS、Linux、最新のWindowsに内蔵)
- サーバーのIPアドレスとデフォルトの認証情報
- ターミナルの基本的な操作に慣れていること
ステップ1:SSHキー認証
鍵ベースの認証は、推測可能なパスワードを暗号鍵ペアに置き換えます。あなたは秘密鍵を保持し、サーバーは公開鍵だけを保存するため、攻撃者がブルートフォースで破るパスワードは存在しません。
キーペアを生成する
ローカルマシンで、最新のEd25519キーを生成します(すでにお持ちの場合はスキップしてください):
# Generate a modern Ed25519 key pair on your LOCAL machine
ssh-keygen -t ed25519 -C "you@example.com"
# Print the PUBLIC key (this is what you give the server)
cat ~/.ssh/id_ed25519.pub
# ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAA... you@example.com
公開鍵を追加し、パスワードを無効にする
My Remote Macアカウントのセキュリティに保存した鍵は、その後に作成するMacにインストールされます。新しいサーバーをプロビジョニングする際に鍵を選択してください。すでに稼働中のMacには、下記のようにSSH経由でご自身で鍵を追加します。鍵によるログインが機能することを確認したら、パスワード認証を無効にします:
# Mac already running? On the SERVER, append your PUBLIC key yourself
mkdir -p ~/.ssh && chmod 700 ~/.ssh
echo "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAA... you@example.com" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
# On the SERVER, disable password login once your key works
sudo sed -i '' 's/^#*PasswordAuthentication.*/PasswordAuthentication no/' /etc/ssh/sshd_config
sudo sed -i '' 's/^#*KbdInteractiveAuthentication.*/KbdInteractiveAuthentication no/' /etc/ssh/sshd_config
# Restart the SSH daemon to apply
sudo launchctl kickstart -k system/com.openssh.sshd
上書きに注意:/etc/ssh/sshd_config.d/内のファイルがsshd_configの設定を上書きすることがあります。このフォルダはファイルの先頭で読み込まれ、sshdは各オプションについて最初に読み込んだ値を採用します。そのフォルダ内のファイルでPasswordAuthenticationまたはKbdInteractiveAuthenticationが設定されている場合は、そちらも変更してください。
ステップ2:ファイアウォールを固める
必要なものだけを公開しましょう。MyRemoteMacにはマネージドネットワークファイアウォールが含まれていますが、第二の層として、ホスト上のmacOSアプリケーションファイアウォールも有効にすべきです。
macOSアプリケーションファイアウォールを有効にする
# Enable the built-in macOS application firewall
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate on
# Enable stealth mode (don't respond to pings / closed-port probes)
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setstealthmode on
# Verify
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --getglobalstate
受信ポートを制限する
MyRemoteMacのマネージドファイアウォール(ダッシュボードまたはAPI)で、実際に使うポートだけ受信トラフィックを許可し、通常はご自身のIPまたはVPNに制限したSSH(22)、それ以外はすべてデフォルトで拒否します。
ステップ3:プライベートVPN(WireGuard)
最も強固な体制は、管理ポートを一切公開しないことです。MyRemoteMacのすべてのサーバーには、プライベートなWireGuard/IPSecトンネルが含まれています。まずそれに接続し、その後プライベートネットワーク経由でSSHとVNCにアクセスします。
# Bring up the WireGuard tunnel from your local machine
wg-quick up wg0
# Now reach your Mac over the PRIVATE address, not its public IP
ssh you@10.0.0.2
トンネルが確立したら、ファイアウォールでSSHとVNCをVPNサブネットのみに制限します。すると、あなたのMacは公共のポートスキャナーから見えなくなります。
ステップ4:継続的な強化
セキュリティは一度きりの作業ではなく、継続的なものです。次の持続的な対策を適用しましょう:
- macOSを最新に保つ:既知の脆弱性をふさぐため、セキュリティアップデートを速やかにインストールします。
- FileVaultを有効にする:ディスク全体の暗号化により、保存データを保護します。
- root以外の管理者ユーザーを使う:rootでログインするのではなく、sudoを通じて作業します。
- SSHキーをローテーションし、範囲を限定する:使わなくなったキーは、各Macの
~/.ssh/authorized_keysから削除し、新しいMacにインストールされないよう、アカウントのセキュリティからも削除します。 - 認証ログを監視する:ログインの失敗や予期しないセッションに注意します。
- 定期的にバックアップする:ランサムウェアへの耐性のため、強化とオフサイトバックアップを組み合わせます。
トラブルシューティング
パスワードログインを無効にした後、ロックアウトされた
ダッシュボードからVNC/画面共有で再接続し、一時的にパスワードログインを再度有効にして、公開鍵が正しい権限(~/.sshは700、ファイルは600)で~/.ssh/authorized_keysに入っていることを確認します。
SSHがまだパスワードを要求する
権限を確認します。~/.sshは700、authorized_keysは600でなければなりません。sshd_configでPubkeyAuthenticationがyesに設定されていること、そしてssh -iで対応する秘密鍵を提示していることを確認します。
ファイアウォールのルールでロックアウトされた
ファイアウォールのルールを変更している間は、常にVNC/画面共有のセッションを1つ開いたままにしておきます。SSHを失った場合は、VNCを使ってルールを元に戻し、その後VPNサブネットに範囲を限定して再適用します。
セキュリティチェックリスト
新しいMacサーバーをプロビジョニングした後は、このチェックリストを一通り確認しましょう:
- SSHキー認証が有効になっている
- パスワードログインが無効(またはVPNに制限)になっている
- macOSアプリケーションファイアウォールがステルスモードで有効になっている
- 受信ポートはデフォルト拒否。SSHとVNCはVPNに範囲を限定している
- FileVaultが有効で、macOSが最新である
- 未使用のSSHキーが削除され、オフサイトバックアップが構成されている
要するに:鍵ベースのSSH、パスワードログインの無効化、デフォルト拒否のファイアウォール、VPN経由の管理、FileVaultの有効化、そして定期的な鍵のローテーションです。これを一度行えば、あなたのクラウドMacははるかに攻撃されにくくなります。