Debian: vsftpd 通过 libpam-mysql 在mysql-server-5.0 上的认证的问题
Q:看了一些GOOGLE上关于vsftpd的资料,自己测试后,虚拟用户不能通过验证.
A:要注意的问题,
1. /etc/vsftpd.conf 配置文件要写正确. 如果配置错误, ps aux | grep vsftpd 没有vsftpd进程
2. /etc/pam.d/vsftpd 认证文件确保只包含关于libpam-mysql的模块指令
3. mysql-server-5.0 /etc/mysql/my.cnf的参数 old_passwords = fase,创建表的时候确保passwd字段长度能够容纳加密后密码字符串的长度
Q:安全问题
1.创建虚拟用户的系统用户
useradd vsftpd -d /home/vsftpd
2.设置权限
chown vsftpd:vsftpd /home/vsftpd
Q: ftp日志
A: awstats方案
1.配置awstats
2.添加配置vsftpd( awstats_configure.pl ),在/etc/awstats 下生成 awstats.vsftpd.conf配置文件
3.修改日志类型为 F(ftp日志):
LogType=F
4.修改日志格式为wuftpd 标准日志格式
LogFormat="%time3 %other %host %bytesd %url %other %other %method %other %logname %other %code %other %other"
A: 使用libpam-mysql 记录FTP日志
1.创建日志表
CREATE TABLE `log`(
lid INT NOT NULL auto_increment,
msg text,
user VARCHAR(32),
pid int,
host VARCHAR(32),
time VARCHAR(19),
PRIMARY KEY(lid)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
2. 配置/etc/pam.d/vsftpd 添加两行
auth required /lib/security/pam_mysql.so verbose(1) user=vsftpd passwd=vsftpd host=localhost db=vsftpd table=users usercolumn=user passwdcolumn=passwd crypt=mysql sqllog=true logtable=log logmsgcolumn=msg logusercolumn=user logpidcolumn=pid loghostcolumn=host logtimecolumn=timeaccount required /lib/security/pam_mysql.so verbose(1) user=vsftpd passwd=vsftpd host=localhost db=vsftpd table=users usercolumn=user passwdcolumn=passwd crypt=mysql sqllog=true logtable=log logmsgcolumn=msg logusercolumn=user logpidcolumn=pid loghostcolumn=host logtimecolumn=time