こんにちは。「クロジカサーバー管理」プリセールスの高瀬です。VPSや専用サーバーはサーバー権限を丸ごと提供されるため、柔軟なサーバー設定や詳細なログ調査を行える一方でファイアウォール設定など、セキュリティの設定を自己責任で行う必要があります。
もちろんこれはクラウドでも重要で、特にEC2でWebサーバーを稼働させる際は、サーバーへのアクセスIP制御だけでも様々な方法があります。
今回は代表的な設定方法について、それぞれの特徴と使い分けについて解説します。
目次
サーバーIP制限の方法について
ネットワークACL
AWSのネットワークACLはネットワーク機器のパケットフィルタのような形でサブネット全体に対するアクセスIPを設定できます。サブネットごとにインバウンド・アウトバウンドそれぞれに対して複数のルールを設定可能です。
各ルールの中でプロトコルや接続先/接続元のIP範囲を設定できます。
https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/vpc-network-acls.html
セキュリティグループ
AWSのセキュリティグループはEC2やRDS、ALBといった各リソースに対するアクセスIPを設定できます。
こちらもプロトコルや接続先/接続元のIP範囲を含めたルールをインバウンド・アウトバウンドそれぞれに対して複数設定できますが、ネットワークACLと異なり、同じサブネットでもインスタンスによって異なる設定を行うことができます。
https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/VPC_SecurityGroups.html
また、特定セキュリティグループが設定されたリソースからのアクセスを許可したり、マネージドプレフィックスリストと組み合わせることでCloudFrontからのアクセスを許可したりと、接続先/接続元にAWS独特のリソースを設定することが可能です。
https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/managed-prefix-lists.html
OS内のファイアウォールソフト
iptables などのファイアウォールソフトでもサーバー単位でのアクセスIPを設定することが可能です。iptablesやTCP Wrapperでは接続先/接続元のIPだけではなくホスト名での許可設定も可能です。(DNSレコードの更新時には再起動などの処置を行う必要な場合もあります)
Apacheの設定ファイル(もしくはhtaccess)
サイトへのアクセスに関してはApacheの設定でも設定が可能です。設定対象はApacheに対するHTTP/HTTPSの通信に限られますが、URLパスによる設定やユーザーエージェントなど、WEBアクセス固有のパラメータを設定条件に含めることができます。
どのように使い分けるべきか
サイトの要件やサーバー構成によって設定の仕方は異なりますが、大まかなところでは「設定がどの範囲に適用されるべきか」によって使い分けられるかと思います。
例えば、公開サーバーが複数登録されているサブネットと非公開サーバーが複数登録されているサブネットがある場合は、サブネット全体に適用される設定はネットワークACLに設定します。
また、同じサブネット内にWEBサーバーやDBサーバーが複数混在して、WEBサーバーはHTTP/HTTPSを許可する、などサーバーの役割に対して設定を適用したい場合はセキュリティグループを利用します。
OS内のファイアウォールソフトやApacheについてはサーバーごとに設定する必要がありますが、サーバー全体の設定ならファイアウォール、サイトやURL単位できめ細かく設定する場合はApacheの設定ファイルで設定します。
さいごに
クロジカサーバー管理ではお客様のサイトについてヒアリングさせていただき、ファイアウォールをはじめとしたセキュリティ設定を最適な状態にさせていただきます。
サイト制作のご提案にあたり、サーバーのセキュリティ設定に時間を取ることが難しい場合はぜひご相談くださいませ。
コーポレートサイトをクラウドでセキュアに
無料ではじめるサーバー管理
クロジカガイドブック
- コーポレートサイト構築・運用の課題を解決
- クロジカサーバー管理の主な機能
- 導入事例
- 導入までの流れ