文章目录
一、vsftpd的配置文件
- 一般情况下 ftp 默认的主配置文件在 /etc/vsftpd/vsftpd.conf 中
- 配置文件中默认有几个功能是开启的,绝大多行都是注释符#注释了的
二、vsftpd服务器的模式
2.1、匿名开放模式
通常默认安装的vsftpd就是匿名模式,当我们启动服务后,需要放行相应服务端口,要注意的是,你要是修改了匿名用户目录,目录权限不可以是777,最好是755,登录的主目录匿名用户是无法上传的,在主目录创建目录,修改其权限可写即可上传至该目录
- 正常情况下 centos7 安装好vsftpd 后正常开启,关闭防火墙就可以正常使用ftp功能了,并且默认为匿名用户登陆。
- 在centos7中操作:
[root@localhost ~]# systemctl start vsftpd
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
[root@localhost ~]#
- 在win10中操作:
2.2、本地用户模式
本地用户模式可以和匿名模式一起使用,通常环境可以创建一位具有写权限的用户来上传文件,而匿名用户方便大家下载相关资料。
编辑/etc/vsftpd/vsftpd.conf
local_enable=YES
write_enable=YES
local_umask=022
将以上三项写入配置文件,然后重启vsftpd服务,默认情况本地用户登录是在自己的家目录,root用户被禁止登录,若有需求可以修改user_list和ftpusers文件将登录权限放开。
2.3、虚拟用户模式
- 虚拟用户模式是三个模式中最安全的一种验证方式,配置过程也会稍微复杂一些
- 使用虚拟用户登录vsftpd服务,不需要使用系统内存在的用户登陆,可以增加ftp的安全性能
1、在/etc/vsftpd路径下创建用户数据库文件。这一步是为了存放虚拟用户的用户名和密码
cd /etc/vsftpd
vim vuser.list
2、将用户名和密码输入到vuser.list中去,其中奇数行为用户名,偶数行为密码。
创建文件后需要对用户文件进行加密,并修改权限,然后将明文文件删除,之后创建一个用来虚拟用户登录后映射本地用户的用户。
db_load -T -t hash -f vuser.list vuser.db #将vuser转换成数据库文件
chmod 600 vuser.db #修改vuser的权限为600
rm -f vuser.list
useradd -d /test -s /sbin/nologin #创建vuser用户shell无法登陆
3、开启pam认证功能。在 /etc/pam.d 中创建vsftpd.vu文件用于开启pam。
vim /etc/pam.d/vsftpd.vu
auth required pam_userdb.so db=/etc/vsftpd/vuser
account required pam_userdb.so db=/etc/vsftpd/vuser
4、修改vsftpd.conf主配置文件。
guest_enable=YES
guest_username=test
allow_writeable_chroot=YES
4、创建虚拟用户权限文件
如需要为每个虚拟用户匹配不同的权限,则需要为每个虚拟用户创建权限文件
mkdir user_dir #创建放置权限的文件夹
cd user_dir
touch lemon
在以虚拟用户名创建的文件中,写入如下参数
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
然后在vsftpd.conf配置文件中追加虚拟用户权限文件夹的路径
user_config_dir=/etc/vsftpd/user_dir
之后重启vsftpd服务
三、vsftpd的文件传输
3.1、ftp文件下载—get
- 首先在站点中放一些文件进去,/var/ftp为vsftpd服务的站点路径。
- 用一台win10作为客户机去接收ftp文件
- win10里的操作:
3.2、ftp文件上传—put
- 上传文件在已有用户模式下,创建一位具有写权限的用户来上传
- 下载文件在匿名用户模式时,方便大家下载相关资料。
- 在win10目录里新建一个文档test
- win10操作:
- 在centos 7中新建用户zhangsan
- 在centos7中查看用户zhangsan的家目录,有test文件即上传成功。