0、背景
-
VSFTPD(Very Secure FTP Daemon)是一个用于提供FTP(文件传输协议)服务的服务器软件。它旨在提供一个高效、安全的FTP服务器解决方案,广泛应用于类Unix系统上,包括Linux。以下是 VSFTPD 的一些主要作用和特点:
-
文件传输:
提供 FTP、FTPS(FTP Secure)和 SFTP(SSH File Transfer Protocol)等多种传输协议,方便用户在网络上进行文件上传和下载。
多用户支持:
它支持多用户环境,允许不同用户使用各自的凭据安全地访问自己的文件目录。
管理控制:
系统管理员可以灵活配置用户权限和访问控制,例如限制用户能够访问的目录或文件,确保文件管理的安全性。
高性能:
VSFTPD 设计时就考虑了性能与资源的高效利用,适合处理大量并发连接,适合大流量的文件传输需求。
安全性:
提供多种安全特性,如 chroot 环境、SSL/TLS 加密和用户隔离,以降低数据泄露风险和未经授权的访问。
日志管理:
记录用户活动日志,帮助管理员监控和审计文件传输操作,便于故障排查和安全检测。
-
使用场景
网站托管:使用 VSFTPD 来管理网站文件的上传和下载。
数据备份:设置 VSFTPD 服务器用于备份和恢复重要数据。
文件分享:在局域网或互联网中方便地共享文件。
1.安装Vsftpd
apt-get install vsftpd
2.启动Vsftpd服务
service vsftpd start
3.新建用户uftp,制定用户主目录和所用shell,并设置密码
useradd -d /home/fa/SliceFileSpace/Queue -s /bin/bash uftp
passwd uftp —>Uniz3D****
4.将目录/home/fa/workspace的所属者和所属组都改为uftp:
sudo chown uftp:uftp /home/fa/SliceFileSpace/Queue
5.新建文件/etc/vsftpd.user_list,用于存放允许访问ftp的用户:
sudo vi /etc/vsftpd.user_list
在其中添加用户uftp,并且保存退出
6.编辑VSFTPD配置文件
vi /etc/vsftpd.conf (修改配置文件中的存储权限)
7.重启vsftpd服务
/etc/init.d/vsftpd restart
8.查看vsftpd状态
systemctl status vsftpd
netstat
9.测试
Windows下打开cmd窗口
ftp [你的linux机器的ip地址]
10.删除用户的方法
-
userdel test //userdel + 用户 即可删除ftp用户
11.格式转换
-
convmv -f GBK -t UTF-8 –notest –nosmart ����.zcode
vsftpd.config配置说明
-
#不允许匿名用户登录FTP服务器
anonymous_enable=NO
-
#设置匿名用户登录后所在的目录。
anon_root=/var/ftp/none
-
#匿名用户最大带宽,单位为bps
anon_max_rate=0
-
#匿名用户的操作权限
anon_umask=022
-
#不允许匿名用户创建文件夹
anon_mkdir_write_enable=no
-
#不允许匿名用户删除与重命名
anon_other_write_enable=no
-
#不允许虚拟用户上传
anon_upload_enable=no
-
#允许本地用户登录
local_enable=YES
-
#所有人都没有chroot权限(限制在家目录),但启用例外名单,名单为/etc/vsftpd/chroot_list中写的用户名
chroot_local_user=YES
chroot_list_enable=NO
chroot_list_file=/etc/chroot_list
allow_writeable_chroot=YES
write_enable=YES
local_root=/home/fa/workspace
-
#不限制传输速度
local_max_rate=0
-
#新建的目录 权限是700,文件的权限时 600
local_umask=077
-
#当进入某个目录时,发送信息提示给远程用户
dirmessage_enable=YES
-
#不开启 上传/下载 的日志记录
xferlog_enable=NO
-
#使用 20 端口来连接 FTP
connect_from_port_20=YES
-
#是否使用标准的 ftpd xferlog日志格式,该格式日志默认保存在 /var/log/xferlog
xferlog_std_format=NO
-
#vsftpd 将以独立模式运行并监听 IPv4 的套接字(该指令不能与 listen_ipv6 一起使用)
listen=YES
pam_service_name=vsftpd
-
#FTP服务器仅允许user_list中的用户访问
userlist_enable=YES
userlist_deny=NO
-
#是否使用tcp_wrappers作为主机访问控制方式。
tcp_wrappers=YES
12.VSFTP的使用
1、FTP 命令行客户端
您可以使用 ftp 命令行工具来连接到您的 VSFTPD 服务器并进行文件传输。
-
连接到 FTP 服务器
bash
ftp <服务器地址>例如,如果您的服务器在本地,可以使用:
bash
ftp localhost输入用户名和密码:根据您在 VSFTPD 中配置的用户名和密码进行登录。
-
上传文件
使用 put 命令上传文件:
bash
put <本地文件路径>例如,要上传名为 file.txt 的文件:
bash
put /path/to/local/file.txt确认上传:确保上传成功,可以使用 ls 命令查看当前目录文件。
下载文件
使用 get 命令下载文件:
bash
get <服务器文件名>例如,下载服务器上的 file.txt:
bash
get file.txt确认下载:在本地文件夹中查看是否有下载的文件。
2、使用其他 FTP 客户端工具
除了命令行工具,您还可以使用图形化 FTP 客户端,如 FileZilla、WinSCP 等,这些工具通常提供更友好的用户界 面,易于进行文件上传和下载。
3、退出 FTP 会话
完成文件传输后,可以使用 bye 或 quit 命令退出 FTP 会话:
bash
bye4、常见问题及注意事项
防火墙设置:确保您的 Ubuntu 防火墙(如 UFW)允许 FTP 流量。可以使用以下命令开放 21 端口:
bash
sudo ufw allow 21/tcpvsftpd 配置:根据需要,您可能需要编辑 /etc/vsftpd.conf 文件,以配置用户权限、匿名访问、文件上传等选项。
重新启动服务:如果更改了配置文件,请记得重新启动 VSFTPD 服务:
bash
sudo service vsftpd restart
评论前必须登录!
注册