一、FTP的定义
1、FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。”上传”文件就是将文件从自己的计算机中拷贝至远程主机上。用Internet语言来说,用户可通过客户机程序向(从)远程主机上传(下载)文件。
2、ftp协议提供的软件
vsftpd 服务端 lftp客户端
二、FTP的部署
yum install vsftpd ##安装ftp
systemctl start vsftpd ##开启服务
systemctl enable vsftpd ##开机启动服务
firewalld-cmd --permanent --add-service=ftp ##添加防火墙策略
firewalld-cmd --reload ##重新加载防火墙
ftp的默认存储路径在 /var/ftp/中,但是这个目录的权限不能过大777,否则ftp会自动报错,如果一定要给大权限那就给这个目录下的目录
同时,连接后需要通过ls来查看是否正常连接,如果没有正常连接那么ls将什么东西都没有
三、FTP基本信息
软件安安装包: vsftpd
默认发布目录: /var/ftp
协议接口 : 21/tcp
服务的配置文件: /etc/vsftpd/vsftpd.conf
报错解析:
500 文件系统权限过大 /var/ftp不能是777
550 服务本身功能未开放
530 用户认证失败
553 本地文件系统权限过小
四、FTP基本配置
vim /etc/vsftpd/vsftpd.conf
匿名用户
anonymous_enable=YES|no ##如果为no,拒绝匿名用户登陆,只允许本地用用户
本地用户
local_enable=YES|no ##如果为no,拒绝本地用户及匿名用户登陆
write_enable=YES|no ##如果为no,拒绝本地用户put文件
本地用户指的是在服务器端上的用户,匿名用户指的是除本地用户外的用户
当使用本地用户登陆,它会默认登陆到本地用户的家目录
可以通过put上传以及get下载
1、限制匿名用户
#匿名用户上传
write_enable=YES
anon_upload_enable=YES
systemctl restart vsftpd
#匿名用户家目录修改
anon_root=/direcotry
#匿名用户上传文件默认权限修改
anon_umask=xxx
#匿名用户建立目录
anon_mkdir_write_enable=YES|NO
#匿名用户下载
anon_world_readable_only=YES|NO ##设定参数为NO时,匿名用户可以下载
#匿名用户删除
anon_other_writ_enable=YES|NO
#匿名用户使用的用户身份
chown_uploads=YES
chown_username=student
#最大上传速率
anon-max_rate=xxx(bytes)
#最大连接数
max_clients=2
2、限制本地用户
#限制本地用户浏览/目录
所有用户被锁定到自己的加目录中
chroot_local_user=YES
chmod u-w /home/* ##不改的话会报错
#用户黑名单建立
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
#用户白名单建立
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
#限制本地用户登陆
vim /etc/vsftpd/ftpusers ##永久的黑名单,优先级高
vim /etc/vsftpd/user_list ##临时的黑名单,优先级低
——》用户白名单设定
配置文件最后加上
userlist_deny=NO
/etc/vsftpd/user_list ##将临时黑名单变为白名单