1. なぜクラウドMacを強化するのか?
専用Macサーバーは、プロビジョニングされた瞬間から公共のインターネットに到達可能になります。ユーザー名とパスワードによるアクセスは便利ですが、パスワードはブルートフォース攻撃を受ける可能性があり、開いた管理ポートは自動化された攻撃を招きます。良い知らせは、よく理解されたいくつかのステップ — SSHキー、厳格なファイアウォール、プライベートVPN — によって、そのリスクの大半を取り除けることです。MyRemoteMacのすべてのサーバーは、鍵ベースの認証、マネージドファイアウォール、WireGuard VPNを最初から標準でサポートしています。
多層防御:単一の対策だけでは不十分です。鍵ベースのSSH、デフォルト拒否のファイアウォール、VPN限定の管理を組み合わせることで、攻撃者は複数の独立した層を突破せざるを得なくなります。
2. 前提条件
始める前に、以下を用意しておいてください:
- SSHアクセスが可能なMyRemoteMacのMacサーバー
- ローカルマシン上のSSHクライアント(macOS、Linux、最新のWindowsに内蔵)
- サーバーのIPアドレスとデフォルトの認証情報
- ターミナルの基本的な操作に慣れていること
3. ステップ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
公開鍵を追加し、パスワードを無効にする
MyRemoteMacのダッシュボードでセキュリティを開き、公開鍵を貼り付けます。または、新しいサーバーをプロビジョニングする際に選択します。鍵によるログインが機能することを確認したら、パスワード認証を無効にします:
# 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/^#*ChallengeResponseAuthentication.*/ChallengeResponseAuthentication no/' /etc/ssh/sshd_config
# Restart the SSH daemon to apply
sudo launchctl kickstart -k system/com.openssh.sshd
4. ステップ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) — それ以外はすべてデフォルトで拒否します。
5. ステップ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は公共のポートスキャナーから見えなくなります。
6. ステップ4:継続的な強化
セキュリティは一度きりの作業ではなく、継続的なものです。次の持続的な対策を適用しましょう:
- macOSを最新に保つ — 既知の脆弱性をふさぐため、セキュリティアップデートを速やかにインストールします。
- FileVaultを有効にする — ディスク全体の暗号化により、保存データを保護します。
- root以外の管理者ユーザーを使う — rootでログインするのではなく、sudoを通じて作業します。
- SSHキーをローテーションし、範囲を限定する — 使わなくなったキーはセキュリティから削除します。
- 認証ログを監視する — ログインの失敗や予期しないセッションに注意します。
- 定期的にバックアップする — ランサムウェアへの耐性のため、強化とオフサイトバックアップを組み合わせます。
7. トラブルシューティング
パスワードログインを無効にした後、ロックアウトされた
ダッシュボードからVNC/画面共有で再接続し、一時的にパスワードログインを再度有効にして、公開鍵が正しい権限(~/.sshは700、ファイルは600)で~/.ssh/authorized_keysに入っていることを確認します。
SSHがまだパスワードを要求する
権限を確認します。~/.sshは700、authorized_keysは600でなければなりません。sshd_configでPubkeyAuthenticationがyesに設定されていること、そしてssh -iで対応する秘密鍵を提示していることを確認します。
ファイアウォールのルールでロックアウトされた
ファイアウォールのルールを変更している間は、常にVNC/画面共有のセッションを1つ開いたままにしておきます。SSHを失った場合は、VNCを使ってルールを元に戻し、その後VPNサブネットに範囲を限定して再適用します。
8. セキュリティチェックリスト
新しいMacサーバーをプロビジョニングした後は、このチェックリストを一通り確認しましょう:
- SSHキー認証が有効になっている
- パスワードログインが無効(またはVPNに制限)になっている
- macOSアプリケーションファイアウォールがステルスモードで有効になっている
- 受信ポートはデフォルト拒否。SSHとVNCはVPNに範囲を限定している
- FileVaultが有効で、macOSが最新である
- 未使用のSSHキーが削除され、オフサイトバックアップが構成されている
要するに:鍵ベースのSSH、パスワードログインの無効化、デフォルト拒否のファイアウォール、VPN経由の管理、FileVaultの有効化、そして定期的な鍵のローテーションです。これを一度行えば、あなたのクラウドMacははるかに攻撃されにくくなります。