Linux で Plesk の PCI DSS 準拠を設定する
このセクションでは、御社の Linux サーバを保護し、Linux サーバで PCI DSS の準拠を達成したい場合にとるべき手順について説明します。
ソフトウェアの最新バージョンをインストールする
始める前に、可能であればサーバ上のすべてのソフトウェアを最新バージョンに更新することをお勧めします。
脆弱な SSL/TLS 暗号とプロトコルを無効にする
次に、Plesk インストールディレクトリにある PCI Compliance Resolver ユーティリティを実行する必要があります。これにより、Plesk で運用しているウェブサーバとメールサーバに対して脆弱な SSL/TLS 暗号とプロトコルが無効になり、他のセキュリティ関連の変更も行われます。
ユーティリティを実行するには:
サーバシェルにログインします。
以下のコマンドを実行します。
plesk sbin pci_compliance_resolver {--enable|--disable} [<service>]
<service>
引数には以下の値を使用できます。
-
panel
- sw-cp-server(Plesk 用 nginx)にセキュリティ関連の変更を適用 -
apache
- Apache サーバにセキュリティ関連の変更を適用 -
courier
- Courier IMAP にセキュリティ関連の変更を適用 -
dovecot
- Dovecot にセキュリティ関連の変更を適用 -
qmail
- qmail にセキュリティ関連の変更を適用 -
postfix
- Postfix MTA にセキュリティ関連の変更を適用 -
proftpd
- ProFTPd にセキュリティ関連の変更を適用 -
all
- インストールされた上記すべてのサービスにセキュリティ関連の変更を適用。これがデフォルト値です。
--enable
オプションを指定してユーティリティを実行すると、指定したサービスに以下のセキュリティ関連の変更が適用されます。
- 暗号に以下のリストを設定する:
"EECDH+AESGCM+AES128:EECDH+AESGCM+AES256:EDH+AESGCM+AES128:EDH+AESGCM+AES256:EECDH+SHA256+AES128:EECDH+SHA384+AES256:EDH+SHA256+AES128:EDH+SHA256+AES256:EECDH+SHA1+AES128:EECDH+SHA1+AES256:EDH+SHA1+AES128:EDH+SHA1+AES256:EECDH+HIGH:EDH+HIGH:AESGCM+AES128:AESGCM+AES256:SHA256+AES128:SHA256+AES256:SHA1+AES128:SHA1+AES256:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!KRB5:!aECDH:!EDH+3DES"
- OS の最新バージョンに、プロトコル
"TLSv1.1 TLSv1.2"
を設定する。以前のバージョン(CentOS 5、Red Hat Enterprise Linux 5、CloudLinux 5 を含む)に、プロトコル"TLSv1 TLSv1.1 TLSv1.2"
を設定する(実際にこれらの OS で機能するのはTLSv1
のみです) - DH パラメータのサイズを 2048 に設定する
- SSL/TLS 圧縮を無効にする
- Dovecot に対し、
disable_plaintext_auth = yes
を設定する - Courier に対し、非暗号化接続で平文認証を禁止する
--disable
オプションを指定してユーティリティを実行すると、--enable
オプションでユーティリティを実行したときに適用された変更が部分的に元に戻ります。DH パラメータサイズと SSL/TLS 圧縮の設定は変更されずに維持されますが、暗号とプロトコルのリストはデフォルトセットに戻されます(デフォルトには TLSv1 TLSv1.1 TLSv1.2
プロトコルと HIGH:!aNULL:!MD5
暗号が含まれます)。
すべてのサービスに対してプロトコルや暗号を変更する必要がある場合、server_pref
ユーティリティを呼び出すことができます(このユーティリティの使い方の詳細はここで確認できます)。
特定のサービスに特定のパラメータを設定する必要がある場合、sslmng ユーティリティを手動で呼び出します。
plesk sbin sslmng --ciphers="EECDH+AESGCM+AES128:EECDH+AESGCM+AES256:EDH+AESGCM+AES128:EDH+AESGCM+AES256:EECDH+SHA256+AES128:EECDH+SHA384+AES256:EDH+SHA256+AES128:EDH+SHA256+AES256:EECDH+SHA1+AES128:EECDH+SHA1+AES256:EDH+SHA1+AES128:EDH+SHA1+AES256:EECDH+HIGH:EDH+HIGH:AESGCM+AES128:AESGCM+AES256:SHA256+AES128:SHA256+AES256:SHA1+AES128:SHA1+AES256:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!KRB5:!aECDH:!EDH+3DES" --protocols="TLSv1.1 TLSv1.2" --strong-dh --disable-tls-compression
必要に応じて、上記のコマンドにオプション "--service <some_service>"
を追加し、特定のサービスの SSL/TLS 設定を変更します。
注釈: sslmng ユーティリティで加えた変更は、その後 server_pref
ユーティリティを呼び出すか、Plesk アップデートによって上書きできます。
制約事項
以下の制約があります。
- qmail メールエージェント用のプロトコルは構成できません。したがって、qmail は PCI DSS を満たすにはセキュリティが十分ではありません。代わりに Postfix を使用することをお勧めします。
- qmail 用の暗号は Plesk ユーティリティ経由で変更できません(ただし、構成ファイルを使用すれば変更できます)。
- CentOS 5、Red Hat Enterprise Linux 5、CloudLinux 5 では TLSv1.1 と TLSv1.2 はサポートされません。
- DH パラメータのサイズは OS ベンダーからの Apache では管理できません(CentOS 5、Red Hat Enterprise Linux 5、CloudLinux 5)。
- Debian 7 では ProFTPd、Dovecot、Postfix に対し SSL/TLS 圧縮が無効になりません。
MySQL データベースサーバへの外部アクセスを禁止する
外部アドレスから MySQL データベースサーバへのアクセスも禁止する必要があります。これには、以下のコマンドを実行します。
plesk sbin mysqlmng --bind-address local
ファイルに関する情報を保護する
Apache ウェブサーバがファイルとそのプロパティに関する情報を公開することによるセキュリティリスクを緩和するには、ウェブサーバの構成ファイルに FileETag ディレクティブを追加します。
これには、以下を実行します。
- ウェブサーバの構成ファイルを編集用に開きます。
- Debian と Ubuntu では、
/etc/apache2/plesk.conf.d/roundcube.htaccess.inc
にあります。 - 他の Linux ディストリビューションでは、
/etc/httpd/conf/httpd.conf
にあります。
- Debian と Ubuntu では、
-
FileETag MTime Size
という行を追加し、ファイルを保存します。 - ウェブサーバを再起動します。
Debian パッケージシステムでは、/etc/init.d/apache2 restart
コマンドを実行します。
RPM パッケージシステムでは、/etc/init.d/httpd restart
コマンドを実行します。
FTP アクセスを保護する
ProFTPd が FTP 接続中にバージョンに関する情報を公開することを防止するには:
- ProFTPd 構成ファイル
/etc/proftpd.conf
を編集用に開きます。 - ファイルに
ServerIdent off
行を挿入します。 - ファイルを保存します。
サーバへの FTP 接続を許可する場合、セキュアな FTPS 接続を除くすべての FTP 接続を禁止する必要があります。
サーバへの FTPS 接続のみを許可するには:
-
[ツールと設定]>[セキュリティポリシー]の順に選択します。
-
[FTPS 使用ポリシー]に対して[セキュア FTPS 接続のみを許可する]オプションをオンにします。