Rpm –ivh vsftpd.xxx.rpm
Rpm –ivh db4-utils ;rpm –ivh db4;
1、匿名用户形式:在默认安装的情况下,系统只提供匿名用户访问
2、本地用户形式:以/etc/passwd中的用户名为认证方式
3、虚拟用户形式:支持将用户名和口令保存在数据库文件或数据库服务器中。相对于FTP的本地用户形式来说,虚拟用户只是FTP服务器的专有用户, 虚拟用户只能访问FTP服务器所提供的资源,这大大增强系统本身的安全性。相对于匿名用户而言,虚拟用户需要用户名和密码才能获取FTP服务器中的文件, 增加了对用户和下载的可管理性。 对于需要提供下载服务,但又不希望所有人都可以匿名下载;既需要对下载用户进行管理,又考虑到主机安全和管理方便的FTP站点来说,虚拟用户是一种极好的 解决方案。
/etc/pam.d/vsftpd(用来加强vsftpd服务器用户的认证)
/etc/vsftpd/vsftpd.conf (vsftpd主配置文件)
/etc/vsftpd/ftpusers (位于此文件内的用户都不能访问vsftpd服务)
/etc/vsftpd/user_list此文件是有可能被拒绝的用户,也可能是允许的,取决于 user_list=yes或no ,等于yes列表中的用户禁止登录.
/var/ftp/pub (下载目录)
/usr/sbin/vsftpd (vsftpd 程序)
/etc/rc.d/init.d/vsftpd(启动脚本)
/etc/pam.d/vsftpd(pam认证)
#################匿名权限控制###############
anonymous_enable=YES #是否启用匿名用户
no_anon_password=YES #匿名用户login时不询问口令
下面这四个主要语句控制这文件和文件夹的上传、下载、创建、删除和重命名。
anon_upload_enable=(yes/no); #控制匿名用户对文件(非目录)上传权限。
anon_world_readable_only=(yes/no); #控制匿名用户对文件的下载权限(注 意:设置为yes不能下载,设置no能下载)
anon_mkdir_write_enable=(yes/no); #控制匿名用户对文件夹的创建权限
anon_other_write_enable=(yes/no); #控制匿名用户对文件和文件夹的删除和重命名
注:匿名用户下载是使用的是nobody这个用户,所以相应的O这个位置要有R权限才能被下载。若想让匿名用户能上传和删除权限,必需设置
write_enable=YES #全局设置,是否容许写入(无论是匿名用户还是本地用户,若要启用上传权限 的话,就要开启他)
anon_root=(none) #匿名用户主目录
anon_umask=(077) #匿名用户上传文件时有掩码(若想让匿名用户上传的文件能直接被匿名下载,就这设 置这里为073)
chown_uploads=YES #所有匿名上传的文件的所属用户将会被更改成chown_username
chown_username=whoever #匿名上传文件所属用户名
#################本地用户权限控制###############
write_enable=YES #可以上传(全局控制) 删除,重命名
local_umask=022 #本地用户上传文件的umask
local_root #设置一个本地用户登录后进入到的目录
download_enable #限制用户的下载权限
chown_uploads=YES #所有匿名上传的文件的所属用户将会被更改成 chown_username
chown_username=whoever #匿名上传文件所属用户名
user_config_dir=/etc/vsftpd/user_conf/ #后面跟存放配置文件的目 录,用来实现不同用户不同权限。
vim /etc/vsftpd/user_conf/username #加入指定的目录local_root=/data/www
chroot_list_enable=YES #如果启动这项功能,则所有列在chroot_list_file之中的使用者不能更改根目录 .默认值为yes。
chroot_list_file=/etc/vsftpd/chroot_list #指出被锁定在自家目录中的用户的列表文件。
vim /etc/vsftpd/chroot_list #写入限制的用户名
可以通过以下三条配置文件来控制用户切换目录
通过与chroot_local_user=YES/NO搭配能实现以下几种效果:
1、当chroot_list_enable=YES,chroot_local_user=YES时,在/etc /vsftpd.chroot_list文件中列出的用户,可以切换到其他目录;未在文件中列出的用户,不能切换到其他目录。
2、当chroot_list_enable=YES,chroot_local_user=NO时,在/etc/vsftpd.chroot_list 文件中列出的用户,不能切换到其他目录;未在文件中列出的用户,可以切换到其他目录。
3、当chroot_list_enable=NO,chroot_local_user=YES时,所有的用户均不能切换到其他目录。
4、当chroot_list_enable=NO,chroot_local_user=NO时,所有的用户均可以切换到其他目录。
###################虚拟用户设置###################
pam_service_name=vsftpd #设置PAM使用的名称,默认值为/etc/pam.d /vsftpd。
check_shell=YES #(注意:仅在没有pam验证版本时有用,是否检查用户有一个有效的 shell来登录 )
guest_enable= YES/NO #启用虚拟用户。默认值为NO。
guest_username=ftp #这里用来映射虚拟用户。默认值为ftp。(在此可以随便建一个用户,不要 设置密码)
virtual_use_local_privs=YES/NO #当该参数激活(YES)时,虚拟用户使用与本地用 户相同的权限。
#当此参数关闭(NO)时,虚拟用户使用与匿名用户相同的权限。默认情况下此参数是关闭的(NO)。
虚似用户的实现:
格式:db_load –T –t hash –f /etc/kuangye.users /etc/vsftpd/kuangye.login.db
auth required pam_userdb.so db=/etc/vsftpd/kuangye.login
account required pam_userdb.so db=/etc/vsftpd/kuangye.login
修改配置文件,添加user_config_dir=/etc/vsftpd/local_root 条目;然后在/etc/vs ftpd目录下,新建local_root目录;
在local_root下新建相应的虚似用户文件,在文件中写入:local_root=/home/kuangye/xxx;然 后更改权限:chmod 777 xxx;
在此还可以做虚似用户权限的细化,实现多个虚似用户登录同一文件夹而具有不同的权限.OK
#################服务器性能选项##############
ls_recurse_enable=YES #是否能使用ls -R命令以防止浪费大量的服务器资源
one_process_model #是否使用单进程模式
use_localtime=NO #显示目录清单时是用本地时间还是GMT时间,可以通过mdtm命令来达到 一样的效果
pam_service_name=vsftpd #定义PAM 所使用的名称,预设为vsftpd
pasv_promiscuous=NO #关闭安全检查,小心呀.
nopriv_user=nobody #当服务器运行于最底层时使用的用户名
pasv_address=(none) #使vsftpd在pasv命令 回复时跳转到指定的IP地址.(服务器联接跳转)
################用户登录控制###############
ftpd_banner=welcome to FTP . #login时显示欢迎信息.如果设置了 banner_file则此设置无效
banner_file=/etc/vsftpd/banner #定义登录信息文件的位置
cmds_allowed #设置客户端登录vsftpd服务器后,客户端可以执行的命令集合.如果设 置了该命令,则其它没有列在其中的命令都拒绝执行.
setproctitle_enable=YES #显示会话状态信息,关!
两种控制方式:一种控制主机访问,另一种控制用户访问。
tcp_wrappers=YES/NO #设置vsftpd是否与tcp wrapper相结合来进行主机的访问控制。默认值为YES。如果启用,则vsftpd服务器会检查/etc/hosts.allow 和/etc/hosts.deny 中的设置,来决定请求连接的主机,是否允许访问该FTP服务器。这两个文件可以起到简易的防火墙功能。
vsftpd.ftpusers #用于保存不允许进行FTP登录的本地用户帐号。就是vsftp用户的黑名 单
userlist_enable=yes
userlist_deny=yes #userlist_deny设置使用vsftpd.user_list文件来控制用户的访问 权限,当userlist_deny设置为"yes"时,vsftpd.user_list中的用户都不能登录vsftpd服务器;设置为"NO "时,只有该文件中的用户才能登录访问vsftpd服务器,当然,这些都是在userlist_enable被设置为"YES"时才生效.
userlist_file=/etc/vsftpd/vsftpd.user_list #定义限制/允许 用户登录的文件
############## 日志设置##################
xferlog_enable=YES #开启日记功能
xferlog_std_format=YES #使用标准格式
log_ftp_protocol=NO #当 xferlog_std_format关闭且本选项开启时,记录所有ftp请求和回复,当调试比较有用.
xferlog_file=/var/log/vsftpd.log #日志文件位置
############## 目录定义 #################
Dirlist_enable =YES #设置是否允许用户列目录.默认值为"yes",即允许列目录.
Dirmessage_enable=YES #设置当用户切换到一个目录时,是否显示目录切换信息,如果 设置为"yes”,则显示"message_file"指定文件中的信息(默认是显示.message)文件信息.
Force_dot_files=YES #设置是否显示以"."开头的文件,默认是不显示的.
Message_file=.mesage #用于指定目录切换时显示的信息所在的文件,默认值 为".message".
Hide_ids=YES #隐藏文件的所有者和组信息,匿名用户看到的文件所有者和组全变成ftp
#############用户连接选项#################
max_clients=100 #可接受的最大client数目
max_per_ip=5 #每个ip的最大client数目
connect_from_port_20=YES #使用标准的20端口来连接ftp
listen_address=192.168.0.2 #绑定到某个IP, 其它IP不能访问
listen_port=2121 #绑定到某个端口
ftp_data_port=2020 #数据传输端口
pasv_max_port=0 #pasv连接模式时可以使用port 范围的上界,0 表示任意。默认值为0。
pasv_min_port=0 #pasv连接模式时可以使用port 范围的下界,0 表示任意。默认值为0。
port_enable=yes #允许使用主动模式
pasv_enable=yes #允许使用被动模式
banned_email_file=/etc/vsftpd.banned_emails #禁止使用的匿 名用户登陆时作为密码的电子邮件地址
##############安全选项#################
Idle_session_timeout=600 #(用户会话空闲后10分钟)
Data_connection_timeout=120 #(将数据连接空闲2分钟断)
Accept_timeout=60 #(将客户端空闲1分钟后断)
Connect_timeout=60 #(中断1分钟后又重新连接)
Local_max_rate=50000 #(本地用户传输率50K)
Anon_max_rate=30000 # (匿名用户传输率30K)
对于参数的详细的解释
cmds_allowed=ABOR,ACCT,APPE,CWD,CDUP,DELE,HELP,LIST,MODE,MDTM,MKD,NOOP,NLST,PASS,PASV,PORT,PWD,QUIT,REIN,RETR,RMD,RNFR,RNTO,SITE,SIZE,STOR,STAT,STOU,STRU,SYST,TYPE,USER
CWD – change working directory 更改目录
DELE – delete a remote file 删除文件
LIST – list remote files 列目录
MKD – make a remote directory 新建文件夹
NLST – name list of remote directory
PWD – print working directory 显示当前工作目录
RETR – retrieve a remote file 下载文件
RMD – remove a remote directory 删除目录
RNFR – rename from 重命名
RNTO – rename to 重命名
STOR – store a file on the remote host 上传文件
# ABOR – abort a file transfer 取消文件传输
# CWD – change working directory 更改目录
# DELE – delete a remote file 删除文件
# LIST – list remote files 列目录
# MDTM – return the modification time of a file 返回文件的更新时间
# MKD – make a remote directory 新建文件夹
# NLST – name list of remote directory
# PASS – send password
# PASV – enter passive mode
# PORT – open a data port 打开一个传输端口
# PWD – print working directory 显示当前工作目录
# QUIT – terminate the connection 退出
# RETR – retrieve a remote file 下载文件
# RMD – remove a remote directory
# RNFR – rename from
# RNTO – rename to
# SITE – site-specific commands
# SIZE – return the size of a file 返回文件大小
# STOR – store a file on the remote host 上传文件
# TYPE – set transfer type
# USER – send username
# less common commands:
# ACCT* – send account information
# APPE – append to a remote file
# CDUP – CWD to the parent of the current directory
# HELP – return help on using the server
# MODE – set transfer mode
# NOOP – do nothing
# REIN* – reinitialize the connection
# STAT – return server status
# STOU – store a file uniquely
# STRU – set file transfer structure
# SYST – return system type
MSN空间完美搬家到新浪博客!