如何在Ubuntu 15.04上安装带有TLS支持的ProFTPd

如何在Ubuntu 15.04上安装具有TLS支持的ProFTPd

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

1初步说明

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

因为我们必须使用root权限运行本教程的所有步骤,所以我们可以使用字符串sudo在本教程中添加所有命令,也可以通过键入来成为root

sudo su

2安装ProFTPd和OpenSSL

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

apt-get install proftpd openssl

你会被问到一个问题:

运行proftpd: < - standalone

出于安全考虑,您应该将以下行添加到/etc/proftpd/proftpd.conf中

nano /etc/proftpd/proftpd.conf
[...]
DefaultRoot ~
ServerIdent on "FTP Server ready."
[...]

第一个选项使FTP用户能够进入主目录,第二个选项启用一个ServerIdent消息,该消息不包含有关所使用的FTP服务器软件,版本或操作系统的任何信息,以便潜在的攻击者不会在银牌上获取这些详细信息。

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”)。
电子邮件地址[]: < - 输入您的电子邮件地址。

并保护生成的证书文件。

chmod 600 /etc/proftpd/ssl/proftpd.*

4在ProFTPd中启用TLS

为了在ProFTPd中启用TLS,请打开/etc/proftpd/proftpd.conf ...

nano /etc/proftpd/proftpd.conf

...并取消注释Include /etc/proftpd/tls.conf行:

[...]
#
# This is used for FTPS connections
#
Include /etc/proftpd/tls.conf
[...]

然后打开/etc/proftpd/tls.conf ,看看如下:

nano /etc/proftpd/tls.conf
<IfModule mod_tls.c>
TLSEngine on
TLSLog /var/log/proftpd/tls.log
TLSProtocol TLSv1.2
TLSCipherSuite AES128+EECDH:AES128+EDH
TLSOptions NoCertRequest AllowClientRenegotiations
TLSRSACertificateFile /etc/proftpd/ssl/proftpd.cert.pem
TLSRSACertificateKeyFile /etc/proftpd/ssl/proftpd.key.pem
TLSVerifyClient off
TLSRequired on
RequireValidShell       no
</IfModule>

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

之后重新启动ProFTPd:

systemctl restart proftpd.service

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

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

5添加FTP用户

在这样的教程中使用的ProFTPD配置可以根据Linux系统用户数据库(/ etc / passwd和/ etc / shadow)来认证用户。 在此步骤中,我将添加一个用户“tom”,仅用于FTP登录。

useradd --shell /bin/false tom

这将添加用户“tom”与shell / bin / false。 该shell确保他可以通过FTP登录,但不能通过SSH进行登录。 默认情况下,用户的主目录是/ home / [USERNAME],在我们的例子中是/ home / tom。 ProFTPD被配置为将用户监控到他的主目录,所以他无法访问/ home / tom之外的系统文件。 如果您想设置不同的主目录,请使用以下命令:

useradd --home /srv/tomftp --create-home --shell /bin/false tom

此命令设置不同的主目录,以防该用户的目录/ srv / tomftp。

下一步是为用户设置一个密码tom,执行passwd命令:

passwd tom

并在需要时输入两次新密码。

6配置FileZilla for TLS

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

在FileZilla中,打开站点管理器:

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

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

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

7链接

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏