两种运行模式
像其它守护程序一样,vsftpd提供了standalone和inetd(inetd或xinetd)两种运行模式。
简单解释一下,standalone一次性启动,运行期间一直驻留在内存中,优点是对接入信号反应快,缺点是损耗了一定的系统资源,因此经常应用于对实时反应要求较高的专业FTP服务器。inetd恰恰相反,由于只在外部连接发送请求时才调用FTP进程,因此不适合应用在同时连接数量较多的系统。此外,inetd模式不占用系统资源。除了反应速度和占用资源两方面的影响外,vsftpd还提供了一些额外的高级功能,如inetd模式支持per_IP(单一IP)限制,而standalone模式则更有利于PAM验证功能的应用。1.inetd运行模式
从某种inetd运行vsftpd可以提供一种不错的功能——per_IP连接限制。这也是vsftpd 1.1.3版本最新推出并推荐的一种运行模式。实现per_IP连接限制要依赖于vsftpd提供的tcp_wrappers支持。如果使用标准的“inetd”,需编辑/etc/inetd.conf文件,并添加下面一行代码:
$ ftp stream tcp nowait root /usr/sbin/tcpd /usr/local/sbin/vsftpd
确保删除或注释掉任何原存的FTP服务语句行。假如没有安装tcp_wrappers,或不需要使用它,可去掉“/usr/sbin/tcpd”部分。然后重载配置文件,命令如下:
$ kill -SIGHUP 'pidof inetd'
大多数较新的系统采用的是xinetd超级服务守护进程。使用“vi /etc/xinetd.d/vsftpd” 看一下它的内容,如下:
disable = no
socket_type = stream
wait = no
# 这表示设备是激活的,它正在使用标准的TCP Sockets。
user = root
server = /usr/local/sbin/vsftpd
# 说明服务程序/usr/local/sbin/vsftpd已被用来控制FTP接入请求,并且该程序是作为root身份运行的(可能瞬间拥有过大的特权)。请确信已经把vsftpd二进制执行代码安装在了“/usr/local/sbin”目录下。
per_source = 5
instances = 200
# 由于安全原因,从一个单一IP地址联入的最大允许数值是5。当前最大连接总数是200。
no_access = 192.168.1.3
# 地址192.168.1.3将被拒绝访问。
banner_fail = /etc/vsftpd.busy_banner
# 显示给用户当连接被禁止时的文件。不论因任何原因而被拒绝(太多用户,IP被禁止)。
下面一行是产生的例子:
echo "421 Server busy, please try later." > /etc/vsftpd.busy_banner
log_on_success += PID HOST DURATION
log_on_failure += HOST
这将按照时间顺序日志所有尝试连接的IP地址,无论连接成功与否。假如连接启动了一个FTP服务,其进程ID和使用期也将被载入日志。如果使用的是Red Hat,这个日志信息将出现在/var/log/secure文件中。
最后,重启xinetd,命令如下:
$ /etc/rc.d/init.d/xinetd restart
需要注意的是,“/etc/xinetd.d”目录中仅能开启一个FTP服务。
2.standalone模式
standalone模式便于实现PAM验证功能。进入这种模式首先要关闭xinetd下的vsftpd,设置“disable = yes”,或者注销掉“/etc/inetd.conf”中相应的行。然后修改“/etc/vsftpd.conf”中的选项为“listen=YES”。
配置vsftpd.conf
下面来了解一下核心配置文件vsftpd.conf。它的地址为“/etc/vsftpd.conf”,控制语句格式为“语句=值”,注意不要在格式间加入任何空格和标点符号。man手册页中把控制语句分为布尔类(值为YES或NO)、数字类(值为数字)和字符串类(值为字符串)三种。为了管理方便、思路清晰,按照访问权(Access rights)、安全(Security)、功能(Features)和性能(Performance)分成四大类。下面是一个样本配置文件内容,用来说明常用的控制语句:
# Access rights
anonymous_enable=YES
/*若不想启用匿名访问请修改值为NO*/
local_enable=NO
/*关闭本地用户登陆服务,指所有非匿名用户*/
write_enable=NO
/*关闭任何用户的写权限*/
anon_upload_enable=NO
/*关闭匿名用户上传数据的能力*/
anon_mkdir_write_enable=NO
/*关闭匿名用户建立目录的能力*/
anon_other_write_enable=NO
/*关闭匿名用户执行建立和上传之外的写入类命令的操作,比如更
改名字和删除操作的能力*/
# Security
anon_world_readable_only=YES
/*开启匿名用户只能使用许可权为全部可读的资源*/
connect_from_port_20=YES
/*从标准端口20触发连接*/
hide_ids=YES
/*隐藏FTP服务器中用户的ID,用“FTP"取代*/
pasv_min_port=50000
pasv_max_port=60000
/*设置pasv传输模式下的端口范围为50000-60000*/
# Features
xferlog_enable=YES
/*开启日志,记录传输状态到文件/var/log/vsftpd.log*/
ls_recurse_enable=NO
/*关闭“ls -R"命令,该命令常被用于DoS攻击,非常浪费系统资源,
但“mirror"镜像工具会用到它*/
ascii_download_enable=NO
/*关闭ASCII模式下载,防止被用于DoS攻击,ASCII下载很消耗CPU负担*/
async_abor_enable=YES
/*开启支持早期FTP客户端“async ABOR"命令的能力*/
# Porformance
one_process_model=YES
/*开启每个IP单一进程模式,该模式仅支持具备一定能力的内核,
比如linux kernel 2.4*/
idle_session_timeout=120
/*踢出空闲了两分钟后的用户*/
data_connection_timeout=300
/*踢出空闲了五分钟后的下载*/
accept_timeout=60
/*踢出挂起了一分钟后的passive连接*/
connect_timeout=60
/*踢出挂起了一分钟后的活动连接*/
anon_max_rate=50000
/*限止单个用户的下载速度为不超过50kbytes每秒*/
·FTP服务器 (5813篇文章)
·打造安全服务器 (12814篇文章)
·服务器行业应用 (5344篇文章)
·服务器配件 (5481篇文章)
·服务器技术 (5344篇文章)
·服务器分类 (5344篇文章)
·MySQL安全 (9495篇文章)
·IMail服务器 (5432篇文章)
·电子邮件安全 (8020篇文章)
·教你如何用双SATA硬盘组建RAID系统 (24125次浏览)
·DHCP 服务器的安装和配置 (15138次浏览)
·Win2003服务器安全配置技巧 (14529次浏览)
·WEB专用服务器的安全设置的实战技巧 (12947次浏览)
·PERC5 RAID配置中文手册 (12504次浏览)
·windows下cvs服务器端配置 (939次浏览)
·[精华]架设个人服务器(包括WWW,FTP,Mail等 (787次浏览)
·在Windows下安装Apache服务器端Web软件 (663次浏览)
·企业邮件服务器MagicMail轻松建 (257次浏览)
·WEB专用服务器的安全设置的实战技巧 12-09
·板载RAID功能制作磁盘阵列并安装操作系统 12-09
·教你如何用双SATA硬盘组建RAID系统 12-09
·Win2003服务器安全配置技巧 12-09
·DHCP 服务器的安装和配置 12-09
·企业邮件服务器MagicMail轻松建 11-19
·WebSphere服务器安装配置全攻略 11-19
·利用天雁Web服务器系统创建自己的网站服务器 11-13
·Exchange 2007 新特性与二次开发 11-09



