基于虚拟用户访问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