vsftpdssl——记录一次安装vsftpd配置ssl过程与坑

一、关于vsftpd安装

不同linux系统安装方法

ubuntu       apt-get install vsftpd

         apt-get --purge remove vsftpd


centos       yum list vsftpd        

             yum install -y vsftpd.x86_64

创建ftp用户

mkdir /home/ftpdir
useradd -d /home/ftpdir -s /bin/bash user1
passwd user1
chmod -R 777 /home/ftpdir

重启与查看状态

service vsftpd restart  && service vsftpd status

二、关于vsftpd的配置文件

/etc/vsftpd/vsftpd.conf

write_enable=YES

userlist_file=/etc/vsftpd/vsftpd.user_list
userlist_enable=YES
userlist_deny=NO

pasv_enable=yes
#pasv_address=47.104.69.197 pasv_min_port
=39000 pasv_max_port=40000 ssl_enable=YES allow_anon_ssl=NO force_local_logins_ssl=YES force_local_data_ssl=YES rsa_cert_file=/etc/ssl/vsftpd/cli.pem rsa_private_key_file=/etc/ssl/vsftpd/cli.pem

三、关于ssl证书

p12证书 导出 pem证书命令

openssl pkcs12 -in client.p12 -password pass:123456 -nodes -out cli.pem  

生成测试证书

cd /etc/ssl/
mkdir vsftpd
cd vsftpd/
openssl req -x509 -nodes -keyout vsftpd.key -out vsftpd.crt -days 365 -newkey rsa:2048
如果需要可以二合一
cat vsftpd.crt  vsftpd.key > vsftpd.pem

 证书格式说明

p12/pfx  二进制格式,包含证书本身,即CA签过名的公钥,私钥,以及一些附加信息;

pem      文本格式

从pfx中获取客户端证书
openssl pkcs12 -in client.pfx -password pass:11111111 -clcerts -nokeys -out cert.pem

从pfx中获取客户端私钥
openssl pkcs12 -in client.pfx -password pass:11111111 -nocerts -nodes -out key.pem

四、docker方式下

docker run -d \
-v /home/vsftpd:/home/vsftpd \
-p 20:20 -p 21:21 -p 39000-40000:39000-40000 \
-e FTP_USER=user3 -e FTP_PASS=123 \
-e PASV_ADDRESS=106.15.88.235 \
-e PASV_MIN_PORT=39000 -e PASV_MAX_PORT=40000 \
--name vsftpd --restart=always fauria/vsftpd

从宿主拷贝证书文件,编辑容器中的配置

docker cp /etc/ssl/vsftpd vsftpd:/etc/ssl/
docker exec -it vsftpd ls -ls  /etc/ssl
docker exec -it vsftpd ls -ls  /etc/ssl/vsftpd
docker exec -it vsftpd   vi  /etc/vsftpd/vsftpd.conf

启动、停止

docker stop vsftpd
docker ps -a
docker start vsftpd

五、常见报错

1、服务器发回了不可路由的地址,使用服务器地址代替

     出现该类问题,大多数是安全问题,多数是pure-ftpd。

  1)请在服务器运营商放行21端口

  2)请在服务器运营商放行39000/40000端口

 2、状态: 服务器发回了不可路由的地址。使用服务器地址代替。

  命令: LIST

  解决方法:更改Filezilla设置,编辑-设置-连接-FTP-被动模式,将“使用服务器的外部ip地址来代替”改为“回到主动模式”即可。

原文地址:https://www.cnblogs.com/xingchong/p/15544558.html