通过FTP(文件传输协议)传输文件可能是将文件上传到服务器的最流行的方法。ProFTPD是一种流行且用途广泛的FTP服务器,可以作为OpenSource软件获得,它支持TLS(SSL)进行安全连接。

默认情况下,FTP是不安全的协议,因为密码和数据以明文/纯文本格式传输。通过使用TLS,可以加密整个通信,从而使FTP更安全。

本文介绍如何在Ubuntu服务器16.04 LTS 上使用TLS配置proftpd

先决条件

  1. Ubuntu Server 16.04 64位
  2. sudo / root特权

我们将在本教程中做什么

  1. 安装ProFTPD和TLS。
  2. 配置ProFTPD。
  3. 添加一个FTP用户。
  4. 在ProFTPD中配置TLS。
  5. 测试。

安装Proftpd和OpenSSL

Proftpd和OpenSSL在Ubuntu存储库中可用,因此我们可以使用apt命令安装它们:

sudo apt-get install -y proftpd openssl

安装开始时,将要求您将ProFTPD作为inetd独立服务器运行。在此处选择独立选项,然后单击确定

将ProFTPD作为独立服务器运行

配置ProFTPD

安装ProFTPD后,您将不得不调整配置​​以使其成为功能齐全且安全的服务器。ProFTPD配置文件位于/ etc / proftpd /目录中–编辑文件proftpd.conf

cd / etc / proftpd /
vim proftpd.conf

Servername行中,将值替换为您的主机名或域:

ServerName "My FTP-Server"

取消注释  DefaultRoot  行以对所有用户启用监禁:

DefaultRoot ~

然后按照以下方式通过systemctl命令重新启动ProFTPD。

systemctl restart proftpd

添加一个FTP用户

有两种类型的FTP用户可用:匿名FTP用户和“普通” FTP用户:

1.匿名FTP:FTP服务器无需用户帐户和密码即可提供对任何人的访问。不应在公用服务器上使用此选项,但可以将其用作家庭服务器或公司LAN的选项。
2. FTP用户:只有具有用户帐户和密码的用户才能访问FTP服务器。

在为FTP服务器创建用户之前,请在/ etc / shells文件中添加/ bin / false

echo “/bin/false” >> /etc/shells

现在,创建一个具有特定主目录的用户,禁用外壳程序访问,然后将其授予FTP服务器。

useradd -m -s /bin/false zenko
passwd zenko

上面的命令将创建一个名为zenko的新用户,其主目录为/ home / zenko /,并且没有shell访问权限/ bin / false。

添加FTP用户并设置密码

现在,配置ProFTPD以允许用户zenko访问FTP服务器。

cd /etc/proftpd/conf.d/
vim zenko.conf

添加此配置文件以允许用户zenko登录并从服务器上载文件或从服务器上载文件:

<Directory /home/zenko>
Umask 022 022
AllowOverwrite off
     <Limit LOGIN>
        AllowUser zenko
        DenyALL
     </Limit>
     <Limit ALL>
        Order Allow,Deny
        AllowUser zenko
        Deny ALL
    </Limit>
    <Limit MKD STOR DELE XMKD RNRF RNTO RMD XRMD>
    AllowUser zenko
    Deny ALL
    </Limit>
</Directory>

保存文件并退出vim。然后重新启动ProFTPD。

systemctl restart proftpd

您现在可以在此阶段使用FTP,但是我们将在下一步中使用TLS使其更安全。

使用proftpd配置TLS

要使用TLS,必须创建SSL证书。使用openssl命令生成SSL证书:

openssl req -x509 -newkey rsa:1024 -keyout /etc/ssl/private/proftpd.key -out /etc/ssl/certs/proftpd.crt  -nodes -days 365

上面的命令将在/ etc / ssl / certs /目录中生成证书文件proftpd.crt,并在/ etc / ssl / private /目录中生成证书密钥文件proftpd.key

使用OpenSSL创建SSL证书

接下来,将证书文件权限更改为600

chmod 600 /etc/ssl/certs/proftpd.crt
chmod 600 /etc/ssl/private/proftpd.key

现在,返回到/ etc / proftpd目录,并将ProFTPD配置为使用您生成的SSL证书。

cd / etc / proftpd /
vim proftpd.conf

取消注释TLS行:

Include /etc/proftpd/tls.conf

保存tls.conf文件并退出。

接下来,编辑TLS配置文件以启用安全身份验证:

vim tls.conf

取消注释所有这些行:

TLSEngine                               on
TLSLog                                  /var/log/proftpd/tls.log
TLSProtocol                             SSLv23

TLSRSACertificateFile                   /etc/ssl/certs/proftpd.crt
TLSRSACertificateKeyFile                /etc/ssl/private/proftpd.key

TLSOptions                              NoCertRequest EnableDiags

TLSVerifyClient                         off

TLSRequired                             on

保存并退出。最后一步是重新启动ProFTPD服务器:

systemctl restart proftpd

测试ProFTPD

要测试配置,请尝试使用FileZilla之类的软件(此处使用FileZilla)连接到FTP服务器,并填写服务器IP,用户名,密码和端口:

Server IP : 192.168.1.246
username : zenko
Password ******
Port : 21

然后单击快速连接。系统将询问您有关SSL证书确认的信息-只需单击“ 确定”

使用FileZilla连接到FTP服务器

您会看到您已经使用TLS / SSL证书登录到FTP服务器。

FTP服务器连接成功

链接

如何在Ubuntu 16.04 LTS上使用TLS安装ProFTPD
Tagged on:         

发表评论

电子邮件地址不会被公开。 必填项已用*标注