Ubuntu 16.04 安装 ProFTPd(TLS)

本教程介绍了如何安装和安全使用的ProFTPd。FTP 没有 TLS 是不安全的,因为所有的密码和所有数据以明文传输。通过使用TLS,整个通信可以被加密,因此FTP使得安全得多。本文介绍如何设置使用的ProFTPd TLS搭建Ubuntu16.04的ftp服务器,如何添加一个FTP用户,并使用FileZilla中与TLS安全连接上。

1初步说明

在本教程中,我将使用的IP地址为192.168.1.100的主机名server1.example.com。这些设置可能与你的不同,所以你不得不在适当情况下更换他们。

因为我们必须从本教程以root权限运行的所有步骤,建议切换到Root账户:

sudo -s

我将使用nano编辑在本教程中编辑配置文件。如果你喜欢使用nano也并没有安装它,然后运行这个命令来安装nano。

apt-get -y install nano

2 安装 ProFTPd 和 OpenSSL

OpenSSL是TLS的前提;安装ProFTPd的和OpenSSL,我们只需运行:

apt-get -y install proftpd openssl

系统将询问:

Run proftpd:

出于安全原因,你应该添加以下行到文件/etc/proftpd/proftpd.conf中:

nano /etc/proftpd/proftpd.conf

配置内容:

[...]
DefaultRoot ~
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

系统将会询问:

Country Name (2 letter code) [AU]: <– Enter your Country Name (e.g., “DE”).
State or Province Name (full name) [Some-State]:
<– Enter your State or Province Name.
Locality Name (eg, city) []:
<– Enter your City.
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
<– Enter your Organization Name (e.g., the name of your company).
Organizational Unit Name (eg, section) []:
<– Enter your Organizational Unit Name (e.g. “IT Department”).
Common Name (eg, YOUR name) []:
<– Enter the Fully Qualified Domain Name of the system (e.g. “server1.example.com”).
Email Address []:
<– Enter your Email Address.

确保生成的证书文件。

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连接被允许(这将锁定老FTP客户端不具有TLS支持任何用户);注释掉该行或使用TLSRequired同时关闭TLS和非TLS连接取决于什么FTP客户端支持是允许的。

重新启动后ProFTPd:

systemctl restart proftpd.service

现在,您可以尝试使用您的FTP客户端来连接;但是,您应该配置您的FTP客户端使用TLS(这是必须的,如果你使用TLSRequired上) – 见下一章如何与FileZilla中做到这一点。
如果您在使用TLS的问题,你可以看看在TLS日志文件/var/log/proftpd/tls.log。

5 添加一个 FTP 用户

因此,在教程中使用ProFTPD的配置验证对Linux系统的用户数据库用户(/ etc / passwd和/ etc / shadow文件)。在这一步,我将增加仅用于FTP登录用户“tom”。

useradd --shell /bin/false tom

然后,我们要创造我们的用户“tom”的主目录,并修改该目录的所有权给用户和组“tom”。

mkdir /home/tom
chown tom:tom /home/tom/

如果你喜欢设置不同的主目录,使用下面的命令:

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

该命令设置一个不同的主目录,在该示例的情况下为用户的目录/ SRV/ TFTP。
下一步骤是为用户,执行passwd命令设置口令:

passwd tom

6 为FileZilla配置TLS

为了使用FTP使用TLS,您需要支持TLS,如FileZilla的FTP客户端。
在FileZilla中,打开站点管理器:

FileZilla_1

选择使用ProFTPd的使用TLS的服务器;选择FTP作为协议和FTP上需要明确TLS。

FileZilla_user_dialog

现在,您可以连接到服务器,FileZilla中会要求输入密码。

FileZilla_enter_password

如果您是第一次做到这一点,你必须接受服务器的新的SSL证书:

FileZilla_Unknown_certificate

如果一切顺利的话,你现在应该记录在服务器上:

FileZilla_logged_in



为您推荐

说点什么

您将是第一位评论人!

提醒
avatar
wpDiscuz