FTP(文件传输协议)可能是将文件上传到服务器的最流行的方法。 ProFTPD是一种流行且易于配置的FTP服务器,用于支持SSL / TLS加密的Linux系统。
FTP是一个不安全的协议,因为所有密码和所有数据都以明文形式传输。 通过使用TLS,可以对整个通信进行加密,从而使FTP成为传输文件的安全协议。 本文介绍如何在Ubuntu服务器15.04中使用TLS配置proftpd 。
先决条件
- Ubuntu Server 15.04 64位
- sudo / root权限
我们将在本教程中做什么:
- 安装Proftpd和OpenSSL
- 配置Proftpd
- 配置用户
- 使用proftpd配置TLS
- 测试
安装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服务器。