在Debian Squeeze上设置vsftpd + TLS

在Debian Squeeze上设置vsftpd + TLS

FTP是非常不安全的协议,因为所有密码和所有数据都以明文形式传输。 通过使用TLS,可以对整个通信进行加密,从而使FTP更加安全。 本文介绍如何在Debian Squeeze服务器上使用TLS设置vsftpd。

我不会保证这将为您工作!

1初步说明

在本教程中,我使用IP地址为192.168.0.100的hostname server1.example.com 。 这些设置可能会有所不同,因此您必须在适当的情况下更换它们。

2安装vsftpd和OpenSSL

TLS需要OpenSSL; 要安装vsftpd和OpenSSL,我们只需运行:

apt-get install vsftpd openssl

3为TLS创建SSL证书

为了使用TLS,我们必须创建SSL证书。 我在/ etc / ssl / private中创建它 - 如果目录不存在,请立即创建它::

mkdir -p /etc/ssl/private
chmod 700 /etc/ssl/private

之后,我们可以生成SSL证书,如下所示:

openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem

国家名称(2个字母代码)[AU]: < - 输入您的国家名称(例如,“DE”)。
州或省名称(全名)[某些州]: < - 输入您的州或省名称。
地点名称(例如,城市)[]: < - 输入您的城市。
组织名称(例如,公司)[互联网Widgits有限公司]: < - 输入您的组织名称(例如,您公司的名称)。
组织单位名称(如部分)[]: < - 输入您的组织单位名称(例如“IT部门”)。
通用名称(例如,您的姓名)[]: < - 输入系统的完全限定域名(例如“server1.example.com”)。
电子邮件地址[]: < - 输入您的电子邮件地址。

4在vsftpd中启用TLS

为了在vsftpd中启用TLS,请打开/etc/vsftpd.conf ...

vi /etc/vsftpd.conf

...并添加或更改以下选项:

[...]
# Turn on SSL
ssl_enable=YES

# Allow anonymous users to use secured SSL connections
allow_anon_ssl=YES

# All non-anonymous logins are forced to use a secure SSL connection in order to
# send and receive data on data connections.
force_local_data_ssl=YES

# All non-anonymous logins are forced to use a secure SSL connection in order to send the password.
force_local_logins_ssl=YES

# Permit TLS v1 protocol connections. TLS v1 connections are preferred
ssl_tlsv1=YES

# Permit SSL v2 protocol connections. TLS v1 connections are preferred
ssl_sslv2=NO

# permit SSL v3 protocol connections. TLS v1 connections are preferred
ssl_sslv3=NO

# Disable SSL session reuse (required by WinSCP)
require_ssl_reuse=NO

# Select which SSL ciphers vsftpd will allow for encrypted SSL connections (required by FileZilla)
ssl_ciphers=HIGH

# This option specifies the location of the RSA certificate to use for SSL
# encrypted connections.
rsa_cert_file=/etc/ssl/private/vsftpd.pem
[...]

如果使用force_local_logins_ssl = YESforce_local_data_ssl = YES ,则只允许TLS连接(这将锁定任何没有TLS支持的旧FTP客户端的用户); 通过使用force_local_logins_ssl = NOforce_local_data_ssl =否,可以使用TLS和非TLS连接,具体取决于FTP客户端支持的内容。

除了TLS选项之外,请确保您的vsftpd.conf中还具有以下设置,以启用非匿名登录:

[...]
# Uncomment this to allow local users to log in.
local_enable=YES
#
# Uncomment this to enable any form of FTP write command.
write_enable=YES
#
# Default umask for local users is 077. You may wish to change this to 022,
# if your users expect that (022 is used by most other ftpd's)
local_umask=022
[...]
# You may restrict local users to their home directories.  See the FAQ for
# the possible risks in this before using chroot_local_user or
# chroot_list_enable below.
chroot_local_user=YES
[...]

之后再重新启动vsftpd:

/etc/init.d/vsftpd restart

而已。 您现在可以尝试使用FTP客户端连接; 但是,您应该将FTP客户端配置为使用TLS(如果使用force_local_logins_ssl = YES并且force_local_data_ssl = YES ,则必须使用) - 请参阅下一章如何使用FileZilla执行此操作。

5配置FileZilla for TLS

为了使用FTP与TLS,您需要一个支持TLS的FTP客户端,如FileZilla

在FileZilla中,打开服务器管理器:

选择使用vsftpd与TLS的服务器; 在“ 服务器类型”下拉菜单中,选择FTPES而不是普通FTP

现在可以连接到服务器。 如果您是第一次这样做,则必须接受服务器的新SSL证书:

如果一切顺利,您现在应该在服务器上登录:

6链接

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏