Liunx 环境下vsftpd的三种实现方法

vsftpd.conf 常见配置及含义说明 

作用范围

配置项及示例

说明

   匿名

anonymous_enable=YES

启用匿名访问

anon_umask=022

匿名用户所上传文件的权限掩码

anon_root=/var/ftp

匿名用户的FTP根目录

anon_upload_enable=YES

允许上传文件

anon_mkdir_write_enable=YES

允许创建目录

anon_other_write_enable=YES

开放其他写入权

anon_max_rate=0

限制最大传输速率,单位为字节

本地用户

local_enable=YES

是否启用本地系统用户

local_umask=022

本地用户所上传文件的权限掩码

local_root=/var/ftp

设置本地用户的FTP根目录

chroot_local_user=YES

是否将用户禁锢在主目录

local_max_rate=0

限制最大传输速率(字节/秒)

 全局配置

listen=YES

是否以独立运行的方式监听服务

listen_address=192.168.4.1

设置监听的IP地址

listen_port=21

设置监听FTP服务的端口号

write_enable=YES

是否启用写入权限

download_enable=YES

是否允许下载文件

dirmessage_enable=YES

用户切换进入目录时示.message文件(如果存在)的内容

xferlog_enable=YES

启用xferlog日志,默认记录到/var/log/xferlog文件

xferlog_std_format=YES

启用标准的xferlog日志格式,若禁用此项,将使用vsftpd自己的日志格式

connect_from_port_20=YES

允许服务器主动模式(从20端口建立数据连接)

pasv_enable=YES

允许被动模式连接

pasv_max_port=24600

设置用于被动模式的服务器最大端口号

pasv_min_port=24500

设置用于被动模式的服务器最小端口号

pam_service_name=vsftpd

设置用于用户认证的PAM文件位置(/etc/pam.d/目录中对应的文件名)

userlist_enable=YES

是否启用user_list用户列表文件

userlist_deny=YES

是否禁止user_list列表文件中的用户帐号

max_clients=0

最多允许多少个客户端同时连接(0为无限制)

max_per_ip=0

对来自相同IP地址的客户端,最多允许多少个并发连接(0为无限制)。

tcp_wrappers=YES

是否启用TCP_Wrappers主机访问控制(TCP Wrappers的应用将在后续课程中讲解)

匿名用户形式实现

(1)修改vsftpd.conf配置文件,开放匿名访问,上传许可

#cd /etc/vsftpd

#vim vsftpd.conf

        anonymous_enable=YES

        local_enable=YES

        write_enable=YES

        local_umask=022

        dirmessage_enable=YES

        xferlog_enable=YES

        connect_from_port_20=YES

        xferlog_std_format=YES

        listen=YES

        pam_service_name=vsftpd

        userlist_enable=YES

        tcp_wrappers=YES

        anon_umask=022         //设置匿名用户上传建立文件时的权限掩码

        anon_upload_enable=YES          //允许匿名上传文件

        anon_mkdir_write_enable=YES    //允许匿名用户创建目录

   (2)重启服务

        #service   vsftpd restart

        #chkconfig vsftpd on

本地用户形式实现

(1)创建本地用户

#useradd tom

(2)修改vsftpd.conf   开放本地用户

#vim /etc/vsftpd.conf

        anonymous_enable=NO    //若不需要启用匿名访问,可将些设为NO

        local_enable=YES       //允许本地用户访问

        write_enable=YES

        local_umask=022

        dirmessage_enable=YES

        xferlog_enable=YES

        connect_from_port_20=YES

        xferlog_std_format=YES

        listen=YES

        pam_service_name=vsftpd

        userlist_enable=YES

        tcp_wrappers=YES

        chroot_local_user=YES //为安全起见,将用户禁锢于其宿主目录

        local_max_rate=102400 //本地用户下载上传限速为100K/s

(3)结合user_list文件设置公允许本地用户tom 访问vsftpd服务器

  #vim /etc/vsftpd/user_list

   tom                          //添加此行,并清空其他内容

  #vim /etc/vsftpd/vsftpd.conf

 userlist_enable=YES           //添加以下两行并重启服务

userlist_deny=NO

虚拟用户形式实现

    vsftpd服务的虚拟用户数据库是使用的Berkeley DB 格式的数据文件。

需要使用db_load命令工具,安装db4-utils-4.3.29-10.el5.i386.rpm

(1)首先建立文本格式的用户名密码列表

        #vim /etc/vsftpd/user_login.list

        mike

        123

        john

        456

        #db_load –T -t hash -f user_login.list user_login.db

        #chmod 600 user_login.*     //降低文件权限提高安全

 (2)建立FTP访问的根目录及虚拟用户对应的系统账号

        #useradd –d /var/ftproot –s/sbin/nologin laye //建立映射账号

        #chmod 755 /var/ftproot    //更改FTP根目录权限

 (3) 建立PAM认证文件

        #cp -p /etc/pam.d/vsftpd /etc/pam.d/vsftpd.vu

        #vim   /etc/pam.d/vsftpd.vu

        auth required    pam_userdb.so db=/etc/vsftpd/user_login

account   required   pam_userdb.so  db=/etc/vsftpd/user_login

(4)  修改vsftpd.conf 配置文件,添加虚拟用户支持

        anonymous_enable=NO

        local_enable=YES       //使用虚拟用户需要启用本地用户

        write_enable=YES

        anon_umask=022         //设置虚拟用户上传建立文件时的权限掩码

        dirmessage_enable=YES

        xferlog_enable=YES

        connect_from_port_20=YES

        xferlog_std_format=YES

        listen=YES

        pam_service_name=vsftpd.vu    //修改使用的PAM文件位置

        userlist_enable=YES

        tcp_wrappers=YES

        guest_enable=YES              //启用用户映射功能

        guest_username=laya          //将映射用户指定为laya

(5) 为不同虚拟用户建立独立的配置文件

      修改vsftpd.conf主配置文件,添加目录支持

      user_config_dir=/etc/vsftpd/vusers_dir

      #mkdir /etc/vsftpd/vusers_dir   //创建用户配置目录

      #cd /etc/vsftpd/vusers_dir

      #vim john                    //为john建立独立配置文件

      anon_upload_enable=YES

      anon_mkdir_write_enable=YES

      #touch mike        //为mike建立空配置文件,无额外权限设置

 注意:在vsftpd服务中,虚拟用户账户默认作为匿名用户处理以降低权限,因此对应权限设置通常使用以 anon_ 开头的配置项。

发表评论

电子邮件地址不会被公开。 必填项已用*标注