当前位置: 首页>>技术教程>>正文


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

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

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

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

先决条件

  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-get安装-y proftpd openssl

安装开始时,系统会要求您将ProFTPD作为inetd要么独立的服务器。选择独立的选项,然后单击

Run ProFTPD as standalone server

配置ProFTPD

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

cd /etc /proftpd /
vim proftpd.conf

在行中服务器名称,将值替换为您的主机名或域:

ServerName                      "My FTP-Server"

取消注释默认根行为所有用户启用监禁:

DefaultRoot   		~

并以以下方式通过systemctl命令重新启动ProFTPD。

systemctl重新启动proftpd广告

添加一个FTP用户

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

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

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

回声“/bin/false”> /etc /shells

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

useradd -m -s /bin /false zenko
密码zenko

上面的命令将创建一个名为善科带有主目录/home /zenko /并且没有 shell 访问/bin /false。

Add FTP user and set a password

现在,配置ProFTPD以允许用户访问善科到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重新启动proftpd

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

使用proftpd配置TLS

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

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

上面的命令将生成一个证书文件proftpd.crt在里面/etc /ssl /certs /目录和证书密钥文件proftpd.key在里面/etc /ssl /private /目录。

Create a SSL certificate with OpenSSL

接下来,将证书文件权限更改为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重新启动proftpd

测试ProFTPD

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

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

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

Connect to FTP server with FileZilla

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

FTP server connection was successful

链接

  • ProFTPD软件项目。链接

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/9814.html,未经允许,请勿转载。