一、安装一下软件包
vsftpd-2.0.1-5.EL4.5
mysql-bench-4.1.20-1.RHEL4.1
mysql-devel-4.1.20-1.RHEL4.1
mysql-4.1.20-1.RHEL4.1
mysqlclient10-3.23.58-4.RHEL4.1
mysql-server-4.1.20-1.RHEL4.1
pam_mysql-0.50-6.src.rpm(注:该软件包请自行到网上下载,若需要,请留言)
(2008-8-8,现在已把其上传到附件)
安装方法如下
方法一:
1.执行rpm -i your-package.src.rpm
2. cd /usr/src/redhat/SPECS
3. rpmbuild -bp your-package.specs 一个和你的软件包同名的specs文件
4. cd /usr/src/redhat/BUILD/your-package/ 一个和你的软件包同名的目录
5. ./configure 这一步和编译普通的源码软件一样,可以加上参数
6. make
7. make install
方法二: (推荐用此方法安装)
1.执行rpm -i you-package.src.rpm
2. cd /usr/src/redhat/SPECS
前两步和方法一相同
3. rpmbuild -bb your-package.specs 一个和你的软件包同名的specs文件
这时,在/usr/src/redhat/RPM/i386/ (根据具体包的不同,也可能是i686,noarch等等)
在这个目录下,有一个新的rpm包,这个是编译好的二进制文件。
执行rpm -i new-package.rpm即可安装完成。
二、修改及添加vsftpd配置文件如下
# Example config file /etc/vsftpd/vsftpd.conf  DSR's ftp.
anonymous_enable=YES
anon_root=/var/ftp/pub
#anon_world_readable_only=NO
anon_max_rate=10000000
local_enable=YES
write_enable=YES
local_umask=022
#anon_upload_enable=YES
#anon_mkdir_write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
#connect_from_port_20=YES
pasv_enable=YES
pasv_min_port=50000
pasv_max_port=60000
#chown_uploads=YES
#chown_username=root
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
idle_session_timeout=600
data_connection_timeout=120
accept_timeout=60
connect_timeout=60
#nopriv_user=ftpsecure
#ascii_upload_enable=YES
#ascii_download_enable=YES
ftpd_banner=Welcome to DSR FTP service.
#deny_email_enable=YES
#banned_email_file=/etc/vsftpd.banned_emails
chroot_local_user=YES
#chroot_list_enable=YES
#chroot_list_file=/etc/vsftpd.chroot_list
#ls_recurse_enable=YES
max_clients=100
max_per_ip=3
guest_enable=YES
guest_username=up
pam_service_name=ftp
userlist_enable=YES
user_config_dir=/etc/vsftpd/conf                                                     
virtual_use_local_privs=YES                                                            
#enable for standalone mode                                                             
listen=YES                                                                             
tcp_wrappers=YES                                                                     
use_localtime=YES                                                                   
#hide_ids=YES    
 
三,建立虚拟帐户对应的系统帐户
#useradd -d /var/ftp/up up
 
四、创建/etc/vsftpd/conf 目录 并建立与虚拟用户同名的文件
          mkdir /etc/vsftpd/conf
          cd /etc/vsftpd/conft
          vi test
设置参数
local_root=/var/ftp/up/test
注意:test文件的权限和属主。
-rw-r--r--  1 root root 27 12月 27 12:35 test
在/var/ftp/up 目录下建立test目录,并改变属主和权限
#mkdir -p /var/ftp/up/test
#chown -R  up:up /var/ftp/up/test
#chown -R 700 /var/ftp/up/test
 

   
五、Mysql的相关设置
#Mysql–u root -p 
mysql>create database ftp;
mysql>use ftp;
mysql>create table users(name char(16) binary,passwd char(16) binary);
mysql>insert into users (name,passwd) values ('test', 'test');   (因mysql为4.1 ,用password函数的话,造成pam验证通不过,若需要使用该函数,请用mysql 5.0 以上,至于什么原因,有待大家一起研究)
mysql>grant select on ftp.users to ftpvu@localhost identified by '123a!';
mysql>quit
   
数据库内容:
mysql> select * from users;
+---------+------------+
| name    | passwd     |
+---------+------------+
| test      | test               |
+---------+------------+
1 rows in set (0.00 sec)

验证刚才的授权操作是否成功可以执行下面命令:
mysql -u ftpvu –p123a!ftp
mysql>select * from users;将看到上面的数据库内容
   Ok,数据库相关的配置完成了,若还需许以用户,只需按上面的insert扎入用户名和密码就可以了。
重新启动vsftpd 如出错什么锁死(据我的检验,是配置文件有问题)
services vsftpd restart
     还有就是iptables的设置了下面是它的配置文件
六、pam验证的设置
#touch  /etc/pam.d/ftp
#vi /var/pam.d/ftp  输入如下的内容
auth       required     /lib/security/pam_mysql.so  user=ftpdsr passwd=123a! host=localhost db=ftpacount table=user usercolumn=name passwdcolumn=passwd crypt=0(为一行内容)
       account    required     /lib/security/pam_mysql.so  user=ftpdsr passwd=123a! host=localhost db=ftpacount table=user usercolumn=name passwdcolumn=passwd crypt=0
七、iptables的设置
# Generated by iptables-save v1.2.11 on Sat Dec 29 16:42:25 2007
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]
-A INPUT -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type any -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A INPUT -p tcp -m tcp --dport 50000:60000 -j ACCEPT
-A OUTPUT -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
COMMIT
# Completed on Sat Dec 29 16:42:25 2007