RHEL5.5 下vsftp服务器搭建
                                                  
 
一、搭建环境 及所需软件包
        RHEL5.5 + vsftpd-2.0.5-16.el5_4.1.i386 + db4-utils-4.3.29-10.el5.i386
        两个软件包的安装无前后顺序
 
二、简述:
   
FTP 命令
get 命令用于下载文件,put命令用于上传文件
mget 和mput用于一次下载或上传多个文件
bye 命令可退出ftp命令交互环境
 
启动和关闭
启动脚本名称是vsftpd
/etc/rc.d/init.d/vsftpd {start|stop|restart|condrestart|status}
 
vsftpd 服务需要设置在运行级别3和5自动启动
# chkconfig --level 35 vsftpd on
 
服务启动、重启、停止、状态
# service vsftpd {start/restart/stop/status}
 
注:需要关闭linux系统的防火墙
chkconfig –level 2345 iptables off
使用setup命令设置防火墙为禁用
vsftpd 服务一览
后台进程:
    vsftpd
类型:
    System V 服务
使用端口:
    20(ftp-data) ,21(ftp)
配置文件:
    /etc/vsftpd/vsftpd.conf
    /etc/vsftpd/ftpusers
    /etc/pam.d/vsftpd
日志文件:
    /var/log/vsftpd.log
 
主配置文件vsftpd.conf缺省配置
 
    anonymous_enable=YES
    # 是否允许匿名访问
 
    local_enable=YES
    # 是否允许本地/系统用户访问
 
    write_enable=YES
    # 是否开放对本地用户的写权限
 
    local_umask=022
    # 本地用户的文件生成掩码
 
    dirmessage_enable=YES
    # 是否在切换目录时显示其下的.message文件内容
 
    xferlog_enable=YES
    # 是否启用上传和下载日志
 
    connect_from_port_20=YES
    # 是否启用FTP数据端口20的连接请求
 
    xferlog_std_format=YES
    # 是否使用标准的ftpd xferlog日志格式
 
    pam_service_name=vsftpd
    # 设置PAM认证服务的配置文件名称
 
    userlist_enable=YES
    # 是否检查userlist_file设置文件中指定的用户是否访问vsftpd服务器
 
    listen=YES
    # 是否处于独立启动模式
 
    tcp_wrappers=YES
    # 是否使用tcp_wrappers作为主机访问控制方式
 
注意:配置文件中没有出现的配置项,将使用默认配置。并于配置项的默认配置请使用:#man 5 vsftpd.conf 进行查看
 
解决vsftp日志记录时间错误问题(与真实时间相差约8小时),在主配置文件vsftpd.conf加入一行: use_localtime=YES
 
 
三、vsftp创建虚拟用户:
步骤:
建立虚拟用户口令库文件
生成vsftpd的认证文件
建立虚拟用户所需的PAM配置文件
建立虚拟用户所要访问的目录并设置相应权限
设置vsftpd.conf配置文件
 
操作步骤:
1 、建立虚拟用户口令库文件,如:/etc/logins.txt
   口令库文件中奇数行设置用户名,偶数行设置口令: (此处账号密码以公司5.71FTP示例)
    # touch /etc/logins.txt
    # vi /etc/logins.txt
admin
    ftp.project
    up
    up.project
    down
    down.ftp
2 、生成vsftpd的认证文件
    使用db_load命令生成认证文件
    # db_load -T -t hash -f /etc/logins.txt /etc/vsftpd/vsftpd_login.db
    “db_load”由db4-utils-4.2.52-7.1(版本号可能不一样)软件包安装
 
3 、设置认证文件只对所有者可读可写
    # chmod 600 /etc/vsftpd/vsftpd_login.db
 
4 、建立虚拟用户所需的PAM配置文件
      修改文件/etc/pam.d/vsftpd文件,内容如下(建议将原有文件备份,再将文件原内容全部清空,加入以下内容):
     
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
 
/etc/pam.d/vsftpd 文件原内容:
#%PAM-1.0
#session    optional     pam_keyinit.so    force revoke
#auth       required    pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
#auth       required    pam_shells.so
#auth       include     system-auth
#account    include     system-auth
#session    include     system-auth
#session    required     pam_loginuid.so
 
5 、建立虚拟用户及要访问的目录并设置相应的权限
    建立所有虚拟用户帐号使用的系统用户帐号并设置宿主目录的权限     
    # useradd -d /project dhwl 此用户是与虚拟用户进行关联的本地用户
    # chmod 700 /project
 
6 、设置vsftpd.conf配置文件
    在配置文件中添加虚拟用户的配置内容:
    guest_enable=YES
    guest_username= dhwl
    pam_service_name=vsftpd
 
7 、重新启动vsftpd服务程序
   对vsftpd.conf文件修改后需要重新启动vsftpd服务程序
   # service vsftpd restart
 
对虚拟用户设置不同的权限
 
1 、设置主配置文件:
    在vsftpd.conf文件中添加用户配置文件目录设置
    user_config_dir=/etc/vsftpd/vsftpd_user_conf
 
2 、建立用户配置文件目录
    # mkdir /etc/vsftpd/vsftpd_user_conf
 
3 、为虚拟用户建立单独的配置文件
    用户配置文件名称与用户名相同,如:
 touch /etc/vsftpd/vsftpd_user_conf/ admin
 touch /etc/vsftpd/vsftpd_user_conf/ up
 touch /etc/vsftpd/vsftpd_user_conf/ down
 
虚拟用户配置文件中的配置项
 
每个FTP虚拟用户都可以独立设置其权限,如:
    local_root=/home/ftpsite
        设定虚拟用户FTP主目录,使无法向上跳转
    write_enable=YES
        允许此用户具有写权限
    anon_world_readable_only=NO
        表示用户可以浏览FTP目录和下载文件
    anon_upload_enable=YES
        表示用户可以上传文件
    anon_mkdir_write_enable=YES
        表示用户具有建立和删除目录的权利
    anon_other_write_enable=YES
        表示用户具有文件改名和删除文件的权限
 
【管理员用户权限配置--示例】
local_root=/home/ftpsite
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
 
【上传用户权限配置--示例】
local_root=/home/ftpsite
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
 
【下载用户权限配置--示例】
local_root=/home/ftpsite
write_enable=NO
anon_world_readable_only=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
 
配置vsftpd服务器中的资源限制
vsftpd 服务器中的资源使用可以进行限制(修改主配置文件vsftpd.conf),如:
   
    max_clients=100
        设置FTP服务器允许的最大客户端连接数,0:不限制
    max_per_ip=5
        设置对于同一IP地址允许的最大客户端连接数,0:不限制
    local_max_rate=500000
        设置本地用户的最大传输速率,单位bytes/sec,0:不限制
    anon_max_rate=200000
        设置匿名用户的最大传输速率,单位bytes/sec,0:不限制
 
 
(注:修改主配置文件vsftpd.conf后应重启vsftpd服务)
 
 
 
 
 
---Mr.zhang