1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > vsftp匿名访问目录_vsftp 常用配置(匿名/系统用户/虚拟用户)

vsftp匿名访问目录_vsftp 常用配置(匿名/系统用户/虚拟用户)

时间:2022-11-19 20:52:12

相关推荐

vsftp匿名访问目录_vsftp 常用配置(匿名/系统用户/虚拟用户)

vsftp 常用配置(匿名/系统用户/虚拟用户)

vsftp(Very Secure FTP)服务是一款FTP软件,它安全、高效、稳定,在企业中很常用。

一、vsftp安装

1.1 安装vsftp

yum install vsftp* -y

1.2 查看/etc/vsftpd/vsftp.conf配置文件

#拒绝匿名用户登录

anonymous_enable=NO

#启用本地系统用户访问

local_enable=YES

#本地用户写权限

write_enable=YES

#本地用户上传文件的权限为-rw-r--r-- (最高权限666-022=644

local_umask=022

#是否显示目录说明文件(需要自己创建.message)

dirmessage_enable=YES

#记录使用者上传下载信息,保存路径:/var/log/vsftpd.log

xferlog_enable=YES

#数据传输使用20端口

connect_from_port_20=YES

#以xferlog格式写入日志

xferlog_std_format=YES

#YES为standalone启动 NO为通过Xinetd管理

listen=NO

#启用ipv6监听

listen_ipv6=YES

#通过/etc/pam.d/vsftpd进行认证

pam_service_name=vsftpd

#禁止/etc/vsftpd中的user_list和ftpusers用户访问(黑名单)

userlist_enable=YES

#通过/etc/host.allow、host.deny中的IP进行访问控制

tcp_wrappers=YES

1.3 启动vsftp,并通过windows访问

systemctl restart vsftpd.service

二、匿名用户配置

2.1 在上面配置文件中加入以下代码

# 匿名用户登陆的username

ftp_username=ftp

# 是否允许匿名用户创建目录

anon_mkdir_write_enable=YES

# 是否允许匿名用户对文件增、删、改

anon_other_write_enable=YES

# 是否允许匿名用户上传文件

anon_upload_enable=YES

2.2 赋予匿名用户ftp权限访问pub文件夹,重启vsftpd

chown -R ftp /var/ftp/pub

chmod 755 /var/ftp/pub

systemctl restart vsftpd.service

2.3 匿名访问测试

​ 测试可以正常写入数据,OK

三、系统用户配置(财务部caiwubu 研发部yanfabu 市场部shichangbu)分别访问自己的目录

3.1 创建系统用户(测试)

useradd caiwubu

useradd yanfabu

useradd shichangbu

echo "666666" | passwd --stdin caiwubu

echo "666666" | passwd --stdin shichangbu

echo "666666" | passwd --stdin yanfabu

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

#拒绝匿名用户登录

anonymous_enable=NO

#启用本地系统用户访问

local_enable=YES

#本地用户写权限

write_enable=YES

#本地用户上传文件的权限为-rw-r--r-- (最高权限666-022=644

local_umask=022

#是否显示目录说明文件(需要自己创建.message)

dirmessage_enable=YES

#记录使用者上传下载信息,保存路径:/var/log/vsftpd.log

xferlog_enable=YES

#数据传输使用20端口

connect_from_port_20=YES

#以xferlog格式写入日志

xferlog_std_format=YES

#YES为standalone启动 NO为通过Xinetd管理

listen=NO

#启用ipv6监听

listen_ipv6=YES

#通过/etc/pam.d/vsftpd进行认证

pam_service_name=vsftpd

#禁止/etc/vsftpd中的user_list和ftpusers用户访问(黑名单)

userlist_enable=YES

#通过/etc/host.allow、host.deny中的IP进行访问控制

tcp_wrappers=YES

3.3 访问测试

登录进去,创建test文件夹,在/home/caiwubu下可以正常显示

四、虚拟用户访问

系统用户访问可以解决匿名用户带来的安全问题,但是系统用户一般可以用于登录linux系统,存在安全隐患,故可以使用多个虚拟用户映射一个服务器系统用户,对外只暴露虚拟用户,该虚拟用户不能登录linux系统,并且可以设置相应的权限来保障系统安全

4.1 创建虚拟用户列表

vim /etc/vsftpd/virtusers_list

# 第一行账号 第二行密码 以此类推

caiwubu

666666

yanfabu

666666

4.2 生成虚拟用户数据文件

#db_load 将virtusers中的密码加密,并生成virtusers.db给系统使用,virtusers文件可删除

db_load -T -t hash -f /etc/vsftpd/virtusers_list /etc/vsftpd/virtusers.db

#设定PAM验证文件,并指定对虚拟用户数据库文件进行读取

chmod 700 /etc/vsftpd/virtusers.db

4.3 配置pam验证文件

vim /etc/pam.d/vsftpd 在行首插入如下,其他的注释

auth required pam_userdb.so db=/etc/vsftpd/virtusers

account required pam_userdb.so db=/etc/vsftpd/virtusers

#db=后面的文件要与步骤二中的一致

4.4 新建一个系统用户(不需要设置密码,不需要登录系统)

useradd -s /sbin/nologin ftpuser

4.5 配置虚拟用户配置文件

mkdir -p /etc/vsftpd/vsftpd_user_conf/

vim /etc/vsftpd/vsftpd_user_conf/caiwubu

# 财务部用户登录的根目录

local_root=/home/ftpuser/caiwubu

write_enable=YES

anon_world_readable_only=NO

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

vim /etc/vsftpd/vsftpd_user_conf/yanfabu

# yanfabu用户登录的根目录

local_root=/home/ftpuser/yanfabu

write_enable=YES

anon_world_readable_only=NO

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

创建 虚拟用户登录的根目录

mkdir -p /home/ftpuser/{caiwubu,yanfanbu}

chown -R ftpuser:ftpuser /home/ftpuser

4.6 配置vim /etc/vsftpd/vsftpd.conf

anonymous_enable=NO

local_enable=YES

write_enable=YES

local_umask=022

dirmessage_enable=YES

xferlog_enable=YES

connect_from_port_20=YES

xferlog_std_format=YES

listen=NO

listen_ipv6=YES

pam_service_name=vsftpd

userlist_enable=YES

tcp_wrappers=YES

# ---------virtusers config--------------------

# 启用pam认证

pam_service_name=vsftpd

# 启用虚拟用户

guest_enable=YES

# 虚拟用户映射系统用户ftpuser

guest_username=ftpuser

# 虚拟用户与本地用户权限相同

virtual_use_local_privs=YES

# 虚拟用户配置文件目录

user_config_dir=/etc/vsftpd/vsftpd_user_conf

# -----------(可选)访问权限控制----------------

# 将用户目录限制为根目录(看不到家目录的其他目录)

allow_writeable_chroot=YES

# 是否禁止本地用户切换到家目录上级目录,绑定家目录为用户的根目录

chroot_local_user=NO

# 是否启用chroot列表文件,写入文件中的用户将锁定家目录

chroot_list_enable=NO

# 指定用户列表文件的文件路径

chroot_list_file=/etc/vsftpd/chroot_list

# ------------(可选) 被动模式-------------------

# 启用被动模式

pasv_enable=YES

# 端口范围

pasv_min_port=30000

pasv_max_port=31000

# Connect_from_port_20=NO 需要修改上面的此项

4.7 重启vsftp的服务,使用windows打开测试

systemctl restart vsftpd.service

注意:如果输入账号密码打不开,使用linux系统ftp连接过去,会提示报错信息

例如 提示anon_world_readable_only 的bool值错误,打开配置文件vim /etc/vsftpd/vsftpd_user_conf/caiwubu

发现该bool值后面有空格,删除后可以正常访问

(4.8 可选)实际生产中需要对虚拟用户进行访问控制

4.8.1 限制虚拟用户访问其他目录

在vim /etc/vsftpd/vsftpd.conf配置中添加如下

# 将用户目录限制为根目录(看不到家目录的其他目录)

allow_writeable_chroot=YES

# 是否禁止本地用户切换到家目录上级目录,绑定家目录为用户的根目录

chroot_local_user=YES

连接只能看到自己的家目录文件。

4.8.2 如果只需要个别用户可以访问其他目录,需要创建chroot_list文件

vim /etc/vsftpd/chroot_list

# 用户名称

yanfabu

vim /etc/vsftpd/vsftpd.conf

# 指定用户列表文件的文件路径

chroot_list_file=/etc/vsftpd/chroot_list

# chroot_list_file文件中的用户可以切换到其他目录

chroot_local_user=YES

chroot_list_enable=YES

测试完,研发部可以访问其他目录

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。