一  在RHEL4中配置FTP(vsftpd)
1  设置IP
   #netconfig
    ipaddress 192.168.0.2            *IP地址*
    netmask   255.255.255.0        *子网掩码*
   #service network restart           *重启服务使设置生效*
  
2  安装与启动
  # cd /media/cdrom/RedHat/RPMS               *进入安装目录*
  # rpm -ivh vsftpd-2.0.1-5.i386.rpm              *安装vsftpd服务器软件*
  # service vsftpd start                                   *启动vsftpd服务即可进行只读访问*
  # iptables –F                                                *关闭防火墙*
 
3 vsftpd主配置文件与相关配置文件
/etc/vsftpd/vsftpd.conf                                 *vsftpd主配置文件 *
/etc/vsftpd.ftpuser                                          *保存不允许登录FTP的本地用户帐号*
/etc/init.d/vsftpd                                             *vsftpd服务器的启动脚本*
/var/ftp                                                              *匿名用户登录目录*
/etc/vsftpd.user_list                                      *与vsftpd.conf对vsftpd.user_list中指定帐号进行访问控制*
 
4  vsftpd服务的简单应用
 允许匿名用户上传
# vi /etc/vsftpd/vsftpd.conf         *编辑vsftpd主配置文件*
anon_upload_enable=YES   
anon_mkdir_write_enable=YES
# service vsftpd restart                   *重启vsftpd服务使设置生效*
# cd /var/ftp/
# chmod 777 *                                   *设置相应权限*
 
将FTP本地用户禁锢在宿主目录中
# vi /etc/vsftpd/vsftpd.conf          *在vsftpd主配置文件中添加如下配置行*
       chroot_local_user=YES         
# service vsftpd restart              *重启服务使设置生效*

二、配置FTP服务器的虚拟用户
 
 (1)建立虚拟用户口令库文件
 
# vi /home/logins.txt               *默认不存在,需手动创建*
 
       mike                        *奇数行表示虚拟用户名*
      123                          *偶数行设置用户口令*
       john
       123
 
(2)生成vsftpd的认证文件
# rpm -ivh db4-utils-4.2.52-7.1.i386.rpm   
# db_load -T -t hash -f /home/logins.txt /etc/vsftpd/vsftpd_login.db        *生成认证文件*
# chmod 600 /etc/vsftpd/vsftpd_login.db       *设置认证文件只对用户可读可写*
 
(3)建立虚拟用户所需的PAM配置文件
# vi /etc/pam.d/vsftpd.vu               *默认不存在,需手动创建,并添加如下内容*
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
 
(4)建立虚拟用户及要访问的目录并设置相应的权限
# useradd -d /home/ftpsite virtual     *建立虚拟用户所需系统用户帐号,并指定宿主目录*
# chmod 700 /home/ftpsite              *设置该帐号宿主目录的权限为宿主可读可写*
 
(5)设置vsftpd.conf配置文件,并去除关于禁固在宿主目录的选项
# vi /etc/vsftpd/vsftpd.conf           *编辑配置文件,添加虚拟用户的配置内容如下*
guest_enable=YES
guest_username=virtual
pam_service_name=vsftpd.vu
chroot_local_user=YES
# service vsftpd restart               *重启vsftpd服务使设置生效*
 
(6)对虚拟用户设置不同的权限
# vi /etc/vsftpd/vsftpd.conf           *设置主配置文件,添加用户配置文件目录设置如下*
user_config_dir=/etc/vsftpd_user_conf
# mkdir /etc/vsftpd_user_conf          *建立用户配置文件目录*
# /etc/vsftpd_user_conf/mike                    
# /etc/vsftpd_user_conf/john           *为虚拟用户建立单独的与用户名相同的配置文件*
配置文件的内容及含义如下:
# vi /etc/vsftpd_user_conf/john
anon_world_readable_only=NO            *表示用户可以浏览FTP目录和下载文件*
anon_upload_enable=YES                 *表示用户可以上传文件*    
anon_mkdir_write_enable=YES            *表示用户具有建立和删除目录的权限*
anon_other_write_enable=YES            *表示用户具有文件改名和删除文件的权限*
#service vsftpd restart                *重启vsftpd服务*
 
在vsftpd服务器中通过主配置文件vsftpd.conf中的以下几个选项对整体资源进行限制
max_clients=100                   *允许最大的客户端连接数 *
max_per_ip=5                      *同一IP最大客户端的连接数
local_max_rate=5000000            *设置本地用户最大传输数率(B/s) *
anon_max_rate=2000000             *匿名用户最大的传输数率(B/s) *
 
 
三种账号
账号     所在目录         默认权限
匿名      /var/ftp           只能下载
本地                     用户主目录    最大权限
虚拟      /home/ftpsite     没权限