Webサーバーのセキュリティ対策とは?IP制限だけでは守れない理由

Web
Webサーバーのセキュリティ対策とは
  • Webサーバーのセキュリティ対策とは、不正アクセスや脆弱性による被害を防ぎ、システムを安全に運用するための取り組み
  • IP制限は、管理機能への接続元を特定のIPアドレスに限定し、不必要なアクセスを遮断する有効な対策
  • 固定IPアドレスやVPNを活用することで、管理者の接続経路を限定し、外部からの不正アクセスのリスクを軽減できる
  • SSH公開鍵認証は、公開鍵と秘密鍵を利用してサーバーへの接続時の認証を強化する仕組み
  • OSやPHPなどの更新は、既知の脆弱性に対応するために重要であり、既存システムとの互換性も考慮する必要がある
  • ファイアウォールやファイルの権限管理によって、不要な通信やアクセスを制限することも重要
  • バックアップやログの管理は、問題発生時の調査や復旧に備えるための対策
  • IP制限だけに依存せず、サーバーの構成や管理範囲に応じて複数の対策を組み合わせることが重要

Webサーバーのセキュリティでは、管理機能へのアクセスを制限するIP制限が有効な対策となります。固定IPアドレスやVPNを活用することで、不特定多数からの接続を防ぎ、不正アクセスのリスクを軽減できます。ただし、IP制限だけでサーバー全体を守れるわけではありません。SSH認証の強化、OSやPHPの更新、ファイル管理、ファイアウォール、バックアップなどを組み合わせ、サーバーの構成と運用環境に応じた対策を継続することが重要です。

Webサーバーはどこまで公開するべきなのか

Webサイトは、インターネットを通じて誰でも閲覧できることを前提としています。しかし、Webサイトを公開することと、サーバーのすべての機能を公開することは異なります。

一般の利用者がアクセスするWebページと、管理者が利用するサーバー管理機能では、必要なアクセス権限が違います。例えば、Webサイトの閲覧にはHTTPやHTTPSを使用しますが、サーバー内部のファイル操作や設定変更にはSSHなどが使われます。

Webサイトを閲覧する人に、サーバー内部への接続を許可する必要はありません。

そのため、Webサーバーのセキュリティを考える際には、まず「どの機能を誰に公開するのか」を整理する必要があります。

その代表的な対策がIP制限です。ただし、IP制限を設定しただけでサーバー全体が安全になるわけではありません。サーバーへの接続を制限することと、サーバー内部の脆弱性をなくすことは別の問題だからです。

IP制限でアクセス元を限定する

IP制限とは、特定のIPアドレスからのアクセスだけを許可したり、特定のIPアドレスからのアクセスを拒否したりする仕組みです。

例えば、社内の固定IPアドレスからだけサーバーに接続できるように設定すれば、それ以外の接続元からのアクセスを遮断できます。

不正アクセスでは、攻撃者が別のサーバーやプロキシなどを経由してアクセスするケースがあります。こうした場合でも、接続元を特定の固定IPアドレスに限定していれば、許可されていない接続元からのアクセスを入口で遮断できます。そのため、IP制限は外部からの不正アクセスを抑えるうえで有効な対策です。

サーバー管理では、特にSSHへの接続制限が重要になります。SSHは、サーバーに遠隔から接続してコマンドを実行したり、ファイルを操作したりするための仕組みです。サーバーの設定変更やプログラムの更新などにも使用するため、不正にアクセスされると大きな影響が生じる可能性があります。

そこで、SSHへの接続元を管理者が利用する固定IPアドレスに限定することで、不必要な接続を減らすことができます。また、CMSの管理画面やデータベース管理ツールなども、利用環境によってはIP制限の対象になります。重要なのは、一般利用者に公開する機能と、管理者だけが利用する機能を区別することです。

固定IPアドレスとVPNをどう活用するか

IP制限を導入する場合、管理者の接続環境も考える必要があります。例えば、社内からのみサーバーへ接続するのであれば、社内の固定IPアドレスを許可する方法が考えられます。一方、外出先や自宅など複数の場所から作業する場合、接続元のIPアドレスが変わることがあります。

このような場合には、VPNを利用して管理用の接続経路をまとめる方法があります。VPNは、離れた場所からネットワークへ安全に接続するための仕組みです。

認証された利用者だけがVPNへ接続できるようにし、サーバーの管理機能をVPN経由でのみ利用できる構成にすれば、不特定多数からの直接アクセスを制限できます。

また、VPN経由の通信を固定のグローバルIPアドレスから送信する構成であれば、サーバー側でIP制限を適用することもできます。

固定IPアドレスとVPNは、どちらか一方だけを選ぶものではありません。利用環境に応じて組み合わせることも可能です。

もちろん、許可された端末やネットワーク自体が侵害される可能性はあります。そのため、IP制限やVPNだけでなく、接続時の認証も必要です。ただし、接続できる経路を限定すること自体に大きな意味があります。

誰でも接続を試みられる状態と、許可された環境からしか接続できない状態では、攻撃にさらされる範囲が異なるからです。

SSH認証では公開鍵認証を活用する

サーバーへの接続を制限するだけでなく、SSHの認証方法も重要になります。SSHでは、ユーザー名とパスワードによる認証のほか、公開鍵認証を使用できます。公開鍵認証は、公開鍵と秘密鍵の組み合わせを利用する仕組みです。

サーバー側に公開鍵を登録し、接続する端末側で秘密鍵を使用して認証します。これにより、サーバーへ接続する際にパスワードを送信することなく認証できます。

適切に設定した公開鍵認証は、パスワードの推測や使い回しによる攻撃への対策として有効です。ただし、公開鍵認証も秘密鍵の管理が重要になります。

秘密鍵が第三者に取得されれば、不正接続に悪用される可能性があります。そのため、秘密鍵の保護やパスフレーズの設定、不要になった鍵の削除などが必要です。

また、複数の管理者が同じアカウントや秘密鍵を共有することは避けるべきです。担当者ごとに認証情報を管理することで、退職や担当変更の際にも必要な権限を見直しやすくなります。

サーバー管理では、IP制限によって接続元を限定し、SSH公開鍵認証によって接続する利用者を確認するという組み合わせが考えられます。

OSやPHPの更新もセキュリティ対策になる

サーバーの安全性は、接続方法だけで決まるわけではありません。サーバー上で動作するOSやWebサーバー、PHPなどにも脆弱性が発見されることがあります。こうした脆弱性が悪用されれば、管理画面やSSHの認証を経由せずに攻撃を受ける可能性があります。

例えば、PHPに脆弱性が見つかった場合、その影響を受ける条件がそろっていれば、Webサイトへの通常のリクエストを通じて攻撃される可能性があります。この場合、SSHへのIP制限や公開鍵認証を強化していても、PHPの脆弱性そのものを防ぐことにはなりません。

そのため、OSやミドルウェアを適切に更新する必要があります。特に注意したいのが、サポートの終了したバージョンです。

サポートが終了すると、原則として開発元から新たなセキュリティ修正が提供されなくなります。ただし、OSやサーバー事業者が独自に修正を提供している場合もあるため、バージョン番号だけで判断することはできません。

また、単純に最新版へ更新すればよいというわけでもありません。PHPを更新すると、CMSやプラグイン、独自に開発されたプログラムとの互換性に問題が生じることがあります。既存システムへの影響を調査し、必要な改修と検証を行った上で更新する必要があります。

セキュリティのために更新した結果、Webサイトが動作しなくなってしまっては本来の目的を果たせません。安全性を確保しながら継続して運用できることが重要です。

サーバー内部のファイル管理も重要になる

Webサーバーでは、ファイルの配置やアクセス権限もセキュリティに関係します。

例えば、Webサイトを表示するために必要なファイルと、システム内部で使用する設定情報や管理用のファイルでは、公開する必要性が異なります。本来公開する必要のない情報が外部から取得できる状態になっていれば、情報漏えいなどのリスクにつながります。

また、ファイルの読み取りや書き込みについても、必要な権限を適切に設定することが重要です。

ただし、必要な権限はシステムの構成や機能によって異なります。Webサイトの動作に必要な機能を維持しながら、不必要なアクセスや操作を制限することが基本になります。

ファイアウォールで不要な接続を閉じる

サーバーには、Webサイトの公開以外にもさまざまな機能があります。SSH、メール、データベースなど、それぞれ異なる通信ポートを利用する場合があります。しかし、利用していない機能や外部公開する必要のないポートを開放しておく意味はありません。

そこで利用されるのがファイアウォールです。ファイアウォールでは、通信先のポートや接続元IPアドレスなどの条件によって通信を許可・拒否できます。

例えば、一般利用者にはWebサイトの閲覧に必要な通信だけを許可し、SSHへの接続は特定のIPアドレスに限定するといった設定ができます。

データベースをWebサーバー内部からしか使用しないのであれば、インターネットから直接接続できるようにする必要はありません。

また、不要なサービス自体を停止することも重要です。外部から接続できる入口を減らすことは、攻撃を受ける可能性のある範囲を減らすことにつながります。

ただし、ファイアウォールも万能ではありません。公開する必要のあるWebサイトの通信まで遮断することはできません。HTTPやHTTPSを通じて行われる攻撃には、別の対策が必要になります。

バックアップとログは侵害後の対応にも必要になる

ここまで、サーバーへの接続や脆弱性を減らす対策について触れてきました。しかし、セキュリティ対策を実施していても、すべての問題を防げるわけではありません。

そこで重要になるのがバックアップとログです。バックアップは、データが破損した場合やシステムに問題が発生した場合に、正常な状態へ復旧するために使用します。

ただし、Webサイトのファイルだけを保存していても、データベースがなければ復旧できない場合があります。ECサイトであれば、注文情報や顧客情報なども重要なデータです。バックアップ対象だけでなく、保存先、取得頻度、保管期間、復元方法まで考える必要があります。

また、バックアップを同じサーバー内にしか保存していなければ、サーバー全体が侵害・故障した場合にバックアップも失われる可能性があります。そのため、別の環境への保存やアクセス権限の分離も必要になります。

一方、ログは不正アクセスや異常を調査するための情報になります。

アクセスログ、エラーログ、認証ログなどを確認することで、いつ、どのような操作や通信が行われたのかを調査する手掛かりになります。

ただし、ログがあるだけで不正アクセスを検知できるわけではありません。適切に保存し、必要なときに確認できる環境を作ることが重要です。

サーバーの管理範囲によって必要な対応は変わる

実際のWeb制作・運用では、サーバーの種類によって対応できる範囲が異なります。

共用レンタルサーバーの場合、OSやWebサーバーの管理はサービス提供事業者が行うことが一般的です。利用者側では、PHPのバージョン選択、ファイル管理、CMSの更新、アクセス制限などを設定できる場合があります。

一方、VPSや専用サーバーなどでは、利用者側がOSの更新やファイアウォール、SSH、ミドルウェアの管理まで行う構成もあります。

クラウドサービスでは、どこまでを事業者が管理し、どこからを利用者が管理するのか、契約するサービスによって異なります。

そのため「サーバーのセキュリティ対策」といっても、すべての環境で同じ作業を行うわけではありません。特に古いサーバーを長期間運用している場合、単にOSを更新するだけでは対応が難しいこともあります。

既存システムとの互換性、サーバーのスペック、事業者のサポート状況などを考慮し、場合によっては新しい環境への移行も検討する必要があります。

重要なのは、サーバーの構成を把握し、誰がどの範囲を管理しているのかを明確にすることです。

サーバーを守るには複数の対策が必要になる

Webサーバーのセキュリティでは、IP制限は有効な対策の一つです。管理用の接続元を固定IPアドレスなどに限定することで、許可されていない場所からのアクセスを遮断できます。しかし、接続元を限定することだけではサーバー全体を守れません。

  • SSH認証を適切に管理すること。
  • OSやPHPなどの脆弱性に対応すること。
  • 公開する情報やアクセス権限を管理すること。
  • 不要なポートやサービスを公開しないこと。
  • バックアップとログを適切に管理すること。

それぞれが異なるリスクへの対策になります。前回取り上げたログイン認証も含め、重要なのは一つの対策に依存しないことです。

また、サーバーを適切に管理していても、公開しているWebアプリケーションに脆弱性があれば、HTTPやHTTPSを通じて攻撃を受ける可能性があります。

そうした通信を利用した攻撃には、WAFなどの別の仕組みも考えられます。

サーバーへの接続を守ることと、公開しているWebサイトへの攻撃を防ぐことは別の問題です。Webサーバーのセキュリティとは、単に外部からのアクセスを制限することではありません。どの機能を公開し、誰に操作を許可し、サーバー内部の情報をどのように保護するのか。

それぞれの役割とリスクを理解し、継続して管理できる環境を作ることが重要だと考えます。

参考文献・関連資料
西部俊宏
執筆・編集:西部俊宏
株式会社Webの間代表取締役。上場企業でのSEOやWebサイト構築実績多数。ECサイトのカスタマイズ経験も多数あり。
会社概要はこちら