目录
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 用户配置独立
ftp(File Transfer Protocol):文本传输协议。它工作在 OSI 模型的第七层, TCP 模型的第四层, 即应用层, 使用 TCP 传输而不是 UDP, 客户在和服务器建立连接前要经过一个“三次握手”的过程, 保证客户与服务器之间的连接是可靠的, 而且是面向连接, 为数据传输提供可靠保证。
FTP允许用户以文件操作的方式(如文件的增、删、改、查、传送等)与另一主机相互通信。并不真正登录到自己想要存取的计算机上面而成为完全用户, 可用FTP程序访问远程资源, 实现用户往返传输文件、目录管理以及访问电子邮件等等, 即使双方计算机可能配有不同的操作系统和文件存储方式。
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服务可执行
测试安装发布两种方式:
firefox ftp://ip
lftp 192.168.43.10 ## 此访问方式必须能列出资源才算访问成功
yum whatprovides */lftp ## 查找lftp是通过哪个安装包来提供的
yum install lftp -y ## 安装lftp
vsftpd.service
/etc/vsftpd
/etc/vsftpd/vsftpd.conf
/var/ftp
550 ## 程序本身拒绝
553 ## 文件系统权限限制
500 ## 权限过大
530 ## 认证失败
lftp 192.168.43.10 ## 当访问ftp服务时没有加入用户认证为匿名访问
lftp 192.168.43.10 -u westos ## 本地用户访问
vim /etc/vsftpd/vsftpd.conf ## 编辑vsftpd服务的配置文件
anonymous_enable=YES/NO ## 配置文件中设定匿名用户可以/不可以访问
systemctl restart vsftpd ## 重启服务
anon_root=/software ## 将/software设置为家目录
## 若不设置,默认目录为/var/ftp
anon_upload_enable=YES|NO ## 表示上传功能是否开启
chmod 777 /var/ftp/pub ## 将子目录权限修改为最高权限
## 上传步骤
1、lftp 192.168.43.10
2、cd /pub
3、put /etc/passwd
man 5 vsftpd.conf ## 查看配置信息
anon_world_readable_only=NO ## 匿名用户可以下载不能读的文件
下载成功!
vim /etc/vsftpd/vsftpd.conf
## 修改配置信息
anon_mkdir_write_enable=YES|NO
新建目录成功!
vim /etc/vsftpd/vsftpd.conf
## 修改配置信息
anon_other_write_enable=YES|NO
删除重命名成功!
max_clients=2
4.8 上传速率控制
anon_max_rate=102400
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
local_root=/software
write_enable=NO|YES
local_umask=077
/etc/vsftpd/ftpusers ##永久黑
/etc/vsftpd/user_list ##默认黑
userlist_deny=NO #设定/etc/vsftpd/user_list位白名单
#不在名单中的用户不能登陆ftp
chmod u-w /home/* chroot_local_user=YES
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
除匿名用户之外,还可设置虚拟用户来访问FTP。所谓虚拟用户,指存放于独立数据库文件中的FTP用户账户,可以将它们映射到某个不能登录的系统用户账号上,以进一步增强FTP服务器的安全性。
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服务器上的用户身份
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
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不行