红联Linux门户
Linux帮助

FTP的匿名用户问题

发布时间:2015-07-08 15:07:05来源:红联作者:lythonmao001
环境:假设有 两家公司A和B 的FTP服务器(IP不同)在同一台电脑上(一个网卡多个IP),,两家公司都可以匿名登陆到各自的FTP服务器上,上传,建目录, 下载。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
我先把我做好的工作说一下,
这里我采用一个网卡两个IP的处理,这里就弄了两个主配置文件,vsftpd.conf (监听192.168.1.150) 和 vsftpd_virtual.conf(192.168.1.160)
至于虚拟用户及认证文件相关的我就不写了,,不在这里讨论。

匿名用户部分,我是这么想的,我在/var/ftp目录下,分别为两公司建立各自的匿名用户文件夹AAA和BBB,然后,我希望A公司匿名访问到服务器上是AAA目录下,B公司匿名访问到服务器上是BBB目录 下.
------------------------------------------------------------------------------------------------------------------------------------------------------------------
问题:关于匿名用户的相关部分怎么写?包括vsftpd.conf和vsftpd_virtual.conf两个文件中的匿名用户部分怎么写, 虚拟IP的FTP服务器的匿名用户怎么映射到本地系统中。。谢谢
文章评论

共有 4 条评论

  1. leon143 于 2015-07-09 15:29:52发表:

    谢谢分享

  2. Whikla 于 2015-07-09 15:10:17发表:

    严重支持楼主

  3. lythonmao001 于 2015-07-09 11:49:52发表:

    下面是虚拟用户的权限配置文件

    首先我们在vsfptd_virtual.conf里面加上一句
    user_config_dir=/etc/vsftpd/vsftpd_virtual_user_config_dir ////(这是个目录,名称自己随便)

    //然后在本地创建这个目录
    mkdir /etc/vsftpd/vsftpd_virtual_user_config_dir
    //然后在里面创建虚拟用户的同名文件
    touch zhang3 li4
    //然后给zhang3设置权限,
    vi zhang3
    anon_world_readable_only=NO
    anon_upload_enable=YES
    anon_mkdir_write_enable=YES
    anon_other_write_enable=YES


    li4的文件,我就不写的,,内容和zhang3的一样,具体权限,自己看着分配。

  4. lythonmao001 于 2015-07-09 11:31:12发表:

    问题解决了,分享一下吧。

    总结:1. 一台服务器上架设两个及多个FTP服务器,就要有两个及多个主配置文件,每个配置文件监听不同的IP地 址。

    2. 如果出现虚拟用户,还要再制定一套虚拟用户的认证文件(这里我取名叫做pam_vsftpd_virtual ),

    3. 一台服务器上的两个及多个FTP服务器, 假如每个客户公司都用匿名用户登录,,我们就应该为每个公司建立不同的文件夹,每个公司的员工匿名登录到FTP服务器上,只能在本公司的文件夹下工作,当然在他们自己看来是 /目录 。


    现在有A公司和B公司,都可以匿名用户登录到FTP服务器,,当然虚拟用户肯定是要行的嘛?

    本地用户的配置,我就不写了,我只写一下虚拟用户的配置。

    //首先,我们创建保存有虚拟用户账号密码的文本文件

    vim login.txt
    #注意这个文件里,不能有空行,奇数行写帐号,偶数行写密码
    zhang3
    123456
    li4
    123456

    //vsftpd 是通过/etc/pam.d目录 下的认证文件来验证帐号密码,所以我们要在/etc/pam.d目录 下创建一 个由刚才创建的login.txt生成的认证文件(pam_vsftpd_virtual)。

    db_load -T -t hash -f login.txt /etc/vsftpd/vsftpd_login.db
    chmod 600 vsftpd_login.db
    vi /etc/pam.d/pam_vsftpd_virtual

    auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login.db
    account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login.db


    //刚才,我们都是在做虚拟用户及认证工作,,那么,虚拟用户登录到FTP服务器上到底是怎么来识别的呢。。我们这里来建立一个用户(我把它叫做virtual)用来映射虚拟用户

    mkdir -p /home/AAA/ftp
    chmod 777 /home/AAA/ftp
    useradd -d /home/AAA/ftp virtual

    //然后,修改主配置文件,首先,我们先把原来的vsftpd备份一下,然后再cp一份叫做,vsftpd_virtual.conf


    //要监听 的IP

    listen_address=192.168.1.160
    guest_enable=YES //启用虚拟用户
    guest_username=virtual //虚拟用户映射到本地的用户名
    pam_service_name=pam_vsftpd_virtual //认证文件要改成我们自己创建的。

    然后重启vsftpd就行了。

    至于虚拟用户各自的权限配置文件,去网上找找吧。。太累了。。不想写了。把匿名用户写了就收工

    现在就可以登录一下,测试虚拟用户了。

    //下面是匿名用户

    mkdir -p /var/ftp_sina/pub /// /var下面的文件夹名称,自己随便
    chmod 777 /var/ftp_sina/pub
    useradd -d /var/ftp_sina ftpsina /// 匿名用户映射到本地的名称,,自己随便

    在/etc/vsftpd/vsftpd_virtual.conf(这是我们刚刚修改过的主配置文件),里面加上一行,
    ftp_username=ftpsina /////(匿名用户映射到本地的名称)

    然后,重启vsftpd就行了。。

    好了,我要去吃饭 了。。一会儿下午如果没事做,我就过来检查一下,并补充 。。