【51CTO特稿】vsftpd因为其稳定高效,一直是默认安装的,因此我在FreeBSD 8.1下选用ftp也是选用vsftpd;因发现其安装方法跟在Linux下大同小异,并且公司目前所用远程备份也主要是vsftpd和rsync,故特将整个过程记录一下。
作者简介:余洪春(博客),网名抚琴煮酒,英文名Andrew.Yu,武汉某外企高级Linux/Unix系统管理员、项目实施工程师,红帽RHCE讲师,擅长负载均衡高可用和中小型证券类和商务网站架构,目前关注网站架构研究及网络安全。
推荐专题:企业内网开发环境部署与管理全攻略(FreeBSD+PHP)
vsftpd的二种模式:xinetd和standalone
什么是xinetd模式和standalone模式
像其它守护程序一样,vsftpd提供了standalone和 inetd(inetd或xinetd)两种运行模式。简单解释一下, standalone一次性启动,运行期间一直驻留在内存中,优点是对接入信号反应快,缺点是损耗了一定的系统资源,因此经常应用于对实时反应要求较高的专业FTP服务器。inetd恰恰相反,由于只在外部连接发送请求时才调用FTP进程,因此不适合应用在同时连接数量较多的系统。此外,inetd模式不占用系统资源。除了反应速度和占用资源两方面的影响外,vsftpd还提供了一些额外的高级功能,如inetd模式支持per_IP(单一IP)限制,而 standalone模式则更有利于PAM验证功能的应用。
在FreeBSD 8.1下配置vsftpd服务器的具体方法:
一、ports安装
/usr/ports/ftp/vsftpd
记得把make config里面的2个选项都启动(前二项)。
二、配置
/etc/rc.conf中添加
vsftpd_enable="YES"
/usr/local/etc/vsftpd.conf中添加
listen=YES #即将vsftpd以standalone的方式启动,不过FreeBSD8.1下默认vsftpd好像就有listen=YES
三、修改/usr/local/etc/vsftpd.conf配置文件如下:
编辑 /usr/local/etc/vsftpd.conf , 修改以下配置
anonymous_enable=NO #不允许匿名用户登陆 local_enable=YES #允许本地用户作为ftp用户登录 write_enable=YES #允许本地用户具有写权限 local_umask=022 #设置创建文件权限的反掩码
此处为022,则新建文件的权限为666-022=644(rw-r--r--);新建目录的权限为777-022=755(rwxr-xr-x)。这种方法其实也有误差,并不能百分百保证正确,有兴趣的朋友可深入研究下
chroot_local_user=YES #限制本地用户的目录,不允许随意切换
四、启动
/usr/local/etc/rc.d/vsftpd start
五、登录测试
匿名用户ftp和anonymous用户均不能登陆,本地用户可以登陆,windows下的工具我推荐FileZilla,开源的东西就是好用;在FreeBSD8下启动vsftpd后,没有发现讨厌的久违的500 oops报错,难得。
附上以前整理的vsftpd配置笔记
vsftpd.conf 内容如下,难点位置有注解.
anonymous_enable=YES
允许匿名用户登录
local_enable=YES
允许本地用户登录
write_enable=YES
允许本地用户具有写权限
local_umask=022
设置创建文件权限的反掩码,如此处为022,则新建文件的权限为666-022=644(rw-r--r--);新建目录的权限为777-022=755(rwxr-xr-x)。这种方法其实也有误差,并不能百分百保证正确,有兴趣的朋友可深入研究下
diremessage_enable=YES
激活目录显示消息,即每当进入目录时,会显示该目录下的文件.message的内容
xferlog_enable=YES
激活记录上传/下载的日志
connect_from_port_20=YES
设置服务器端数据连接采用端口20,即采用主动模式(Port)
xferlog_std_format=YES
设置日志文件采用标准格式
pam_service_name=vsftpd
设置vsftpd服务利用PAM认证时的文件名称是vsftpd
userlist_anable=YES
激活用户列表文件来实现对用户的访问控制
lister=YES
设置vsftpd为独立运行模式,相对于xinetd模式
tcp_wrappers=YES
设置采用tcp_wrappers来实现对主机的访问控制
chroot_local=YES
将用户访问的范围限制在各自的主目录中
max_clients=100
FTP服务器的所有客户端***连接数不超过100个
max_per_IP=5
同一IP地址的FTP客户机与FTP服务器建立的***连接数不超过5个
local_max_rate=500000
FTP服务器的本地用户***传输速率设置为500KB/s
anon_max_rate =200000
FTP服务器的匿名用户***传输速率设置为200KB/s
【51CTO.com独家特稿,转载请注明原文作者和出处。】
【编辑推荐】