swlenovo 发表于 2016-03-23 11:46

Centos7 vsftpd 虚拟用户 登陆 pam验证不过~求大神帮忙看一下

我的操作过程是这样

创建用户
useradd vsftpd

# cat /etc/vsftpd/auth_virtual_ftp_user
songwang
123456

db_load -T -t hash -f /etc/vsftpd/auth_virtual_ftp_user /etc/vsftpd/auth_virtual_ftp_user.db

# cat /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_port=2203
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=NO
tcp_wrappers=YES
use_localtime=YES
guest_enable=YES
guest_username=vsftpd
user_config_dir=/etc/vsftpd/user_conf


# cat /etc/pam.d/vsftpd
auth       required     /lib64/security/pam_userdb.so    db=/etc/vsftpd/auth_virtual_ftp_user
account    required     /lib64/security/pam_userdb.so    db=/etc/vsftpd/auth_virtual_ftp_user


# cat /etc/vsftpd/user_conf/songwang
anon_world_readable_only=no
write_enable=yes
anon_mkdir_write_enable=yes     
anon_other_write_enable=yes     
anon_upload_enable=yes 
local_root=/data/vsftp/songwang


mkdir /data/vsftp/songwang
chown -R /data/vsftp/songwang

# systemctl status vsftpd.service
● vsftpd.service - Vsftpd ftp daemon
   Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; disabled; vendor preset: disabled)
   Active: active (running) since 三 2016-03-23 11:30:25 CST; 14min ago
Process: 720 ExecStart=/usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf (code=exited, status=0/SUCCESS)
Main PID: 721 (vsftpd)
   CGroup: /system.slice/vsftpd.service
         └─721 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf

3月 23 11:41:03 localhost vsftpd: PAM (vsftpd) illegal module type: auth      
3月 23 11:41:03 localhost vsftpd: PAM (vsftpd) illegal module type: account   


为什么我的PAM验证不过,谁能帮帮我~

woxizishen 发表于 2016-03-29 13:52

vsftpd我之前玩的差不多了,没撒意思,就是虚拟用户没去测试,没时间,可以给你一个详细的操作步骤,自己参考吧。

虛擬用戶支持
3.3 进行认证: 
首先,安装Berkeley DB工具,很多人找不到db_load的问题就是没有安装这个包。
yum install db4 db4-utils 或者 yum install db4*(*表示安装所有含db4字符的安装包)
然后,创建用户密码文本/etc/vsftpd/vuser_passwd.txt(①这五个地方的文件名要一样) ,注意奇行是用户名,偶行是密码
ftpuser1
ftppass1
ftpuser2
ftppass2
接着,.生成虚拟用户认证的db文件
db_load -T -t hash -f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.db(②、③这五个地方的文件名要一样)
 
编辑认证文件/etc/pam.d/vsftpd
注释掉/etc/pam.d/vsftpd中所有的内容 反正已经不要本地用户的认证了
特别注意 以下区别 
32位系统增加以下两句:
auth      required     pam_userdb.so db=/etc/vsftpd/vuser_passwd(④这五个地方的文件名要一样)
account   required     pam_userdb.so db=/etc/vsftpd/vuser_passwd(⑤这五个地方的文件名要一样)
64位系统增加以下两句:
auth   required    /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd(④这四个地方的文件名要一样)
account required    /lib64/security/pam_userdb.sodb=/etc/vsftpd/vuser_passwd(⑤这四个地方的文件名要一样)
查看系统支持位数: getconf LONG_BIT
最后,创建虚拟用户个性RHEL/CentOS FTP服务文件
mkdir /etc/vsftpd/vuser_conf/
vi /etc/vsftpd/vuser_conf/ftpuser1
内容如下:
local_root=/opt/var/ftp1 虚拟用户的根目录(根据实际修改)
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

4. 为目录附权限并重启动vsftp服务:
mkdir /opt/var/ftp/ftpuser1(创建ftp储存目录)
chmod 777 /opt/var/ftp/ftpuser1
service vsftpd restart
页: [1]
查看完整版本: Centos7 vsftpd 虚拟用户 登陆 pam验证不过~求大神帮忙看一下