如何在Ubuntu 15.04上安装带有TLS的Proftpd

本文介绍在Ubuntu 15.04上安装带有TLS的Proftpd。 FTP是一种不安全的协议,因为密码和数据传输未经加密...

FTP(文件传输协议)可能是将文件上传到服务器的最流行的方法。 ProFTPD是一种流行且易于配置的FTP服务器,用于支持SSL / TLS加密的Linux系统。

FTP是一个不安全的协议,因为所有密码和所有数据都以明文形式传输。 通过使用TLS,可以对整个通信进行加密,从而使FTP成为传输文件的安全协议。 本文介绍如何在Ubuntu服务器15.04中使用TLS配置proftpd

先决条件

  1. Ubuntu Server 15.04 64位
  2. sudo / root权限

我们将在本教程中做什么:

  1. 安装Proftpd和OpenSSL
  2. 配置Proftpd
  3. 配置用户
  4. 使用proftpd配置TLS
  5. 测试

安装Proftpd和OpenSSL

Proftpd和OpenSSL在Ubuntu存储库中可用,可以使用apt命令安装。 像安装命令一样,我们通过sudo运行apt命令,以root权限运行它:

sudo apt-get install -y proftpd openssl

安装开始时,系统会询问是否将Proftpd作为inetd独立服务运行。 在此选择独立选项,然后单击确定

配置Proftpd

一旦Proftpd安装,您将不得不更改一些配置文件。 Proftpd配置文件位于/ etc / proftpd /目录中。 我将使用nano编辑器编辑proftpd.conf文件。

cd /etc/proftpd/
nano proftpd.conf

ServerName ,将名称更改为主机名或域:

ServerName                      "myhostname"

取消注释DefaultRoot

# Use this to jail all users in their homes
DefaultRoot   		~

并重新启动Proftpd:

systemctl restart proftpd

添加FTP用户

访问FTP服务器有两种常见的方法:

匿名FTP ,FTP服务器提供对任何人的访问,无需拥有用户帐户和密码。
2. 使用用户名和密码进行访问 ,只有拥有可以访问FTP服务器的用户帐号和密码的用户。

我将在这里配置选项2。 匿名FTP在互联网时代的开始是受欢迎的,但是今天将有这么多滥用匿名FTP服务器,这个选项只能在诸如家庭或公司网络的封闭环境中使用。

在为Proftpd创建用户之前,请将/ bin / false添加到/ etc / shells文件中。

echo "/bin/false" >> /etc/shells

现在您将创建一个具有主目录的用户,他将通过FTP访问它。 我将通过为他分配“/ bin / false”shell来禁用此用户的shell访问,以确保他无法通过SSH登录。 我的用户名被命名为“yuuki”,请在下一个命令中用你的用户名替换yuuki。

adduser --home /home/yuuki --shell /bin/false yuuki

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

现在配置Proftpd以允许用户yuuki访问FTP服务器。

cd /etc/proftpd/
nano proftpd.conf

添加此配置以允许用户yuuki登录并上传/下载文件到/从他的主目录/ home / yuuki:

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

然后重新启动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。

将证书文件的文件权限更改为600以禁止其他用户访问:

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

现在回到Proftpd目录并配置Proftpd以使用SSL生成的证书。

cd /etc/proftpd/
nano proftpd.conf

取消注释tls行:

Include /etc/proftpd/tls.conf

保存并编辑tls文件:

nano 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

TLSVerifyClient                         off

TLSRequired                             on

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

systemctl restart proftpd

测试

要测试配置,请尝试使用FTP客户端连接到FTP服务器。 我会在这里使用FileZilla 。 填写服务器IP,用户名,密码和端口:

Server IP : 192.168.1.108
username : yuuki
Password ******
Port : 21

然后单击快速连接。 您将被要求确认SSL证书,只需单击确定



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