如何在 pure-ftpd 中禁用 SSLv2 和 SSLv3

如何在 pure-ftpd 中禁用 SSLv2 和 SSLv3

我像这样运行 pure-ftpd:

/usr/sbin/pure-ftpd -A -c10 -B -C3 -z -D -e -fftp -H -I15 -lpam -L2000:8 -m4 -p30000:30100 -s -u40 -x -r -i -k99 -G -Z -Y1 -J'HIGH:MEDIUM:+TLSv1:!SSLv2:!SSLv3'

但在 syslog-ng 监控中我收到错误:

pure-ftpd: (?@?) [ERROR] SSL/TLS: Invalid TLSCipherSuite specified 'HIGH:MEDIUM:+TLSv1:!SSLv2:!SSLv3'

我尝试了几种变化但没有任何运气。唯一没有问题的一个是这个(在配置文件中):

TLSCipherSuite          HIGH:MEDIUM:+TLSv1:!SSLv2:+SSLv3

然后运行:

/usr/sbin/pure-config.pl /etc/pure-ftpd/pure-ftpd.conf

运行: /usr/sbin/pure-ftpd -A -c10 -B -C3 -d -z -D -e -fftp -H -I15 -lpam -L2000:8 -m4 -p30000:30100 -s -u40 -x -r -i -k99 -G -Z -Y1 -JHIGH:MEDIUM:+TLSv1:!SSLv2:+SSLv3

但对于这一点,仅 SSLv2 被禁用。

我在以下位置找到了这个命令:http://download.pureftpd.org/pub/pure-ftpd/doc/README 有句话说:

'-J ':设置 SSL/TLS 连接接受的密码列表。

例如:-J 高:中:+TLSv1:!SSLv2:+SSLv3

在列表中添加前缀 -S: 完全禁用 SSLv3。

我认为这-S可能会解决我的问题,但我不知道如何使用它。

答案1

为了能够禁用 SSLv* 并使用 TLS,我对版本 1.0.33 和 1.0.38 执行了以下操作:

将其放入/usr/sbin/pure-ftpd-wrapper.patch(或将-J全局开关替换为-S):

--- pure-ftpd-wrapper   2012-10-29 10:45:31.000000000 +0000
+++ pure-ftpd-wrapper.modified  2015-11-12 15:23:31.104156082 +0000
@@ -87,6 +87,7 @@
            'Quota' => ['-n %d:%d', \&parse_number_2],
            'SyslogFacility' => ['-f %s', \&parse_word, 99],
            'TLS' => ['-Y %d', \&parse_number_1],
+           'TLSCipherSuite' => [ '--tlsciphersuite=-S%s', \&parse_string],
            'TrustedGID' => ['-a %d', \&parse_number_1],
            'TrustedIP' => ['-V %s', \&parse_ip],
            'Umask' => ['-U %s:%s', \&parse_umask],

然后 :

cd /usr/sbin
patch < pure-ftpd-wrapper.patch && rm -f pure-ftpd-wrapper.patch

和 :

cat<<EOF>/etc/pure-ftpd/conf/TLSCipherSuite
:ALL:!aNULL:!eNULL:!LOW:!EXP:!RC4:!3DES:!SEED-SHA:!DHE-RSA-SEED-SHA:+HIGH+MEDIUM
EOF

或者你自己的经典配置。

然后,运行 ssl 测试测试SSL:

./testssl --starttls ftp YOUR-FTPS-DOMAIN:21

你尤其期望这样的:

 SSLv2      not offered (OK)
 SSLv3      not offered (OK)
 TLS 1      offered
 TLS 1.1    offered
 TLS 1.2    offered (OK)

要了解为什么-S(禁用 ssl,未记录)而不是-J,您必须阅读这个变更日志。:

  • 如果密码列表以 -S: 为前缀,则将 SSL_OP_NO_SSLv3 添加到 SSL 选项,这是 Brad 需要的。

答案2

您应该尝试以下格式:

-S:HIGH:MEDIUM:+TLSv1

相关内容