安装vsftpd,使用pam_mysql管理ftp帐号
一、安装
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登录了