####ftp服务####
一、启动服务
第一步:
服务端:
真机连接server虚拟机:
vim /etc/sysconfig/selinux ##编辑配置文件
7 SELINUX=disabled ##第七行参数改为disabled
reboot ##重启服务使配置文件生效
第二步:启动vsftpd服务
注:先配置好yum源
yum install vsftpd -y ##安装vsftpd服务
systemctl start vsftpd ##启动vsftpd服务
systemctl enable vsftpd
netstat -antlupe |grep vsftpd ##查看vsftpd状态
第三步:启用ftp服务
firewall-cmd --list-all ##查看firewalld状态
firewall-cmd --permanent --add-service=ftp ##启用ftp服务
firewall-cmd --reload ##重装firewalld服务
firewall-cmd --list-all
lftp客户端:
yum install lftp
lftp 172.25.254.208
lftp 172.25.254.208:~> ls
lftp 172.25.254.208:/> quit
二、报错id的解析
500 ##文件系统权限过大
530 ##用户认证失败
550 ##服务本地功能未开放
553 ##本地文件系统权限过小
三、ftp匿名用户参数
vim /etc/vsftpd/vsftpd.conf ##修改参数配置文件
systemctl restart vsftpd ##重启服务,参数生效
1、匿名用户登陆
anonymous_enable=YES|NO ##匿名用户是否可以登陆
实验:编辑配置文件并重启服务:
参数改为YES时匿名用户能登陆:
参数改为NO时匿名用户不能登陆:
2、匿名用户家目录修改
服务端:
anon_root=/direcotry ##匿名用户家目录修改
例:mkdir /ftp/ftpdir/westosdir -p
anon_root=/ftpdir ##参数文件里添加参数
客户端:lftp 172.25.254.200
实验:
添加参数,家目录修改为westosdir:
注释参数,家目录变回pub:
3、匿名用户上传
匿名用户上传的前提是本地用户可写
服务端:
20 write_enable=YES ##本地用户可写
30 anon_upload_enable=YES ##允许匿名用户上传
chgrp ftp /var/ftp/pub
chmod 775 /var/ftp/pub/ ##给予目录权限
客户端:
lftp 172.25.254.208
cd pub
put /etc/passwd
实验:把参数设置为YES:
尝试下载文件,被告知权限过小:
给予目录权限:
4、匿名用户重命名和删除
14 anon_other_write_enable=YES ##匿名用户重命名和删除
实验:使参数生效
能够重命名和删除文件:
5、匿名用户建立目录
35 anon_mkdir_write_enable=YES
实验:使参数生效
6、匿名用户上传文件速度限制
anon_max_rate=102400 ##最高速度为102400字节
实验:
服务端:
cd /mnt
dd if=/dev/zero of=/mnt/bigfile bs=1M count=2000 ##从无限0设备中复制数据到/mnt/bigfile
dd ##截取命令
bs ##大小
count ##块数
客户端:
lftp 172.25.254.208
cd pub
put /mnt/bigfile ##获取bigfile文件,查看正常上传速度
rm -fr bigfile ##再把它删除
编辑参数:
上传文件速度只有100KB左右:
7、匿名用户上传文件的权限
anon_umask=022 ##匿名用户上传文件的权限
实验:修改参数:
查看上传文件权限:
四、ftp本地用户参数
1、本地用户登陆
local_enable=YES|NO ##本地用户是否可以登陆
实验:修改参数
2、本地用户可写
write_enable=YES|NO ##ftp是否对登陆用户可写
实验:修改参数
可以上传文件:
3、本地用户上传文件的权限
local_umask=022 本地用户上传文件的权限
实验:修改参数
查看上传文件参数
4、限制本地用户浏览/目录
所有用户被锁定到自己的家目录中
chroot_local_user=YES ##限制本地用户浏览/目录
实验:修改参数
登陆查看:
5、用户黑名单建立:
客户端:
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list ##黑名单,文件不存在需自己建立
修改参数:
编辑黑名单文件:
登陆查看:
6、用户白名单建立:
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
修改参数:
登陆查看:
7、限制本地用户登陆
先把上一个实验的三行参数注释掉
vim /etc/vsftpd/ftpusers 用户永久黑名单
最后一行添加westos用户:
登陆查看:
vim /etc/vsftpd/user_list 用户临时黑名单
最后一行添加student用户
登陆查看:
vim /etc/vsftpd/vsftpd.conf:
130 userlist_enable=YES
131 userlist_deny=NO ##参数设定,此文件变成用户白名单,只在名单中出现的用户可以登陆ftp,默认用户不能查看,名单中有的才能查看。
修改参数:
名单中有student用户,所以student用户能登陆查看,其他用户不行:
黑白名单中都有用户 ftpusers优先级高于一切
在/etc/vsftpd/ftpusers添加student用户,白名单失效:
五、ftp虚拟用户的设定
第一步:创建虚拟帐号身份
vim /etc/vsftpd/westosfile ##文件名称任意,添加虚拟用户和密码
第二步:设置加密
db_load -T -t hash -f /etc/vsftpd/westosfile /etc/vsftpd/westosfile.db
vim /etc/pam.d/westos: ##文件名称任意
-required ##必须要通过认证程序的认证否则失败
-db=/etc/vsftpd/westosfile ##自动识别.db
第三步:指定认证文件到配置文件里
vim /etc/vsftpd/vsftpd.conf
pam_service_name=westos
guest_enable=YES ##虚拟用户功能开启
guest_username=ftp ##虚拟帐号身份指定
登陆查看: