基于虚拟用户访问ftp 关闭防火墙,selinux

过程如下 1、装包,配置、起服务 配置过程如下:

需写入vsftpd.conf配置文件中的内容如下:

anonymous_enable=NO ---- 匿名用户可登陆 local_enable=YES ---- 本地用户可登陆 write_enable=YES ---- 可以写入 local_umask=022 ----- 设定umask值 dirmessage_enable=YES ---- 目录欢迎信息功能 xferlog_enable=YES ---- 启用日志 connect_from_port_20=YES ---- 链接端口是20 xferlog_std_format=YES ---- 日志格式 listen=YES ---- 开启监听(必须开启) RHEL7可以不开

pam_service_name=vsftpd ---- pam模块验证用户身份 userlist_enable=YES ---- 开启名单机制 tcp_wrappers=YES ----- 支持防火墙

  1. yum provides */db_load 查找需要安装数据库建立工具的包,将其安装 RHEL7 需要安装 libdb-utils 2.建立虚拟用户列表 vim /etc/vsftpd/vsftp.users 一个虚拟用户文件,用户名和密码各占一行 xixi 123 haha 456

db_load -T -t hash -f /etc/vsftpd/vsftp.users /etc/vsftpd/vsftp.users.db --- 生成用户数据库文件 -T --- 支持多软件识别 -t --- 指定加密算法 -f --- 指定文件

3.建立一个不可登录用户用来作为虚拟用户的共享目录提供者 useradd -d /var/ftproot -s /sbin/nologin vftpuser chmod 755 /var/ftproot --给与其他用户有写入权限

4.建立虚拟用户登录认证的pam模块 vim /etc/pam.d/vuserftp #%PAM-1.0 auth required pam_userdb.so db=/etc/vsftpd/vsftp.users account required pam_userdb.so db=/etc/vsftpd/vsftp.users

5.修改主配置文件使其支持虚拟用户验证登录 chroot_local_user=yes guest_enable=YES guest_username=vftpuser 与上面创建的用户对应 user_config_dir=/etc/vsftpd/vuserdir 设置的一个目录,重启服务自动生成 pam_service_name=vuserftp 与上面/etc/pam.d/vuserftp文件对应

/etc/init.d/vsftpd restart

如果访问报错refusing to run with writable root inside chroot() 配置文件写入allow_writeable_chroot=YES 重启服务

touch /etc/vsftpd/vuserdir/xixi touch /etc/vsftpd/vuserdir/hahavi

6.为虚拟用户建立不同的权限 vim /etc/vsftpd/vuserdir/xixi anon_upload_enable=YES anon_umask=022

实验结果: xixi用户可上传下载 haha用户只能下载,不能上传 有防火墙需要设置包括selinux