Chinaunix首页 | 论坛 | 博客
  • 博客访问: 597132
  • 博文数量: 70
  • 博客积分: 3219
  • 博客等级: 中校
  • 技术积分: 1197
  • 用 户 组: 普通用户
  • 注册时间: 2006-02-13 12:20
个人简介

谢谢您的对我的博客的关心,同时希望这个站点真的能够对您有所帮助。 如果可以请告诉我你的联系方式(可能的话告诉我两个或更多,我不希望失去任何一个关注本主页人士的联系,不论你是我的老友,或是一位新朋友,对于我来说您十分重要)

文章分类
文章存档

2021年(1)

2020年(13)

2018年(1)

2013年(12)

2012年(2)

2009年(2)

2008年(6)

2007年(20)

2006年(13)

分类: LINUX

2008-05-29 14:34:54


参考了网上的vsftp虚拟用户的配置文档,自己做了下测试:

注意,在编辑配置文档时,没行最后不要留下空格!!否则vsftp运行会报错!!

#tar zxf vsftpd-2.0.6.tar.gz
#cd vsftpd-2.0.6
#vi builddefs.h //编辑builddefs.h 文件,将文件内容改成如下:

#########################builddefs.h#############
#ifndef VSF_BUILDDEFS_H
#define VSF_BUILDDEFS_H

#define VSF_BUILD_TCPWRAPPERS
#define VSF_BUILD_PAM
#undef VSF_BUILD_SSL

#endif /* VSF_BUILDDEFS_H */
#########################builddefs.h#############
说明:支持tcp_wrappers,支持PAM认证方式,不支持SSL,网上的文章用的2.0.3的版本加上了SSL支持,我照者做可以编译;本文改成了2.0.6版本,编译没法通过,所以把SSL的支持去掉了。

#make //用make命令编译vsftpd-2.0.6

#ls -l vsftpd  //看看有没有vsftpd文件,确定是否编译成功

创建必要的帐号,目录:

#useradd nobody //可能你的系统已经存在此帐号,那就不用建立
#mkdir /usr/share/empty //可能你的系统已经存在此目录,那就不用建立
#mkdir /var/ftp //可能你的系统已经存在此目录,那就不用建立
#useradd -d /var/ftp ftp //可能你的系统已经存在此帐号,那就不用建立
#chown root:root /var/ftp
#chmod og-w /var/ftp

请记住,如果你不想让用户在本地登陆,那么你需要把他的登陆SHELL设置成/sbin/nologin,

安装vsftp配置文件,可执行程序,man等:

#install -m 755 vsftpd /usr/local/sbin/vsftpd
#install -m 644 vsftpd.8 /usr/share/man/man8
#install -m 644 vsftpd.conf.5 /usr/share/man/man5
#install -m 644 vsftpd.conf /etc/vsftpd.conf

这样就安装完成了,那么我们开始进行简单的配置

对于用DB库存储用户名及密码的方式来说:

(1)查看系统是否有相应软件包

# rpm –qa | grep db4

db4-devel-4.2.52-7.1
db4-4.2.52-7.1
db4-utils-4.2.52-7.1

(2)建立一个logins.txt的文件,单行为用户名,双行为密码,例如

# cat /home/logins.txt

user1
123456
user2
123456

(3)建立数据库文件并设置文件属性

#db_load -T -t hash -f /home/logins.txt /etc/vsftpd_login.db
#chmod 600 /etc/vsftpd_login.db

(4)建立认证文件

#vi /etc/pam.d/ftp 内容为如下两行

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

(5)建立一个虚拟用户

useradd -d /home/vsftpd -s /sbin/nologin vsftpd

只要更改这个虚拟用户的目录,那么ftp登录之后的目录也就随之更改

ls -ld /home/vsftpd

drwx------ 3 vsftpd vsftpd 1024 Jun 6 22:55 /home/vsftpd/

(6)编写配置文件
  注意:所有的配置文件,包括每个用户的配置文件,中每一行配置语句后面不能有空格

#vi /etc/vsftpd.conf

#####################/etc/vsftpd.conf#########################
listen=YES //使用standalone启动vsftpd
listen_port=21
max_clients=100 //可接受的最大连接数
max_per_ip=5 //每个IP最大的连接数
local_max_rate=5120000 //本地用户的传输比率(b/s)
tcp_wrappers=YES //支持tcp_wrappers,限制访问(/etc/hosts.allow,/etc/hosts.deny)
anonymous_enable=NO //禁用匿名账户
local_enable=YES //PAM方式此处必须为YES
write_enable=NO //全局控制不可以上传
anon_upload_enable=NO //匿名用户不可以上传
anon_mkdir_write_enable=NO //匿名用户不可以建目录
anon_other_write_enable=NO //匿名用户不可以修改
chroot_local_user=YES //不充许用户更改根目录
guest_enable=YES
guest_username=vsftpd //这两行的意思是采用虚拟用户形式
virtual_use_local_privs=YES //虚拟用户和本地用户权限相同
user_config_dir=/etc/vsftpd_user_conf //定义虚拟用户配置文件目录
pasv_enable=YES //建立资料联机采用被动方式
pasv_min_port=30000 //建立资料联机所可以使用port 范围的上界,0表示任意。默认值为0。
pasv_max_port=30999 //建立资料联机所可以使用port 范围的下界,0表示任意。默认值为0。
xferlog_enable=YES //开启日志记录
xferlog_file=/var/log/vsftpd.log //日志存放文件位置
idle_session_timeout=600 //空闲连接超时
data_connection_timeout=120 //数据传输超时
accept_timeout=60 //PAVS请求超时
connect_timeout=60 // PROT模式连接超时
#####################/etc/vsftpd.conf#########################

(7)建立每个用户的根目录、配置文件的目录和配置文件

    配置test1用户可以下载、上传、修改 /home/vsftpd/test1里的文件:

# mkdir /home/vsftpd/user1
# mkdir /etc/vsftpd_user_conf
# vi /etc/vsftpd_user_conf/user1 文件内容如下

############/etc/vsftpd_user_conf/user1################
local_root=/home/vsftpd/user1
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
############/etc/vsftpd_user_conf/user1################

  配置test2用户只能下载/home/vsftpd/test1里面的文件:
#vi /etc/vsftpd_user_conf/user2 文件内容如下:

##############/etc/vsftpd_user_conf/user2################
local_root=/home/vsftpd/user2
write_enable=NO
anon_world_readable_only=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
##############/etc/vsftpd_user_conf/user2################

#chmod 700 /home/vsftpd/user1
#chown vsftpd.vsftpd /home/vsftpd/user1


OK,vsftp的虚拟用户配置完成了,用ftp命令试试就知道了。

阅读(1606) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~