环境:假设有 两家公司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服务器的匿名用户怎么映射到本地系统中。。谢谢
leon143 于 2015-07-09 15:29:52发表:
谢谢分享
Whikla 于 2015-07-09 15:10:17发表:
严重支持楼主
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的一样,具体权限,自己看着分配。
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就行了。。
好了,我要去吃饭 了。。一会儿下午如果没事做,我就过来检查一下,并补充 。。