论文部分内容阅读
摘要:vsftpd是Linux操作系统下最常用的FTP服务器配置软件,可以通过对vsftpd.conf配置文件的修改来配置FTP服务,主要针对应用广泛的匿名FTP服务器的配置。通过本文对匿名FTP服务器配置的详细叙述,读者可以简单、快捷地在Linux操作系统上配置基于匿名用户的FTP服务器。
关键词:vsftpd;Linux;FTP服务;匿名用户
中图分类号:TP393文献标识码:A文章编号:1009-3044(2007)12-21590-02
On the Basis of the Disposition of Anonymous FTP Server of Vsftpd
XIE Hui
(Minbei Vocational and Technical College,Jianyang 354200,China)
Abstract:vsftpd is the most frequently used FTP server software under Linux operating system and can dispose FTP service by the modification of the file to vsftpd.conf, whichis referred primarily to the disposition of employing extensive anonymous FTP server. Through the detailed instruction of the anonymous FTP server disposed, the article aims to teach readers how to dispose Linux operating system easily and swiftly on the basis of anonymous users' FTP server.
Key words:vsftpd; Linux; FTP service; Anonymous users
1 引言
FTP(File Transfer Protocol)是文件传输协议的简称,于1971年问世,比我们熟悉的Web还要早10年,它实现了网络上服务器和客户机之间的文件传输,是互联网上最重要,应用最广泛的资源共享方式之一。
FTP是基于TCP/IP协议之上的应用层协议,为服务器与客户机之间的数据传输提供了可靠保证,另外,FTP还是跨平台的服务,可以实现在UNIX、Linux、Windows等操作系统之间进行服务器和客户端的连接。
Linux系统下实现FTP服务的软件有多种,常见的有vsftpd、Wu-ftpd和Proftp等。本文以Red Hat Linux9操作系统和vsftpd-1.1.3-8软件包来介绍匿名FTP服务器的配置。
2 认识vsftpd
2.1 vsftpd的简介
vsftpd(Very Secure FTP Daemon)顾名思义,具有较高的安全性、可靠性和易用性,是Red Hat Linux发行版本中包含的惟一FTP服务器软件。同时随着版本的不断升级,vsftpd在性能和稳定性上也取得了极大的进展。象RedHat、SUSE、Debian、GNU、GNOME、KDE等一些大型站点都采用vsftpd软件来配置它们的FTP服务器。
2.2 vsftpd的安装和启动
vsftpd是基于GPL许可的软件,它的最新版本可在http://vsftpd.beasts.org/免费获取,或者到http://rpmfind.net免费下载。对于Red Hat Linux9操作系统,我们可以获得对应的vsftpd-1.1.3-8.i386.rpm软件包。
2.2.1安装
vsftpd的安装很简单,可在root用户下,通过下列命令完成:
#rpm -ivh vsftpd-1.1.3-8.i386.rpm
2.2.2启动、停止、重启
vsftpd服务的启动、停止、重新启动可分别通过下列命令实现:
#service vsftpd start
#service vsftpd stop
#service vsftpd restart
2.3 vsftpd的文件結构
vsftpd的文件结构非常简洁,主要包括:
/usr/sbin/vsftpd -vsftpd的主程序
/etc/rc.d/init.d/vsftpd -启动脚本
/etc/vsftpd/vsftpd.conf-主配置文件
/etc/pam.d/vsftpd-PAM认证文件
/etc/vsftpd.ftpusers -??禁止使用vsftpd的用户列表文件
/etc/vsftpd.user_list-禁止或允许使用vsftpd的用户列表文件
/var/ftp -匿名用户主目录
/var/ftp/pub -匿名用户的下载目录
此外vsftpd的日志文件位于/etc/logrotate.d/vsftpd.log。
2.4 vsftpd的主要配置文件
在成功安装完vsftpd后,需要对vsftpd进行配置,vsftpd的配置文件主要有3个,它们分别是:vsftpd.conf;vsftpd.ftpusers;vsftpd.user_list,分别加以说明。
2.4.1 vsftpd.conf文件说明
vsftpd.conf文件位于/etc/vsftpd/目录之下,它是FTP最主要的配置文件,可以完成vsftpd
的大多数配置,下面选取该文件中常用的参数项,对它们的含义和作用加以详细描述:
# Example config file /etc/vsftpd.conf…
anonymous_enable=YES
是否允许匿名用户登录,默认允许。
local_enable=YES
是否允许本地用户登录FTP服务器,默认允许
write_enable=YES
是否允许用户在FTP服务器目录中执行写的权限,默认是允许
local_umask=022
设置本地用户的文件生成掩码为022,默认为077
#anon_upload_enable=YES
设置匿名用户是否有上传的功能,默认为允许,需去掉#号激活(下同)
#anon_mkdir_write_enable=YES
是否允许匿名用户在FTP服务器中创建目录,默认为允许
dirmessage_enable=YES
激活目录信息,当远程用户更改目录时,将出现提示信息
xferlog_enable=YES
设置是否启用一个记录上传和下载的日志文件,默认为启用
connect_from_port_20=YES
设置以port模式进行数据传输时是否使用20端口,默认为使用 #chown_uploads=YES
设置是否修改匿名用户所上传文件的所有权,默认为允许
#chown_username=whoever
设置拥有匿名用户上传文件所有权的用户。此参数与chown_uploads联用,不推荐使用root用户。需去掉#号激活,并写入用户名
#xferlog_file=/var/log/vsftpd.log
设置记录传输日志的文件名。默认值为/var/log/vsftpd.log
xferlog_std_format=YES
设置是否使用标准的xferlog日志文件格式
#idle_session_timeout=600
设置空闲用户会话的超时时间,若是超出这段时间没有数据的传送,或是指令的输入,则会强迫断线。默认值为600秒
#data_connection_timeout=120
设置数据连接的超时时间,默认值为120秒
#ascii_upload_enable=YES
#ascii_download_enable=YES
设置是否允许以ASCⅡ码格式上传、下载文件
#ftpd_banner=Welcome to blah FTP service
设置登录FTP服务器时,显示的欢迎信息内容…
userlist_file=/etc/vsftpd.user_list
指出当参数项userlist_enable=YES时,被读取的包含用户列表的文件位置和文件名。默认值是/etc/vsftpd.user_list
userlist_enable=YES
默认值表示vsftpd将直接禁止userlist_file參数所指定文件(既/etc/vsftpd.user_list文件)中的用户登录FTP服务器
Listen=YES
设置vsftpd处于独立启动模式
tcp_wrappers=YES
在vsftpd中使用TCP_Wrappers远程访问控制机制,默认值为YES…
另外,还有一些参数项用来对FTP服务器的负载控制,需另行添加,如:max_clients=0
此参数定义了FTP服务器最大的并发连接数,当超过此连接数时,服务器拒绝客户端连接。默认值为0,表示不限最大连接数。
max_per_ip=0
此参数定义每个IP地址最大的并发连接数目,超过这个数目FTP服务器将会拒绝连接。默认值为0,表示不限制
anon_max_rate=value
设定匿名用户的最大数据传输速度value值,以Bytes/s为单位
local_max_rate=value
设定本地用户的最大数据传输速度value值,以Bytes/s为单位。此选项对所有的用户都生效。
2.4.2vsftpd.ftpusers文件说明
vsftpd.ftpusers文件位于/etc/目录之下,主要是用来记录“不允许”登录到FTP服务器的用户,通常是一些系统默认的用户,如root,bin,adm,nobody等。如果要禁止某个本地用户登录FTP服务器,只要将其用户名添加至该文件即可。
2.4.3vsftpd.user_list文件说明
vsftpd.user_list文件位于/etc/目录之下,内容与vsftpd.ftpusers文件一样,只是当系统对主配置文件vsftpd.conf进行检测时,会检测到参数项“userlist_deny”,当userlist_deny=YES时,本文件中列出的用户不允许登录FTP服务器;反之,只允许本文件中的用户登录FTP服务器。
3 匿名FTP服务器的配置
3.1FTP服务器的用户类型
按用户权限的不同,可分成三种FTP用户:匿名用户类型(anonymous),虚拟用户类型(guest),真实用户类型(real),它们的主要区别如下:
针对不同用户的需要和FTP服务器可允许的安全级别,可以设置多种类型的FTP服务器。一类是允许匿名用户登录的FTP服务器;一类是允许以guest虚拟用户身份登录的FTP服务器;第三类是在FTP服务器上拥有真实帐户,允许以真实用户身份登录的FTP服务器。
真实用户和虚拟用户FTP服务器在互联网不常见,其配置方式与匿名服务器配置类似,所以下面主要阐述匿名用户FTP服务器的配置。
3.2 匿名用户FTP服务器的配置
匿名用户FTP服务器比较常用,也是互联网最常见,使用最广泛的一类文件服务器。
通过对上文vsftpd.conf配置文件参数项的了解之后,只须修改相应的参数项值,就可以很容易地配置出一台匿名FTP服务器。
例:配置一台高安全级别的匿名FTP服务器
要求:(1)只允许匿名用户访问,不允许本地用户访问
(2)只能浏览和下载文件,取消用户写权限
(3)限定连接服务器的时限为1分钟
(4)限定空闲会话时限为6分钟
(5)限定同一时刻连接FTP的最大并发用户数为100
(6)限定每个用户并发线程数为2
(7)限定匿名用户的下载速度最大为80KBps
(8)启用详细的日志记录格式
操作如下:
3.2.1在匿名用户的默认登录目录var/ftp下创建一个新目录incoming并修改权限为755
# mkdir /var/ftp/incoming
# chmod 755 /var/ftp/incoming
3.2.2打开主配置文件vsftpd.conf,修改相关参数项的值
anonymous_enable=YES
local_enable=NO
write_enable=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
idle_session_timeout=360
data_connection_timeout=60
max_clients=100
max_per_ip=2
anon_max_rate=80000
3.2.3重启FTP服务,让新的配置开始工作
# service vsftpd restart
至此,一台高安全级别的匿名FTP服务器配置完毕。
4 结束语
FTP匿名服务器以其简单,安全,一直是互联网上资源服务器的主力,而vsftpd是目前Linux下最好的FTP服务软件之一,它体积小,效率高,可定制性强,掌握了对它的配置,对Linux下网络管理工作具有重要的作用。
参考文献:
[1](美)Christopher Negus.著.三勇.阎文丽.等.译.Red Hat 9宝典[M].电子工业出版社,2004.10.
[2]Tony Bautts,Terry Dawson & Gregor N.Purdy.著.O' Reilly Taiwan 公司编译.东南大学出版社,2006.7.
[3]朱居正,高冰.著.Red Hat Enterprise Linux网络管理.清华大学出版社,2005.6.
“本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。”
关键词:vsftpd;Linux;FTP服务;匿名用户
中图分类号:TP393文献标识码:A文章编号:1009-3044(2007)12-21590-02
On the Basis of the Disposition of Anonymous FTP Server of Vsftpd
XIE Hui
(Minbei Vocational and Technical College,Jianyang 354200,China)
Abstract:vsftpd is the most frequently used FTP server software under Linux operating system and can dispose FTP service by the modification of the file to vsftpd.conf, whichis referred primarily to the disposition of employing extensive anonymous FTP server. Through the detailed instruction of the anonymous FTP server disposed, the article aims to teach readers how to dispose Linux operating system easily and swiftly on the basis of anonymous users' FTP server.
Key words:vsftpd; Linux; FTP service; Anonymous users
1 引言
FTP(File Transfer Protocol)是文件传输协议的简称,于1971年问世,比我们熟悉的Web还要早10年,它实现了网络上服务器和客户机之间的文件传输,是互联网上最重要,应用最广泛的资源共享方式之一。
FTP是基于TCP/IP协议之上的应用层协议,为服务器与客户机之间的数据传输提供了可靠保证,另外,FTP还是跨平台的服务,可以实现在UNIX、Linux、Windows等操作系统之间进行服务器和客户端的连接。
Linux系统下实现FTP服务的软件有多种,常见的有vsftpd、Wu-ftpd和Proftp等。本文以Red Hat Linux9操作系统和vsftpd-1.1.3-8软件包来介绍匿名FTP服务器的配置。
2 认识vsftpd
2.1 vsftpd的简介
vsftpd(Very Secure FTP Daemon)顾名思义,具有较高的安全性、可靠性和易用性,是Red Hat Linux发行版本中包含的惟一FTP服务器软件。同时随着版本的不断升级,vsftpd在性能和稳定性上也取得了极大的进展。象RedHat、SUSE、Debian、GNU、GNOME、KDE等一些大型站点都采用vsftpd软件来配置它们的FTP服务器。
2.2 vsftpd的安装和启动
vsftpd是基于GPL许可的软件,它的最新版本可在http://vsftpd.beasts.org/免费获取,或者到http://rpmfind.net免费下载。对于Red Hat Linux9操作系统,我们可以获得对应的vsftpd-1.1.3-8.i386.rpm软件包。
2.2.1安装
vsftpd的安装很简单,可在root用户下,通过下列命令完成:
#rpm -ivh vsftpd-1.1.3-8.i386.rpm
2.2.2启动、停止、重启
vsftpd服务的启动、停止、重新启动可分别通过下列命令实现:
#service vsftpd start
#service vsftpd stop
#service vsftpd restart
2.3 vsftpd的文件結构
vsftpd的文件结构非常简洁,主要包括:
/usr/sbin/vsftpd -vsftpd的主程序
/etc/rc.d/init.d/vsftpd -启动脚本
/etc/vsftpd/vsftpd.conf-主配置文件
/etc/pam.d/vsftpd-PAM认证文件
/etc/vsftpd.ftpusers -??禁止使用vsftpd的用户列表文件
/etc/vsftpd.user_list-禁止或允许使用vsftpd的用户列表文件
/var/ftp -匿名用户主目录
/var/ftp/pub -匿名用户的下载目录
此外vsftpd的日志文件位于/etc/logrotate.d/vsftpd.log。
2.4 vsftpd的主要配置文件
在成功安装完vsftpd后,需要对vsftpd进行配置,vsftpd的配置文件主要有3个,它们分别是:vsftpd.conf;vsftpd.ftpusers;vsftpd.user_list,分别加以说明。
2.4.1 vsftpd.conf文件说明
vsftpd.conf文件位于/etc/vsftpd/目录之下,它是FTP最主要的配置文件,可以完成vsftpd
的大多数配置,下面选取该文件中常用的参数项,对它们的含义和作用加以详细描述:
# Example config file /etc/vsftpd.conf…
anonymous_enable=YES
是否允许匿名用户登录,默认允许。
local_enable=YES
是否允许本地用户登录FTP服务器,默认允许
write_enable=YES
是否允许用户在FTP服务器目录中执行写的权限,默认是允许
local_umask=022
设置本地用户的文件生成掩码为022,默认为077
#anon_upload_enable=YES
设置匿名用户是否有上传的功能,默认为允许,需去掉#号激活(下同)
#anon_mkdir_write_enable=YES
是否允许匿名用户在FTP服务器中创建目录,默认为允许
dirmessage_enable=YES
激活目录信息,当远程用户更改目录时,将出现提示信息
xferlog_enable=YES
设置是否启用一个记录上传和下载的日志文件,默认为启用
connect_from_port_20=YES
设置以port模式进行数据传输时是否使用20端口,默认为使用 #chown_uploads=YES
设置是否修改匿名用户所上传文件的所有权,默认为允许
#chown_username=whoever
设置拥有匿名用户上传文件所有权的用户。此参数与chown_uploads联用,不推荐使用root用户。需去掉#号激活,并写入用户名
#xferlog_file=/var/log/vsftpd.log
设置记录传输日志的文件名。默认值为/var/log/vsftpd.log
xferlog_std_format=YES
设置是否使用标准的xferlog日志文件格式
#idle_session_timeout=600
设置空闲用户会话的超时时间,若是超出这段时间没有数据的传送,或是指令的输入,则会强迫断线。默认值为600秒
#data_connection_timeout=120
设置数据连接的超时时间,默认值为120秒
#ascii_upload_enable=YES
#ascii_download_enable=YES
设置是否允许以ASCⅡ码格式上传、下载文件
#ftpd_banner=Welcome to blah FTP service
设置登录FTP服务器时,显示的欢迎信息内容…
userlist_file=/etc/vsftpd.user_list
指出当参数项userlist_enable=YES时,被读取的包含用户列表的文件位置和文件名。默认值是/etc/vsftpd.user_list
userlist_enable=YES
默认值表示vsftpd将直接禁止userlist_file參数所指定文件(既/etc/vsftpd.user_list文件)中的用户登录FTP服务器
Listen=YES
设置vsftpd处于独立启动模式
tcp_wrappers=YES
在vsftpd中使用TCP_Wrappers远程访问控制机制,默认值为YES…
另外,还有一些参数项用来对FTP服务器的负载控制,需另行添加,如:max_clients=0
此参数定义了FTP服务器最大的并发连接数,当超过此连接数时,服务器拒绝客户端连接。默认值为0,表示不限最大连接数。
max_per_ip=0
此参数定义每个IP地址最大的并发连接数目,超过这个数目FTP服务器将会拒绝连接。默认值为0,表示不限制
anon_max_rate=value
设定匿名用户的最大数据传输速度value值,以Bytes/s为单位
local_max_rate=value
设定本地用户的最大数据传输速度value值,以Bytes/s为单位。此选项对所有的用户都生效。
2.4.2vsftpd.ftpusers文件说明
vsftpd.ftpusers文件位于/etc/目录之下,主要是用来记录“不允许”登录到FTP服务器的用户,通常是一些系统默认的用户,如root,bin,adm,nobody等。如果要禁止某个本地用户登录FTP服务器,只要将其用户名添加至该文件即可。
2.4.3vsftpd.user_list文件说明
vsftpd.user_list文件位于/etc/目录之下,内容与vsftpd.ftpusers文件一样,只是当系统对主配置文件vsftpd.conf进行检测时,会检测到参数项“userlist_deny”,当userlist_deny=YES时,本文件中列出的用户不允许登录FTP服务器;反之,只允许本文件中的用户登录FTP服务器。
3 匿名FTP服务器的配置
3.1FTP服务器的用户类型
按用户权限的不同,可分成三种FTP用户:匿名用户类型(anonymous),虚拟用户类型(guest),真实用户类型(real),它们的主要区别如下:
针对不同用户的需要和FTP服务器可允许的安全级别,可以设置多种类型的FTP服务器。一类是允许匿名用户登录的FTP服务器;一类是允许以guest虚拟用户身份登录的FTP服务器;第三类是在FTP服务器上拥有真实帐户,允许以真实用户身份登录的FTP服务器。
真实用户和虚拟用户FTP服务器在互联网不常见,其配置方式与匿名服务器配置类似,所以下面主要阐述匿名用户FTP服务器的配置。
3.2 匿名用户FTP服务器的配置
匿名用户FTP服务器比较常用,也是互联网最常见,使用最广泛的一类文件服务器。
通过对上文vsftpd.conf配置文件参数项的了解之后,只须修改相应的参数项值,就可以很容易地配置出一台匿名FTP服务器。
例:配置一台高安全级别的匿名FTP服务器
要求:(1)只允许匿名用户访问,不允许本地用户访问
(2)只能浏览和下载文件,取消用户写权限
(3)限定连接服务器的时限为1分钟
(4)限定空闲会话时限为6分钟
(5)限定同一时刻连接FTP的最大并发用户数为100
(6)限定每个用户并发线程数为2
(7)限定匿名用户的下载速度最大为80KBps
(8)启用详细的日志记录格式
操作如下:
3.2.1在匿名用户的默认登录目录var/ftp下创建一个新目录incoming并修改权限为755
# mkdir /var/ftp/incoming
# chmod 755 /var/ftp/incoming
3.2.2打开主配置文件vsftpd.conf,修改相关参数项的值
anonymous_enable=YES
local_enable=NO
write_enable=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
idle_session_timeout=360
data_connection_timeout=60
max_clients=100
max_per_ip=2
anon_max_rate=80000
3.2.3重启FTP服务,让新的配置开始工作
# service vsftpd restart
至此,一台高安全级别的匿名FTP服务器配置完毕。
4 结束语
FTP匿名服务器以其简单,安全,一直是互联网上资源服务器的主力,而vsftpd是目前Linux下最好的FTP服务软件之一,它体积小,效率高,可定制性强,掌握了对它的配置,对Linux下网络管理工作具有重要的作用。
参考文献:
[1](美)Christopher Negus.著.三勇.阎文丽.等.译.Red Hat 9宝典[M].电子工业出版社,2004.10.
[2]Tony Bautts,Terry Dawson & Gregor N.Purdy.著.O' Reilly Taiwan 公司编译.东南大学出版社,2006.7.
[3]朱居正,高冰.著.Red Hat Enterprise Linux网络管理.清华大学出版社,2005.6.
“本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。”