通过FTP(文件传输协议)传输文件可能是将文件上传到服务器的最流行的方法。ProFTPD是一种流行且用途广泛的FTP服务器,可以作为OpenSource软件获得,它支持TLS(SSL)进行安全连接。
默认情况下,FTP是不安全的协议,因为密码和数据以明文/纯文本格式传输。通过使用TLS,可以加密整个通信,从而使FTP更安全。
本文介绍如何在TLS上配置proftpd的Ubuntu服务器16.04 LTS。
先决条件
- Ubuntu Server 16.04 64位
- sudo /root特权
我们将在本教程中做什么
- 安装ProFTPD和TLS。
- 配置ProFTPD。
- 添加一个FTP用户。
- 在ProFTPD中配置TLS。
- 测试。
安装Proftpd和OpenSSL
Proftpd和OpenSSL在Ubuntu存储库中可用,因此我们可以使用易于命令:
须藤apt-get安装-y proftpd openssl
安装开始时,系统会要求您将ProFTPD作为inetd要么独立的服务器。选择独立的选项,然后单击好。
配置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。
现在,配置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 /目录。
接下来,将证书文件权限更改为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证书确认的信息-只需单击好。
您会看到您已使用TLS /SSL证书登录到FTP服务器。
链接
- ProFTPD软件项目。链接