vsftpd - Linux FTP搭建及加密功能实现

通过vsftpd搭建基于Linux的FTP服务器,以及SSL/TLS加密功能实现

vsftpd - Linux FTP搭建及加密功能实现

1 vsftpd基本配置

1.1 安装

  • sudo apt-get install vsftpd

1.2 启动服务

  • sudo service vsftpd start
    • 启动vsftpd 服务
  • sudo service vsftpd status
    • 查看vsftpd 服务
  • sudo service vsftpd restart
    • 重启vsftpd 服务(用于修改配置文件后)

1.3 配置文件

  • /etc/vsftpd.conf
    • 默认不允许写,不允许匿名用户登陆
    • 开启write_enable即可上传文件。

2 vsftpd的加密技术

2.1 生成密钥

  • 借助openssl命令生成密钥
  • openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout /etc/vsftpd/vsftpd.pem -out /etc/vsftpd/vsftpd.pem
    • 可能需要手动创建存放目录
    • 修改/etc目录需要sudo权限
    • 经测试,颁发者一项建议输入域名或IP,否则FTP连接软件(FlashFXP)会警告颁发者和域名(或IP)不符。

2.2 配置vsftpd参数

  • sudo vim /etc/vsftpd.conf

  • 一些SSL的选项及参数,供参考:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
ssl_enable=yes/no             //是否启用 SSL,默认为no

allow_anon_ssl=yes/no //是否允许匿名用户使用SSL,默认为no

rsa_cert_file=/path/to/file //rsa证书的位置
dsa_cert_file=/path/to/file //dsa证书的位置

force_local_logins_ssl=yes/no //非匿名用户登陆时是否加密,默认为yes
force_local_data_ssl=yes/no //非匿名用户传输数据时是否加密,默认为yes

force_anon_logins_ssl=yes/no //匿名用户登录时是否加密,默认为no
force_anon_data_ssl=yes/no //匿名用户数据传输时是否加密,默认为no

ssl_sslv2=yes/no //是否激活sslv2加密,默认no
ssl_sslv3=yes/no //是否激活sslv3加密,默认no
ssl_tlsv1=yes/no //是否激活tls v1加密,默认yes

ssl_ciphers=加密方法 //默认是DES-CBC3-SHA
  • 若实现TLS加密,可在配置文件中添加下面这几个参数:
1
2
3
4
5
6
7
8
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
rsa_cert_file=/etc/vsftpd/vsftpd.pem
  • 重启vsftpd

    • sudo service vsftpd restart

2.3 准备相关的FTP软件

  • Windows10, Ubuntu等的文件管理器,chrome等浏览器默认均不支持加密的FTP协议;
  • 软件如:FlashFXP 可访问加密FTP,首次连接可保存密钥。

3 参考链接

让vsftpd支持加密传输