FTP服务
ftp:// ##文件传输协议
1.服务安装(环境配置)
yum install vsftpd lftp -y
systemctl start vsftpd
systemctl enable vsftpd
firewall-config
选择ftp服务 ##设置ftp可以通过防火墙
firewall-cmd --list-all查看是否修改成功
vim /etc/sysconfig/selinux
更改SELINUX的状态为disabled
getenforce 查看selinux的状态
2.ftp服务的基本信息
软件安装包: vsftpd
默认发布目录: /var/ftp
协议接口: 21/tcp
服务配置文件: /etc/vsftpd/vsftpd.conf
报错id的解析:
500 ##文件系统权限过大
530 ##用户认证
550 ##服务本身功能未开放
553 ##本地文件系统权限过小
3.配置文件
vim /etc/vsftpd/vsftpd.conf
4.匿名用户配置
(1)匿名用户登陆
anonymous_enable=YES|NO ##匿名用户是否登陆
(2)匿名用户上传
vim /etc/vsftpd/vsftpd.conf
write_enable=YES
anon_upload_enable=YES ##配置文件中设置
chgrp ftp /var/ftp/pub
chmod 775 /var/ftp/pub ##虚拟机上更改权限
(3)匿名用户家目录修改
anon_root=/目录
(4)匿名用户上传文件默认权限修改
anon_umask=xxx (022)
(5)匿名用户建立目录或文件
anon_mkdir_write_enable=YES|NO
(6)匿名用户下载
anon_world_readable_only=YES|NO##设定no时可以下载
(7)匿名用户删除文件
anon_other_write_enable=YES|NO
(8)匿名用户使用的用户身份修改
chown_uploads=YES
chown_username=student
chown_upload_mode=0644
可以由上传的文件的uid表示看出匿名用户使用的用户身份
(9)最大上传速率(平均速度)
anon_max_rate=102400
先新建一个大一点的文件
(10)最大连接数(能和几个主机同时建立ftp连接)
max_clients=1
5.本地用户配置
(1)本地用户登陆
local_enable=YES|NO
(2)本地用户上传权限
write_enable=YES|NO
(3)本地用户家目录修改
local_root=/目录
(4)本地用户上传文件的权限
local_umask=xxx
(5)限制本地用户浏览目录
(1所有用户被锁定到自己的家目录中
chroot_local_user=YES
chmod u-w /home/*
更改前
更改后
(2用户浏览目录黑名单建立
chroot_local_user=NO ##黑名单开启
chroot_list_enable=YES ##黑名单开启,这些用户不能访问
chroot_list_file=/etc/vsftpd/chroot_list ##黑名单用户文件内容
可见student只能浏览加目录不能浏览根目录,但qwq用户可以浏览根目录
(3用户白名单建立
chroot_local_user=YES ##白名单开启
chroot_list_enable=YES ##白名单开启后,这些用户能够访问
chroot_list_file=/etc/vsftpd/chroot_list
当白名单里有student用户时,student可以访问根目录,这时qwq(其他用户)无法访问根目录
(6)限制本地用户登陆
vim /etc/vsftpd/ftpusers ##用户永久黑名单
vim /etc/vsftpd/user_list ##用户临时黑名单(重启服务时会失效)
用户白名单设定
vim /etc/vsftpd/vsftpd.conf
userlist_deny=NO
vim /etc/vsftpd/user_list 此文件变成用户白名单,只在名单中出现的用户可以登陆ftp
可见白名单内的student用户可以登陆ftp服务,但别的本地用户无法登陆ftp
6.ftp虚拟用户的设定
1.创建虚拟帐号身份
步骤:
(1)设置虚拟帐号和密码
vim /etc/vsftpd/vmfile ##名称任意
内容:
westos1
123
westos2
456
westos3
789
(2)生成用hash加密的.db文件
db_load -T -t hash -f /etc/vsftpd/vmfile /etc/vsftpd/vmfile.db
-T表示转换,-t表示加密类型,-f文件选择
(3)生成加密策略
vim /etc/pam.d/vm ##文件名称任意
内容:
account required pam_userdb.so db=/etc/vsftpd/vmfile ##帐号
auth required pam_userdb.so db=/etc/vsftpd/vmfile ##密码
类型 认证策略 认证方式 需要认证的文件
(4)更改ftp配置文件
vim /etc/vsftpd/vsftpd.conf
pam_service_name=vm(生成的加密策略的名称) ##选择加密策略
guest_enable=YES ##开启虚拟认证服务
(5)测试
B.虚拟帐号身份指定:
vim /etc/vsftpd/vsftpd.conf
guset_username=westos ##更改虚拟帐号身份指定
chmod u-w /home/westos ##更改虚拟帐号指定身份的权限
C.虚拟用户家目录独立指定
(1)更改配置文件
vim /etc/vsftpd/vsftpd.conf
local_root=/var/ftpuserdir/$USER ##此处的USER表示为当前用户
user_sub_token=$USER
(2)建立家目录
mkdir /var/ftpuserdir/westos1/user1dir -p
mkdir /var/ftpuserdir/westos2/user2dir -p
mkdir /var/ftpuserdir/westos3/user3dir -p
(3)测试
D.虚拟帐号配置独立
(1)更改权限
chmod 775 /var/ftpuserdir/westos*/pub
chgrp ftp /var/ftpuserdir/westos*/pub
(2)建立虚拟用户配置文件目录
mkdir -p /etc/vsftpd/user_config ##建立虚拟用户配置文件目录
vim /etc/vsftpd/user_config/westos1
写入:anon_upload_enable=YES##再此文件中设定配置文件中的所有参数,此文件优先级高
(3) 配置文件
vim /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/user_config##指定虚拟用户独立服务的目录
(4)测试