如何保护您的ISPConfig 3服务器免受POODLESSL攻击

如何保护您的ISPConfig 3服务器免受POODLESSL攻击 在下面的指南中,我将描述保护服务器免受攻击的步骤。

如何保护您的ISPConfig 3服务器免受流氓SSL攻击

在以下指南中,我将描述保护您的服务器免受最近的狗狗SSL攻击的步骤。 我将在Debian 7上使用一个ISPConfig 3完美的服务器作为示例,但同样的步骤也适用于任何其他Linux发行版。 默认的ISPConfig托管服务器运行以下服务: Webserver (Nginx或apache), Mailserver (Postfix和Dovecot / Courier),提供SSL / TLS连接的FTP-Server (pure-ftpd),并且是POODLE攻击的潜在目标。

我假设您以root用户身份登录到您的服务器。 如果您在Ubuntu上工作,并且没有以root用户身份登录,那么在所有命令中添加“sudo”,或者运行“sudo”来成为root用户。

Apache Webserver

为了保护apache网络服务器,该行

SSL协议全-SSLv2 -SSLv3

必须在服务器上的每个SSL vhost中添加。 如果未在vhost中显式设置SSLProtocol设置,则应用全局设置。 在ISPConfig 3服务器的情况下,由于vhost不覆盖该设置,所以可以全局设置SSLProtocol设置。 在Debian或Ubuntu Server上,在编辑器中打开文件/etc/apache2/mods-available/ssl.conf

nano /etc/apache2/mods-available/ssl.conf

向下滚动直到看到以下行:

# enable only secure protocols: SSLv3 and TLSv1, but not SSLv2
SSLProtocol all -SSLv2

并将其更改为:

# enable only secure protocols: but not SSLv2 and SSLv3
SSLProtocol all -SSLv2 -SSLv3

然后重新启动apache

service apache2 restart

Nginx Webserver

对于一个nginx网络服务器,该行

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

必须在每个SSL服务器{} serction中添加。 如果服务器{}部分中未明确设置SSLProtocol设置,则应用http {}部分的全局设置。 在ISPConfig 3服务器的情况下,SSLProtocol设置可以在http {}部分全局设置为服务器{}部分不覆盖该设置。 在Debian或Ubuntu Server上,在编辑器中打开文件/etc/nginx/nginx.conf

nano /etc/nginx/nginx.conf

并添加行:

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

行后:

http {

然后重启nginx:

service nginx restart

Postfix邮件服务器

要强制Postfix不提供SSLv2和SSLv3协议,请运行以下命令:

postconf -e 'smtpd_tls_mandatory_protocols=!SSLv2,!SSLv3'
postconf -e 'smtpd_tls_protocols=!SSLv2,!SSLv3'
postconf -e 'smtp_tls_protocols=!SSLv2,!SSLv3'

这将添加行:

smtpd_tls_mandatory_protocols = !SSLv2,!SSLv3
smtpd_tls_protocols = !SSLv2,!SSLv3
smtp_tls_protocols = !SSLv2,!SSLv3

在/etc/postfix/main.cf文件中。 然后运行此命令应用新配置:

service postfix restart

Dovecot IMAP / POP3服务器

Dovecot支持版本2.1和更新版本的SSL协议设置。 所以第一步是找出你使用哪个dovecot版本。 命令是:

dovecot --version

在我的服务器上,我得到以下结果:

root@server1:~# dovecot --version
2.1.7
root@server1:~#

这表示我的服务器支持ssl_protocol设置。

编辑dovecot配置文件

nano /etc/dovecot/dovecot.conf

并添加行

ssl_protocols = !SSLv2 !SSLv3

在ssl_key行之后,所以你的文件应该是这样的:


ssl_key = </etc/postfix/smtpd.key
ssl_protocols = !SSLv2 !SSLv3

最后重新启动dovecot来应用更改:

service dovecot restart

Courier POP3 / IMAP服务器

默认情况下,Expressimap和pop3服务器通过SSLv3协议提供连接,因此我们也必须重新配置它。 Express配置文件位于文件夹/ etc / courier /中。 首先我们从IMAP守护进程的配置文件开始:

nano /etc/courier/imapd-ssl

添加或替换以下行:

IMAPDSTARTTLS=YES
IMAP_TLS_REQUIRED=1
TLS_PROTOCOL=TLS1
TLS_STARTTLS_PROTOCOL=TLS1

然后编辑POP3守护进程的配置文件:

nano /etc/courier/pop3d-ssl

添加或替换以下行:

POP3STARTTLS=YES
POP3_TLS_REQUIRED=1
TLS_PROTOCOL=TLS1
TLS_STARTTLS_PROTOCOL=TLS1

最后重新启动Express守护程序:

service courier-imap-ssl restart
service courier-pop-ssl restart

FTP与纯ftpd

由于Debian的/ usr / sbin / pure-ftpd-wrapper脚本不支持pure-ftpd用于设置ssl协议的-J开关,因此在Debian和Ubuntu上保护纯ftpd有点复杂。 所以第一步是在包装器脚本中添加对-J选项的支持。 这在Debian 6中将不起作用,因为Debian 6中的纯ftpd版本太旧,并且没有SSL协议的设置。 所以Debian 6用户的唯一选择是升级到Debian 7.打开文件

nano /usr/sbin/pure-ftpd-wrapper

并向下滚动到行

'TLS' => ['-Y %d', \&parse_number_1],

然后再添加这条新行:

'TLSCipherSuite' => ['-J %s', \&parse_string],

最后,我们创建一个包含我们要允许的SSL协议的配置文件:

echo 'HIGH:MEDIUM:+TLSv1:!SSLv2:!SSLv3' > /etc/pure-ftpd/conf/TLSCipherSuite

要应用更改,请重新启动纯ftpd。 在我的服务器上,我使用纯ftpd与mysql,所以守护进程的名称是纯ftpd-mysql而不是纯ftpd。

service pure-ftpd-mysql restart

结果应该类似于:

root@server1:~# service pure-ftpd-mysql restart
Restarting ftp server: Running: /usr/sbin/pure-ftpd-mysql-virtualchroot -l mysql:/etc/pure-ftpd/db/mysql.conf -l pam -Y 1 -8 UTF-8 -H -J HIGH:MEDIUM:+TLSv1:!SSLv2:!SSLv3 -D -b -O clf:/var/log/pure-ftpd/transfer.log -E -u 1000 -A -B
root@server1:~#

因此-J选项已成功添加到守护程序的启动序列。