免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1399 | 回复: 0
打印 上一主题 下一主题

利用Vsftpd 搭建虚拟用户FTP服务器 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-07-30 23:24 |只看该作者 |倒序浏览
概述:所谓虚拟用户,就是指客户端登录时所使用的FTP用户名和密码在系统里并不真实存在;实际上每个虚拟用户是通过一个真实的本地用户来登录FTP服务器的。这样做可以有效的控制服务器的安全,因为用户并不真实存在,所以该用户不能远程登录,也不能从物理上登录该系统,从而达到了保护服务器的目的。

软件来源:http://vsftpd.beasts.org
软件版本:vsftpd-2.0.5.tar.gz
操作系统:RedHat Enterprise Linux AS3

1.vsftpd软件的安装
# tar –zxvf vsftpd-2.0.5.tar.gz //解压软件包
# cd vsftpd-2.0.5               //进入解压后的目录
# make && make install             //编译并安装
# cp vsftpd.conf /etc/             //拷贝主配置文件到/etc目录下
# chkconfig vsftpd off             //关闭进程守护模式

2.添加一个本地用户,并且禁止其SSH方式登录
# useradd -s /sbin/nologin wjc

3.编辑vsftpd主配置文件
# vi /etc/vsftpd/vsftpd.conf
local_enable=YES     //打开本地用户
local_umask=022   //本地用户创建文件夹和上传文件的权限,实际值=777-umask

connect_from_port_20=YES    //连接端口为20

max_per_ip=4         //每个IP最多连接4个客户端
max_clients=200      //FTP最多支持200个用户

listen=YES        //打开监听模式,否则需要用守护模式启动服务

guest_enable=YES //开启虚拟用户访问功能
guest_username=wjc   //虚拟用户实际用wjc用户来登录
pam_service_name=ftp.vu     //密码验证方式
user_config_dir=/etc/vsftpd_user_conf //虚拟用户的配置文件所在的目录

注:,因为主配置文件是被先读的,然后再读用户的配置文件。所以
在主配置文件中给的权限越低,在后面用户管理的时候对用户的权限划分的空间就越大

4.编辑验证方式文件
# vi /etc/pam.d/ftp.vu
auth     required /lib/security/pam_userdb.so db=/etc/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd_login

5.编辑虚拟用户和密码
# vi /tmp/login.txt
test1   //用户名
test1   //密码
test2   
test2

6.虚拟用户的权限控制
# mkdir /etc/vsftpd_user_conf
在/etc/vsftpd_user_conf目录下用虚拟用户的登录名来命名其配置文件
给用户test1添加配置文件
# vi /etc/vsftpd_user_conf/test1
local_root=/var/ftpvu/testftp      //限制虚拟用户登录的主目录
anon_world_readable_only=no     //准许虚拟用户可以浏览
write_enable=yes              //开放写的权限
anon_upload_enable=yes      //开放上传权限
anon_mkdir_write_enable=yes //开放创建目录的权限
anon_other_write_enable=yes //其他写权限,如:重命名

同样你可以创建test2文件,给test2用户创建不同的权限,以达到控制虚拟用户不同的访问权限的目的

7.建立访问者的口令库文件,然后修改其权限
# db_load -T -t hash -f /tmp/login.txt /etc/vsftpd_login.db
# chmod 600 /etc/vsftpd_login.db

8.开启FTP服务
# /usr/local/sbin/vsftpd &

9. 验证服务是否开启
//查看进程
# ps -x | grep vsftpd      
//查看端口
# netstat –tln

10.关闭FTP服务
# ps –x | grep vsftpd
# kill -9 PID     //-9这个参数为强制,可不加;PID为进程号,可以用ps来查看
目前没有更好的办法来停止FTP服务,所以只能杀进程来关闭了

11.可能出现的问题
500 OOPS: could not bind listening IPv4 socket
有可能FTP服务器是运行的;
也有可能是因为没有关闭守护状态


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/72296/showart_1097445.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP