vsftpd 配置虚拟用户

<pre name="code" class="sql"><pre name="code" class="sql"><pre name="code" class="sql">配置虚拟用户(使用db实现)
------------------------------------------------------------------
(1)查看系统是否有相应软件包 
haproxy:/etc/haproxy# rpm -qa | grep vsftp

haproxy:/etc/haproxy# yum install vsftpd-2.2.2-13.el6_6.1.x86_64



# rpm –qa | grep db4 
db4-devel-4.2.52-7.1 
db4-4.2.52-7.1 
db4-utils-4.2.52-7.1 
(2)建立一个logins.txt的文件,单行为用户名,双行为密码,例如 
# vim /etc/vsftpd/virtual_user
ftpzjcap
1234567

haproxy:/etc/vsftpd# ls -ltr
total 24
-rwxr--r-- 1 root root  338 Oct 18  2014 vsftpd_conf_migrate.sh
-rw------- 1 root root 4599 Oct 18  2014 vsftpd.conf
-rw------- 1 root root  361 Oct 18  2014 user_list
-rw------- 1 root root  125 Oct 18  2014 ftpusers
-rw-r--r-- 1 root root   17 May 19 10:45 virtual_user


(3)建立数据库文件并设置文件属性 
# db_load -T -t hash -f /etc/vsftpd/virtual_user /etc/vsftpd/virtual_user.db
# chmod 600 /etc/vsftpd/virtual_user.db

haproxy:/etc/vsftpd# ls -ltr
total 36
-rwxr--r-- 1 root root   338 Oct 18  2014 vsftpd_conf_migrate.sh
-rw------- 1 root root  4599 Oct 18  2014 vsftpd.conf
-rw------- 1 root root   361 Oct 18  2014 user_list
-rw------- 1 root root   125 Oct 18  2014 ftpusers
-rw-r--r-- 1 root root    17 May 19 10:45 virtual_user
-rw-r--r-- 1 root root 12288 May 19 10:45 virtual_user.db
(4)建立认证文件 
# vim /etc/pam.d/vsftpd 插入如下两行 
##%PAM-1.0
#session    optional     pam_keyinit.so    force revoke
#auth       required	pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
#auth       required	pam_shells.so
#auth       include	password-auth
#account    include	password-auth
#session    required     pam_loginuid.so
#session    include	password-auth

auth required pam_userdb.so db=/etc/vsftpd/virtual_user     ###没有db结尾     
account required pam_userdb.so db=/etc/vsftpd/virtual_user  ###没有db结尾  

(5)编写配置文件
# vim /etc/vsftpd/vsftpd.conf

haproxy:/etc/vsftpd# grep -v "^#" 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
ascii_upload_enable=YES
ascii_download_enable=YES
chroot_list_enable=YES
listen=YES

pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES

guest_enable=YES
user_config_dir=/etc/vsftpd/vuser_conf

6)

v-lhb-nfs01:/root# mkdir -p /etc/vsftpd/vuser_conf

v-dev-redis01:/etc/vsftpd/vuser_conf# cat ftpzjcap 
local_root=/t/deploy/zjdev/nfs/images
write_enable=YES
anon_umask=022
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES



7)报错:

500 OOPS: could not read chroot() list file:/etc/vsftpd/chroot_list

v-lhb-nfs01:/root# touch /etc/vsftpd/chroot_list

v-lhb-nfs01:/root# chmod 644 /etc/vsftpd/chroot_list 


haproxy:/etc/vsftpd/vuser_conf# ftp 192.168.32.173
Connected to 192.168.32.173 (192.168.32.173).
220 (vsFTPd 2.2.2)
Name (192.168.32.173:root): ftpzjcap
331 Please specify the password.
Password:
530 Login incorrect.
Login failed.

报错信息如下:
haproxy:/etc/vsftpd/vuser_conf# tail -100 /var/log/secure
May 19 11:06:28 haproxy vsftpd[27543]: pam_succeed_if(vsftpd:auth): error retrieving information about user ftpzjcap
May 19 11:09:05 haproxy vsftpd[27574]: PAM unable to dlopen(/lib/security/pam_userdb.so): /lib/security/pam_userdb.so: cannot open shared object file: No such file or directory
May 19 11:09:05 haproxy vsftpd[27574]: PAM adding faulty module: /lib/security/pam_userdb.so
May 19 11:09:05 haproxy vsftpd[27574]: pam_unix(vsftpd:auth): check pass; user unknown
May 19 11:09:05 haproxy vsftpd[27574]: pam_unix(vsftpd:auth): authentication failure; logname= uid=0 euid=0 tty=ftp ruser=ftpzjcap rhost=192.168.33.29 
May 19 11:09:05 haproxy vsftpd[27574]: pam_succeed_if(vsftpd:auth): error retrieving information about user ftpzjcap


没有/lib/security/pam_userdb.so文件,修改为


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



 pam_userdb(vsftpd:auth): user_lookup: could not open database 




May 19 11:15:38 haproxy vsftpd[27631]: pam_unix(vsftpd:auth): check pass; user unknown
May 19 11:15:38 haproxy vsftpd[27631]: pam_unix(vsftpd:auth): authentication failure; logname= uid=0 euid=0 tty=ftp ruser=ftpzjcap rhost=192.168.32.173 
May 19 11:15:38 haproxy vsftpd[27631]: pam_succeed_if(vsftpd:auth): error retrieving information about user ftpzjcap




May 19 11:15:38 haproxy vsftpd[27631]: pam_succeed_if(vsftpd:auth): error retrieving information about user ftpzjcap
May 19 11:18:49 haproxy vsftpd[27660]: pam_userdb(vsftpd:auth): user_lookup: could not open database `/etc/vsftpd/vuser_passwd': No such file or directory




haproxy:/etc/vsftpd# cat /etc/pam.d/vsftpd 
##%PAM-1.0
#session    optional     pam_keyinit.so    force revoke
#auth       required	pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
#auth       required	pam_shells.so
#auth       include	password-auth
#account    include	password-auth
#session    required     pam_loginuid.so
#session    include	password-auth

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


haproxy:/etc/vsftpd# ls -ltr *db
-rw-r--r-- 1 root root 12288 May 19 10:45 virtual_user.db





 
 
 

                
配置vsftpd虚拟用户登录,需要按照以下步骤进行操作: 1. 安装vsftpd服务 在Linux系统中,使用以下命令安装vsftpd服务: ``` sudo apt-get update sudo apt-get install vsftpd ``` 2. 创建虚拟用户账号文件 使用以下命令创建虚拟用户账号文件: ``` sudo touch /etc/vsftpd/virtual_users.txt ``` 在该文件中,每行输入一个虚拟用户的账号和密码,格式为: ``` username1 password1 username2 password2 ... ``` 3. 创建虚拟用户目录 使用以下命令创建虚拟用户目录,例如: ``` sudo mkdir /home/vsftpd/user1 sudo mkdir /home/vsftpd/user2 ``` 4. 创建虚拟用户配置文件 使用以下命令创建虚拟用户配置文件: ``` sudo touch /etc/vsftpd/virtual_users.conf ``` 在该文件中,为每个虚拟用户配置对应的目录和权限,格式为: ``` user1 local_root=/home/vsftpd/user1 write_enable=YES chroot_local_user=YES user2 local_root=/home/vsftpd/user2 write_enable=YES chroot_local_user=YES ``` 其中,`local_root`指定虚拟用户的根目录,`write_enable`指定是否允许虚拟用户上传和下载文件,`chroot_local_user`指定是否将虚拟用户限制在其根目录下。 5. 配置vsftpd服务 编辑vsftpd服务的配置文件`/etc/vsftpd.conf`,做以下修改: ``` anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES use_localtime=YES xferlog_enable=YES connect_from_port_20=YES chroot_local_user=YES secure_chroot_dir=/var/run/vsftpd/empty pam_service_name=vsftpd rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key # 添加以下内容 user_config_dir=/etc/vsftpd/user_conf virtual_use_local_privs=YES guest_enable=YES guest_username=ftp user_sub_token=$USER local_root=/home/vsftpd/$USER ``` 其中,`user_config_dir`指定用户配置文件的目录,`virtual_use_local_privs`指定虚拟用户使用本地权限,`guest_enable`指定启用虚拟用户登录,`guest_username`指定虚拟用户用户名,`user_sub_token`指定虚拟用户根目录的变量名。 6. 创建用户配置文件目录 使用以下命令创建用户配置文件目录: ``` sudo mkdir /etc/vsftpd/user_conf ``` 7. 创建用户配置文件 在用户配置文件目录中,为每个虚拟用户创建一个配置文件,例如: ``` sudo touch /etc/vsftpd/user_conf/user1 sudo touch /etc/vsftpd/user_conf/user2 ``` 在该文件中,为每个虚拟用户指定其对应的虚拟用户配置文件,格式为: ``` include /etc/vsftpd/virtual_users.conf ``` 8. 重启vsftpd服务 使用以下命令重启vsftpd服务: ``` sudo systemctl restart vsftpd ``` 完成以上步骤后,即可使用虚拟用户登录vsftpd服务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

scan724

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值