ftp作用
用于文件的上传和下载
属于TCP协议 端口号:20、21
20端口号:数据层面,用于文件上传和下载
21端口号:控制层面,用于账户密码验证,权限的验证
ftp三种账户
匿名、系统、虚拟账户。
匿名账户:登录名:ftp、anonymous。不验证密码即可登录
系统账户:本身系统已存在的账户、密码作验证。
虚拟账户
验证方式:
- 验证的/etc/passwd 和 /etc/shadow
- 验证的是用户列表(用户必须是系统创建),相当于白名单
默认root账户不允许登录。
虚拟账户:预定义的列表账户。(系统之前未创建过的)
匿名账户ftp创建:
[root@server ~]# yum -y install vsftpd
配置文件
[root@server ~]# vi /etc/vsftpd/vsftpd.conf
按以上内容进行修改及增加;
开启vsftpd服务
[root@server ~]# systemctl start vsftpd
创建2个测试文件
[root@server pub]# echo "abc123" > a.txt
[root@server pub]# echo "bcd123" > b.txt
设定权限
[root@server ~]# chown -R ftp.ftp /var/ftp/pub/
[root@server ~]# chown -R 755 /var/ftp/pub
登录客户机验证
客户机也需安装ftp
[root@server ~]# ftp 20.0.0.10
系统账户ftp创建
[root@server ~]# vi /etc/vsftpd/vsftpd.conf
按以上内容进行配置
使用客户机进行验证,步骤与匿名用户类似
虚拟账户ftp创建
设置虚拟账户列表
[root@server ~]# vi/etc/vsftpd/vusers.list
mike
123
john
234
新建虚拟用户账户数据库
[root@server ~]# cd /etc/vsftpd
[root@server vsftpd]# db_load -T -t hash -F vusers.list vusers.db
[root@server ~]# file vusers.db
配置文件已生成
赋予权限
[root@server ~]# chmod 600 /etc/vsftpd/vusers.*
创建虚拟账户并赋予权限
[root@server ~]# useradd -d /var/ftproot -s /sbin/nologin virtual
[root@server ~]# chmod 755 /var/ftproot
对其进行配置
[root@server ~]# vi /etc/pam.d/vsftpd.vu
配置内容如上
进入vsftpd进行配置
[root@server ~]# vi /etc/vsftpd/vsftpd.conf
按以上内容进行配置修改
设置虚拟账户的配置文件
[root@server ~]# mkdir /etc/vsftpd/vusers_dir/
[root@server ~]# cd /etc/vsftpd/vusers_dir/
对内容进行配置
[root@server vusers_dir]# vi mike
anon_upload_enable=YES
anon_mkdir_write_enable=YES
john的内容为空,不予配置
之后重启vsftpd
[root@server ~]# systemctl restart vsftpd
再使用客户机进行验证
[root@server ~]# ftp 20.0.0.10
验证成功