在 Linux 上調整 Plesk 符合 PCI DSS

本小節闡述如何保護您 Linux 伺服器的安全以及在 Linux 伺服器上實現 PCI DSS 合規性。

安裝軟體的最新版本

在您開始之前,需要時建議將您伺服器上所有的軟體更新到最新版本。

禁用較弱的 SSL/TLS 密碼和協定

接下來,需要運行從 Plesk 安裝目錄獲取的 PCI Compliance Resolver 工具。這將會禁用由 Plesk 管理的 web 和郵件伺服器上較弱的 SSL/TLS 密碼和協定,同時還會進行其它安裝更改。

如下運行該工具:

登入伺服器 shell。

運行以下命令:

plesk sbin pci_compliance_resolver {--enable|--disable} [<service>]

下面的值可用於 <service> 參數:

  • panel - 為 sw-cp-server (nginx for Plesk) 應用安全更改。
  • 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”.
  • 在最新的作業系統版本上,設定下面的協議: "TLSv1.1 TLSv1.2"。在較早的版本上(包括 CentOS 5, 、Red Hat Enterprise Linux 5、CloudLinux 5),設定下面的協議:"TLSv1 TLSv1.1 TLSv1.2" (事實上只有 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 更新實現的更改所覆蓋。

局限性

存在下面的局限性:

  1. 無法配置 qmail 郵件代理的協定;因此 qmail 不滿足 PCI DSS 安全標準。建議使用 Postfix。
  2. 無法通過 Plesk 工具更改 qmail 的密碼(儘管可以通過設定檔進行更改)。
  3. CentOS 5、Red Hat Enterprise Linux 5 和 CloudLinux 5 上不支援使用 TLSv1.1 和 TLSv1.2。
  4. 無法從作業系統供應商處 (CentOS 5、Red Hat Enterprise Linux 5、CloudLinux 5) 為 Apache 配置 DH 參數的大小。
  5. 沒有在 Debian 7 上為 ProFTPd、Dovecot 和 Postfix 禁用 SSL/TLS 壓縮。
禁止從外部存取 MySQL 資料庫伺服器

您還需要禁止從外部位址存取 MySQL 資料庫伺服器。要執行該操作,請使用以下命令:

plesk sbin mysqlmng --bind-address local
保護有關檔的資訊

為了減少因披露有關 Apache Web 伺服器的檔和其屬性資訊而引起的安全風險,需將 FileETag 指令添加到 Web 伺服器設定檔中。

若要進行此操作,請執行下列步驟:

  1. 打開用於編輯的 Web 伺服器設定檔:
    • 在 Debian 和 Ubuntu 上,該文件位於  /etc/apache2/plesk.conf.d/roundcube.htaccess.inc
    • 在其它 Linux 版本上,該文件位於  /etc/httpd/conf/httpd.conf
  2. 添加  FileETag MTime Size 一行並保存檔。
  3. 重啟 Web 伺服器。

在基於 Debian 包的系統上,請使用命令  /etc/init.d/apache2 restart

在基於 RPM 包的系統上,請使用命令  /etc/init.d/httpd restart

安全的 FTP 存取

若要阻止 ProFTPd 在 FTP 連接時顯示有關其版本的資訊,請如下操作:

  1. 打開用於編輯的 ProFTPd 設定檔  /etc/proftpd.conf
  2. 將以下行插入文件: ServerIdent off
  3. 保存檔。

如果您允許通過 FTP 連接您的伺服器,則必須要禁止除安全 FTPS 連接之外的所有 FTP 連接。

若只允許通過 FTPS 連接您的伺服器,請如下操作:

  1. 進入  工具與設定 > 安全性原則
  2. 勾選  僅允許安全 FTPS 連接 ( FTP 使用策略)

    Security_Policy_FTPS