Lightsailのファイアウォールは何を制御するのか
Lightsailのインスタンスファイアウォールは、インスタンスのパブリックIPアドレスに対する受信通信を、プロトコル、ポート、送信元IPアドレスなどのルールで制御します。IPv4とIPv6のファイアウォールは別々に設定され、ルールは基本的に通信を許可するためのものです。詳しくはAWS公式ドキュメントを確認してください。
ポートを開放することは、対応するサービスへ外部から到達できる経路を用意することです。ただし、ファイアウォールで許可しても、インスタンス上でサービスが起動していなかったり、対象ポートで待ち受けていなかったりすれば接続できません。
22・80・443番ポートの役割を整理する
代表的なポート番号と用途は次のとおりです。ポート番号は慣例であり、実際のサービス構成によって別のポートを使うこともあります。
| ポート番号 | 代表的なプロトコル | 主な用途 | 公開時の注意点 |
|---|---|---|---|
| 22 | SSH / TCP | Linuxインスタンスの管理接続 | 管理者が利用するIPアドレスやCIDR範囲への限定を検討する |
| 80 | HTTP / TCP | 暗号化されないWeb通信 | HTTPで公開する場合や、HTTPSへのリダイレクトなどで必要になることがある |
| 443 | HTTPS / TCP | TLSで保護されたWeb通信 | 証明書やWebサーバー側のTLS設定も必要になる |
22番、80番、443番の標準的な割り当ては、IANAのサービス名・ポート番号レジストリでも確認できます。AWS公式ドキュメントでも、Webサーバー向けにHTTP(80)とHTTPS(443)、管理接続向けにSSH(22)を使う例が示されています。
Lightsailで公開設定を考える基本手順
- インスタンス上で公開したいサービスと、実際に待ち受けているポートを確認する。
- 必要なポートを、管理用とWeb公開用に分類する。
- Lightsailのファイアウォールでは、用途に対応するポートだけを追加する。
- 設定後、想定した接続元からサービスへ到達できるか確認する。
接続できない場合は、Lightsailのファイアウォール、インスタンス内のOSファイアウォール、WebサーバーやSSHサーバーの待ち受け設定を分けて確認します。これらは別の層の設定なので、どこで通信が止まっているかを切り分けることが重要です。
ポートを安全に公開するための考え方
- 22番ポートは、可能であれば管理者が利用する接続元に限定し、全世界への公開を避ける。
- 80番と443番は、Webサービスの要件に応じて選ぶ。HTTPSを利用する構成では、80番が不要か、リダイレクトなどで必要かを確認する。
- 検証のために一時的に開放したポートは、作業後に不要になっていないか確認する。
- 公開の必要性、接続元の範囲、認証や暗号化の有無を確認してからルールを追加する。
接続できないときの確認ポイント
- 指定したポート番号と、クライアントが接続しているポート番号が一致しているか確認する。
- Lightsail側のファイアウォールで、対象プロトコルとポートが許可されているか確認する。
- IPv4で接続しているのか、IPv6で接続しているのかを確認し、対応するルールを設定する。
- インスタンス内のOSファイアウォールが通信を遮断していないか確認する。
- WebサーバーやSSHサーバーが起動し、対象ポートで待ち受けているか確認する。
- HTTPSの場合は、証明書やTLS設定の問題と、ネットワーク到達性の問題を分けて調査する。