VSFTP配置

技术:VSFTP
等级:基础
时间:5分钟
必会:是

一般情况下运维只会接收到“需要个FTP”指令,运维坑次坑次去搭建了个FTP,研发在使用过程中拿不到文件。
研发:"你FTP配置不对!"
运维:“我FTP配置对的呀,上传和下载我都验证过了的,你程序没问题吧?”
研发:“我程序没问题呀,之前在XXX环境我的代码也是这样写的。”
运维:“之前在XXX环境我的FTP也是这样配置的,没有问题的呀。”

在FTP配置上跳过坑的人,看到上面的对话应该都不陌生,以上情景研发和运维都没有错,但如果继续争执下去,研发和运维双方就都不对啦。

在使用FTP的过程中最常用的场景:主动模式、被动模式、锁主目录、不锁主目录,这些需求通常不是运维人员定的,也不是研发定的,而是根据业务场景和环境定的。

作为研发保险的方式:代码自适应FTP的主被动模式。
作为运维保险的方式:在搭建FTP前需要问清楚FTP给谁用,用的客户端是否有防火墙,搭建的服务端是否有防火墙,综合这些因素来选择配置模式。

  1. 主被动模式选择
    情况一:client 没有防火墙
    可选择:主动模式,服务端防火墙开启21,20端口。
    情况二:server 没有防火墙
    可选择:被动模式
    情况三:双方都有防火墙
    可选择:被动模式高端口范围,服务端防火墙开启端口范围, client 用被动模式连接即可

  2. 主动模式配置

 connect_from_port_20=YES
 pasv_enable=NO
#服务端如有防火墙,需开启端口21、20
  1. 被动模式配置
connect_from_port_20=NO
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=30010
#服务端如有防火墙,需开启端口30000--30010

曾遇到一种情况FTP配置正确,使用账号和密码也能下载到文件,但是使用程序去下载时拼接到FTP地址就是不对的,少了文件所对应的目录。
遇到这种情况应该是没有锁主目录所致。

  1. 锁主目录
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
#用户写入chroot_list中
  1. 不锁主目录
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
#用户写入chroot_list中
allow_writeable_chroot=YES

VSFTP使用其他注意点

FTP用户禁止SSH登陆
从安全的角度来说,FTP账号需要禁止有SSH登陆,避免FTP用户SSH登陆服务器,对不该它操作的数据进行操作,实现方式:
adduser -g ftp -s /sbin/nologin -d /chancesftp ftpUser

你可能感兴趣的:(VSFTP配置)