在 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 更新实现的更改所覆盖。
局限性
存在下面的局限性:
- 无法配置 qmail 邮件代理的协议;因此 qmail 不满足 PCI DSS 安全标准。建议使用 Postfix。
- 无法通过 Plesk 工具更改 qmail 的密码(尽管可以通过配置文件进行更改)。
- CentOS 5、Red Hat Enterprise Linux 5 和 CloudLinux 5 上不支持使用 TLSv1.1 和 TLSv1.2。
- 无法从操作系统供应商处 (CentOS 5、Red Hat Enterprise Linux 5、CloudLinux 5) 为 Apache 配置 DH 参数的大小。
- 没有在 Debian 7 上为 ProFTPd、Dovecot 和 Postfix 禁用 SSL/TLS 压缩。
禁止从外部访问 MySQL 数据库服务器
您还需要禁止从外部地址访问 MySQL 数据库服务器。要执行该操作,请使用以下命令:
plesk sbin mysqlmng --bind-address local
保护有关文件的信息
为了减少因披露有关 Apache Web 服务器的文件和其属性信息而引起的安全风险,需将 FileETag 指令添加到 Web 服务器配置文件中。
若要进行此操作,请执行下列步骤:
- 打开用于编辑的 Web 服务器配置文件:
- 在 Debian 和 Ubuntu 上,该文件位于
/etc/apache2/plesk.conf.d/roundcube.htaccess.inc
。 - 在其它 Linux 版本上,该文件位于
/etc/httpd/conf/httpd.conf
。
- 在 Debian 和 Ubuntu 上,该文件位于
- 添加
FileETag MTime Size
一行并保存文件。 - 重启 Web 服务器。
在基于 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 连接 ( FTP 使用策略) 。