试验环境red hat5.5(ip:192.168.0.228),vsftpd-2.3.5,mysql-5.1.45,pam_mysql-0.7RC1.tar.gz
软件的安装也可以使用yum,这样更方便编写脚本来实现自动安装
先安装vsftpd
tar zxvf vsftpd-2.3.5
cd vsftpd-2.3.5
vim builddefs.h
修改后的代码如下
- [root@defcon vsftpd-2.3.5]# cat builddefs.h
- #ifndef VSF_BUILDDEFS_H
- #define VSF_BUILDDEFS_H
- #define VSF_BUILD_TCPWRAPPERS
- #define VSF_BUILD_PAM
- #define VSF_BUILD_SSL
- #endif /* VSF_BUILDDEFS_H */
然后 make && make install
- # mkdir /etc/vsftpd
- # cp vsftpd.conf /etc/vsftpd/
- # cp RedHat/vsftpd.pam /etc/pam.d/
安装mysql
- # groupadd mysql
- # useradd -g mysql mysql
- # tar xzvf mysql-5.1.30.tar.gz
- # cd mysql-5.1.30
- # ./configure --prefix=/usr/local/mysql
- # make
- # make install
- # cp support-files/my-medium.cnf /etc/my.cnf
- # cd /usr/local/mysql
- # bin/mysql_install_db --user=mysql //初始化数据库。
- # chown -R root .
- # chown -R mysql var
- # chgrp -R mysql .
- # bin/mysqld_safe --user=mysql & //以mysql用户启动数据库。
安装mysql-devel
# rpm -ivh --nodeps mysql-devel-5.0.45-7.el5.i386
安装pam_mysql
- # tar xzvf pam_mysql-0.7RC1.tar.gz
- # cd pam_mysql-0.7RC1
- # ./configure --with-mysql=/usr/local/mysql //指定了mysql的安装位置
- # make
- # make install
- # cp .libs/pam_mysql.so /lib/security/ //复制用于验证登陆的文件。
建立映射到本地的用户
- # mkdir /var/ftp/
- # useradd -d /var/ftp ftp
- # chown root.root /var/ftp //为了安全
- # chmod 755 /var/ftp
在mysql中建库并设置相应权限
- mysql>create database mysql_vsftp;
- mysql>use mysql_vsftp;
- mysql>create table users(name char(20) binary,passwd char(20) binary);
- mysql>insert into users (name,passwd) values ('shanker','123');
- mysql>grant select,insert on mysql_vsftp.users to ftp@localhost identified by '123456'; //授权ftp用户可以读mysql_vsftp数据库的users表。
- mysql>flush privileges; //刷新权限设置。
- mysql>quit
建立PAM认证信息
- [root@defcon vsftpd-2.3.5]# cat /etc/pam.d/vsftpd.pam
- #%PAM-1.0
- #auth required /lib/security/pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed
- #auth required /lib/security/pam_unix.so shadow nullok
- #auth required /lib/security/pam_shells.so
- #account required /lib/security/pam_unix.so
- #session required /lib/security/pam_unix.so
- auth required /lib/security/pam_mysql.so user=ftp passwd=123456 host=localhost db=mysql_vsftp table=users usercolumn=name passwdpasswdcolumn=passwd crypt=0
- account required /lib/security/pam_mysql.so user=ftp passwd=123456 host=localhost db=mysql_vsftp table=users usercolumn=name passwdpasswdcolumn=passwd crypt=0
然后在/etc/vsftpd/vsftpd.conf后三行追加
- [root@defcon vsftpd-2.3.5]# tail -3 /etc/vsftpd/vsftpd.conf
- pam_service_name=vsftpd.pam
- guest_enable=YES
- guest_username=ftp
然后重启vsftpd ,测试用shanker 123登录成功。