-
-5 16
-
说实话微酷在学习Linux的这些天来还一进没有搞定vsFTP这个看似简单又实际真的很简单的东东,除了会安装以外其它的配置都不怎么成功,不过今天终于唔出点门路了,于是微酷决定把学习vsFTP配置的过程详细的记录下来。
vsftpd介绍:
Vsftpd是一种在GPL许可下开放源代码的FTP服务器,用于多种UNIX系统和Linux系统。Vsftpd也称为Very Secure FTP Daemon,它是一种安全、快速、稳定的FTP服务器,能够高效地处理大量的并发连接。
安装vsftpd:
sudo apt-get install vsftpd
经过这么简单的一行命令就把vsftp服务器安装完毕了,以后的工作将围绕配置文件来展开。
<注:微酷配置环境为Ubuntu10.04版,安装后默认的FTP目录是/srv/ftp,就这个目录让我好找。>重启vsftpd:
sudo /etc/init.d/vsftpd restart
配置vsftpd:
vsftpd服务器的配置主要通过修改其主配置文件/etc/vsftpd.conf完成。需要注意的是,更改vsftpd.conf文件后,必须重启Vsftpd服务才能使设置生效。
【vsftpd.conf 配置详解】
只能连接FTP服务器,不能上传和下传:
anonymous_enable=yes (允许匿名登陆)
dirmessage_enable=yes (切换目录时,显示目录下.message的内容)
local_umask=022 (FTP上本地的文件权限,默认是077)
connect_form_port_20=yes (启用FTP数据端口的数据连接)*
xferlog_enable=yes (激活上传和下传的日志)
xferlog_std_format=yes (使用标准的日志格式)
ftpd_banner=welcome to www.vcoo.me (欢迎信息)
pam_service_name=vsftpd (验证方式)*
listen=yes (独立的VSFTPD服务器)*
注意:其中所有和日志欢迎信息相关连的都是可选项,打了星号的无论什么帐户都要添加,是属于FTP的基本选项开放匿名用户上传权限:
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES然后创建供匿名用户上传文件的目录并设定权限:
# mkdir /srv/ftp/vcoo
# chmod o+w /srv/ftp/vcoo由于匿名用户上传文件,需要对vcoo目录进行操作,而vcoo为root所有,匿名用户对于vcoo来说是其他用户,所以要加入其他用户(o)的写(w)权限。
限制用户在自家目录:
在默认配置中,本地用户可以切换到自家目录以外的目录进行浏览,并在权限范围内进行上传和下载,这无疑是个不安全因素。
我们可以设置chroot,让本地用户登录后只能访问自家目录,无法访问其他目录。
相关的选项有三个:chroot_local_user、chroot_list_enable、chroot_list_file。
限制用户在自家目录有两种做法:1、限制所有的本地用户在自家目录
chroot_local_user=YES
2、限制部分本地用户在自家目录
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list在/etc/vsftpd.chroot_list文件中加入要限制的本地用户名。注意一个用户名一行。
配置高安全级别的匿名FTP服务器:
VSFTPD自带的简单配置文件已经自称是偏执狂了,这里看看能否更加偏执一些。
#使用ftpd_banner取代VSFTPD默认的欢迎词,免得泄漏相关信息
ftpd_banner=Welcome to vcoo.me FTP Server
#只让匿名用户浏览可阅读的文件,不可以浏览整个系统
anon_world_readable_only=YES
#隐藏文件的所有者和组信息,匿名用户看到的文件的所有者和组全变为ftp
hide_ids=YES
#取消写权限
write_enable=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NOanon_other_write_enable=NO#使用单独模式,并指定监听的IP地址
listen_address=ip address
#对连接进行控制,还有超时时间,那就根据具体情况再说了。
connect_from_port_20=YES
pasv_min_port=50000
pasv_max_port=60000#控制并发数,限定每个IP地址的并发数,这个,根据用户自已定了。
max_clients=numerical value
max_per_ip=numerical value#限定下载速度,具体限多大,就由用户自己定了,80KB/s,也很快了吧。
anon_max_rate=80000
#启用详细的好志记录格式
xferlog_enable=YES
如何实现虚拟路径:
#mount --bind [原有的目录] [新目录]
#################VSFTP所有参数总结###############
#接受匿名用户
anonymous_enable=YES
#匿名用户login时不询问口令
no_anon_password=YES
#匿名用户主目录
anon_root=(none)
#接受本地用户
local_enable=YES
#本地用户主目录
local_root=(none)
#如果匿名用户需要密码,那么使用banned_email_file里面的电子邮件地址的用户不能登录
deny_email_enable=YES
#仅在没有pam验证版本时有用,是否检查用户有一个有效的shell来登录
check_shell=YES
#若启用此选项,userlist_deny选项才被启动
userlist_enable=YES
#若为YES,则userlist_file中的用户将不能登录,为NO则只有userlist_file的用户可以登录
userlist_deny=NO
#如果和chroot_local_user一起开启,那么用户锁定的目录来自/etc/passwd每个用户指定的目录(这个不是很清楚,很哪位熟悉的指点一下)
passwd_chroot_enable=NO
#定义匿名登入的使用者名称。默认值为ftp。
ftp_username=FTP
#################用户权限控制###############
#可以上传(全局控制).
write_enable=YES
#本地用户上传文件的umask
local_umask=022
#上传文件的权限配合umask使用
#file_open_mode=0666
#匿名用户可以上传
anon_upload_enable=NO
#匿名用户可以建目录
anon_mkdir_write_enable=NO
匿名用户其它的写权利(更改权限?)
anon_other_write_enable=NO
如果设为YES,匿名登入者会被允许下载可阅读的档案。默认值为YES。
anon_world_readable_only=YES
#如果开启,那么所有非匿名登陆的用户名都会被切换成guest_username指定的用户名
#guest_enable=NO
所有匿名上传的文件的所属用户将会被更改成chown_username
chown_uploads=YES
匿名上传文件所属用户名
chown_username=lightwiter
#如果启动这项功能,则所有列在chroot_list_file之中的使用者不能更改根目录
chroot_list_enable=YES
#允许使用"async ABOR"命令,一般不用,容易出问题
async_abor_enable=YES
管控是否可用ASCII 模式上传。默认值为NO。
ascii_upload_enable=YES
#管控是否可用ASCII 模式下载。默认值为NO。
ascii_download_enable=YES
#这个选项必须指定一个空的数据夹且任何登入者都不能有写入的权限,当vsftpd 不需要file system 的权限时,就会将使用者限制在此数据夹中。默认值为/usr/share/empty
secure_chroot_dir=/usr/share/empty
###################超时设置##################
#空闲连接超时
idle_session_timeout=600
#数据传输超时
data_connection_timeout=120
#PAVS请求超时
ACCEPT_TIMEOUT=60
#PROT模式连接超时
connect_timeout=60
################服务器功能选项###############
#开启日记功能
xferlog_enable=YES
#使用标准格式
xferlog_std_format=YES
#当xferlog_std_format关闭且本选项开启时,记录所有ftp请求和回复,当调试比较有用.
#log_ftp_protocol=NO
#允许使用pasv模式
pasv_enable=YES
#关闭安全检查,小心呀.
#pasv_promiscuous+NO
#允许使用port模式
#port_enable=YES
#关闭安全检查
#prot_promiscuous
#开启tcp_wrappers支持
tcp_wrappers=YES
#定义PAM 所使用的名称,预设为vsftpd。
pam_service_name=vsftpd
#当服务器运行于最底层时使用的用户名
nopriv_user=nobody
#使vsftpd在pasv命令回复时跳转到指定的IP地址.(服务器联接跳转?)
pasv_address=(none)
#################服务器性能选项##############
#是否能使用ls -R命令以防止浪费大量的服务器资源
#ls_recurse_enable=YES
#是否使用单进程模式
#one_process_model
#绑定到listen_port指定的端口,既然都绑定了也就是每时都开着的,就是那个什么standalone模式
listen=YES
#当使用者登入后使用ls -al 之类的指令查询该档案的管理权时,预设会出现拥有者的UID,而不是该档案拥有者的名称。若是希望出现拥有者的名称,则将此功能开启。
text_userdb_names=NO
#显示目录清单时是用本地时间还是GMT时间,可以通过mdtm命令来达到一样的效果
use_localtime=NO
#测试平台优化
#use_sendfile=YES
################信息类设置################
#login时显示欢迎信息.如果设置了banner_file则此设置无效
ftpd_banner=欢迎来到湖南三辰Fake-Ta FTP 网站.
#允许为目录配置显示信息,显示每个目录下面的message_file文件的内容
dirmessage_enable=YES
#显示会话状态信息,关!
#setproctitle_enable=YES
############## 文件定义 ##################
#定义不能更改用户主目录的文件
chroot_list_file=/etc/vsftpd/vsftpd.chroot_list
#定义限制/允许用户登录的文件
userlist_file=/etc/vsftpd/vsftpd.user_list
#定义登录信息文件的位置
banner_file=/etc/vsftpd/banner
#禁止使用的匿名用户登陆时作为密码的电子邮件地址
banned_email_file=/etc/vsftpd.banned_emails
#日志文件位置
xferlog_file=/var/log/vsftpd.log
#目录信息文件
message_file=.message
############## 目录定义 #################
#定义用户配置文件的目录
user_config_dir=/etc/vsftpd/userconf
#定义本地用户登陆的根目录,注意定义根目录可以是相对路径也可以是绝对路径.相对路径是针对用户家目录来说的.
local_root=webdisk #此项设置每个用户登陆后其根目录为/home/username/webdisk
#匿名用户登陆后的根目录
anon_root=/var/ftp
#############用户连接选项#################
#可接受的最大client数目
max_clients=100
#每个ip的最大client数目
max_per_ip=5
#使用标准的20端口来连接ftp
connect_from_port_20=YES
#绑定到某个IP,其它IP不能访问
listen_address=192.168.0.2
#绑定到某个端口
#listen_port=2121
#数据传输端口
#ftp_data_port=2020
#pasv连接模式时可以使用port 范围的上界,0 表示任意。默认值为0。
pasv_max_port=0
#pasv连接模式时可以使用port 范围的下界,0 表示任意。默认值为0。
pasv_min_port=0
##############数据传输选项#################
#匿名用户的传输比率(b/s)
anon_max_rate=51200
#本地用户的传输比率(b/s)
local_max_rate=5120000
本文永久链接地址: http://www.vcoo.me/show/1429.html
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

1楼 topchun http://blog.cn00.net
Post:2010-5-17 20:36:08