Linux —— FTP服务

目录

1. ftp介绍

2. vsftpd安装

2.1 安装

2.2 关闭selinux 

2.3 关闭firewalld 

2.4 测试安装 

3. vsftpd基本信息

3.1 服务名称

3.2 配置目录

3.3 主配置文件

3.4 默认发布目录

3.5 报错信息 

4. 匿名用户访问控制

 4.1 登陆控制

 4.2 家目录控制

4.3 匿名用户开启上传功能

4.4 下载控制

4.5 目录建立控制

4.6 删除重命名控制

4.7 登录数量控制

5. 本地用户的访问

5.1 登录控制

5.2 家目录控制

5.3 写权限控制

5.4 上传文件权限控制

5.5 用户登陆控制

5.6 用户登陆白名单

5.7 锁定用户到自己的家目录中

5.8 锁定用户到自己的家目录的白名单

5.9 锁定用户到自己的家目录的黑名单

6. 虚拟用户访问

6.1 建立虚拟用户的过程

6.2 虚拟用户家目录的设定

6.3 用户配置独立


1. ftp介绍

ftp(File Transfer Protocol):文本传输协议。它工作在 OSI 模型的第七层, TCP 模型的第四层, 即应用层, 使用 TCP 传输而不是 UDP, 客户在和服务器建立连接前要经过一个“三次握手”的过程, 保证客户与服务器之间的连接是可靠的, 而且是面向连接, 为数据传输提供可靠保证。

FTP允许用户以文件操作的方式(如文件的增、删、改、查、传送等)与另一主机相互通信。并不真正登录到自己想要存取的计算机上面而成为完全用户, 可用FTP程序访问远程资源, 实现用户往返传输文件、目录管理以及访问电子邮件等等, 即使双方计算机可能配有不同的操作系统和文件存储方式。

2. vsftpd安装

yum install vsftpd -y    ## 安装ftp服务

## 关闭selinux
~ vim /etc/sysconfig/selinux
修改内容为:SELINUX=disabled
~ reboot
## 关闭firewalld
systemctl stop    firewalld
systemctl disable firewalld 

systemctl start vsftpd   ## 开启vsftpd服务
systemctl enable vsftpd  ## 使vsftpd服务可执行

2.1 安装

2.2 关闭selinux 

 

2.3 关闭firewalld 

2.4 测试安装 

测试安装发布两种方式:
firefox ftp://ip
lftp 192.168.43.10        ## 此访问方式必须能列出资源才算访问成功
yum whatprovides */lftp   ## 查找lftp是通过哪个安装包来提供的
yum install lftp -y       ## 安装lftp

首先我们通过lftp+ip测试,发现没有该命令,接下来我们就先安装此命令 

 

  •  查找lftp是通过哪个安装包来提供的

  • 安装完之后,再进行测试,并ls显示所有内容 

3. vsftpd基本信息

3.1 服务名称

vsftpd.service

3.2 配置目录

/etc/vsftpd

3.3 主配置文件

/etc/vsftpd/vsftpd.conf

3.4 默认发布目录

/var/ftp

3.5 报错信息 

550   ## 程序本身拒绝
553   ## 文件系统权限限制
500   ## 权限过大
530   ## 认证失败

4. 匿名用户访问控制

lftp 192.168.43.10             ## 当访问ftp服务时没有加入用户认证为匿名访问
lftp 192.168.43.10 -u westos   ## 本地用户访问

 

 4.1 登陆控制

 

vim /etc/vsftpd/vsftpd.conf   ## 编辑vsftpd服务的配置文件
anonymous_enable=YES/NO       ## 配置文件中设定匿名用户可以/不可以访问
systemctl restart vsftpd      ## 重启服务
  • 在rhel7.6_node1中设定anonymous_enable=NO,在rhel7.6_node2中匿名访问

 

 4.2 家目录控制

anon_root=/software   ## 将/software设置为家目录
## 若不设置,默认目录为/var/ftp

 

4.3 匿名用户开启上传功能

anon_upload_enable=YES|NO   ## 表示上传功能是否开启
chmod 777 /var/ftp/pub      ## 将子目录权限修改为最高权限
## 上传步骤
1、lftp 192.168.43.10
2、cd /pub
3、put /etc/passwd
  • 默认情况下,在rhel7.6_node2匿名用户不可以上传文件

 

  • 因为系统默认将该功能注释,现在我们启动该功能 

  •  启动功能后,我们再次去上传文件,会发现报553错误,受到文件系统权限限制

  • 查看目录权限,发现只对超级用户可写 

  • 修改权限 

  •  修改子目录权限,将文件上传到子目录中

4.4 下载控制

  •  无法下载,程序本身被拒绝

  • 通过man方法来查看下载控制的配置文件
man 5 vsftpd.conf   ## 查看配置信息
anon_world_readable_only=NO   ## 匿名用户可以下载不能读的文件

 下载成功!

4.5 目录建立控制

vim /etc/vsftpd/vsftpd.conf
## 修改配置信息
anon_mkdir_write_enable=YES|NO

 新建目录成功!

4.6 删除重命名控制

vim /etc/vsftpd/vsftpd.conf
## 修改配置信息
anon_other_write_enable=YES|NO

 

 删除重命名成功!

4.7 登录数量控制

max_clients=2

4.8 上传速率控制

anon_max_rate=102400

5. 本地用户的访问

5.1 登录控制

useradd westos 
useradd lee 
echo lee | passwd --stdin westos 
echo lee | passwd --stdin lee

lftp 192.168.0.10 -u westos
local_enable=NO|YES
 

5.2 家目录控制

local_root=/software

5.3 写权限控制

write_enable=NO|YES

5.4 上传文件权限控制

local_umask=077

5.5 用户登陆控制

/etc/vsftpd/ftpusers ##永久黑 
/etc/vsftpd/user_list ##默认黑

5.6 用户登陆白名单

userlist_deny=NO #设定/etc/vsftpd/user_list位白名单 
                 #不在名单中的用户不能登陆ftp

5.7 锁定用户到自己的家目录中

chmod  u-w /home/* chroot_local_user=YES

5.8 锁定用户到自己的家目录的白名单

chroot_local_user=YES 
chroot_list_enable=YES 
chroot_list_file=/etc/vsftpd/chroot_list

5.9 锁定用户到自己的家目录的黑名单

chroot_local_user=NO 
chroot_list_enable=YES 
chroot_list_file=/etc/vsftpd/chroot_list

6. 虚拟用户访问

除匿名用户之外,还可设置虚拟用户来访问FTP。所谓虚拟用户,指存放于独立数据库文件中的FTP用户账户,可以将它们映射到某个不能登录的系统用户账号上,以进一步增强FTP服务器的安全性。

6.1 建立虚拟用户的过程

  • 建立虚拟用户数据库文件
cd /etc/vsftpd/
vim ftp_auth_file   ## 编辑认证文件
## 认证文件内容
westos1
123
westos2
123
westos3
123

 

  • 加密认证文件
db_load -T -t hash -f ftp_auth_file ftp_auth_file.db   ## 加密认证文件
ls
#######################
## db_load命令是一种固定用法
## -T         # 允许非Berkeley DB的应用程序使用从文本格式转换的DB数据库文件
## -t hash    # 指定读取数据文件的基本方法
## -f         # 指定数据的源文件

 

  • 编写认证策略
cd /etc/pam.d/
vim dsd
account        required        pam_userdb.so        db=/etc/vsftpd/ftp_auth_file
auth           required        pam_userdb.so        db=/etc/vsftpd/ftp_auth_file   ## 注意在这里系统会默认加上.db后缀,因此我们不需要添加后缀名

vim /etc/vsftpd/vsftpd.conf                                                        ## 编写认证策略配置文件
pam_service_name=dsd                ##指定认证策略文件
guest_enable=YES                    ##指定虚拟用户功能开启
guest_username=ftp                  ##指定虚拟用户在ftp服务器上的用户身份

 

6.2 虚拟用户家目录的设定

mkdir -p /ftpuserdir/dsd{1..3}/
touch /ftpuserdir/dsd1/dsd1file
touch /ftpuserdir/dsd2/dsd1file
touch /ftpuserdir/dsd3/dsd1file
touch /ftpuserdir/dsd2/dsd2file
touch /ftpuserdir/dsd3/dsd2file
touch /ftpuserdir/dsd3/dsd3file
vim /etc/vsftpd/vsftpd.conf 
systemctl restart vsftpd

 

 

6.3 用户配置独立

user_config_dir=/etc/vsftpd/user_config          ##在此目录中与用户名称相同的文件为用户配置文件
mkdir  /etc/vsftpd/user_config 
vim/etc/vsftpd/user_config/westos1
anon_upload_enable=YES

设定完成后westos1用户可以上传文件,但westos2和westos3不行

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值