[Linux] vsftpd配置ssl


本文总阅读量

0、如果还没有部署vsftp-server,请先跳转到此处

1、查询vsftpd软件是否支持SSL

ldd /usr/sbin/vsftpd | grep ssl

1
libssl.so.10 => /lib64/libssl.so.10 (0x00007f6cfc4a6000)

2、生成vsftpd.pem 证书

[root@localhost vsftpd]# openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout /etc/vsftpd/vsftpd.pem -out /etc/vsftpd/vsftpd.pem

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Generating a 1024 bit RSA private key
..................................++++++
.........++++++
writing new private key to '/etc/vsftpd/vsftpd.pem'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:cn
State or Province Name (full name) []:beijing
Locality Name (eg, city) [Default City]:beijing
Organization Name (eg, company) [Default Company Ltd]:goopal
Organizational Unit Name (eg, section) []:goopal
Common Name (eg, your name or your server's hostname) []:zeven
Email Address []:test@goopal.com

查看生成vsftpd.pem是否成功
ls -l /etc/vsftpd/|grep vsftpd.pem

1
-rw-r--r-- 1 root root 1982 11月  9 14:20 vsftpd.pem

3、修改主配置文件/etc/vsftpd/vsftpd.conf

下面是ssl参数一些定义,根据自己需求去修改

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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
require_ssl_reuse=no 需要数据与控制流使用相同的ssl通道,程序是另起一个ssl通道,选no
#使用ftps的情况下,主动模式是不能用的,必须使用别动模式,为考虑安全问题,可以指定被动端口范围:
pasv_enable=YES
pasv_min_port=20000
pasv_max_port=20001

修改vsftpd的主配置文件vsftpd.conf添加如下内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
ssl_enable=YES
allow_anon_ssl=YES
force_anon_logins_ssl=YES
force_anon_data_ssl=YES
force_local_logins_ssl=YES
force_local_data_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
rsa_cert_file=/etc/vsftpd/vsftpd.pem
require_ssl_reuse=no
pasv_enable=YES
pasv_min_port=20000
pasv_max_port=20001

4、重启vsftpd服务

1
systemctl restart vsftpd

5、默认linux自带的ftp client不支持ssl协议,如果配置了ssl,使用ftp client连接会报错


可以使用第三方的surgeftp测试,下载方式:

1
wget ftp://ftp.netwinsite.com/pub/surgeftp/surgeftp_23f2_linux64.tar.gz

解压之后,测试连接是否正常:

也可以使用windows下的ftp软件测试,如FileZilla,配置方法如下:

6、配置过程终于到的问题:

1
2
3
4
522 SSL connection failed; session reuse required: see require_ssl_reuse option in vsftpd.conf man page
解决方法:
查看vsftpd.conf配置文件是否配置了下面参数
require_ssl_reuse=no
目录
  1. 1. 0、如果还没有部署vsftp-server,请先跳转到此处
  2. 2. 1、查询vsftpd软件是否支持SSL
  3. 3. 2、生成vsftpd.pem 证书
  4. 4. 3、修改主配置文件/etc/vsftpd/vsftpd.conf
  5. 5. 4、重启vsftpd服务
  6. 6. 5、默认linux自带的ftp client不支持ssl协议,如果配置了ssl,使用ftp client连接会报错
  7. 7. 6、配置过程终于到的问题:

Proudly powered by Hexo and Theme by Lap
本站访客数人次
© 2020 zeven0707's blog