Secure File Transfer Protocol(SFTP)Secure Shell(SSH)は、WordPressサイトをリモートで管理するために欠かせないツールです。サイトをホスティングするサーバーの近くにいなくても、任意の場所から管理タスクの実行、ファイルの転送、サイトの更新などを行うことができます。

しかしこの利便性には、サイバー攻撃などの潜在的なリスクも伴います。たとえば脆弱なパスワードを使用したり、ツールへのアクセスを適切に規制していなかったりすると、悪意のあるユーザーに対してサイトを無防備な状態にしてしまう可能性があります。

したがって、高度なSFTPとSSHのセキュリティ機能を実装することが重要です。Kinstaでは、WordPressサイトのセキュリティ強化に役立つ以下のような機能を提供しています。

  1. 環境ごとの専用データベースとSFTP/SSHアクセス
  2. IPアドレスによるログイン制限
  3. 高度なSFTP/SSHパスワード制御
  4. SFTP接続のショートカット
  5. SFTP/SSHの無効化
  6. SSH鍵認証のみでのアクセス

サイトの管理と保護に役立つ実用的な例を挙げながら、各機能をご紹介していきます。

1. 環境ごとの専用データベースとSFTP/SSHアクセス

Kinstaでは、潜在的なセキュリティ侵害を回避するための方法を常に模索しています。このベストプラクティスの一つは、複数のサービスやサイト環境で同一のログイン認証情報を使用しないことが挙げられます。

現在、Kinstaでホスティングされている各サイト環境には、それぞれ固有のデータベースとSFTP/SSHアクセス認証情報が確保され、ステージング環境と本番環境間でも異なります。

また、1つの環境でパスワードを変更しても、他の環境に影響することはありません。この分離により、アクセス制御の変更が特定の環境内に限定され、全体のセキュリティレベルが向上します。

サイトのファイルやデータベースへのアクセスを制限するのにも有用です。たとえば開発者がサイト上で作業する際には、ステージング環境(そして進捗を他のユーザーが確認)へのアクセスのみを付与することができます。また作業が承認されると、開発者は本番環境(直接サイトのファイルやデータベースにはアクセスできない状態)に変更を反映可能です。

2. IPアドレスによるログイン制限

IPアドレスによるログイン制限は、最近導入されたセキュリティ機能です。SFTP/SSHおよびデータベース(phpMyAdmin)経由でのサイトへのアクセスを許可するIP許可リストを作成することができます。

更新やメンテナンスのためにサイトのSFTPアクセスが必要な開発チームの力を借りてWordPressサイトを運営している場合、サイトセキュリティを考慮して、開発者または承認されたIPアドレスのみをIP許可リストに追加します。

開発者が場所を変更したり、新しいIPアドレスに対して一時的にアクセスを許可したりする必要がある場合も、許可リストの変更で実現可能です。これにより、信頼できるソースのみにアクセスを限定し、不正アクセスの試行からサイトを保護することができます。

IP許可リストは、MyKinstaの「WordPressサイト」>(サイト名)>「情報」画面で管理可能です。

SFTP/SSH」および「データベースへのアクセス」セクションで「IP許可リスト」の右側にある編集(鉛筆)アイコンをクリックすると、SFTP/SSHまたはphpMyAdminへのアクセスを許可するIPアドレスを追加または削除することができます。

編集アイコンをクリックしてSFTP/SSHとデータベースのIP許可リストを管理
編集アイコンをクリックしてSFTP/SSHとデータベースのIP許可リストを管理

編集アイコンをクリックすると、「IP許可リストの更新」ダイアログが出現します。

MyKinstaの許可リストにIPアドレスを追加
MyKinstaの許可リストにIPアドレスを追加

IPアドレスを追加」フィールドに有効なアドレスを入力して「追加」をクリックすると、IPアドレスが許可リストに追加されます。カンマ(,)で区切って複数のIPアドレスを一度に追加することも可能です。

SFTP/SSHまたはデータベースへの許可リストを作成すると、登録されているIPアドレスの数が表示されます。

IP許可リストに登録されているIPアドレスの数が表示される
IP許可リストに登録されているIPアドレスの数が表示される

また、個々のIPアドレスの横にある削除(ゴミ箱)アイコンをクリックするか、チェックボックスで複数のIPアドレスを選択し、「(IP数)件のIPアドレスの削除」をクリックして、IPアドレスを削除することができます。

IP許可リストからIPアドレスを削除
IP許可リストからIPアドレスを削除

この機能を活用することで、許可リストに登録されていない不正なログインを阻止することができます。

3. 高度なSFTP/SSHパスワード制御

環境ごとにアクセス管理を行ったり、IPアドレスでログインを制限したりすることはセキュリティ強化策となりますが、さらに高度な機能が必要になることも。例えば、開発者やサードパーティのサービスに一時的にアクセスを提供しなければならない状況では、タスクの完了後、IP許可リストからの削除を怠ってしまう可能性があります。このような場合に役立つのが、パスワード有効期限の設定です。

デフォルトでは、SFTP/SSHアクセス用にMyKinstaで作成されたパスワードに有効期限はありません。最近のセキュリティ機能の強化により、「パスワードの有効期限」エリアで有効期限を設定できるようになりました。編集(鉛筆)アイコンをクリックすると、以下のようなダイアログが出現します。

SFTP/SSHパスワードの有効期限の選択
SFTP/SSHパスワードの有効期限の選択

設定した期間を過ぎると新たなパスワードが生成され、生成されたパスワードは「SFTP/SSH」セクションで表示またはコピーすることができます。

また、より複雑なパスワードが使用できるようになり、デフォルトまたは生成されるパスワードも推測の難しい複雑なものになります。複雑なパスワードには通常、大文字と小文字、数字、特殊文字が含まれ、ブルートフォース攻撃に対して格段に強くなります。

4. SFTP接続のショートカット

ステージング環境や本番環境など、MyKinstaで複数のWordPress環境を管理している場合、各環境へのアクセスに一意のSFTP認証情報が必要になります。これはつまり、接続するたびにSFTPクライアントに認証情報を手入力し、確認しなければならないことを意味します。

最近導入されたSFTP接続ショートカットを使用すれば、各環境の設定ファイルをダウンロードして、SFTPクライアントにインポートすることができます。これにより、正しい設定が確保され、安全な接続を確立するために必要な時間と労力が大幅に削減できます。

MyKinstaの「WordPressサイト」>(サイト名)>「情報」画面にある「FTPクライアント設定ファイル」エリアのダウンロード(下矢印)アイコンをクリックすると、ZIPファイルで設定ファイルをダウンロードできます。ZIPファイルの中には、以下のようなファイルが格納されています。

クライアント設定ZIPファイルの中身
クライアント設定ZIPファイルの中身

各ファイルはそれぞれ以下のクライアントソフトに対応しています。

5. SFTP/SSHの無効化

WordPressサイトで大きな更新を行う際は、SFTP/SSHを使用して変更を適用するのが一般的です。更新を終えたら、次に必要になる時までSFTP/SSHアクセスを無効にすることができます。これにより、何者かが盗用した認証情報で接続を試みても、アクセスすることができなくなります。

このSFTP/SSHの無効化は、多くのお客様のご要望を受けて導入されました。

SFTP/SSHが有効になっている場合、サイトの「情報」画面の「SFTP/SSH」セクションに「無効にする」ボタンが表示されます。クリックすると、以下のプロンプトが表示されます。

WordPress環境へのSFTP/SSHアクセスを無効化
WordPress環境へのSFTP/SSHアクセスを無効化

サイト環境でSFTP/SSHを無効にすると、「SFTP/SSH」セクションの情報が非表示になります。「利用する」をクリックすると、再び有効化することができます。

「利用する」をクリックして無効にしたSFTP/SSHを有効化
「利用する」をクリックして無効にしたSFTP/SSHを有効化

SFTP/SSHアクセスの無効化は、メンテナンスや更新時にしか使用しない場合に特に有用です。

6. SSH鍵認証のみでのアクセス

デフォルトでは、パスワードとSSH鍵の両方でSFTP/SSHアクセスを行うことができますが、パスワード認証のセキュリティ上の懸念から、SSH鍵認証が好まれることがあります。

これを受け、パスワード認証を無効にし、SSH鍵認証のみを許可することができるようになりました。

SSH鍵はユーザー認証に使用される暗号鍵のペアであり、推測が事実上不可能なため、パスワードよりも安全な認証方式です。

また、SSH鍵にパスフレーズを設定することで、さらにセキュリティ層を追加することもできます。これにより万が一部外者が秘密鍵にアクセスしたとしても、使用するにはパスフレーズが必要になるため、悪用が困難になります。

認証方式」エリアの横にある編集(鉛筆)アイコンをクリックすると、パスワード認証を無効化(または有効化)することができます。

SFTP/SSHのパスワード認証を無効または有効化
SFTP/SSHのパスワード認証を無効または有効化

SFTP/SSHを有効化している間は、SSH鍵認証は常に有効になります。「パスワード」を選択または選択解除したら、「変更を保存」をクリックして確定してください。

Kinstaのセキュリティ強化への取り組みにおける最終目標

Kinstaは、セキュリティに真剣に取り組み、お客様のWordPressサイトに包括的で堅牢なセキュリティフレームワークを提供することに尽力しています。

今回ご紹介したKinstaの高度なSSH/SFTP機能の実装には、以下のような利点があります。

  1. 脆弱性の低減:リモートアクセス、パスワード管理、不正ログインの試みに関連する特定の脆弱性に対処し、保護を強化することで、悪意のあるユーザーが攻撃できる可能性を大幅に削減。
  2. 保護の強化:各機能を併用することで、何重もの防御層を形成。複雑なパスワードやパスワード有効期限の設定から、IPアドレスによるログイン制限や鍵ベースのSSH認証の実装まで、不正アクセスに対する保護を徹底。
  3. 管理の改善:セキュリティを強化するだけでなく、SFTP接続のショートカットやMyKinstaを通じた認証方法の管理など、利便性を損なわずに堅牢なセキュリティプラクティスの実装と維持が可能。
  4. 柔軟性の確保:SFTP/SSHアクセスを無効にしたり、ステージング環境と本番環境で別々の認証情報を設定したりことで、高いセキュリティ基準を維持しながら、さまざまな運用ニーズに対応する柔軟性を確保。
  5. 信頼の構築:WordPressサイトが高度なセキュリティ強化策によって保護されていることを知ることで、潜在的なセキュリティ脅威を懸念することなく、サイトの構築と保守管理に集中することができる。

まとめ

Kinstaのホスティングでは、高度なセキュリティ機能によってWordPressサイトが高度に保護されるため、安心してサイトの構築と保守管理に専念することができます。

最近導入されたこれらのセキュリティ機能に加えて、Google CloudCloudflare統合によるファイアウォール、DDoS対策、無料のワイルドカード対応SSL証明書もご用意しています。

またKinstaは、独立した第三者機関による監査を経て、SOC2報告書も受領しています。Kinstaのセキュリティおよび信頼性に関する詳細はこちらをご覧ください。

要件に応じたホスティングプランを見つけて、安全なホスティング環境を確保しましょう。

Joel Olawanle Kinsta

Kinstaでテクニカルエディターとして働くフロントエンド開発者。オープンソースをこよなく愛する講師でもあり、JavaScriptとそのフレームワークを中心に200件以上の技術記事を執筆している。