文章目录
- vsftpd的安装与配置指南
- 1. vsftpd的安装
- 2. vsftpd配置详解
- 3. 匿名访问测试
- 4. 本地用户访问FTP的配置
- 5. 修改匿名用户和本地用户的默认根目录
- 6. 黑名单与白名单的使用
- 7. 使用Windows文件资源管理器登录
- 8. 拓展FTP的使用场景
- 9. 注意事项
vsftpd的安装与配置指南
本文详细介绍如何在Linux系统上安装与配置vsftpd(Very Secure FTP Daemon),包括匿名用户和本地用户的配置、安全性设置、以及黑白名单的使用。
1. vsftpd的安装
-
检查vsftpd安装包是否存在
rpm -qc vsftpd # 检查是否已安装vsftpd包,若存在则无需重新安装
-
安装vsftpd
yum install -y vsftpd # 使用yum安装vsftpd
-
查看vsftpd配置文件
cd /etc/vsftpd ls # 切换到vsftpd配置目录下并查看文件
-
备份配置文件
cp vsftpd.conf vsftpd.conf.bak # 备份配置文件,避免配置错误时无恢复方案
2. vsftpd配置详解
-
初始化全局配置
编辑vsftpd的主配置文件:vim /etc/vsftpd/vsftpd.conf
常用配置项:
anonymous_enable=YES
开启匿名用户访问(默认已开启)。local_enable=YES
允许本地系统用户访问(如useradd zhangsan
,默认已开启)。write_enable=YES
允许服务器写操作(开启上传功能,必须开启,默认已开启)。anon_umask=022
设置匿名用户上传文件的权限掩码(反掩码,默认022表示权限为755)。
-
允许匿名用户拥有更高级别权限
anon_upload_enable=YES
允许匿名用户上传文件(默认注释,需取消注释)。anon_mkdir_write_enable=YES
允许匿名用户创建目录(默认注释,需取消注释)。anon_other_write_enable=YES
允许匿名用户进行删除、重命名、覆盖等操作(需手动添加此项配置)。
-
重启vsftpd服务并关闭防火墙
防火墙和SELinux核心防护必须关闭。
systemctl restart vsftpd # 重启vsftpd服务 systemctl stop firewalld # 关闭防火墙,允许外部访问FTP服务 setenforce 0 # 临时关闭SELinux
3. 匿名访问测试
-
设置匿名用户默认根目录
chmod 777 /var/ftp/pub/ # 设置目录权限,允许匿名用户进行读写操作 echo 'hello world!' > /var/ftp/pub/test.txt # 创建测试文件
-
在Windows系统中测试FTP访问
-
打开命令提示符(cmd)。
-
输入以下命令连接FTP服务器:
ftp 192.168.65.2
-
使用匿名用户访问,用户名为
ftp
,密码为空,直接回车登录。 -
使用以下命令测试匿名用户访问:
ftp> pwd # 查看当前目录,为Linux系统的/var/ftp/目录 ftp> ls # 列出当前目录内容 ftp> cd pub # 进入pub目录 ftp> get test.txt # 下载文件 ftp> put test2.txt # 上传文件
-
下载的文件在当前Windows登录用户的用户文件夹根目录下(如用户名为
aaa
,则根目录在C:\Users\aaa
),此时目录下即可看到test.txt的文件成功下载。
-
注意: 匿名用户权限过高会带来安全隐患,建议谨慎使用。
4. 本地用户访问FTP的配置
-
创建本地用户并设置密码
id zhangsan id lisi # 检查是否存在zhangsan和lisi用户useradd zhangsan echo '123' | passwd --stdin zhangsanuseradd lisi echo '123' | passwd --stdin lisi
-
配置vsftpd允许本地用户访问
vim /etc/vsftpd/vsftpd.conf
配置项:
local_enable=YES
启用本地用户访问。anonymous_enable=NO
禁止匿名用户访问。write_enable=YES
开放服务器的写权限(若要上传必须开启)。local_umask=077
设置上传文件仅宿主用户可访问(反掩码,077表示权限为700)。
再次尝试登录测试,成功访问,并且可以修改任何目录文件。默认登录目录为登录的用户名的家目录,如
/home/zhangsan
。 -
限制本地用户的访问目录
vim /etc/vsftpd/vsftpd.conf
配置项:
chroot_local_user=YES
将本地用户限制在宿主目录中(默认注释,需开启)。allow_writeable_chroot=YES
允许被限制的用户主目录具有写权限(需手动添加)。
-
重启vsftpd服务
systemctl restart vsftpd
-
测试本地用户访问
在Windows系统中,使用命令提示符连接FTP服务器:ftp 192.168.233.21
使用
zhangsan
作为用户名,123
作为密码。测试更改目录操作:ftp> cd /etc ftp> cd /home
若返回
550 Failed to change directory
,则说明已成功限制用户访问。此时用户访问被限制在当前用户
zhangsan
的家目录下(但是显示为“/”根目录),且只能修改此处目录下的内容。
5. 修改匿名用户和本地用户的默认根目录
-
修改配置文件
配置项:vim /etc/vsftpd/vsftpd.conf
anon_root=/var/www/html
设置匿名用户的根目录。local_root=/var/www/html
设置本地用户的根目录。
6. 黑名单与白名单的使用
黑名单:在黑名单上标记的用户是禁止访问的对象。
白名单:在白名单上标记的用户是允许访问的对象,白名单比黑名单的制定更为严格和安全。
-
修改user_list文件内容
user_list
用户列表文件默认存在于 ****/etc/vsftpd/
目录下,在其中添加修改用户名,再配置vsftpd.conf
即可。 -
启用黑名单
vim /etc/vsftpd/vsftpd.conf
配置项:
userlist_enable=YES
启用user_list
用户列表文件(默认存在且开启)。userlist_deny=YES
设置为黑名单模式,禁止列表中的用户访问(需手动添加)。
-
启用白名单
vim /etc/vsftpd/vsftpd.conf
配置项:
userlist_enable=YES
启用user_list
用户列表文件。userlist_deny=NO
设置为白名单模式,仅允许列表中的用户访问。
注:报错的话可以使用
journalctl -xe
详细模式查看日志的尾部消息,并分析。若再报错或无法分析,可以使用备份文件,只在备份文件中修改黑白名单即可。 -
使用root用户登录FTP
如果需要允许root
用户登录FTP服务,需要在ftpusers
文件中注释掉root
用户:vim /etc/vsftpd/ftpusers
注释掉
root
所在的行即可。 -
测试黑名单与白名单
在Windows系统中,使用FTP命令连接服务器测试用户访问权限:ftp 192.168.233.21
尝试使用黑名单中的用户登录,会返回
530 Permission denied
。
7. 使用Windows文件资源管理器登录
在Windows文件资源管理器地址栏按照如下格式输入地址:
ftp://lisi@192.168.65.2
以上即为vsftpd的安装与配置详解,配置过程中需注意用户权限的设置,确保系统安全性。
8. 拓展FTP的使用场景
场景一:搭建YUM仓库
可用于通过FTP搭建YUM仓库,可以让多个Linux客户端从FTP服务器获取软件包,简化软件的分发与安装过程。
步骤1:准备YUM仓库
-
创建YUM仓库目录
在FTP服务器上,创建YUM仓库的存储目录:mkdir -p /var/ftp/pub/yum-repo # 创建YUM仓库目录
-
复制RPM包
将RPM包复制到该目录下:cp /path/to/rpms/*.rpm /var/ftp/pub/yum-repo/ # 复制RPM包到仓库目录
-
生成YUM仓库元数据
使用createrepo
工具生成YUM仓库的元数据:yum install -y createrepo # 安装createrepo工具 createrepo /var/ftp/pub/yum-repo/ # 生成仓库元数据
步骤2:配置FTP服务
-
确保FTP服务器配置正确
确保FTP服务已启动,并且配置允许匿名用户访问。编辑/etc/vsftpd/vsftpd.conf
:anonymous_enable=YES # 允许匿名用户访问 write_enable=YES # 允许写操作(如上传文件) anon_upload_enable=NO # 禁止匿名用户上传文件 anon_mkdir_write_enable=NO # 禁止匿名用户创建目录
重启FTP服务以应用更改:
systemctl restart vsftpd
-
设置目录权限
确保YUM仓库目录的权限正确:chmod -R 755 /var/ftp/pub/yum-repo/ # 设置目录和文件的读权限
步骤3:客户端配置
-
配置YUM源
在客户端上,创建一个新的YUM源配置文件:vim /etc/yum.repos.d/ftp.repo
文件内容如下:
[ftp-yum-repo] name=FTP YUM Repository baseurl=ftp://192.168.65.2/pub/yum-repo/ enabled=1 gpgcheck=0
-
测试YUM源
运行以下命令测试YUM源是否配置成功:yum clean all yum repolist # 列出可用的YUM源,检查是否包含ftp-yum-repo
-
安装软件包
从FTP服务器的YUM仓库中安装软件包:yum install -y <package-name> # 安装指定软件包
场景2:其他场景
除了搭建YUM仓库外,FTP还可用于以下场景:
- 远程备份与恢复
- 备份数据库: 数据库管理员可以定期将数据库备份文件上传到FTP服务器进行存档。
- 恢复数据: 在数据丢失时,可以通过FTP从备份服务器中恢复数据。
- 网站部署
- 静态网站托管: 将网站的HTML、CSS、JS等静态文件上传至FTP服务器,作为简单的静态网站托管服务。
- 动态网站的文件更新: 网站管理员通过FTP更新网站上的文件(如PHP文件或配置文件)。
- 文件共享与分发
- 内部文件共享: 通过FTP服务器在公司内部共享文件,便于员工间的资料分发。
- 外部客户下载: 为客户提供FTP账户,通过FTP服务器下载大型文件或软件包。
9. 注意事项
- 安全性: FTP传输不加密,建议在需要安全传输的场景下使用FTPS或SFTP。
- 权限管理: 根据不同场景设置FTP用户的权限,避免不必要的安全风险。
- 防火墙设置: 确保防火墙配置允许FTP相关的端口(如21)通信。