Lin操作基础系统 9_第1页
Lin操作基础系统 9_第2页
Lin操作基础系统 9_第3页
Lin操作基础系统 9_第4页
Lin操作基础系统 9_第5页
已阅读5页,还剩64页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第17章FTP与TFTP服务器《Linux操作系统(第5版)》学习目标了解FTP与TFTP协议的基本概念与核心作用,掌握FTP两种工作模式的工作过程;了解vsftpd的常见配置,掌握使用vsftpd配置常见的FTP服务器的方法了解FTP客户端工具的分类与特点,掌握FTP客户端命令与图形界面的操作方法了解TFTP协议与FTP的主要区别及适用场景,掌握TFTP服务器的配置与使用方法章节概述文件传输是网络中的核心服务。本章将介绍两种重要的文件传输协议:功能完整、适用于大文件传输的FTP,以及简洁高效、常用于网络设备维护的TFTP。将重点学习如何在Linux系统中配置、管理这两种服务器,并使用客户端进行文件操作。目录0102FTP基础与协议vsftpd服务器配置03FTP服务器的使用04TFTP与TFTP服务器的使用简介FTP与FTP服务器概述17.1FTP是TCP/IP协议族中的一种具体应用,用于Internet上控制文件的双向传输。该协议是Internet文件传送的基础,它定义了一个远程计算机系统和本地计算机系统之间传输文件的标准,目标是提高文件的共享性。简单地说,FTP协议就是要实现文件在计算机之间的复制,从远程计算机复制文件至本地计算机,称之为“下载”;若将文件从本地计算机复制至远程计算机,则称之为“上传”。FTP服务的一个重要特点是其实现可以独立于平台,不同平台的操作系统都有自己的FTP,因而可以实现文件信息在不同的平台间传输。17.1.1FTP的相关概念1.继承的概念1.什么是异常FTP协议和FTP服务FTP采用“客户机/服务器(C/S)”模式。用户通过客户机程序连接到远程主机上的FTP服务器程序,通过客户机程序向服务器程序发出命令,服务器程序执行客户端发来的命令,并将执行的结果返回客户机。FTP要使用两个TCP连接工作,一个是命令连接,用来在FTP客户端和服务器之间传递命令,另一个是数据连接,用来传输数据。因此,FTP需要两个端口,一个端口(21)用于控制连接,给服务器发送命令以及等待服务器响应;另一个是数据传输端口(20),用来建立数据传输通道。17.1.1FTP的相关概念1.继承的概念1.什么是异常FTP协议和FTP服务FTP采用“客户机/服务器”方式。用户通过客户端程序连接到在远程主机上的FTP服务器程序,通过客户机程序向服务器程序发出命令,服务器程序执行客户端发来的命令,并将执行的结果返回客户机。这是一种典型的请求-响应交互模式,由客户端主动发起连接和命令,服务器端被动响应并提供服务。17.1.1FTP协议概述1.继承的概念1.什么是异常客户端/服务器模式FTP要使用两个TCP连接工作,一个是命令连接,用来在FTP客户端和服务器之间传递命令,另一个是数据连接,用来传送数据。因此,FTP需要两个端口,一个端口用于控制连接,给服务器发送命令以及等待服务器响应,默认端口号为21;另一个是数据传输端口,用来建立数据传输通道,默认端口号为20。这两个连接的分离是FTP协议的一个重要特征,控制连接在整个会话期间一直保持打开,而数据连接则在每次需要传输数据时建立,传输完毕后关闭。17.1.1FTP协议概述1.继承的概念1.什么是异常控制连接与数据连接(1)主动模式在此模式下,FTP客户端随机开启一个大于1024的端口N向服务器的21号端口发起控制连接,然后开放N+1号端口进行监听,并向服务器发出PORTN+1命令。服务器接收到命令后,会用其本地的FTP数据端口(通常是20)来连接客户端指定的端口N+1,从而建立数据连接并进行数据传输。在主动模式下,FTP的数据连接和控制连接的方向是相反的,也就是说,是服务器向客户端发起一个用于数据传输的连接。客户端的连接端口是由服务器和客户端通过协商确定的。17.1.1FTP的相关概念1.继承的概念1.什么是异常FTP的数据传输模式(2)被动模式在此模式下,FTP客户端随机开启一个大于1024的端口N向服务器的21号端口发起控制连接,同时会开启N+1号端口。然后向服务器发送PASV命令,通知服务器自己处于被动模式。服务器收到命令后,会开放一个大于1024的端口P进行监听,然后用PORTP命令通知客户端,自己的数据端口是P。客户端收到命令后,会通过N+1号端口连接服务器的端口P,然后在两个端口之间进行数据传输。在被动模式下,FTP的数据连接和控制连接的方向是一致的,也就是说,是客户端向服务器发起一个用于数据传输的连接。客户端的连接端口是发起这个数据连接请求时使用的端口号。17.1.1FTP的相关概念1.继承的概念1.什么是异常FTP的数据传输模式(1)本地用户如果用户在FTP服务器上拥有系统账号(比如root等),则为本地用户。本地用户可以通过输入自己的账号和口令来登录FTP系统。通常,当本地用户登录后,其所在位置为用户自己的家目录,经配置后本地用户既可以下载又可以上传。需要警惕的是,本地用户也是系统账号,如果FTP服务器配置不当,可能会对系统安全构成威胁。17.1.1FTP的相关概念1.继承的概念1.什么是异常FTP的用户(2)虚拟用户如果用户在远程FTP服务器上拥有账号,但此账号只能用于FTP文件传输服务,而不能用于登录操作系统,则称此用户为虚拟用户。虚拟用户可以通过输入自己的账号和口令来进行授权登录。当虚拟用户登录系统后,其所在目录为该虚拟用户被指定的家目录。在通常情况下,虚拟用户既可以下载又可以上传。这种方式比使用本地用户更安全,常用于需要提供文件上传服务但又不想分配系统账号的场景。17.1.1FTP的相关概念1.继承的概念1.什么是异常FTP的用户(3)匿名用户FTP服务器通常设有匿名用户供非本地用户使用。匿名FTP是一种机制,用户可通过它连接到远程FTP服务器上,并从中下载文件,而无须成为其注册用户。系统建立了一个特殊的用户名为ftp或anonymous,密码也为ftp,网络上的任何人在任何地方都可使用该用户和密码登录到提供匿名服务的FTP服务器。作为一种安全措施,大多数匿名FTP服务器都只允许用户下载文件,即使允许上传,用户也只能将文件上传至某一指定的上传目录中。17.1.1FTP的相关概念1.继承的概念1.什么是异常FTP的用户目前,在Linux环境下包括多种FTP服务器,如vsftpd、Proftpd和pure-ftpd等,甚至perl、python等也提供了ftp服务。vsftpd是一个在类UNIX系统上使用的FTP服务器,它支持很多其他传统的FTP服务器所不支持的特征,可以运行在Linux、BSD、Solaris、HP-UX、IRIX等系统上。vsftpd为“VerySecrueFTPdaemon”的缩写,从此名称可以看出,安全性是开发vsftpd的初衷,除了与生俱来的安全性能以外,高速、稳定是vsftpd的另外两个特性。红帽系列系统和Ubuntu系统均支持vsftpd,本章以vsftpd为例说明FTP服务器的配置与使用过程。17.1.2Linux系统的FTP服务器1.继承的概念1.什么是异常FTP服务器vsftpd服务器配置17.217.2.1vsftpd配置文件与基本设置配置文件位置与结构在红帽系统与Ubuntu系统中,vsftpd配置文件的位置并不相同,默认配置文件内容也有差别,配置目录分别为/etc/vsftpd/和/etc/,另外,匿名用户所在目录分别是/var/ftp/和/srv/ftp/。为了方便描述,把配置目录记为CONF_DIR(对于红帽和OpenEuler,CONF_DIR=/etc/vsftpd/;而对于Ubuntu,CONF_DIR=/etc/),把匿名用户工作目录记为anon_root。以后,在描述配置文件时,将基于$CONF_DIR,不再强调目录,只描述文件。以下bashell程序脚本可实现变量CONF_DIR和anon_root的定义:[-e/etc/lsb-release]&&{CONF_DIR=/etc/;anon_root=/srv/ftp/;}\||{CONF_DIR=/etc/vsftpd/;anon_root=/var/ftp/;}exportCONF_DIRanon_root17.2.1vsftpd配置文件与基本设置配置文件位置与结构vsftpd的常用配置目录及配置文件配置目录或配置文件红

帽Ubuntu说

明CONF_DIR(配置目录)/etc/vsftpd/etc/记为CONF_DIRanon_root(匿名用户工作目录)/var/ftp//srv/ftp/记为anon_rootvsftpd.confvsftpd.confvsftpd.conf主配置文件ftpusersftpusersftpusers默认其中的用户不能使用FTPuserlist_fileuser_listvsftpd.user_list红帽启用,Ubuntu未启用PAM配置文件/etc/pam.d/vsftpd/etc/pam.d/vsftpd访问安全控制17.2.1配置文件与基本设置配置文件位置与结构vsftpd.conf是一个文本文件,其中以“#”字符开始的行是注释行,空行无效,其余的行被视为配置行。每个配置项占一行,格式为“option=value”,需要注意的是,“=”两边不能有空白符。除了这个主配置文件,还可以为特定用户设定个人配置文件。当vsftpd刚安装后,vsftpd.conf文件中的默认配置是比较简单的,安全性和实用性都不太高,用户可以根据实际需要对其进行一些设置和修改,以使得vsftpd应用更具有针对性和目的性。具体做法是,直接通过vim等文本编辑工具编辑主配置文件。为使配置生效,在保存修改后,需要重载或重启vsftpd服务。17.2.1配置文件与基本设置配置文件位置与结构在刚安装vsftpd后,可用命令#sed-e'/^[[:blank:]]*#.*$/d;/^[[:blank:]]*$/d'/etc/$([!-e/etc/lsb-release]&&echovsftpd/)vsftpd.conf得到红帽和Ubuntu中的vsftpd默认配置。配

项红

帽Ubuntu说明及缺省徝anonymous_enable=NONONO是否开放匿名用户:红帽YES,UbuntuNOlocal_enable=YESYESYES是否允许本地用户登录FTP服务器:NOwrite_enable=YESYES无/缺省是否允许写(上传/修改):NOlocal_umask=022022无/缺省新建文件的umask:077dirmessage_enable=YESYESYES是否开放目录信息:NOxferlog_enable=YESYESYES是否启用上传/下载日志:NOxferlog_std_format=YESYES无/缺省日志文件是否使用标准格式:NOconnect_from_port_20=YESYESYESftp-data使用20:NOlisten=NONONO是否监听IPv4:NOlisten_ipv6=YESYESYES是否监听IPv6:NOpam_service_name=vsftpdvsftpdvsftpdpam.service使用的安全控制文件:ftp/vsftpduserlist_enable=YESYES无/缺省是否启用由userlist_file指定的文件:NOuse_localtime=YES无/缺省YES是否使用本地格式时间:NO17.2.1配置文件与基本设置常见配置此类配置项主要用于控制哪些用户可以登录以及他们的基本权限。write_enable=YES/NO:此选项是所有用户写权限(包括上传、修改)的总开关。只有在此设置为YES时,后续的上传、创建目录等写相关配置才能生效。local_enable=YES/NO:决定是否允许系统本地用户登录FTP服务器。anonymous_enable=YES/NO:决定是否允许匿名用户登录FTP服务器。anon_upload_enable=YES/NO:是否允许匿名用户上传文件。前提是write_enable必须设置为YES。anon_mkdir_write_enable=YES/NO:是否允许匿名用户创建目录。前提同样是write_enable必须设置为YES。17.2.1配置文件与基本设置常见配置此类配置项用于定义用户登录后的初始目录并限制其访问范围,对系统安全至关重要。local_root=dir:设置本地用户登录后所在的目录。若不设置,默认为用户的家目录。anon_root=dir:设置匿名用户登录后所在的目录。chroot_local_user=YES/NO:当设置为YES时,所有本地用户登录后将被禁锢在其家目录中,无法切换到系统的其他目录,这极大地增强了系统安全性。chroot_list_enable=YES/NO&chroot_list_file=file:这两个选项与chroot_local_user配合,可以实现更灵活的目录禁锢策略。通过指定一个列表文件,可以精确控制哪些用户受到禁锢或排除在禁锢之外。例如,当chroot_local_user=YES且chroot_list_enable=YES时,列表文件中的用户将不受禁锢,而其他用户则被禁锢。local_umask&anon_umask:分别用于设置本地用户和匿名用户新创建文件时的权限掩码,直接影响上传文件的默认权限。17.2.2配置实战举例默认配置的vsftpd服务器默认的vsftpd服务器,不允许匿名用户访问,因为anonymous_enable=NO但允许本地用户访问,这是由local_enable=YES决定的。但是,就本地用户访问而言,在红帽下可以上传和下载,而在Ubuntu下只可以下载而不可以上传,这是因为,在红帽下write_enable=YES是起作用的,而在Ubuntu下这行是被注释掉的,write_enable只能取默认值NO。从现在起,在Ubuntu下也使该行起作用,让本地用户可以上传和下载。17.2.2配置实战举例配置允许匿名用户上传的服务器是否允许匿名用户访问vsftpd服务器,取决于anonymous_enable的设置:若其值为YES则允许,否则不允许。因此,若要让vsftpd服务器允许匿名用户访问,则只需将anonymous_enable=NO修改为anonymous_enable=YES即可。当然,还要使用命令#systemctlreload-or-restartvsftpd #每当修改配置后都要重载或重启vsftpd服务。即使这样设置后,匿名用户也只能下载,不能上传,众多对外提供服务的FTP服务器,都只允许匿名用户以下载方式访问。17.2.2配置实战举例配置允许匿名用户上传的vsftpd服务器允许匿名用户上传,首先需要在vsftpd.conf文件中修改或增加以下配置项:anonymous_enable=YES #启用匿名用户write_enable=YES #所有用户可写(匿名用户当然也可以)anon_world_readable_only=NO #放开匿名用户的浏览权限(不是必需的,不开放则不能浏览)anon_upload_enable=YES #允许匿名用户上传anon_mkdir_write_enable=YES #开启匿名用户的写和创建目录的权限17.2.2配置实战举例配置允许匿名用户上传的vsftpd服务器然后,在$anon_root目录内创建供匿名用户上传文件的目录,如incoming或upload等,并为其设定权限。在命令行中执行以下命令:#cd$anon_root #进入匿名用户根目录:红帽为/var/ftp/,Ubuntu为/srv/ftp#mkdirincoming #创建上传目录#chown-Rftp:ftpincoming #修改所有者和组#chmod-Rg+wincoming #为同组人增加写权限#chcon-R-tpublic_content_rw_tincoming#SELinux开启时执行(Ubuntu不需要执行)#systemctlreload-or-restartvsftpd #重载或重启vsftpd服务17.2.2配置实战举例配置允许匿名用户上传的vsftpd服务器由于匿名用户工作时的默认身份为ftp,需要对用于上传的目录拥有写权限,建议将上传目录incoming的主、组均改为ftp,且同组人具有写权限。需要说明的是,ftp登录成功后,还需要通过命令ftp>cdincoming #进入可写目录进入incoming目录,或指定incoming目录(如incoming/file)才能上传。ftp>putx.c #上传文件x.c(假设x.c在客户端当前目录中存在)17.2.2配置实战举例配置支持虚拟用户的vsftpd服务器允许本地用户上传文件是不安全的,且本地用户所使用的工作目录和权限有很大的不同,不便用于FTP服务器数据的上传。而匿名用户是用来下载的,若开放,则任何人均可访问并从中下载所需信息。因此还必须设置一些有别于本地用户和匿名用户的具有特殊用途的FTP用户,这时可以考虑设置虚拟用户。设虚拟用户的宿主用户名为virftp,配置虚拟用户的过程大致如下。1)配置一台所有虚拟用户共用同一个目录的服务器(1)建立虚拟用户所使用的系统宿主用户并为其设置权限。17.2.2配置实战举例配置支持虚拟用户的vsftpd服务器#useradd-m-d/home/virftp-s/usr/sbin/nologinvirftp#创建宿主用户(名字和位置自定,只需其中1个)#ls-ld/home/virftp #查看内容#cp/etc/hosts/home/virftp #复制一个文件供FTP虚拟用户登录后查看#chmodu-w/home/virftp #家目录不允许有写权限,否则拒绝登录#chown-Rvirftp:virftp/home/virftp#ls-l/home/virftp #查看内容#chcon-R-tpublic_content_rw_t/home/virftp #SELinux工作时执行(Ubuntu不需要执行)(2)建立虚拟用户及密码库文本文件。#cd$CONF_DIR #进入配置目录:红帽为/etc/vsftpd/,Ubuntu为/etc/#vivlogin.txt #编辑一个文本文件(文件名自定),用于存放虚拟用户的名字和密码17.2.2配置实战举例配置支持虚拟用户的vsftpd服务器该文件的奇数行是虚拟用户名,偶数行是密码,每个虚拟用户占2行,其中可以包含多个用户信息。以下为包含用户vftp01和vftp02,密码分别为123456和567890的文件内容:vftp01123456vftp02567890(3)生成PAM认证使用的数据库文件。此处需要db_load命令的支持,若系统中无此命令,则需要安装它。在红帽和Ubuntu中db_load分别归属于libdb-utils和db-util软件包,OpenEuler直接使用gdbm,安装方法为:17.2.2配置实战举例配置支持虚拟用户的vsftpd服务器#yuminstalllibdb-utilsgdbmlibdb-convert-util-y #红帽#yuminstalllibdbgdbm #OpenEuler#aptinstalldb-util-y #Ubuntu安装完毕之后,可以使用该命令生成认证数据库文件,方法如下:#db_load-T-thash-fvlogin.txtvlogin.db #红帽和Ubuntu:文件名自定,扩展名必须是.db#chmod600vlogin.db #修改权限17.2.2配置实战举例配置支持虚拟用户的vsftpd服务器上述为传统方法,现在仅适用于Ubuntu。对红帽和OpenEuler来说,由于数据库由BerkelyDB变为了GDBM_DB,因此还需要转换或直接生成GDBM。OpenEuler使用的GDBM数据库名格式为*.pag,用gdbmtool直接生成:#gdbmtool-nvlogin.pagopen #生成新文件vlogin.pag#gdbmtoolvlogin.pagstorevftp01123456 #将用户vftp01及密码写入#gdbmtoolvlogin.pagstorevftp02567890 #将用户vftp02及密码写入#gdbmtoolvlogin.pagquit #数据库操作结束#chmod600vlogin.pag #修改权限17.2.2配置实战举例配置支持虚拟用户的vsftpd服务器红帽使用的GDBM数据库名格式为*.gdbm,对于数据库的处理,既提供了转换命令,也可使用gdbmtool命令直接生成。直接生成方式可参见OpenEuler的操作,转换方式如下。#db_load-T-thash-fvlogin.txtvlogin.db #红帽和Ubuntu:文件名自定,扩展名必须是.db#db_converter--srcvlogin.db--destvlogin.gdbm #红帽:将vlogin.db转换为vlogin.gdbm#chmod600vlogin.gdbm #修改权限(4)编辑虚拟用户所需的PAM配置文件。先从备份中恢复/etc/pam.d/vsftpd,注释掉(或删除)其中的所有内容,然后添加如下2行:authrequiredpam_userdb.sodb=$CONF_DIR/vlogin[.gdbm] #红帽必须有扩展名,其他系统不能有accountrequiredpam_userdb.sodb=$CONF_DIR/vlogin[.gdbm]#同上17.2.2配置实战举例配置支持虚拟用户的vsftpd服务器(5)修改主配置文件。编辑主配置文件vsftpd.conf,使其全部内容如下:anon_mkdir_write_enable=NOanon_other_write_enable=NOanon_upload_enable=NOanon_world_readable_only=NOanonymous_enable=NOchroot_local_user=YESguest_enable=YESguest_username=virftplisten=YESlocal_enable=YESpam_service_name=vsftpdwrite_enable=NO17.2.2配置实战举例配置支持虚拟用户的vsftpd服务器(6)重载或重启vsftpd服务#systemctlreload-or-restartvsftpd至此,一个简单可支持虚拟用户vftp01和vftp02登录的vsftpd服务器已经配置完成了。在这里,虚拟用户登录成功后的所在目录为virftp用户的家目录,但只能浏览和下载信息。17.2.2配置实战举例配置支持虚拟用户的vsftpd服务器2)配置一台为虚拟用户分配差异化操作权限的服务器可以通过对不同虚拟用户设置不同子配置文件的方式,让不同的虚拟用户拥有不同的权限或行为。比如,让vftp01保持原权限,而让vftp02拥有上传的权限。在1)的基础上,启用用户子配置目录,并在其下为每个虚拟用户设置子配置文件。(1)修改主配置文件vsftpd.conf。编辑vsftpd.conf,在其中添加如下行:user_config_dir=$CONF_DIR/user_conf17.2.2配置实战举例配置支持虚拟用户的vsftpd服务器(2)创建子配置目录。#mkdiruser_conf(3)创建子配置文件和工作子目录。在子配置目录user_conf下,为vftp01和vftp02创建子配置文件,方法如下:##forvftp01.#子配置文件为user_conf/vftp01#echo"#anon_world_readable_only=NO">user_conf/vftp01 #echo"write_enable=NO">>user_conf/vftp01 #不可写##forvftp02.#子配置文件为user_conf/vftp02#echo"write_enable=YES">user_conf/vftp02 #可写#echo"anon_upload_enable=YES">>user_conf/vftp02 #可上传#mkdir/home/virftp/up; #创建用于上传的目录#chownvirftp:virftp/home/virftp/up;chmodug+w/home/virftp/up #设置主组和权限17.2.2配置实战举例配置支持虚拟用户的vsftpd服务器(2)创建子配置目录。#mkdiruser_conf(3)创建子配置文件和工作子目录。在子配置目录user_conf下,为vftp01和vftp02创建子配置文件,方法如下:##forvftp01.#子配置文件为user_conf/vftp01#echo"#anon_world_readable_only=NO">user_conf/vftp01 #echo"write_enable=NO">>user_conf/vftp01 #不可写##forvftp02.#子配置文件为user_conf/vftp02#echo"write_enable=YES">user_conf/vftp02 #可写#echo"anon_upload_enable=YES">>user_conf/vftp02 #可上传#mkdir/home/virftp/up; #创建用于上传的目录#chownvirftp:virftp/home/virftp/up;chmodug+w/home/virftp/up #设置主组和权限最后重启或重载vsftpd服务后,vftp02就可以向/home/virftp/up中上传文件了。17.2.2配置实战举例配置支持虚拟用户的vsftpd服务器3)配置一台为不同虚拟用户分配独立“家目录”的服务器在2)的基础上,在每个虚拟用户的子配置文件中添加其所用的“家目录”,并为虚拟用户创建合适的“家目录”。(1)为每个虚拟用户指定“家目录”。为虚拟用户vftp01和vftp02分别指定“家目录”/home/virftp/vftp01和/home/virftp/vftp02。在虚拟用户vftp01的子配置文件user_conf/vftp01中添加如下行:local_root=/home/virftp/vftp01在虚拟用户vftp02的子配置文件user_conf/vftp02中添加如下行:local_root=/home/virftp/vftp0217.2.2配置实战举例配置支持虚拟用户的vsftpd服务器(2)为每个用户设置“家目录”。#mkdir/home/virftp/vftp01/home/virftp/vftp02 #创建“家目录”#chmodug-w/home/virftp/vftp01/home/virftp/vftp02 #去除“家目录”写权限#ln/home/virftp/hosts/home/virftp/vftp01 #创建一些用于浏览的文件#ln/home/virftp/hosts/home/virftp/vftp02 #继续#ls/>/home/virftp/vftp01/r.lst;ls/>/home/virftp/vftp02/R.lst #继续#mkdir/home/virftp/vftp02/up #为vftp02创建上传目录#chown-Rvirftp:virftp/home/virftp;chmod-R775/home/virftp/vftp02/up#设置权限#systemctlreload-or-restartvsftpd #重载或重启vsftpd服务对于虚拟用户vftp02,他在自己的“家目录”中是不能上传文件的,但在其下的up中是可以的。17.2.2配置实战举例配置高安全级别的vsftpd服务器示例1~示例4是服务器配置示例。若要让以上服务器更安全,则可以选择以下部分配置项用于服务器安全或性能配置。(1)只允许匿名用户访问,不允许本地用户访问。anonymous_enable=YES #激活匿名用户local_enable=NO #禁止本地用户登录(2)使用ftpd_banner取代vsftpd默认的欢迎消息,以避免泄露vsftpd服务器相关信息。ftpd_banner=welcometomyFTPserver(3)只让匿名用户浏览可阅读的文件,而不可以下载。anon_world_readable_only=YESanon_other_write_enable=NO17.2.2配置实战举例配置高安全级别的vsftpd服务器(4)隐藏文件的主、组信息,使匿名用户看到文件的主和组全为ftp。hide_ids=YES(5)取消写权限。write_enable=NOanon_upload_enable=NOanon_mkdir_write_enable=NOanon_other_write_enable=NO(6)指定监听的IP地址或端口号。#listen_address=ipaddress #指定监听的IP地址。若本行不存在或被注释掉,则采用默认值#listen_port=PORT #指定监听的端口号。若本行不存在或被注释掉,则采用默认值2117.2.2配置实战举例配置高安全级别的vsftpd服务器(7)对连接进行控制,限制超时连接。connect_from_port_20=YESaccept_timeout=60connect_timeout=120data_connection_timeout=120(8)控制并发数,限定每个IP地址的并发数。max_clients=numerical_valuemax_per_ip=numerical_value(9)限定下载速度,具体限定数值,可以根据需要确定。anon_max_rate=80000FTP客户端使用17.317.3.1用浏览器访问使用浏览器访问FTP服务器(1)匿名登录方式

在浏览器地址栏中输入FTP服务器IP地址或主机名。 0 #服务器IP地址据实际情况而定 ftp://centos10 #服务器名据实际情况而定17.3.1用浏览器访问使用浏览器访问FTP服务器(2)用户登录方式在浏览器地址栏中输入FTP服务器IP地址或主机名,且在主机或IP地址前指定用户名。ftp://root@0 #以root用户为例,或:ftp://root@centos10ftp://test@centos10 #以test用户为例之后,提示输入密码,也可能根据浏览器的不同,首先提示用户再次输入用户名,一切正确之后,才能成功登录。当受ftpusers、user_list、防火墙等限制时,还可能出现登录不成功,或成功后也无法正常工作的情况。17.3.1用浏览器访问使用浏览器访问FTP服务器(3)windows按Win+R键,在弹出的运行对话框中输入“0”或“ftp://centos10”进行访问。17.3.2使用客户端命令ftpftp命令使用ftp命令访问FTP服务器也有两种方式:匿名登录和指定用户登录。ftp命令的通常用法为:ftp[options]ftp_svr #ftp_svr可以是FTP服务器主机名或IP地址

17.3.2使用客户端命令ftpftp命令ftp命令的常用参数参

数意

义参

数意

义ftp_srvFTP服务器主机名或IP地址-d开启调试模式-n抑制ftp的自动登录-i取消多文件传输时的交互提示17.3.2使用客户端命令ftpftp命令ftp命令的部分常用内部命令。命

令功

能命

令功

能![cmd[args]]执行交互shell[命令cmd]?/help[cmd]对ftp内部命令[cmd]提供帮助appendlfile[rfile]将本地lfile追加到远程rfile或lfile中ascii/binary指定ascii/binary传输方式bye/quit退出ftpcdrdir进入远程主机目录rdirclose/disconnect关闭与服务器的连接(与open对应)deleterfile删除远程主机文件rfiledebug[val]设置调试方式(val为0时取消调试)dir/ls[rdir][lfile]列出远程[rdir]目录[到本地lfile]get/recvrfile[lfile]下载rfile[到本地lfile中]lcd[dir]将本地工作目录切换至dirmdeleterfiles删除远程文件rfilesmdir/mlsrfileslfile列出多个rfiles目录[到lfile]mgetrfiles下载多个文件rfiles,支持通配符mkdirrdir在远程主机中建立一个目录rdirmputlfile上传多个文件,支持通配符newerfile若远程file比本地的新,则重新下载openhost/IP[port]建立到指定host/IP[port]的连接prompt打开或关闭多文件传输时的交互提示passive进入被动模式regetrfile[lfile]类似于get,但若lfile存在,则续传put/sendlfile[rfile]上传本地lfile[到rfile中]pwd显示远程主机的当前目录renamerorigrdest将远程的rorig更名为rdestrmdirrdir删除远程目录rdirstatus显示当前ftp状态type[TYPE]显示或设置传输类型为TYPEsystem显示远程主机的操作系统类型umask[MASK]显示或将远程umask设置为MASKusername[passwd]指定账号[及密码]verbose设置详尽模式17.3.2使用客户端命令ftp交互式操作示例1)交互式以下为以本地用户(用户名为test,密码为123456)登录,主机名为centos10或IP地址为0的交互过程。在此过程中,使用了列目录命令ls,文件上传命令puttest1.txt和文件下载命令gettest2.txt,最后使用by命令退出ftp客户端。17.3.2使用客户端命令ftp交互式操作示例#ftp0 #或ftpcentos10 Name(0:*):test #可为匿名用户(ftp)或本地用户。此为本地用户test Password:****** #输入用户密码,匿名用户的密码为ftpftp>ls #ftp命令:列目录。以下也为ftp命令

ftp>puttest1.txt #上传test1.txt到ftp服务器。匿名用户一般不允许上传

ftp>puttest1.txttest2.txt #上传test1.txt到ftp服务器,保存为test2.txtftp>gettest2.txt #从ftp服务器中下载test2.txt文件

ftp>by #退出ftp客户程序17.3.2使用客户端命令ftp交互式操作示例匿名用户登录时,使用ftp或anonymous作为ftp登录的用户名,ftp为密码。以上过程也适用于本地用户登录。如果使用本地用户test登录系统,则在以上交互过程中,只需要将用户名和密码换成test及其密码就可以了。需要注意的是,使用本地用户登录存在一定的隐患。首先它是系统账号,一旦FTP服务器出现安全漏洞,会对整个FTP服务器所在的主机系统造成威胁;其次,若FTP服务器配置不当,本地用户账号可以离开自己的家目录到系统中的其他目录去,还可能会允许向或从自己家目录以外的目录传送文件。这些都是对系统的安全性威胁,尤其当此本地用户为权力较大的用户时更是如此,如果该用户为root,那就更危险了。这也是很多系统中拒绝root以本地用户身份登录ftp的原因。为此,设置FTP时,应该将本地用户禁锢在自己的家目录中,不让其外出,也不让其外看。17.3.2使用客户端命令ftp交互式操作示例2)脚本方式在交互方式下,由于有人的参与,ftp的效率比较低,可以将上述交互过程中使用的命令放在一个脚本文件中,然后在shell命令下以I/O重定向办法实现整个过程的自动化。17.3.2使用客户端命令ftp交互式操作示例2)脚本方式在交互方式下,由于有人的参与,ftp的效率比较低,可以将上述交互过程中使用的命令放在一个脚本文件中,然后在shell命令下以I/O重定向办法实现整个过程的自动化。若将这些命令脚本保存到ftp.scrpt1文件中,则使用以下执行之:#ftp-n0<ftp.scrpt1

或#ftp-ncentos10<ftp.scrpt1也可使用管道,比如:#catftp.script1|fpt-ncentos1017.3.2使用客户端命令ftp交互式操作示例在ftp.script1中使用了user命令,它所带的两个参数分别为用户名和用户密码。在ftp的命令行中还使用了-n参数,以禁止ftp的自动登录功能,因为在脚本中还要指定具体的用户和密码。若要在多文件传输与操作中(mput/mget/mdelete)禁止交互与提示,还可以使用-i选项,或在脚本中使用prompt命令。上述ftp命令行中的主机或IP信息也可以添加到ftp的脚本文件,此时可在脚本文件开始处添加一行打开通信链路命令:openftp_svr17.3.2使用客户端命令ftp交互式操作示例3)使用即时文档将ftp.script1的内容作为即时文档,也可以执行ftp客户端脚本命令。下面是一新任务:使用test用户(密码为tsettset),从centos10上下载所有的*.txt文件。TFTP与TFTP服务器的使用17.417.4.1TFTP协议概述TFTP协议TFTP(TrivialFileTransferProtocol)是TCP/IP协议族中的一个用来在客户机和服务器之间进行简单文件传输的协议。TFTP通常基于UDP协议实现,是为了进行小文件传输,它不具备一般FTP的许多功能,因此,可以看成是一个简化了的FTP。它与FTP的主要区别是没有用户权限认证与权限管理等功能。也就是说TFTP不需要验证客户端的身份及权限。TFTP的缺点是传送不安全、没有用户和密码验证等,尽管如此,它仍非常适合安全性要求不高的小型文件传送。18.4.1TFTP协议概述TFTP协议TFTP支持文件的上传与下载功能。如果客户端发送的是下载请求,服务器将根据客户端发过来的报文,解析出文件的路径和文件名,并且根据解析出来的文件名及内容开始构造报文,然后把它发送给客户端;如果客户端发送来的是上传请求,那么,服务器端也必须解析出文件名及要保存的路径。若满足条件要求,则发送ACK给客户端以确认已经接受客户端的请求,然后等待客户的报文。客户端接收ACK后,就可以开始发送数据报文,服务器开始接收报文,并将其写到指定路径的文件中。17.4.2TFTP服务器配置TFTP的安装在ubuntu中TFTP服务的客户端、服务端有多个软件包,比如说,tftp-hpa和tftpd-hpa、atftp和atftpd等,这里选择tftp-hpa和tftpd-hpa。可以使用以下命令安装:#aptinstalltftp-hpatftpd-hpa-y #Ubuntu17.4.2TFTP服务器配置TFTP服务器的设置在红帽系统和ubuntu中服务名为tftp.service和tftpd-hpa.service,服务管理方法为:#systemctlenabletftp;systemctlstarttftp #红帽:启用且启动#systemctlenabletftpd-hpa;systemctlstarttftpd-hpa #红帽:启用且启动说明:(1)在红帽和Ubuntu中,tftp服务器的默认工作目录分别为/var/lib/tftpboot和/srv/tftp,需要下载的数据要事先存放在这里,上传的数据也传到这里。(3)上传时,要求在/var/lib/tftpboot或/srv/tftp中有同名文件,且权限为666或777。17.4.2TFTP的安装、配置及应用tftp命令tftp命令的用法为:tftp[options][host[port]][-ccmd] #红帽&Ubuntu参数host为tftp服务器主机名或IP,-mmode用于指定传输方式(ascii或binary);-ccmd用于指定子命令。tftp的常用子命令。命

令功

能命

令功

能connecthost[port]连接到远程TFTP服务器hoststatus显示当前状态信息putlfile[rfile]将本地lfile上传到服务器[并以文件名rfile存放]getrfile[lfile]下载文件rfile[为lfile][mode]binary/ascii设置二进制/文本传输模式verbose设置详尽模式quit退出TFTPhelp/?cmd对命令cmd进行帮助17.4.2TFTP的安装、配置及应用TFTP服务器的应用1)用于远程系统引导或远程备份可以利用TFTP与DHCP、FTP服务器配合,构成一组Linux安装服务器或备份服务器。利用安装服务器可以进行大规模的Linux

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论