资源描述
1 引言
1.1 课程设计的目的和背景意义
自从有了网络以来,通过网络来传输文件一直是一项很重要的工作,不但可以实现文件的下载上传,而且可以设置不同的用户访问权限,并支持大文件的断点续传功能。例如,把在本地计算机上设计的网站文件,上传到远程的Web服务器主机上,就可以使用FTP服务,根据用户名及密码访问远程主机所提供的FTP目录。采用这种方法,用户不需要使用Telnet登录到远程主机进行工作,这样就使Web服务器上的文件更新工作变得非常轻松。
1.2 课程设计的内容
本次课程设计需要是在Linux操作系统下完成FTP服务器平台的搭建,所要完成的工作如下:
(1) 安装与配置FTP服务器,在Linux操作系统上进行FTP服务器的安装与配置工作。
(2) 配置匿名账号访问权限,进一步在Linux操作系统上设置匿名账号访问的权限。
(3) 配置匿名账号上传文件的功能,使用户可以使用FTP服务器来进行相互之间文件的交换与传输。
2 相关软件介绍
2.1 Linux简介
Linux[1]是一套免费使用和自由传播的类UNIX操作系统,它主要用于基于Intel x86系列CPU的计算机上。这个系统是由世界各地的成千上万的程序员设计和实现的。其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的UNIX兼容产品。
Linux最早由一位名叫Linus Torvalds的计算机爱好者开发,当时他是芬兰赫尔辛基大学的学生。他的目的是设计一个代替Minix(由一位名叫Andrew Tannebaum的计算机教授编写的一个操作系统示范教学程序)的操作系统,这个操作系统可用于386、486或奔腾处理器的个人计算机上,并且具有UNIX操作系统的全部功能。Linux以它的高效性和灵活性著称。它能够在个人计算机上实现全部的UNIX特性,具有多任务、多用户的能力。Linux可在GNU公共许可权限下免费获得,是一个符合POSIX标准的操作系统。Linux操作系统软件包不仅包括完整的Linux操作系统,而且还包括文本编辑器、高级语言编译器等应用软件。它还包括带有多个窗口管理器的X-Windows图形用户界面,如同我们使用Windows NT一样,允许我们使用窗口、图标和菜单对系统进行操作。
Linux之所以受到广大计算机爱好者的喜爱,主要原因有两个,一是它属于自由软件,用户不用支付任何费用就可以获得它和它的源代码,并且可以根据自己的需要对它进行必要的修改和无约束地继续传播。另一个原因是,它具有UNIX的全部功能,任何使用UNIX操作系统或想要学习UNIX操作系统的人都可以从Linux中获益。
由于Linux是一套自由软件,用户可以无偿地得到它及其源代码,可以无偿地获得大量的应用程序,而且可以任意地修改和补充它们。这对用户学习、了解UNIX操作系统的内核非常有益。 学习和使用Linux,能为用户节省一笔可观的资金。Linux是目前惟一可免费获得的、为PC机平台上的多个用户提供多任务、多进程功能的操作系统,这是人们要使用它的主要原因。就PC机平台而言,Linux提供比其他任何操作系统都要强大的功能,Linux还可以使用户远离各种商品化软件提供者促销广告的诱惑,再也不用承受每过一段时间就升级的痛苦,因此,可以节省大量用于购买或升级应用程序的资金。
Linux不仅为用户提供强大的操作系统功能,而且还提供丰富的应用软件。用户不但可以从Internet上下载Linux及其源代码,而且还可以从Internet上下载许多Linux的应用程序。可以说,Linux本身包含的应用程序以及移植到Linux上的应用程序包罗万象,任何一位用户都能从有关Linux的网站上找到适合自己特殊需要的应用程序及其源代码,这样,用户就可以根据自己的需要下载源代码,以便修改和扩充操作系统或应用程序的功能。这对Windows NT、Windows98、MS-DOS或OS/2等商品化操作系统来说是无法做到的。
2.2 FTP简介
FTP[2]全称是File Transfer Protocol,即文件传输协议,它是专门用来传输文件的协议。FTP功能是网络中最重要、用途最广泛的服务之一,它实现了服务器和客户端之间的文件传输和资源再分配,是普遍采用的资源共享方式之一,用户可以连接到FTP服务器上下载文件,也可以将自己的文件上传到FTP服务器。
FTP是TCP∕IP的一种具体应用,它工作在OSI模型的第七层、TCP模型的第四层,即应用层,它使用TCP传输而不是UDP,这样FTP客户在和服务器建立连接之前就要经过一个“三次握手”的过程,它的意义在于客户与服务器之间的连接是可靠的、面向连接的,为数据的传输提供了可靠的保证。另外,FTP服务还有一个非常重要的特点就是它可以独立于平台,也就是说无论是UNIX、Linux还是Windows等其它操作系统,都可以实现FTP的客户端和服务器,而且相互之间可以跨平台进行文件传送。
2.3 VMWare简介
VMWare[3]是一个“虚拟PC”软件公司。它的产品可以使你在一台机器上同时运行二个或多个Windows、DOS、LINUX系统。与“多启动”系统相比,VMWare采用了完全不同的概念。多启动系统在一个时刻只能运行一个系统,在系统切换时需要重新启动机器。VMWare是真正“同时”运行,多个操作系统在主系统的平台上,就像标准Windows应用程序那样切换。而且每个操作系统你都可以进行虚拟的分区、配置而不影响真实硬盘的数据,你甚至可以通过网卡将几台虚拟机用网卡连接为一个局域网,极其方便。安装在VMWare操作系统性能上比直接安装在硬盘上的系统低不少,因此,比较适合学习和测试。
3 具体实现
3.1 安装与启动vsftpd
使用ifconfig命令查看Linux操作系统的网络基本设置,如下图所示:
图3.1 Linux操作系统的网络基本设置
由于FTP很常用,所以Linux在默认状态下将自动安装vsftpd,可以使用如下命令进行查看:
图3.2 用命令查看安装信息
可以在终端窗口用系统命令进行关闭、启动和重启等操作,如下。
图3.3 用系统命令进行操作
也可以使用service命令。如下:
图3.4 用service命令进行操作
FTP服务器关闭之后,所有的用户都不能再登录。
3.2 vsftpd.conf说明
在Red Hat Enterprise Linux 5中,系统默认安装的FTP软件是vsftpd,其相关的配置文件有∕etc∕vsftpd∕vsftpd.conf、/etc/vsftpd.ftpusers和/etc/vsftpd.user_list,在配置FTP服务器时,主要是修改这些文件中的相关语句。
∕etc∕vsftpd∕vsftpd.conf是FTP服务的最主要的配置文件。用gedit编辑器打开该配置文件∕etc∕vsftpd∕vsftpd.conf,如下所示:
图3.5 vsftpd.conf说明一
anonymous_enble=YES是否允许anonymous登录FTP服务器设置,local_enable=YES是否允许本地用户登录FTP服务器设置,write_enable=YES是否允许用户具有在FTP服务器文件中执行写的权限,默认都是允许的。local_umask=022设置本地用户的文件生成掩码为022,默认是077。
图3.6 vsftpd.conf说明二
图3.7 vsftpd.conf说明三
#aon_mkdir_write_enable=YES是否允许匿名账户在FTP服务器中创建目录,默认是不允许。dirmessage_enable=YES激活目录信息,当远程用户更改目录时,将出现提示信息。xferlog_enable=YES启用了上传和下载日志功能,connect_from_port_20=YES以及启用FTP数据端口的连接请求。#xferlog_file=/var/log/vsftpd.log设置日志文件的文件名及存储路径,默认是/var/log/vsftpd.log。
图3.8 vsftpd.conf说明四
xferlog_std_format=YES是否使用标准的ftp xferlog日志文件格式,默认为是。#idle_session_timeout=600设置空闲的用户会话中断时间,默认是10分钟。#data_connection_timeout=120设置数据连接超时时间,默认是120秒。
图3.9 vsftpd.conf说明五
#ascii_upload_enable=YES,#ascii_download_enable=YES是否允许使用ASCII格式上传和下载文件,默认为不允许。#ftpd_banner=Welcome to blah FTP service.在FTP服务器中设置欢迎登录的信息。例如当用户登录到FTP服务器后,会看到“Welcome to blah FTP service.”的信息。
图3.10 vsftpd.conf说明六
如果希望用户登录后不能切换到自己目录以外的其他目录,则需要设置选项为#chroot_list_enable=YES,如果设置chroot_list_enable=YES,那么只允许/etc/vsftpd.chroot_list文件中列出的用户具有该功能。如果希望所有的本地用户都执行chroot,可以增加一行:chroot_local_user=YES。pam_service_name=vsftpd设置PAM认证服务的配置文件名称,该文件存放在/etc/pam.d/目录下。userlist_enable=YES用户列表中的用户是否允许登录FTP服务器,默认是不允许。listen=YES使vsftpd处于独立启动模式。tcp_wrappers=YES使用tcp_wrappers作为主机访问控制方式。
3.3 匿名账号服务器配置
为了防止配置过程中出现差错,一般应把原配置文件∕etc∕vsftpd∕vsftpd.conf复制一份到别的目录中,一旦配置后出现问题,还可以把配置文件复制回来。这里先把vsftpd.conf文件复制一份到/tmp/ftpbak目录中。
下面配置一个简单的匿名账号服务器,然后根据需要进行各种权限设置。修改文件∕etc∕vsftpd∕vsftpd.conf的内容如下:
图3.11 vsftpd.conf权限设置一
anonymous_enable=YES设置允许anonymous登录FTP服务器,local_enable=YES允许本地账号登录,write_enable=YES并且有写的权限。
图3.12 vsftpd.conf权限设置二
userlist_enable=YES用户列表里的用户不允许登录FTP服务器。
在本例中,匿名账号可以登录FTP服务器,允许匿名用户具有向FTP服务器文件执行读的权限,且只能下载不能上传文件。在∕etc∕vsftpd.ftpusers中列出的用户不允许登录FTP服务器,本地用户可以访问FTP服务器。
配置好vsftpd.conf文件后,需要重新启动vsftpd服务。
匿名账号可以是ftp或anonymous,口令为一个E-Mail地址。下面具体测试配置后的情况:
图3.13 匿名账号配置测试一
图3.14 匿名账号配置测试二
图3.15 匿名账号配置测试三
图3.16 匿名账号配置测试四
3.4 配置匿名账号上传功能
如果要使匿名账号具有上传文件的功能,则必须修改配置文件∕etc∕vsftpd∕vsftpd.conf使下面几行语句生效,去掉前面的“#”号:
图3.17 账号上传功能设置语句
其它配置语句与简单匿名账号的配置相同。
因为上传文件和目录的同时,也就是在FTP服务器的本地目录建立文件和目录,所以为了能够顺利地上传文件和创建目录,必须为上传目录指定写权限。可以在FTP服务器上新建一个文件夹并赋予其写权限,操作步骤如下:
(1)在/var/ftp/中新建一个目录zhu。
(2)改变目录zhu的权限。用鼠标右键单击目录zhu,在弹出的快捷菜单中选择“属性”命令,打开“zhu属性”对话框。在“zhu属性”对话框中,选择“权限”选项卡,然后,更改“文件所有者”和“文件组群” ,因为这里建立的是匿名服务器,所以“文件所有者”属于“ftp-FTP User” ,“文件组群”属于ftp,同时赋予“所有者”读取、写入和执行权限。
(3)建立如相应的上传目录后,重新启动FTP服务器。
测试如下:
图3.18 账号上传测试一
图3.19 账号上传测试二
图3.20 账号上传测试三
3.5 仅允许匿名用户访问
如果只允许匿名账号访问FTP服务器,那么就要限制本地账号访问,可以修改配置文件∕etc∕vsftpd∕vsftpd.conf,把下面两行语句注释掉即可,前面加上“#”号:
图3.21 匿名访问功能设置语句
测试如下:
图3.21 匿名访问功能测试
Name(newer:root):anonymous允许匿名账号登录,并且登录正常。530 This FTP server is anonymous only.换用本地账号登录,本地账号禁止登录。并且列表内的账号也禁止登录。
参考文献
[1]吴学毅.Linux基础教程[M].北京:清华大学出版社,2007.
[2]朱居正,高冰.Red Hat Enterprise Linux实用教程[M].北京:清华大学出版社,2008.1.
[3]文东戈,孙昌立,王旭.Linux操作系统实用教程[M].北京:清华大学出版
社,2010.1.
致 谢
本次课程设计用了两周的时间终于完成了。在这里,首先要感谢Linux操作系统的授课老师和本次课程设计的指导老师们,本次课程设计的完成离不开他们的教授和指导。另外,还要感谢一些热心同学们的帮助,和他们进行课程设计上的交流使得自己获益匪浅,也使得本课程设计的内容丰富不少。最后,感谢参考文献中著书的作者们,为本课程设计的完成提供了不少知识技术上的帮助。
展开阅读全文