● 一般情况下 ftp 默认的主配置文件在 /etc/vsftpd/vsftpd.conf 中
● 配置文件中默认有几个功能是开启的,绝大多行都是注释符#注释了的
参数 | 作用 |
---|---|
anongmous_enable | 表示是否同意匿名用户访问,YES表示允许 |
local_enable | 表示是否允许本地用户登录 |
write_enable | 表示是否允许本地用户拥有写入操作 |
local_umask=0022 | 表示除本地用户外,其他用户不能进行写入操作 |
dirmessage_enable | 表示目录消息 |
xferlog_enable | 表示日志信息 |
connect_from_port_20 | 表示连接端口 |
通常默认安装的vsftpd就是匿名模式,当我们启动服务后,需要放行相应服务端口,要注意的是,你要是修改了匿名用户目录,目录权限不可以是777,最好是755,登录的主目录匿名用户是无法上传的,在主目录创建目录,修改其权限可写即可上传至该目录
● 正常情况下 centos7 安装好vsftpd 后正常开启,关闭防火墙就可以正常使用ftp功能了,并且默认为匿名用户登陆。
● 在centos7中操作:
[root@localhost ~]# systemctl start vsftpd
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
[root@localhost ~]#
本地用户模式可以和匿名模式一起使用,通常环境可以创建一位具有写权限的用户来上传文件,而匿名用户方便大家下载相关资料。
编辑/etc/vsftpd/vsftpd.conf
local_enable=YES
write_enable=YES
local_umask=022
将以上三项写入配置文件,然后重启vsftpd服务,默认情况本地用户登录是在自己的家目录,root用户被禁止登录,若有需求可以修改user_list和ftpusers文件将登录权限放开。
● 虚拟用户模式是三个模式中最安全的一种验证方式,配置过程也会稍微复杂一些
● 使用虚拟用户登录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主配置文件。
参数 | 作用 |
---|---|
anonymous_enable=NO | 禁止匿名开放模式 |
loucal_enable=YES | 允许本地用户模式 |
guest_enable=YES | 开启虚拟用户模式 |
guest_username=test | 指定虚拟用户账号 |
pam-service_name=vsftpd.vu | 指定PAM文件 |
allow_writeable_chroot=YES | 允许对禁锢的FTP根目录执行写入操作,而且不拒绝用户的登录请求 |
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服务
● 首先在站点中放一些文件进去,/var/ftp为vsftpd服务的站点路径。
● 用一台win10作为客户机去接收ftp文件
● win10里的操作:
● 上传文件在已有用户模式下,创建一位具有写权限的用户来上传
● 下载文件在匿名用户模式时,方便大家下载相关资料。
● 在win10目录里新建一个文档test
● win10操作:
● 在centos 7中新建用户zhangsan
● 在centos7中查看用户zhangsan的家目录,有test文件即上传成功。