首页 > 代码库 > Linux-vsFTP

Linux-vsFTP

搭建Linux-VSFTP

Linux搭建vsftp。所谓vsftp,就是very secure FTP daemon。在Linux上搭建FTP,可以选择proftpdpureftpd、和vsftpd等软件。

在vsftp创建虚拟的ftp用户。所谓虚拟用户,就是不在系统中存在,而且在不同的虚拟用户有不同的权限,例如UP用户只能上传,不能修改下载;DOWN用户只能下载,不能上传修改。

以红帽企业版RHEL5为例,搭建虚拟用户的vsftp设置静态IP地址。

安装软件:

      rpm -Uvh /media/cdrom/Server/vsftpd-2.0.5-10.el5.i386.rpm

Vsftp的配置文件在

    /etc/vsftpd/vsftpd.conf

我们可以复制一份配置文件作备份。因为原文件太多#了,cat一个新配置文件去掉所有#

    mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak

    cat /etc/vsftpd/vsftpd.conf.bak | grep -v ^# >>/etc/vsftpd/vsftpd.conf

然后就可以修改了

    vim /etc/vsftpd/vsftpd.conf

    anonymous_enable=NO        //是否启用匿名

    local_enable=YES           //是否本地用户登陆

    write_enable=YES           //是否写入权限(上传,删除等需开)

    local_umask=022            //本地用户上传文件默认权限掩码值

    dirmessage_enable=YES      //用户切换进入目录时显示

    xferlog_enable=YES         //启用日志

    connect_from_port_20=YES   //从20端口连接

    xferlog_std_format=YES     //标志日志格式

    listen=YES                 //监听

    pam_service_name=vsftpd    //用户认证PAM,位于/etc/pam.d/对应的文件

    userlist_enable=YES        //启用userlist用户列表

    tcp_wrappers=YES           //启用TCP_Wrappers主机访问控制。

启用匿名访问,则登陆时不需要用户名密码。

关闭匿名访问,启用userlist列表,则需要输入userlist里的用户和相应密码。

通常登陆ftp后,需要禁锢用户在其登陆目录下,否则将会乱窜其他目录。在配置文件中添加一项:

    chroot_local_user=YES

如果只监听一个地址,则修改配置文件:

    listen_address=192.168.1.1

    Listen_port=2121

使用FTP被动模式,则修改配置文件:

    pasv_enable=YES         //允许被动模式连接

    pase_mis_port=12306     //指定被动连接最小端口

    pasv_max_port=23061     //制定被动连接最大端口

限制FTP连接并发、传输速率等,则修改配置文件:

    max_clients=20           //限制并发客户最大20

    max_per_ip=2             //限制每个IP最大连接2

    anan_max_rate=50000      //限制匿名传输率为50kb/s

    local_max_rate=100000    //限制本地用户传输率为200kb/s

虚拟用户的FTP服务。

建立虚拟用户账号数据库。使用Berkeley DB格式的数据库文件来存放虚拟用户账号。需要用到db_load工具,游db4-utils软件包提供。

    rpm -Uvh /media/cdrom/Server/db4-utils-4.3.29-9.fc6.i386.rpm 

建立用户名密码,单数行为用户,双数行为密码!!

    vim /etc/vsftpd/vusers.list

    up

    up

    down

    down

保存退出

进入vsftp目录并创建Berkeley DB格式数据库文件。

    cd /etc/vsftpd/

    db_load -T -t hash -f vusers.list vusers.db

通过file vusers.db查看到如下内容:

    vusers.db: Berkeley DB (Hash, version 8, native byte-order)

修改账号安全性,将文件权限改为600

    chmod 600 /etc/vsftpd/vuser.*

添加虚拟用户映射账号,创建FTP根目录:

    useradd -d /var/ftproot -s /sbin/nologin virtual

    chmod 755 /var/ftproot/

为虚拟用户建立PAM认证文件:

    vim /etc/pam.d/vsftpd.vu

    #%PAM-1.0

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

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

保存退出

为不同虚拟用户建立独立的配置文件:

    mkdir /etc/vsftpd/vusers_dir

    mkdir /var/ftproot/up

确保上传成功,修改up的权限

    chmod a+x /var/ftproot/up

    mkdir /var/ftproot/down

配置up用户的信息

    vim /etc/vsftpd/vusers_dir/up

    local_root=/var/ftproot/up    //up用户的ftp目录

    anon_mkdir_write_enable=YES   //有写入权限

    anon_upload_enable=YES        //有上传权限

    download_enable=NO            //没有下载权限

    anon_umask=022                //上传后文件掩码

保存退出

配置down用户的信息

    vim /etc/vsftpd/vusers_dir/down

    local_root=/var/ftproot/down    //down用户的ftp目录

    download_enable=YES             //下载权限

保存退出

修改vsftp配置文件,添加虚拟用户支持:

    vim /etc/vsftpd/vsftpd.conf


    .....    //

    anonymous_enable=NO           //关闭匿名登陆

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

    guest_username=virtual        //制定映射的系统用户名

    pam_service_name=vsftpd.vu    //制定新的PAM认证文件

    user_config_dir=/etc/vsftpd/vusers_dir        //虚拟用户配置文件

保存退出

启动vsftpd服务

    service vsftpd start

如果访问不到,则将防火墙、selinux都关闭掉。

    service iptables stop

    setenforce 0

验证上传下载:

up用户登录,并上传。

技术分享

技术分享

下载却失败

技术分享

打开也失败

技术分享

down用户下载

技术分享

技术分享

上传却失败。

技术分享

至此,up和down用户仅存在数据库中,并没有真正存在系统里的用户。所以安全级别提高了,而且配置起来也简单,可以随心而欲,这就是VSFTP。

本文出自 “醉莫笑” 博客,请务必保留此出处http://leeby.blog.51cto.com/9776706/1600684

Linux-vsFTP