在Debian Etch上设置ProFTPd + TLS

在Debian Etch上设置ProFTPd + TLS FTP是一个非常不安全的协议,因为所有密码和所有数据 以明文传送。使用...

在Debian Etch上设置ProFTPd + TLS

版本1.0
作者:Falko Timme

FTP是非常不安全的协议,因为所有密码和所有数据都以明文形式传输。 通过使用TLS,可以对整个通信进行加密,从而使FTP更加安全。 本文介绍如何在Debian Etch服务器上使用TLS设置ProFTPd。

我不会保证这将为您工作!

1初步说明

在本教程中,我使用IP地址为192.168.0.100的hostname server1.example.com 。 这些设置可能会有所不同,因此您必须在适当的情况下更换它们。

2安装ProFTPd和OpenSSL

TLS需要OpenSSL; 安装ProFTPd和OpenSSL,我们只需运行:

apt-get install proftpd openssl

你会被问到一个问题:

从inetd或独立运行proftpd? < - 独立

然后打开/etc/proftpd/proftpd.conf并将UseIPv6on更改为off ; 否则当您启动ProFTPd时,您会收到以下警告:

Starting ftp server: proftpd - IPv6 getaddrinfo 'server1.example.com' error: Name or service not known

vi /etc/proftpd/proftpd.conf

[...]
UseIPv6                         off
[...]

出于安全考虑,您还可以将以下行添加到/etc/proftpd/proftpd.conf (感谢Reinaldo Carvalho;更多信息,请参见: http : //proftpd.org/localsite/Userguide/linked/userguide.html ) :

vi /etc/proftpd/proftpd.conf

[...]
DefaultRoot ~
IdentLookups off
ServerIdent on "FTP Server ready."
[...]

3为TLS创建SSL证书

为了使用TLS,我们必须创建SSL证书。 我在/ etc / proftpd / ssl中创建它,因此我先创建该目录:

mkdir /etc/proftpd/ssl

之后,我们可以生成SSL证书,如下所示:

openssl req -new -x509 -days 365 -nodes -out /etc/proftpd/ssl/proftpd.cert.pem -keyout /etc/proftpd/ssl/proftpd.key.pem

国家名称(2个字母代码)[AU]: < - 输入您的国家名称(例如,“DE”)。
州或省名称(全名)[某些州]: < - 输入您的州或省名称。
地点名称(例如,城市)[]: < - 输入您的城市。
组织名称(例如,公司)[互联网Widgits有限公司]: < - 输入您的组织名称(例如,您公司的名称)。
组织单位名称(如部分)[]: < - 输入您的组织单位名称(例如“IT部门”)。
通用名称(例如,您的姓名)[]: < - 输入系统的完全限定域名(例如“server1.example.com”)。
电子邮件地址[]: < - 输入您的电子邮件地址。

4在ProFTPd中启用TLS

为了在ProFTPd中启用TLS,请打开/etc/proftpd/proftpd.conf ,并找到以<IfModule mod_tls.c>开头的部分:

vi /etc/proftpd/proftpd.conf

它应该是这样的:

[...]
<IfModule mod_tls.c>
TLSEngine                  off
</IfModule>
[...]

修改如下:

[...]
<IfModule mod_tls.c>
TLSEngine                  on
TLSLog                     /var/log/proftpd/tls.log
TLSProtocol                SSLv23
TLSOptions                 NoCertRequest
TLSRSACertificateFile      /etc/proftpd/ssl/proftpd.cert.pem
TLSRSACertificateKeyFile   /etc/proftpd/ssl/proftpd.key.pem
TLSVerifyClient            off
TLSRequired                on
</IfModule>
[...]

如果您使用TLSRequired ,则只允许TLS连接(这将锁定任何没有TLS支持的旧FTP客户端的用户); 通过注释该行或使用TLSRequired,可以使用TLS和非TLS连接,具体取决于FTP客户端支持的内容。

之后重新启动ProFTPd:

/etc/init.d/proftpd restart

而已。 您现在可以尝试使用FTP客户端连接; 但是,您应该将FTP客户端配置为使用TLS(如果您使用TLSRequired则必须使用TLS) - 请参阅下一章如何使用FileZilla执行此操作。

如果您遇到TLS问题,可以查看TLS日志文件/var/log/proftpd/tls.log

5配置FileZilla for TLS

为了使用FTP与TLS,您需要一个支持TLS的FTP客户端,如FileZilla

在FileZilla中,打开服务器管理器:

选择使用ProFTPd与TLS的服务器; 在“ 服务器类型”下拉菜单中,选择FTPES而不是普通FTP

现在可以连接到服务器。 如果您是第一次这样做,则必须接受服务器的新SSL证书:

如果一切顺利,您现在应该在服务器上登录: