一.ftp定义
FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。
用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。
基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。
在FTP的使用当中,用户经常遇到两个概念:”下载”(Download)和”上传”(Upload)。
”下载”文件就是从远程主机拷贝文件至自己的计算机上;”上传”文件就是将文件从自己的计算机中拷贝至远程主机上。
用Internet语言来说,用户可通过客户机程序向(从)远程主机上传(下载)文件。
二.ftp协议提供的软件
在rhel7.2中:vsftpd
ftp服务的基本信息
软件安装包:vsftpd
默认发布目录:/var/ftp
协议接口:21/tcp
服务配置文件:/etc/vsftpd/vsftpd.conf
从远程主机下载rhel7.2镜像文件:
挂载时报错:
解决方式1:
解决方式2:
三.部署ftp服务
yum search ftp
yum install vsftpd.x86_64
yum install vsftpd -y
###上一步yum install vsftpd.x86_64 已经安装完成!
yum clean all
systemctl start vsftpd
systemctl enable vsftpd
>火墙策略
*命令方式
firewall-cmd --permanent --add-service=ftp
firewall-cmd --reload
>图形方式如下图:
firewall-conifg
安装成功!
四.vsftpd服务的配置参数
提示:在做下面实验的时候一定要将selinux状态改为disabled
vim /etc/vsftpd/vsftpd.conf
[1]anonymous_enable=YES|NO
匿名用户是否可以登陆ftp服务器
[2]local_enable=YES|NO
本地用户是否可以登陆
五.匿名用户设定
###匿名用户上传
[root@server ~]# vim /etc/vsftpd/vsftpd.conf
write_enable=YES
upload_enable=YES
[root@server ~]# systemctl restart vsftpd
[root@server ~]# chgrp ftp /var/ftp/pub
[root@server ~]# chmod 775 /var/ftp/pub
[root@server ~]# systemctl restart vsftpd
###匿名用户家目录修改
anon_root=/direcotry
###匿名用户上传文件默认权限修改
23 local_umask=022
(如果umask是022 建立的目录是755,文件是644(文件里面都没有给x执行权限,为了安全))
###匿名用户建立目录
33 non_mkdir_write_enable=YES
###匿名用户下载
##设定参数值为NO表示匿名用户可以下载
anon_world_readable_only=YES|NO
###匿名用户删除
anon_other_write_enable=YES
【**man vsftpd.conf **/需要查找的命令】
###匿名用户使用的用户身份修改
chowm_uploads=YES
chown_username=student
###最大上传速率
anon_max_rate=102400
###最大链接数
max_clients=2
六.本地用户设定
16 local_enable=YES
19 write_enable=YES
###本地用户家目录修改
13 local_root=/wrh
###本地用户上传文件权限
14 local_umask=022
###限制本地用户浏览/目录
所有用户被锁定到自己的家目录中
104 #chroot_local_user=YES
chmod u-w /home/*
七.黑白名单的建立
【1】用户黑名单建立
104 #chroot_local_user=NO
105 #chroot_list_enable=YES
107 #chroot_list_file=/etc/vsftpd/chroot_list
【2】用户白名单建立
104 #chroot_local_user=YES
105 #chroot_list_enable=YES
107 #chroot_list_file=/etc/vsftpd/chroot_list
**如果所有用户都可登,/etc/vsftpd/特殊文件为黑名单
反之,特殊文件为白名单
八.报错id解析:
550 报错 服务本身拒绝开放
553 报错 权限太小
530 报错 用户认证失败(密码错误)
500 报错 权限过大
九.虚拟用户
pam认证模块 类似插件
[创建虚拟帐号身份]
vim /etc/vsftpd/file ####文件名任意
file1 ###用户file1
123 ###登陆密码
file2
123
file3
123
db_load -T -t hash -f /etc/vsftpd/file /etc/vsftpd/file.db ###
vim /etc/pam.d/ckvsftpd ###文件名称任意
account required pam_userdb.so db=/etc/vsftpd/file
auth required pam_userdb.so db=/etc/vsftpd/file
vim /etc/vsftpd/vsftpd.conf
#pam_service_name=ckvsftpd
#guest_enable=YES
【虚拟帐号身份指定】