一、关于FTP的基本知识
1、ftp:// ##文件传输协议‘
2、ftp协议提供的软件
在rhel7中:vsftpd
3、FTP文件传输协议(英文:File Transfer Protocol,缩写:FTP)是用于在网络上进行文件传输的一套标准协议,使用客户/服务器模式。它属于网络传输协议的应用层。
4、ftp服务器
简单地说,支持FTP协议的服务器就是FTP服务器。
与大多数Internet服务一样,FTP也是一个客户机/服务器系统。用户通过一个支持FTP协议的客户机程序,连接到在远程主机上的FTP服务器程序。用户通过客户机程序向服务器程序发出命令,服务器程序执行用户所发出的命令,并将执行的结果返回到客户机。比如说,用户发出一条命令,要求服务器向用户传送某一个文件的一份拷贝,服务器会响应这条命令,将指定文件送至用户的机器上。客户机程序代表用户接收到这个文件,将其存放在用户目录中。
5、报错id解析
500 文件系统权限过大
530 用户认证失败
550 服务本身功能未开放
553 本地文件系统权限过小
二、部署ftp服务
1、关闭内核级的加强型防火墙
vim /etc/sysconfig/selinux ##修改selinux的状态
################
SELINUX=disabled
################
getenforce ##查看当前selinux状态
reboot
2、部署yum,安装lftp,vsftpd
yum install lftp vsftpd -y
systemctl start vsftpd
systemctl enable vsftpd
systemctl status vsftpd
3、设置防火墙永久允许ftp服务
systemctl restart firewalld
firewall-cmd --permanent --add-service=ftp
firewall-cmd --reload
firewall-cmd --list-all
4、测试服务
lftp 172.25.254.136
三、vsftpd权限文件
vim /etc/vsftpd/vsftpd.conf ##修改ftp权限文件
1、匿名用户:
匿名登陆格式:lftp 目标主机ip
匿名用户是否可以登录:anonymous_enable=YES/NO
匿名用户家目录修改:anon_root=/westos
匿名用户上传文件: anon_upload_enable=YES
默认权限修改:anon_umask=022
匿名用户下载文件:anon_world_readable_only=YES|NO ##no表示匿名用户可以下载
匿名用户建立目录:anon_mkdir_write_enable=YES|NO
匿名用户删除文件目录:anon_other_write_enable=YES|NO
匿名用户使用的用户身份修改 :
chown_uploads=YES
chown_username=student
chown_upload_mode=0644
最大上传速率:anon_max_rate=102400
2、本地用户:
登陆格式:lftp 目标主机ip -u student
local_enable=YES/NO ##本地用户登录限制
write_enable=YES/NO ##本地用户写权限限制
local_root=/directory ##本地用户家目录修改
local_umask=077 ##本地用户上传文件权限
max_clients=1 ##能够最大连接客户端数量
3、黑白名单
(1)白名单
vim /etc/vsftpd/vsftpd.conf
###########################
chroot_local_user=YES ##白名单(只有在名单内的用户才能登陆)
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
###########################
systemctl restart vsftpd
vim /etc/vsftpd/ftpusers ##编辑用户白名单
(2)黑名单
vim /etc/vsftpd/vsftpd.conf
###########################
chroot_local_user=NO ##黑名单(在名单内的用户均不能登陆)
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
###########################
systemctl restart vsftpd
vim /etc/vsftpd/ftpusers ##编辑用户黑名单
四、ftp虚拟用户的设定
(1)、创建虚拟帐号身份
1、编辑虚拟帐号和密码
vim /etc/vsftpd/
2、文件加密
-T转换
-t类型
-f文件
db_load -T -t hash -f login_file login_file.db
3、创建pam认证文件
验证规则vim vsftpd
vim /etc/pam.d/westos
写入:
account required pam_userdb.so db=/etc/vsftpd/login_file
auth required pam_userdb.so db=/etc/vsftpd/login_file
4、开启虚拟功能
vim /etc/vsftpd/vsftpd.conf
加入/修改为以下参数
pam_service_name=westos 将认证文件改为westos
guest_enable=YES 开启虚拟登陆
重启服务
systemctl restart vsftpd
5、测试
(2)、虚拟帐号家目录独立设定
1、了解变量$USER
2、编辑配置文件
vim /etc/vsftpd/vsftpd.conf
在里面加入以下参数
local_root=/ftpdir/$USER 是什么用户的时候显示什么用户的目录
user_sub_token=$USER 告诉系统用的是shell里的$USER方式
3、测试
(3)、虚拟帐号配置独立
1、改变虚拟用户家目录以及子目录的权限
2、建立配置目录与配置文件
mkdir -p /etc/vsftpd/westos
cd /etc/vsftpd/westos
vim user1
在此文件中设定配置文件中的参数,此文件的优先级高
写入user1用户操作的参数
anon_upload_enable=YES
anon_other_write_enable=YES
3、编辑vsftpd的配置文件
vim /etc/vsftpd/vsftpd.conf
在里面加入配置参数
user_config_dir=/etc/vsftpd/westos ###让用户在配置目录里读取自己的配置文件
4、测试