(Plesk for Linux)Plesk ファイアウォール
概要: Plesk ファイアウォールは、Plesk for Linux サーバとのネットワーク接続を制限することでサーバのセキュリティを強化するためのツールです。
このトピックでは、ファイアウォールルールとポリシーの追加・削除方法、特定の国からの接続をブロックする方法、ファイアウォールルールをエクスポート・インポートしてサーバ間でファイアウォール構成を簡単に複製する方法を学びます。
ご用心: Plesk ファイアウォールと firewalld は、いずれも iptables ファイアウォールを管理するためのツールです。両ツールを同時に使用すると競合が発生し、Plesk が動作するために必要なポートが閉じられてしまいます。一度にいずれか 1 つのツールだけ使用することをお勧めします。
前提条件
開始する前に、サーバに "Firewall" 拡張をインストールする必要があります。インストールされていない場合は拡張カタログから拡張をインストールする必要があります。
ファイアウォールルールとポリシーを管理する
デフォルトで、Plesk のファイアウォール構成は、ポリシーとルールから成ります。ポリシーは範囲がより広く、サーバが送受信するすべての接続に影響を与えます。たとえば、着信トラフィックに対するシステムポリシー([ツールと設定] > [ファイアウォール])を使用して、サーバが受信するすべての接続を完全にブロックすることができます。一方、ルールは範囲がより狭く、個別の Plesk サービスへの受信接続を制御します(SMTP や MySQL など)。
ルールがポリシーより優先されます。たとえば、グローバルポリシーはすべての受信トラフィックを拒否するように設定されており、ルールは特定の IP からの受信トラフィックを許可するように設定されている場合、ルールの方が優先されます。この仕組みを使用して、サーバのセキュリティを簡単に強化または緩和することができます。たとえば、一部の IP アドレスやポートを除き、すべての送受信接続をサーバで拒否するようにポリシーをセットアップすると、セキュリティが強化されます。ただし、ネットワークの制約によって一部のアプリケーションが機能しなくなる可能性があります。逆に、デフォルトですべての接続を許可してから、ルールを使用して特定のサービスへのアクセスや特定の IP アドレスからのアクセスをブロックすると、サーバのセキュリティが低下します。ただし、接続に関する問題は発生しなくなります。さまざまな設定を試し、利便性とセキュリティの最適なバランスを確認してください。
ファイアウォールは以下の 2 通りの方法で管理できます。
- デフォルトのポリシーおよびルールの設定を変更する
- カスタムルールを作成する
デフォルトのポリシーおよびルールの設定を変更するには、[ツールと設定] > [ファイアウォール]([セキュリティ]グループ内)に進み、[ファイアウォールルール管理を有効にする]をクリックします。ルール管理の有効化を確認し、変更が適用されるまで待ち、[Plesk ファイアウォールルールを変更]をクリックします。変更したいルールまたはポリシーをクリックします。ポリシーを設定すると、接続を許可/拒否することができ、ルールを設定すると、接続を許可/拒否することや、指定アドレスからの接続のみを許可して他のすべての接続を拒否することができます。必要な変更を加えてから、[変更内容を適用]をクリックして新しいルールセットを有効化するか、[変更の削除]をクリックして変更をロールバックします。
カスタムルールを追加するには、前述のようにファイアウォールルールの管理を有効化してから、[カスタムルールの追加]をクリックします。カスタムルールは標準のルールより柔軟であり、特定のポートまたは IP アドレスでの受信接続、送信接続、転送接続を許可または拒否するように構成することができます。1 つ以上のカスタムルールを追加してから、[変更内容を適用]をクリックしてルールセットにルールを追加するか、[変更の削除]をクリックしてルールセットから削除します。将来的にカスタムルールを 1 つ以上削除する場合は、該当するチェックボックスをオンにして、[削除]をクリックして削除を確認し、[変更内容を適用]をクリックして選択したルールをルールセットから削除します。
カスタムルールの作成時に、誤って Plesk サービスが使用するポート への接続をブロックしないように注意してください。
注釈: Docker コンテナ を使用している場合、Plesk ファイアウォールルールに Docker ファイアウォールルールが追加されません。
国別ブロック
Plesk ファイアウォールを使用して、特定の国に属する IP アドレスとのアクセスをブロックできます。
特定の国からのアクセスをブロックする
- Plesk にログインします。
- [ツールと設定] > [ファイアウォール]([セキュリティ]の下)に移動します。
- [ファイアウォール保護]のトグルボタンをクリックして、[有効]を表示させます。ファイアウォール保護を既に有効にしている場合、この手順はスキップしてください。
-
ボタンをクリックします。
- (オプション)ルールに名前を付けます。
- 「アクション」を「拒否」に設定します。
- [ソース]の下に、ブロックする国の 2 桁の ISO 3166 国コードを入力します(たとえば、アフガニスタンからの接続をすべてブロックする場合は AF と入力します)。
- (オプション)[もう 1 つ追加]をクリックして前の工程を繰り返すと、追加の国をブロックできます。国は必要な数だけブロックできます。
- ブロックする国をすべて追加したら、[保存]をクリックします。
- [変更を適用]をクリックして、[適用]をクリックします。
ファイアウォールの構成が適用された後は、ブロック対象の国からサーバへの接続がすべて拒否されるようになります。
デフォルトで、Plesk は DB-IP の無料データベース「IP to Country Lite」を使用します。代わりに MaxMind の無料または有料のデータベースを使用することもできます。その場合、事前に MaxMind から無料または有料ライセンスを取得してライセンスキーを受け取っておく必要があります。
有料の GeoIP2 データベースに切り替える
-
panel.ini ファイルに以下の行を追加します。
[ext-firewall] geoipDataSource = maxmind-lite
無料の GeoLite2 データベースを使用する場合
[ext-firewall] geoipDataSource = maxmind
有料の GeoIP2 データベースを使用する場合
-
サーバに SSH ログインして、以下のコマンドを実行します。
LICENSE_KEY=<enter your license key here> plesk sbin modules/firewall/ipsets --configure --data-source maxmind-lite --force
または
LICENSE_KEY=<enter your license key here> plesk sbin modules/firewall/ipsets --configure --data-source maxmind --force
順に、MaxMind の無料または有料のデータベースを使用する場合
注釈: コマンドが
Set cannot be destroyed
という警告で終了する場合がありますが、この警告は無視しても問題ありません。 -
[ツールと設定] > [ファイアウォール]([セキュリティ]の下)に移動します。
-
[変更を適用]をクリックして、[適用]をクリックします。
注釈: [変更を適用]ボタンがない場合、変更の適用を軌道するための新しいファイアウォールルールを作成します。このルールは後で削除できます。
ファイアウォールの構成が適用されたら、GeoIP2 データベースが GeoLite2 の代わりに使用されるようになります。
DB-IP の無料データベースに戻すには、panel.ini
ファイルから geoipDataSource = maxmind-lite
または geoipDataSource = maxmind
の行を削除してから、ファイアウォールの構成をもう一度適用します。
ファイアウォール構成をインポートまたはエクスポートする
Plesk for Linux サーバのファイアウォール構成を別の Plesk for Linux サーバで複製することができます。最も簡単なのは、ファイアウォール構成をファイルにエクスポートして、それぞれの Plesk for Linux サーバにインポートする方法です。ファイアウォール構成のインポートとエクスポートは、グラフィカルインターフェース経由でもコマンドライン経由でも可能です。
GUI 経由でファイアウォール構成をエクスポートする
- ファイアウォール構成をコピーしたいサーバで Plesk にログインします。
- [ツールと設定] > [ファイアウォール]([セキュリティ]の下)に移動します。
- [エクスポート]をクリックします。
ファイアウォール構成が .json
ファイルに保存されます。このファイルはブラウザのダウンロードディレクトリで見つけることができます。
GUI 経由でファイアウォール構成をインポートする
- 別のサーバからファイアウォール構成をコピーしたいサーバで Plesk にログインします。
- [ツールと設定] > [ファイアウォール]([セキュリティ]の下)に移動します。
- [ファイアウォール保護]のトグルボタンをクリックして[有効]を表示させてから、[適用]をクリックします。ファイアウォール保護を既に有効にしている場合、この手順はスキップしてください。
-
[インポート]をクリックして、ファイアウォール構成のコピー元サーバからエクスポートされた
.json
ファイルを探します。
このファイルからファイアウォール構成が適用されます。
CLI 経由でファイアウォール構成をエクスポートする
-
ファイアウォール構成をコピーしたいサーバに SSH 経由でログインします。
-
以下のコマンドを実行してファイアウォール構成をエクスポートします。
plesk ext firewall --export > rules.json
ファイルの名前は自由に付けられます。「rules.json」は一例です。
指定したファイルにファイアウォール構成が保存されます。
CLI 経由でファイアウォール構成をインポートする
-
他のサーバからファイアウォール構成をコピーしたいサーバに SSH 経由でログインします。ファイアウォール構成をインポートするためには、2 つの別々の SSH セッションを開く必要があります。
-
最初の SSH セッションでは、以下のコマンドを実行してファイアウォールによる保護を有効にします。既に有効になっている場合、この手順はスキップしてください。
plesk ext firewall --enable
-
2 番目の SSH セッションでは、以下のコマンドを実行してファイアウォールによる保護を確認します。既に有効になっている場合、この手順はスキップしてください。
plesk ext firewall --confirm
-
最初の SSH セッションで、以下のコマンドを実行してファイアウォール構成をインポートし、適用します。
plesk ext firewall --import -config <the file's URL or local path> && plesk ext firewall --apply
例:
plesk ext firewall --import -config https://example.com/rules.json && plesk ext firewall --apply
または
plesk ext firewall --import -config /tmp/rules.json && plesk ext firewall --apply
-
2 番目の SSH セッションで、以下のコマンドを実行してインポート済みのファイアウォール構成を確認します。
plesk ext firewall --confirm
このファイルのファイアウォール構成がサーバに適用されます。