vsftp服务器的搭建
vsftp
VSFTP是一个基于GPL发布的类Unix系统上使用的FTP服务器软件,它的全称是Very Secure FTP 从此名称可以看出来,编制者的初衷是代码的安全。
FTP连接端口
– 控制连接:TCP 21,用于发送FTP命令信息
– 数据连接:TCP 20,用于上传、下载数据
FTP的两种连接模式
客户端连接服务器,开始传送文件:
– 主动模式:服务器在收到客户端传送请求时,会要求客户端开启xx端口号,并用服务器的20端口主动连接xx端口,开始数据传输
– 被动模式:服务器在收到客户端传送请求时,会开启oo端口,并通知客户端连接自己,客户端开启xx端口,连接服务器oo端口
安装服务
yum –y install vsftpd
配置文件解析
/etc/vsftpd/vsftpd.conf:主配置文件
/etc/vsftpd/ftpusers:用于指定哪些用户不能访问FTP 服务器,简称黑名单,这是vsftpd服务在启动后已经决定的,只要在这个列表里面用户都不能访问FTP,没有其它的开关可以控制。
/etc/vsftpd/user_list:也是用于指定哪些用户不能访问FTP 服务器 ,取决于主配置文件
解释:
当 userlist_enable=NO 时 user_list列表不生效,列表内和列表外的用户都可登录
当 userlist_enable=YES,userlist_deny=YES 时user_list列表内的用户不可以登录,列表外用户可登录
当 userlist_enable=YES , userlist_deny=NO 时user_list 只允许列表以外的用户登录,并且必须是以命令行的方式
注:userlist_enable= YES(默认) userlist_deny=YES(默认)这两个值都是默认YES的,配置文件里面默认没有这两个参数。
简单来说,如无特殊要求,这两个都可以不用管,不想让谁登录就把他加到user_list列表就行了。
/var/ftp 匿名用户主目录
/var/ftp/pub
匿名用户的下载目录
/home/username 本地用户主ftp文件主目录
用户控制列表文件(控制用户使用ftp服务连接服务器)
userlist_enable=YES
开启用户访问控制
userlist_deny=YES
userlist_file=/etc/vsftpd/user_list
写入/etc/vsftpd/user_list文件中的用户不能访问ftp服务器,没有写入的用户可以访问(默认就是如此)
vim /etc/vsftpd/user_list
用户登录限制目录文件(限制用户登录访问目录)
chroot_local_user=YES
开启用户目录限制(只有此行,把所有用户都限制在用户主目录中)
chroot_local_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
写入/etc/vsftpd/chroot_list文件中的用户可以访问任何目录,其它用户限制在用户主目录
vim /etc/vsftpd/chroot_list
设置监听的IP地址
listen_address=192.168.18.252
设置监听FTP服务的端口号
listen_port=21
是否允许下载文件
download_enable=YES
限制并发客户端连接数
max_clients=0
限制同一IP地址的并发连接数
max_per_ip=0
被动模式
开启被动模式
pasv_enable=YES
被动模式最小端口
pasv_min_port=24500
被动模式最大端口
pasv_max_port=24600
基本配置
anonymous_enable=YES //匿名用户允许登录,一般就是none禁止匿名用户登录
anon_root=/var/ftp/ //匿名用户主目录
local_root=xxx //本地用户主目录
anon_upload_enable=YES
允许匿名用户访问
anonmous_enable
允许匿名用户上传
anon_upload_enable
允许本地用户上传
write_enable=YES
允许匿名用户建立目录
anon_mkdir_write_enable=YES
设置上传的默认文件权限(默认是600)
anon_umask
常用安全配置
被动模式,连接超时时间
accept_timeout=60
主动模式,连接超时时间
connect_timeout=60
600秒没有任何操作就断开连接
idle_session_timeout=600
资料传输时,超过500秒没有完成,就断开传输
data_connection_timeout=500
本地用户基本配置
设置本地用户的FTP根目录(注意目录权限)
local_root=/var/ftp
限制最大传输速率(字节/秒)
local_max_rate=0
启动服务
#service vsftpd restart
Linux上测试ftp
server:
#useradd -s /sbin/nologin danny //创建ftp登录用户,用户具有 上传 创建 下载 切换目录权限
#echo 123 | passwd --stdin danny
client:
#yum -y install ftp //安装ftp客户端
#ftp
ftp>open IP
ftp非交互式下载脚本
ftp -n <<EOF
open IP //ftp服务器IP
user $User $Password //ftp用户名和密码
cd /tmp/backup //目录
bin
get mysql_backup.gz //下载文件名
exit
EOF
实例:公司搭建一个ftp服务器备份生产数据
ftp配置文件修改部分如下:
anonymous_enable=NO
ascii_upload_enable=YES
ascii_download_enable=YES
local_root=/data/backup/
其他不变
ftp客户端安装ftp即可实现客户端登录ftp服务器拉取数据了
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了