Linux 中的 FTP 服务

目录

1. 搭建 VSFTP 服务

1.1 安装 vsftpd

1.2 配置 vsftpd

1.3 配置防火墙

2. 匿名用户配置

2.1 编辑配置文件

2.2 匿名用户——登录控制参数

2.3 匿名用户——权限控制参数

2.4 重启 vsftpd

2.5 注意事项

3. 本地用户配置

3.1 准备工作

3.2 编辑配置文件

3.3 本地用户——登录控制参数

3.4 本地用户——权限控制参数

3.5 禁锢本地用户在指定目录中

3.6 用户名单列表使用(黑白名单)

3.6.1 开启白名单

3.6.2 在 ftpusers 文件中解放用户(黑名单)

3.6.3 在 user_list 文件中添加本地用户(白名单)

4. 客户端 FTP 服务配置

4.1 安装 lftp

4.2 连接 FTP 服务器

4.3 FTP 主要操作


1. 搭建 VSFTP 服务

FTP(File Transfer Protocol) 是一种用于在网络上进行文件传输的协议,允许用户通过客户端和服务器之间上传、下载文件。

1.1 安装 vsftpd
dnf install vsftpd -y
1.2 配置 vsftpd
systemctl enable vsftpd     #设置 vsftpd 为开机自启
systemctl start vsftpd      #启动 FTP 服务
systemctl status vsftpd     #查看服务启动状态

1.3 配置防火墙

方式一:将 ftp 服务可通过防火墙

firewall-cmd --permanent --add-service=ftp      #将 FTP 服务永久添加到防火墙的允许规则中,确保 FTP 流量可以通过防火墙
firewall-cmd --reload       #重新加载防火墙规则,是更改立即生效
firewall-cmd --list-all     #查看当前防火墙的所有配置

方式二:关闭防火墙

systemctl stop firewalld

2. 匿名用户配置

完成以上三个步骤后,可对用户进行访问配置

2.1 编辑配置文件
vi /etc/vsftpd/vsftpd.conf      #查看 vsftpd 配置文件
2.2 匿名用户——登录控制参数
参数说明
anonymous_enable=YES允许匿名用户登录,默认为NO
anon_root=(none)匿名用户的根目录(可选)
*no_anon_password=YES匿名登录无需密码

匿名用户的默认根目录是 /var/ftp,不能有写权限,否则会拒绝登录。

2.3 匿名用户——权限控制参数
参数说明
anon_upload_enable=YES允许匿名上传
anon_mkdir_write_enable=YES允许匿名用户创建目录
anon_other_write_enable=YES允许删除/重命名(谨慎启用)
chown_username=lightwiter匿名上传文件所属用户名
2.4 重启 vsftpd
systemctl restart vsftpd        #重启vsftpd,使更改的配置文件生效
2.5 注意事项

匿名用户如果想要操作目录,不仅需要在 vsftpd.conf 配置文件中有相应的权限控制参数,还要拥有相应的目录权限,一般是 w 权限。

举例说明:

要求:

  1. 已知在匿名用户的默认根目录 /var/ftp 下有一个目录 demo

  2. 让匿名用户在 demo 目录下创建一个新目录 subdemo

步骤一:修改配置文件

vi /etc/vsftpd/vsftpd.conf
# 添加一下内容
anon_mkdir_write_enable=YES
    
systemctl restart vsftpd

步骤二:给 demo 目录授权

#方式一
chown ftp:ftp /var/ftp/demo
​
#方式二
chmod a+w /var/ftp/demo
​
#方式三
chmod o+w /var/ftp/demo

3. 本地用户配置

3.1 准备工作

主要是使本地用户对为其设置的主目录拥有相应的操作权限。

# 创建本地用户
useradd ftpuser
​
# 设置本地用户密码
echo "123456" | passwd --stdin ftpuser
​
# 创建目录作为本地用户主目录
mkdir -p /var/ftp/test
​
# 修改目录权限,使本地用户对该目录拥有相应操作的权限
chown -R ftpuser:ftpuser /var/ftp/test
or
chmod -R a+w /var/ftp/test
or
chmod -R o+w /var/ftp/test
3.2 编辑配置文件
vi /etc/vsftpd/vsftpd.conf
3.3 本地用户——登录控制参数
参数说明
local_enable=YES允许本地用户登录
local_root=(none)设置本地用户根目录,默认为家目录
3.4 本地用户——权限控制参数
参数说明
write_enable=YES允许上传文件(写入文件)(全局控制)
local_umask=022本地用户上传的文件权限
file_open_mode=0666上传文件的权限配合 umask 使用
3.5 禁锢本地用户在指定目录中

限制本地用户只能访问指定目录。

vi /etc/vsftpd/vsftpd.conf
​
# 添加以下内容
local_root=/var/ftp/test    # 设置本地用户默认的访问路径
chroot_local_user=YES   # 限制本地用户只能访问默认的访问路径
allow_writeable_chroot=YES
​
systemctl restart vsftpd

如果不指定 local_root ,默认的访问路径是该用户的家目录,即 /home/本地用户名。

如有需求,可指定某些用户,使其被禁锢到指定目录后,仍具备访问其他目录的权限。

vi /etc/vsftpd/vsftpd.conf
# 添加以下内容
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
​
vi /etc/vsftpd/chroot_list
# 添加以下内容
ftpuser
​
systemctl restart vsftpd
3.6 用户名单列表使用(黑白名单)

在 FTP服务端的 /etc/vsftpd 目录下存在有两个文件:ftpuser 和 user_list。

ftpuser 文件:该文件列出了不允许访问 FTP 服务的用户,这些用户被绝对禁止登录到 FTP 服务器。

user_list 文件:该文件控制哪些用户可以访问 FTP 服务,具体取决于配置文件 vsftpd.conf 中 userlist_enable 和 userlist_deny 的设置。

3.6.1 开启白名单
vi /etc/vsftpd/vsftpd.conf
​
# 修改以下内容
userlist_enable=YES     # 开启用户名单列表功能
​
# 添加以下内容
userlist_deny=NO        #开启白名单,user_list 变为白名单文件
​
# 保存后,重启 FTP 服务
systemctl restart vsftpd
3.6.2 在 ftpusers 文件中解放用户(黑名单)
vi /etc/vsftpd/ftpusers
# 进入文件后删除掉或者注释掉要解放的用户

由图片可以注意到,root用户默认就在 ftpuser 黑名单文件中。所以,当在客户端采用 root 直接访问 ftp 服务是被禁止的,即 FTP 默认不允许 root 访问。客户端 “ lftp ftp://root:123456@192.168.88.101 ”该命令运行失败。

3.6.3 在 user_list 文件中添加本地用户(白名单)
vi /etc/vsftpd/user_list
#进入文件后添加本地用户

说明:添加到白名单的本地用户,在通过客户端连接访问时,默认主目录为家目录 /home/本地用户,对其他目录没有 w 权限,可访问。

vsftpd.conf 配置文件中对本地用户的配置仍然生效。

4. 客户端 FTP 服务配置

4.1 安装 lftp
dnf install lftp -y
4.2 连接 FTP 服务器
# 匿名用户连接
lftp ftp://192.168.88.101
​
# 本地用户连接
lftp ftp://ftpuser:123456@192.168.88.101
4.3 FTP 主要操作
操作说明
列出 FTP 常见功能
get [文件名]下载文件到本地
put [文件名]上传文件到服务器
mget [文件名列表]批量下载文件
mput [文件名列表]批量上传文件
bye/exit/quit退出 FTP 会话

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值