安装vsftpd,使用pam_mysql管理ftp帐号

九 22nd, 2011

一、安装

sudo apt-get install vsftpd libpam-mysql

vsftpd支持三类用户登录,分别是系统用户、匿名帐户、虚拟帐户; 这里使用虚拟用户方式,并将其用mysql管理

vsftpd认证是使用pam,因此libpam-mysql是必需的

为pam创建数据库: 如pam_users,为此数据增加mysql访问权限,如用户名vsftpd …

为vsftpd创建用户表,如vsftpd,字段分别为user、password

同时也可以增加pam验证的日志表,如logs,字段分别是msg、user、pid、host、rhost、time

二、配置

编辑vsftpd的pam配置文件

sudo vi /etc/pam.d/vsftpd

内容如:

auth    required        pam_mysql.so user=pam passwd=V5WYsWzfEEEGuqm7 host=localhost db=pam_users table=vsftpd usercolumn=user passwdcolumn=password crypt=3 sqllog=1 logtable=logs logmsgcolumn=msg logusercolumn=user logpidcolumn=pid loghostcolumn=host logrhostcolumn=rhost logtimecolumn=time
account required        pam_mysql.so user=pam passwd=V5WYsWzfEEEGuqm7 host=localhost db=pam_users table=vsftpd usercolumn=user passwdcolumn=password crypt=3 sqllog=1 logtable=logs logmsgcolumn=msg logusercolumn=user logpidcolumn=pid loghostcolumn=host logrhostcolumn=rhost logtimecolumn=time

以上为用户验证的表、及日志表连接、字段等信息,其中crypt=3表示密码使用md5加密,0为原文,1为unix加密,2为mysql的password函数加密

修改/etc/vsftpd.conf

添加

guest_enable=YES
guest_username=daemon

user_config_dir=/etc/vsftpd_user_config
user_sub_token=$USER

意义在于:

将虚拟帐户访问方式设为允许、虚拟帐户映射到daemon这个实际用户

将目录/etc/vsftpd_user_config配置为FTP登录帐户的个性化配置目录,文件名为对应的用户名

 

如:我新增test用户的访问配置文件/etc/vsftpd_user_config/test,内容如下

local_root=/var/www
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
anon_umask=022

 

这样,为数据表pam_users.vsftpd增加一条test用户的记录,就能FTP登录了

标签:
本文的评论功能被关闭了.