一、關於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地址來代替”改為“回到主動模式”即可。
