vsftp服务

下面是主动与被动FTP优缺点的简要总结:

主动FTP对FTP服务器的管理有利,但对客户端的管理不利。因为FTP服务器企图与客户端的高位随机端口建立连接,而这个端口很有可能被客户端的防火墙阻塞掉。

被动FTP对FTP客户端的管理有利,但对服务器端的管理不利。因为客户端要与服务器端建立两个连接,其中一个连到一个高位随机端口,而这个端口很有可能被服务器端的防火墙阻塞掉。

幸运的是,有折衷的办法。既然FTP服务器的管理员需要他们的服务器有最多的客户连接,那么必须得支持被动FTP。我们可以通过为FTP服务器指定一个有限的端口范围来减小服务器高位端口的暴露。这样,不在这个范围的任何端口会被服务器的防火墙阻塞。虽然这没有消除所有针对服务器的危险,但它大大减少了危险

实验准备

(记得关闭防火墙与selinux)
注意:格式不能写错(多个空格都不行)权限是要ftp服务和系统文件权限都有才可执行权限

yum -y instal vsftp 
#yum安装vsftp服务或者rpm安装

1.匿名用户访问

anonymous_enable=YES
#允许匿名用户访问
anon_upload_enable=YES
#允许匿名用户上传
anon_mkdir_write_enable=YES
#允许匿名用户建立目录
#anon_umask
#设置上传的默认文件权限(默认是600)
#设置匿名用户默认访问位置(匿名用户会默认限制在默认或指定目录下)

上传需要将ftp伪用户设置默认上传目录的 /var/ftp/pub/ 属主,上传权限需要开启vsftp服务权限和上传目录权限

chowon ftp /var/ftp/pub 

本地用户访问 (没有此行的手动添加)

2.用户基本配置

local_enable=YES
#允许本地用户登陆
write_enable=YES
#允许本地用户上传
local_umask=022
#本地用户上传的默认权限
local_root=/var/ftp
#设置本地用户的FTP根目录(注意目录权限)
local_max_rate=0
#限制最大传输速率(字节/秒)
allow_writeable_chroot=YES
#加入这一行不会报“远程主机关闭连接

用户限制目录

chroot_local_user=YES
#开启此行才能把所有用户限制用户目录(或指定目录中):
chroot_list_enable=YES
#所有用户都被限制在用户目录(或指定目录下)下面文件中的用户将不受限制
chroot_listl_filer=/etc/vsftpd/chroot_list
#文件位置
userlist_enable=YES
#开启用户访问控制(没有此行手动写入)
userlist_deny=NO
userlist_file=/etc/vsftpd/user_list
#写入/etc/vsftpd/user_list文件中的用户可以访问ftp服务器
#没有写入的用户不能访问(默认如此)

不要把限制用户主目录和用户访问限制搞混
chroot_local_user=YES 用于把用户禁锢在主目录
uselist_enable=YES 用于用户访问控制

3.虚拟用户访问

1. 虚拟用户口令

创建 vim /etc/vsftpd/vuser.txt

cangls
#用户名
123
#密码
bols
#用户名
123
#密码

2. 生成虚拟用户口令认证文件

db_load -T -t hash -f /etc/vsftpd/vuser.txt /etc/vsftpd/vuser.db 
#把文本文档转变为认证的数据库
#yum -y install db4-utils 如果没安装口令认证命令,需要安装

3. 编辑vsftpd的PAM认证文件
vim /etc/pam.d/vsftpd

auth 	required pam_userdb.so db=/etc/vsftpd/vuser
account required pam_userdb.so db=/etc/vsftpd/vuser
新版本的
#auth    sufficient pam_userdb.so db=/etc/vsftpd/vsftpd
#account sufficient pam_userdb.so db=/etc/vsftpd/vsftpd

注释掉其他的行,加入这两行即可
注释掉其他行,可以禁止本地用户登陆,本地用户登陆是依赖这个文件(不可以直接注释vsftpd.conf文件里的local_user=YES,否则虚拟用户也不可以登录)

4. 建立本地映射用户并设置宿主目录权限

useradd -d /home/vftproot -s /sbin/nologin vuser
#此用户不需要登陆是映射用户,但用户名和配置文件必须一致
chmod 755 /home/vftproot

5. 修改配置文件

vim /etc/vsftpd/vsftpd.conf,加入:
guest_enable=YES
#允许虚拟用户登陆
guest_username=vuser
#FTP虚拟用户映射的系统用户
pam_service_name=vsftpd
#PAM认证文件(默认存在)
allow_writeable_chroot=YES
#最新版的vsftpd为了安全必须用户主目录
#(也就是/home/vsftpd/ftp1)没有写权限,才能登录
#或者使用allow_writeable_chroot=YES

6. 重启vsftpd服务,并测试

systemctl restart vsftpd.service

此时虚拟用户可以登陆,查看,下载,不能上传,默认上传文件的位置是宿主用户的家目录
7. 调整虚拟用户权限 权限使用的是匿名用户权限进行管理

vim /etc/vsftpd/vsftpd.conf

anonymous_enable=NO
#关闭匿名用户登陆,更加安全(不影响虚拟用户登陆)
anon_upload_enable=YES
#下载权限
anon_mkdir_write_enable=YES
#创建文件权限
anon_other_write_enable=YES
#给虚拟用户设置权限,允许所有虚拟用户上传

8. 单个虚拟机用户访问控制

修改配置文件 vim /etc/vsftpd/vsftpd.conf

user_config_dir=/etc/vsftpd/vusers_dir
#指定保存虚拟用户配置文件的目录

手工建立目录

mkdir /etc/vsftpd/vusers_dir

为每个虚拟用户建立配置文件

vim /etc/vsftpd/vusers_dir/文件名
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
#允许此用户上传
local_root=/tmp/目录名
#给cangls指定独立的上传目录

建立上传目录

mkdir /tmp/目录名
chown vuser /tmp/目录名/

如果不给虚拟用户指定单独的配置文件,则遵守主配置文件(/etc/vsftpd/vsftpd.conf)的权限
配置完效果如下:

  • 禁止匿名用户登陆(配置文件修改)
  • 禁止本地系统用户登陆(pam文件修改)
  • 允许虚拟用户登陆(配置文件修改)
  • 一个虚拟用户的上传目录是/tmp/目录名,并且允许查看,下载,上传
  • 一个虚拟用户的上传目录是虚拟用户的默认目录/home/vftproot,只能查看,下载。但是不能上传
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值