介绍
警告:FTP不安全! 考虑使用SFTP代替FTP 。
FTP或文件传输协议是在本地和远程服务器之间传输文件的一种方法。 虽然非常受欢迎和普遍存在,使用这种文件传输方法已经失去了赞成,由于缺乏其固有的安全设计。
一个非常有能力的选择是SFTP,如上所述。 此协议通过SSH实现文件共享。 如果必须使用FTP,你至少应该确保与SSL / TLS证书的连接。
在本指南中,我们将配置vsftpd在CentOS 6.4 VPS上使用TLS / SSL证书。
安装vsftpd
vsftpd服务器在CentOS的默认存储库中可用。 我们可以通过键入:
sudo yum install vsftpd
vsftpd服务器现在安装在我们的VPS上。 我们可以在下一节中配置一些连接选项。
配置vsftpd的基本设置
对于在CentOS vsftpd的主配置文件保存在/etc/vsftpd/
目录。 这就是所谓vsftpd.conf
。
在您的编辑器中使用root权限打开此文件:
sudo nano /etc/vsftpd/vsftpd.conf
我们需要调整此文件中的一些基本参数,以提高安全性并建立我们的连接选项。
我们要做的第一件事是禁用匿名用户。 虽然这个选项可能对一个大的,面向公众的文件转储(如公共软件存储库),对于个人FTP服务器,这几乎从来不是一个好主意。
anonymous_enable=NO
由于我们禁用匿名用户,我们需要为我们的系统提供一种验证用户身份的方法。 我们将允许本地用户,这意味着vsftpd将使用我们的Linux系统用户和身份验证来确定谁可以登录。
要启用此功能,请确保设置此选项:
local_enable=YES
我们还将允许他们进行写访问,以便他们可以上传素材和修改内容:
write_enable=YES
我们还想将我们的用户限制在他们各自的主目录。 选项是:
chroot_local_user=YES
这对于基本(非SSL)FTP配置就足够了。 稍后我们将添加SSL功能。
保存并关闭文件。
创建FTP用户
我们选择使用本地用户并使用chroot环境将它们限制到他们的主目录。
使用此命令创建新用户:
sudo adduser ftpuser
通过键入以下内容为新用户指定密码:
sudo passwd ftpuser
CentOS 6.4中的vsftpd版本较旧,因此这部分安装比一些较新版本容易。
使用vsftpd配置SSL
获得vsftpd使用SSL操作的第一步是创建我们的SSL证书。 我们实际上将使用TLS,这是一个SSL的继承和更安全的协议。
我们将在SSL目录中创建一个子目录来存储我们的文件:
sudo mkdir /etc/ssl/private
要在单个文件中创建证书和密钥,我们可以使用以下命令:
openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
填写它问的问题。 最重要的是您的服务器的“公用名称”,它将是您将用于连接的IP地址或域名。
将SSL详细信息添加到vsftpd配置文件
现在,我们需要改变我们的配置以指向新密钥并配置安全连接。
以root身份重新打开vsftpd配置文件:
sudo nano /etc/vsftpd/vsftpd.conf
滚动到文件的底部。 我们将在此处添加我们的SSL / TLS信息。
我们需要指定我们的证书和密钥文件的位置。 我们实际上将两个信息合并成一个文件,因此我们将两个选项指向同一个文件:
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
接下来,我们需要启用这些文件的使用并禁用匿名用户。 我们还应该强制使用SSL用于数据传输和登录例程。 这将使安全强制:
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
接下来,我们将限制连接类型为TLS,这比SSL更安全。 我们将通过明确允许TLS并拒绝使用SSL来实现此目的:
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
我们将在完成之前添加一些配置选项:
require_ssl_reuse=NO
ssl_ciphers=HIGH
保存并关闭文件。
我们需要重新启动vsftpd来启用我们的更改:
sudo /etc/init.d/vsftpd restart
我们还将配置它在每次重新启动时自动启动:
sudo chkconfig vsftpd on
如何使用FileZilla连接到vsftpd服务器
SSL和TLS连接可用于大多数现代FTP客户端。 我们将向您展示如何将FileZilla设置为使用安全连接,因为它具有跨平台兼容性。 我们假设您已经使用适用于您的计算机的适当安装过程安装了客户端。
打开FileZilla程序。 在界面中,您可以单击图标打开“站点管理器”。 它应该看起来像这张图片最左边的图标:
在弹出的新界面中,您应该点击左下角的“新网站”按钮。 命名服务器连接,以便以后可以轻松识别它
在“主机”字段中填写IP地址,并从协议下拉菜单中选择“FTP - 文件传输协议”。 对于加密下拉列表,请选择“需要通过TLS的显式FTP”。
从登录类型菜单中选择“请求密码”。 填写我们为“用户”字段创建的FTP用户:
现在,您可以单击面板底部的“连接”。 系统将提示您输入FTP用户的密码:
下一步是我们使用TLS连接到我们的远程服务器的第一个标志。 我们将被要求接受正在使用的证书。
您应该能够看到您在创建证书时填写的信息,以验证您实际上是否连接到正确的位置。
接受证书以建立连接。
结论
虽然此配置是正确方向的一个步骤,但在建立连接之前,它仍然存在安全问题。 在大多数由于这些问题而对互联网开放的设置中应该避免。 SFTP是一个伟大的选择,如果你想要的能力使用一些相同的工具,你熟悉,但与安全你可以信任。