vsftpd服务
前提:在做ftp实验前,修改/etc/sysconfig/selinux中的SELINUX为disabled,修改后需要重启才能生效
1.什么是ftp
- FTP(File Transfer Protocol)即文件传输协议,中文简称为“文传协议”。
- 在FTP的使用当中,用户经常遇到两个概念:
上传:"上传"文件就是将文件从自己的计算机中拷贝至远程主机上
2.安装ftp
yum install vsftpd -y
systemctl stop firewalld
systemctl disable firewalld
systemctl start vsftpd
systemctl enable vsftpd
注:防火墙可以不用关闭,但是需要将ftp服务添加到防火墙允许的程序中。
##能登陆并且显示,表示安装成功
注意:如果主机没有lftp,那么也需要下载lftp,yum install lftp -y
3.vsftpd文件信息
软件安装包: vsftpd
默认发布目录: /var/ftp
协议接口: 21/tcp
服务配置文件: /etc/vsftpd/vsftpd.conf
报错id的解析:
500 ##文件系统权限过大
530 ##用户认证失败
550 ##服务本身功能未开放
553 ##本地文件系统权限过小
4.vsftpd服务的配置参数
vim /etc/vsftpd/vsftpd.conf匿名用户设定
anonymous_enable=YES | NO ##匿名用户登陆限制
- 匿名用户上传
vim /etc/vsftpd/vsftpd.conf
write_enable=YES ##用户是否可以进行写操作,匿名和本地用户同时管理
anon_upload_enable=YES
systemctl restart vsftpd
chgrp ftp /var/ftp/pub/
chmod 775 /var/ftp/pub/
- 匿名用户家目录修改
注意:修改的这个家目录必须存在
vim /etc/vsftpd/vsftpd.conf
anon_root=/ftpdir
systemctl restart vsftpd
- 匿名用户上传文件默认权限修改
anon_umask=xxx
未修改权限前,即默认情况下
修改权限后
- 匿名用户建立目录
anon_mkdir_write_enable=YES | NO ##设定参数值为no表示匿名用户不可以建立目录
systemctl restart vsftpd未添加权限时
添加权限并允许后
- 匿名用户下载
anon_world_readable_only=YES|NO ##设定参数值为no表示匿名用户可以下载
systemctl restart vsftpd
- 匿名用户删除
anon_other_write_enable=YES | NO ##设定参数值为YES表示匿名用户可以删除
- 最大上传速率
vim /etc/vsftpd/vsftpd.conf
anon_max_rate=102400
systemctl restart vsftpd
默认上传速率
修改速率后
- 最大连接数
max_client=3 ##允许同时有多少台主机可以远程连接本主机
本地用户设定
local_enable=YES | NO ##本地用户登陆限制
write_enable=YES | NO ##本地用户写权限限制
- 本地用户家目录修改
vim /etc/vsftpd/vsftpd.conf
local_root=/tutudir
systemctl restart vsftpd
- 本地用户上传文件权限
local_umask=xxx
未修改前,即默认上传权限022
修改上传文件权限为077后
- 限制本地用户浏览/目录
chroot_local_user=YES
chmod u-w /home/*
未修改前
修改内容及修改后
- 用户黑名单建立
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
vim /etc/vsftpd/ftpusers ##用户黑名单,永久性
vim /etc/vsftpd/user_list ##用户临时黑名单
- 用户白名单建立及设定
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
注意:要想黑白名单生效,最好/etc/vsftpd/user_list文件和/etc/vsftpd/chroot_list文件都要存在
ftp虚拟用户的设定
- 创建虚拟用户帐号身份
vim /etc/vsftpd/userdb ##文件名称任意
db_load -T -t hash -f userdb userdb.db ##设置加密方式为哈希加密,生成加密文件userdb.db
vim /etc/pam.d/ftpuser ##文件名称任意
- 虚拟帐号身份指定
guest_username=tutu
useradd -d /home/tutu tutu
实验是否可以登陆
- 虚拟帐号家目录独立设定
vim /etc//vsftpd/vsftpd.conf
local_root=/vftpdir/$USER
user_sub_token=$USER
mkdir /vftpdir
chgrp tutu /vftpdir
chmod g+s /vftpdir
mkdir /vftpdir/user{1..3}
- 虚拟帐号独立配置
默认情况下,虚拟用户拥有相同的权限,就是tutu的权限,我们可以根据实际需求对不同的虚拟用户分配权限
首先在FTP的主配置文件中加一个选项:
user_config_dir=/etc/vsftpd/user_conf ##//文件名和路径都可以自己定义
然后创建该目录.
mkdir /etc/vsftpd/user_conf
下面就可以在该目录下编辑不同虚拟用户的权限配置文件了,比如要对user1编辑其权限
touch user1 ##//建立user1的权限文件.文件名要与虚拟用户名相同
可以根据实际需求为该文件添加下面的选项和值:
anon_world_readable_only=NO ##//表示用户可以浏览FTP目录和下载文件
anon_upload_enable=YES ##//表示用户可以上传文件
anon_mkdir_write_enable=YES ##//表示用户有创建和删除目录的权限
anon_other_write_enable=YES ##//表示用户具有文件改名和删除文件的权限
注:在此文件中设定配置文件中的所有参数,此文件的优先级高