linux 第三本书第一章 vsftpd

实验环境

关闭selinux 

vim /etc/sysconfig/selinux    状态改为disabled
 reboot

关闭火墙   systemctl disable --now firewalld

ip设置,软件仓库搭建

1.ftp介绍

ftp:file transfer proto
互联网中最老牌的文件传输协议

2.vsftpd安装及启用

1.安装ftp服务软件

dnf install vsftpd.x86_64 lftp.x86_64 -y
systemctl  enable --now vsftpd

2. 使用

带用户名的访问方式

lftp 172.25.254.251 -u westos

匿名用户的访问 :要修改配置文件

vim /etc/vsftpd/vsftpd.conf 
改为yes
systemctl  restart  vsftpd 重启服务

 如何在浏览器上访问:

systemctl  start firewalld.service  火墙开启了才能进行设置
   systemctl  status firewalld.service
     firewall-cmd --permanent  --add-service=ftp  把ftp服务加入火墙
    firewall-cmd --reload
   firewall-cmd --list-all

 浏览器输入:                   可以看到默认目录

ftp://172.25.254.251/

3.vsftpd基本信息

    服务名称:
    vsftpd.service
    配置目录:
    /etc/vsftpd
    主配置文件:
    /etc/vsftpd/vsftpd.conf
    默认发布目录:
    /var/ftp
    报错信息:
    550 ##程序本身拒绝
    553 ##文件系统权限限制
    500 ##权限过大
    530 ##认证失败
 

 1.家目录控制

新建一个目录 /root/test
编写配置文件vim /etc/vsftpd/vsftpd.conf
令添  anon_root=/root/test/


systemctl  restart  vsftpd

 2.匿名用户上传控制

一般情况匿名用户不能上传:把自己主机里的东西传到服务器

措施:

vim /etc/vsftpd/vsftpd.conf
anon_upload_enable=YES
systemctl restart vsftpd

然后:

put: /etc/passwd: Access failed: 553 Could not create file. (passwd) ##553报错 
ls -ld /var/ftp/pub/ 
chgrp ftp /var/ftp/pub/ 
chmod 775 /var/ftp/pub/ 
ls -ld /var/ftp/pub/ 
##权限过小
 ##更改所有组和权限 
systemctl restart vsftpd

 结果:这里的失误是没有进入pub直接put,所以报错

3.删除、目录建立、下载控制

anon_other_write_enable=YES
##删除重命令控制
anon_mkdir_write_enable=YES
##目录建立控制
anon_world_readable_only=NO
##下载控制
##匿名用户可以下载不能读的文件

重启服务。 结果测试

4.匿名用户上传文件权限设定

anon_umask=xxx
777-022=644
##设定ftp上传文件预留权限值
systemctl restart vsftpd
##重启服务

5.匿名用户上传文件的用户身份设定

##上传文件时所有人指定为westos
vim /etc/vsftpd/vsftpd.conf
chown_uploads=YES
chown_username=westos
##重启服务
(此时之前权限不生效)
chown_upload_mode=0644
##指定上传的文件权限为0644
systemctl restart vsftpd
##再次重启服务
lftp 172.25.254.251
##测试时,权限生效

 效果:

登陆数量控制 &上传速率控制

登陆连接默认最大建立50个 如何限定登陆个数?

如何限制匿名用户的下载速度?

1.登陆数量操作

 效果:两个shell连接251之后,第三个shell无法连接

2.下载速率操作

先制造一个够大的文件

文件产生:
##匿名用户的上传速率被控制在每秒100K
dd if=/dev/zero of=/mnt/bigfile bs=1M count=1000
du -sh /mnt/bigfile


vim /etc/vsftpd/vsftpd.conf
(anon_max_rate=102400)
systemctl restart vsftpd

效果:

5.本地用户的访问

本地用户登陆位置为自己的家目录
默认访问根下的home下的子目录

用户是服务器上的用户

新建用户:

 1.登陆控制:是否允许本地用户登录

vim /etc/vsftpd/vsftpd.conf

local_enable=YES  ####允许本地用户登录

 2.家目录控制

local_enable=YES
local_root=/root/cui
#
# Uncomment this to enable any form of FTP write command.
write_enable=NO

6.虚拟用户访问

1.建立虚拟用户过程

建立系统认证文件

vim /etc/vsftpd/virt_users
cat /etc/vsftpd/virt_users
##建立认证文件模板

加密认证文件

加密认证文件

db_load -T -t hash -f /etc/vsftpd/virt_users /etc/vsftpd/virt_users.db
##使用哈希算法进行转换加密
##否则系统不识别
##-T 转换
##-t type
##-f 指定转换文件

编辑认证策略

account
##账号
auth
##密码
session
##认证级别
required
##认证策略必须通过
pam_userdb.so
##利用插件去拒绝错误认证
db=/etc/vsftpd/virt_user
##认证名单

 cat /etc/pam.d/westos

account	    required   pam_userdb.so   db=/etc/vsftpd/westos_pam
auth        required   pam_userdb.so   db=/etc/vsftpd/westos_pam 	

更改配置参数

vim /etc/vsftpd/vsftpd.conf


systemctl restart vsftpd

pam_service_name=westos
userlist_enable=YES
guest_enable=YES
guest_username=ftp

 效果测试

2.虚拟用户家目录的独立设定

建立目录

 mkdir -p /ftphome/user{1..3}
touch /ftphome/user1/user1file
 touch /ftphome/user2/user2file
 touch /ftphome/user3/user3file
 mkdir /ftphome/user{1..3}/pub

配置文件中:

vim /etc/vsftpd/vsftpd.conf

local_root=/ftphomedir/$USER
##指定用户家目录,$USER是变量不是字符串
user_sub_token=$USER
##$符声明,家目录独立 表示$USER不是一个字符串

 配置文件+结果

3.用户配置独立

vim /etc/vsftpd/vsftpd.conf    :    user_config_dir=/etc/vsftpd/westos

 mkdir /etc/vsftpd/westos
vim /etc/vsftpd/westos/user1  用户配置文件  :    anon_upload_enable=YES

重启服务   systemctl  restart vsftpd

chgrp ftp /ftphome/user{1..3}/pub
 chmod 775  /ftphome/user{1..3}/pub

效果测试:分别以三个用户的身份上传文件,只有1用户能成功

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值