tscccn
管理员
管理员
  • 粉丝31
  • 发帖数109
  • 铜币461枚
  • 威望589点
  • 银元200个
  • 社区居民
  • 忠实会员
阅读:4848回复:10

Vsftp服务安装搭建,虚拟用户配置

楼主#
更多 发布于:2013-02-28 01:16
版权声明:
转载原创文章请注明,文章出处:http://kinggoo.com
原文地址:http://kinggoo.com/app-installvsftpdconf.htm
新浪微博:@吐气喝水

由于帖子字数限制,无法全部发全,不过大部分都在这里了,查看全部可以到http://kinggoo.com/app-installvsftpdconf.htm

vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序。特点是小巧轻快,安全易用。
vsftpd 的名字代表"very secure FTP daemon", 安全是它的开发者 Chris Evans 考虑的首要问题之一。在这个 FTP 服务器设计开发的最开始的时候,高安全性就是一个目标。 目前在开源操作系统中常用的FTPD套件主要还有ProFTPD、PureFTPd和wuftpd等。更多请百度谷歌一下 安装环境:
centos 2.6.28 #1 SMP Sat Dec 17 01:54:27 CST 2011 x86_64 x86_64 x86_64 GNU/Linux
vsftpd.x86_64,版本2.0.5-24.el5_8.1
首先安装vsftpd、pam验证模块、db4数据存储(pam-devel,pam-devel,pam、db4-utils),直接把相关的都装上,省着麻烦
yum  install   vsftpd  pam pam-* db4 db4-*
安装好后,进入vsftpd的配置文件目录
cd /etc/vsftpd/
touch virtual_login
vim  virtual_login
创建一个保存用户及密码的文件

向其添加用户(一行用户一行是密码),并保存
kinggoouser
kinggoopasswd
comuser
compasswd
将文本内的帐号及密码添加到db4的数据库文件内
db_load -T  -t hash -f /etc/vsftpd/virtual_login /etc/vsftpd/virtual_login.db
配置pam内vsftpd的验证文件,添加验证模块路径,编辑vsftpd的pam配置文件
vim  /etc/pam.d/vsftpd
将其原内容全部注释掉,然后想其内添加
auth    required        /lib64/security/pam_userdb.so   db=/etc/vsftpd/virtual_login
account required        /lib64/security/pam_userdb.so   db=/etc/vsftpd/virtual_login
添加或如下所
cat  /etc/pam.d/vsftpd
#--------内容如下---------
#%PAM-1.0
#session    optional     pam_keyinit.so    force revoke
#auth       required    pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
#auth       required    pam_shells.so
#auth       include     system-auth
#account    include     system-auth
#session    include     system-auth
#session    required     pam_loginuid.so
auth    required        /lib64/security/pam_userdb.so   db=/etc/vsftpd/virtual_login
account required        /lib64/security/pam_userdb.so   db=/etc/vsftpd/virtual_login
创建一个vsftpd服务的用户vsftpd,你也可以使用-d来指定他的家目录
useradd -s /sbin/nologin vsftpd
useradd -d /var/ftp/kinggoouser -s /sbin/nologin ftp.kinggoouser
useradd -d /var/ftp/comuser -s /sbin/nologin ftp.comuser
OK,看一下我的vsftpd的配置文件

cat  /etc/vsftpd/vsftpd.conf |grep -v  -E "^(#|$)"
#--------内容如下------------
anonymous_enable=NO            #不允许匿名访问
local_enable=YES            #设定本地用户可以访问。注意:主要是为虚拟宿主用户,如果该项目设定为NO那么所有虚拟用户将无法访问
write_enable=YES            #允许写操作
local_umask=022                #创建或上传后文件的权限掩码
anon_upload_enable=NO        #禁止匿名用户上传
anon_mkdir_write_enable=NO    #禁止匿名用户创建目录
dirmessage_enable=YES        #进入目录时可以显示一些设定的信息,可以通过message_file=.message来设置
xferlog_enable=YES            #开启日志
connect_from_port_20=YES    #主动连接的端口号
chown_uploads=NO            #设定禁止上传文件更改宿主
xferlog_file=/var/log/vsftpd.log    #日志路径,记得自己创建一下并且对这个文件进行chown  vsftpd.vsftpd /var/log/vsftpd.log
xferlog_std_format=YES        #就是格式话日志格式的,你懂得。使用wu ftp软件时设置yes就行
nopriv_user=vsftpd            #因为我们把vsftpd的shell设置为nobody 了,所以 这个地方写vsftpd就可以啦!当然或者可以写成系统内的nobody 
async_abor_enable=YES        #设定支持异步传输功能
ascii_upload_enable=YES        #设定支持ASCII模式的上传
ascii_download_enable=YES    #设定支持ASCII模式的上传
ftpd_banner=Welcome to kinggoo.com FTP service.    #登陆欢迎语
chroot_list_enable=YES            #限定在自己的目录内,不让他出去,就比如如果设置成NO,那么当你登陆到ftp的时候,可以访问服务器的其他一些有权限目录。设置为YES后即,锁定你的目录了
chroot_list_file=/etc/vsftpd/chroot_list    #待会要把用户写到这个里面,写到这里的用户乖乖的呆在家目录下吧
listen=YES    #以standalone方式来启动
pam_service_name=vsftpd        #/etc/pam.d/下的vsftpd文件
userlist_enable=YES        #在/etc/vsftpd/user_list中的用户将不得使用FTP 
tcp_wrappers=YES    #支援 TCP Wrappers 的防火墙机制
guest_enable=YES    #启用虚拟用户功能
virtual_use_local_privs=YES    #虚拟用户的权限符合他们的宿主用户
user_config_dir=/etc/vsftpd/vsftpd_config    #虚拟用户个人vsftpd的配置文件存放路径。vsftpd_config是文件夹啊。注意:配置文件名必须和虚拟用户名相同
好了,保存一下上面的配置
创建一下保存虚拟用户配置文件的地方
mkdir /etc/vsftpd/vsftpd_config/
顺便把那个日志文件也创建了吧,怕忘记
touch /var/log/vsftpd.log 
chown 600 vsftpd.vsftpd /var/log/vsftpd.log
创建要将哪些用户固定在家目录的配置文件
touch /etc/vsftpd/chroot_list
将需要固定用户目录的用户名字写进去即可。
好了,进入保存虚拟用户配置的地方
cd /etc/vsftpd/vsftpd_config/
创建kinggoouser,还有comuser配置文件(如果你有其他用户,则一一效仿即可)
cat kinggoouser
#---------内容如下--------------
guest_enable=yes    #起用虚拟用户   ,centos下yes必须为小写字母
guest_username=ftp.kinggoouser    #映射本地虚拟用户
local_root=/var/ftp/kinggoouser        #如果当时创建用户的时候锁定一个目录了,那就可以不写
idle_session_timeout=600    #用户会话空闲后10分钟,嘿嘿你懂的
data_connection_timeout=120        #将数据连接空闲2分钟断,如上↑
max_clients=10    #最大客户端连接数
max_per_ip=5    #每个ip最大连接数
local_max_rate=0    #限制上传速率,0为无限制
保存退出
cat comuser
guest_enable=yes    #起用虚拟用户   ,centos下yes必须为小写字母
guest_username=ftp.comuser    #映射本地虚拟用户
local_root=/var/ftp/comuser        #如果当时创建用户的时候锁定一个目录了,那就可以不写
idle_session_timeout=600    #用户会话空闲后10分钟,嘿嘿你懂的
data_connection_timeout=120        #将数据连接空闲2分钟断,如上↑
max_clients=10    #最大客户端连接数
max_per_ip=5    #每个ip最大连接数
local_max_rate=30000000    #限制上传速率,0为无限制
保存退出
不过其实你还可以向上面的文件内添加这么一行
#这里是你给他设的权限 ,可以参考本文下面的内容。命令解释部分
cmds_allowed=ABOR,CWD,LIST,MDTM,NLST,PASS,PASV,PORT,PWD,QUIT,RETR,SIZE,TYPE,USER,ACCT,APPE
#
#########
重启服务
试试使用虚拟用户登陆



OK,没问题登陆成功

因为我们设置userlist_enable=YES,如果你向 /etc/vsftpd/user_list中添加虚拟用户名,那就无法登陆了
cat /etc/vsftpd/user_list 
#------内容如下
# vsftpd userlist
# If userlist_deny=NO, only allow users in this file
# If userlist_deny=YES (default), never allow users in this file, and
# do not even prompt for a password.
# Note that the default vsftpd pam config also checks /etc/vsftpd/ftpusers
# for users that are denied.
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody
kinggoouser    # < <<<<<<<<<<<<<在这里哦~~~~~~
Shell

登陆失败了吧,直接530了
The end.
好了到此为此,下面有很多我参考的一些资料,敬请观摩!结束
版权声明:
原文地址:http://kinggoo.com/app-installvsftpdconf.htm
会不会我不知道,反正我在努力!
tscccn
管理员
管理员
  • 粉丝31
  • 发帖数109
  • 铜币461枚
  • 威望589点
  • 银元200个
  • 社区居民
  • 忠实会员
沙发#
发布于:2013-02-28 01:21
@dongnan 字数对于我来说还是不够。。。。
会不会我不知道,反正我在努力!
tscccn
管理员
管理员
  • 粉丝31
  • 发帖数109
  • 铜币461枚
  • 威望589点
  • 银元200个
  • 社区居民
  • 忠实会员
板凳#
发布于:2013-02-28 01:21
会不会我不知道,反正我在努力!
tscccn
管理员
管理员
  • 粉丝31
  • 发帖数109
  • 铜币461枚
  • 威望589点
  • 银元200个
  • 社区居民
  • 忠实会员
地板#
发布于:2013-02-28 01:22
回复报错?啊啊
会不会我不知道,反正我在努力!
tscccn
管理员
管理员
  • 粉丝31
  • 发帖数109
  • 铜币461枚
  • 威望589点
  • 银元200个
  • 社区居民
  • 忠实会员
4楼#
发布于:2013-02-28 01:23
我这为什么不能回复  @dongnan
会不会我不知道,反正我在努力!
tscccn
管理员
管理员
  • 粉丝31
  • 发帖数109
  • 铜币461枚
  • 威望589点
  • 银元200个
  • 社区居民
  • 忠实会员
5楼#
发布于:2013-02-28 01:23
此帖已被屏蔽
会不会我不知道,反正我在努力!
tscccn
管理员
管理员
  • 粉丝31
  • 发帖数109
  • 铜币461枚
  • 威望589点
  • 银元200个
  • 社区居民
  • 忠实会员
6楼#
发布于:2013-02-28 01:23
此帖已被屏蔽
会不会我不知道,反正我在努力!
dongnan
总版主
总版主
  • 粉丝52
  • 发帖数2165
  • 铜币13236枚
  • 威望5838点
  • 银元150个
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 原创写手
7楼#
发布于:2013-02-28 08:20
tscccn:@dongnan 字数对于我来说还是不够。。。。回到原帖
@tscccn  目前论坛还是测试中,既然字数不够,调整到 2w .
dongnan
总版主
总版主
  • 粉丝52
  • 发帖数2165
  • 铜币13236枚
  • 威望5838点
  • 银元150个
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 原创写手
8楼#
发布于:2013-02-28 08:32
此帖已被屏蔽
tscccn
管理员
管理员
  • 粉丝31
  • 发帖数109
  • 铜币461枚
  • 威望589点
  • 银元200个
  • 社区居民
  • 忠实会员
9楼#
发布于:2013-02-28 13:43
dongnan: @tscccn   再次感谢反馈的信息,此问题是由于 php.ini 配置不当引起的,此问题已经处理。回到原帖
嗯嗯 还有别的呢,你把你vps里面一些设置也改改吧
会不会我不知道,反正我在努力!
tscccn
管理员
管理员
  • 粉丝31
  • 发帖数109
  • 铜币461枚
  • 威望589点
  • 银元200个
  • 社区居民
  • 忠实会员
10楼#
发布于:2013-02-28 13:43
dongnan: @tscccn  目前论坛还是测试中,既然字数不够,调整到 2w .回到原帖
会不会我不知道,反正我在努力!
游客

返回顶部