认真阅读基于Linux操作系统构建FTP服务器的技术说明,根据要求回答问题1至问题5。【说明】 vsftpd (very secure FTP daemon)软件是Linux平台中具有代表性的免费的开放源代码的FTP服务器软件,它可以提供虚拟用户、虚拟IP设置、带宽限制、独立操作模式、支持IPv6等功能。它使用安全编码技术解决了缓冲溢出问题,并能有效避免“globbing”等类型的拒绝服务攻击。 vsftpd.conf文件是vsftpd服务的核心配置文件,用于控制vsftpd不同方面的属性。图3-11所示是一个 vsftpd.conf文件的部分配置内容。
问答题
在Linux操作系统的终端窗口,可以通过RPM命令(1)来验证系统是否已安装vsfipd服务。
【正确答案】正确答案:rpm -qalgrep vsftpd
【答案解析】解析:这是一道要求读者熟悉以RPM方式安装vsftpd服务器软件的配置命令题。本题所涉及的知识点有: 1)如果选择完全安装Linux操作系统,那么系统默认会安装上vsftpd服务器。 2)在终端窗口验证系统是否已安装vsftgd服务的RPM命令是: rpm -qalgrep vsftpd 如果系统已经安装了vsftpd服务器,则系统将会输出vsftpd服务器的版本号。 3)如果系统未安装vsftpd服务器,可到官方网站(ftp://vsftpd.beasts.org/users/cevans/)下载最新版的 vsftpd的RPM包,接着可以使用以下的RPM命令进行软件安装: rpm -ivh vsftpd-2.0.3.i386.rpm
问答题
为了使vsftpd服务器能够正常工作,需要确保操作系统中没有启用其他FTP服务器软件。在终端窗口中运行(2)命令来查看系统是否已启用其他FTP服务器软件。
【正确答案】正确答案:netstat -llgrep ftp
【答案解析】解析:这是一道要求读者熟悉查看、启动、停止vsftpd服务器的配置命令题。本题所涉及的知识点有: 1)为了使vsftpd服务器能够正常工作,需要确保操作系统中没有启用其他FTP服务器软件。在终端窗口中查看系统是否已启用其他FTP服务器软件的命令是: netstat -llgrep ftp 如果显示的信息中包括“tcp00*:fip *:* LISTEN”等信息,则说明系统中已运行了其他FTP服务器软件。 2)启动vsftpd服务器的配置命令是“service vsftpd start”。 3)命令“service vsftpd stop”可用于停止vsftpd服务器。 4)命令“service vsftpd restart”可用于重启vsftpd服务器。 5)查看vsftpd服务器状态的配置命令是“service vsftpd status”。
问答题
vsftpd服务器支持匿名登录。通常匿名登录的用户名是anonymous,另外还可以使用(3)用户名进行匿名登录。
【正确答案】正确答案:ftp
【答案解析】解析:这是一道要求读者熟悉FTP服务器匿名登录用户管理的基本常识题。本题所涉及的知识点如下。 1)vsfipd服务器支持匿名登录。通常匿名登录的用户名是anonymous,密码可有可无,默认使用PASV模式登录,能够访问的默认目录是pub。 2)另外还可以使用用户名为ftp进行匿名登录,这是因为ftp是匿名用户的映射用户账号。
问答题
在图3-11所示的配置文件中,第3行至第5行实现什么配置功能?
【正确答案】正确答案:允许本地用户登录 允许本地用户上传文件 设置本地用户对上传文什夹进行读、写、执行等操作权限,文件所有者同组成员和其他普通成员对文件夹只具有读、执行操作权限
【答案解析】解析:这是一道要求读者熟悉ftp服务器配置文件的语句/命令解释题。本题的解答思路如下。 1)允许本地用户登录并允许其上传文件的相关语句是: local_enable=YES #允许本地用户登录 write_enable=YES #允许本地用户上传文件 要使上述选项生效,必须复制一个pam验证文件到/etc/pam.d,并改名为ftp。当然也可以改为其他名称,但必须修改pam_service_name的值,默认为ftp。 2)Linux系统文件访问的3种处理模式是:读取r、写入w、执行x。对普通文件默认的访问权限是:文件所有者能够读写,但不能执行;文件所有者同组成员和其他成员只能读取。 Linux系统文件访问的3级权限是:文件所有者、文件所有者同组成员、其他成员。 Linux系统默认将每一个用户所有者的目录权限设为drwx------。在“drwx------”中,d表示文件类型, rwx说明文件所有者能够对文件夹进行读、写、执行操作:第一个“---”表示文件所有者同组成员无任何访问权限;第二个“---”表示其他成员也无任何访问权限。 3)设置本地用户上传的文件或文件夹的umask值的相关语句是: local_umask=022 #设置本地用户上传文件或文件夹的umask(默认值为077) 其中“022”每位的二进制数形式是“000 010 010”,其含义是文件所有者对文件夹进行读、写、执行等操作权限,文件所有者同组成员和其他普通成员对文件夹只具有读、执行操作权限。 如果将umask值设置为077,就会山现“用户没有权限(Permission denied)访问网页”的问题,所以建议将umask的值设为022。
问答题
在图3-11所示的配置文件中,配置语句“chroot_local_user=YES”实现什么功能?
【正确答案】正确答案:将本地用户锁定在主目录中,不允许切换到上一级目录
【答案解析】解析:这也是一道要求读者熟悉FTP服务器配置文件的语句/命令解释题。 配置语句“chroot_local_user=YES”实现将本地用户锁定在主目录中,不允许切换到上一级目录中的功能。
问答题
在图3-11所示的配置文件中,第7行至第9行实现什么配置功能?
【正确答案】正确答案:禁止/etc/vsftpd.user_list中列出的用户名登录FTP服务器
【答案解析】解析:这也是一道要求读者熟悉FTP服务器配置文件的语句/命令解释题。本题的解答思路如下。 1)在图3-11所示的配置文件中,配置语句“local_enable=YES”说明所有的用户包括root都能通过ftp登录服务器,出于安全考虑,需要对某些用户进行限制。 2)在vsftpd.conf中有3个用户限制的控制选项,分别是: usedist_deny=YES/NO userlist_enalbe=YES/NO userlist_file=/etc/vsftpd.user_list 当userlist_deny=YES,userlist_enalbe=YES时,/etc/vsftpd.user_list中列出的用户名将不允许登录FTP服务器;如果userlist_deny=NO,userlist_enalbe=YES时,/etc/vsftpd.user_list中列出的用户名允许登录FTP服务器。 可见,图3-11所示的配置文件中第7行至第9行实现禁止/etc/vsftpd.user_list中列出的用户名登录FTP服务器的功能。 3)另外还需在/etc目录下创建vsftpd.user_list文件,文件内容为允许登录或禁止登录的用户名,每个用户占一行。
问答题
在图3-11所示的配置文件中,配置语句“max_per_ip=5”实现什么功能?
【正确答案】正确答案:允许每个客户IP地址最多打开5个线程
【答案解析】解析:这也是一道要求读者熟悉FTP服务器配置文件的语句/命令解释题。 配置语句“max_per_ip=5”用于实现每个客户IP地址最多允许打开5个线程功能。 最后,图3-11所示的配置文件中所有配置命令的完整解释,以供实验或实践操作时参考。 anonymous_enable=YES #允许匿名用户访问 no_anon_password=YES #匿名用户登录时不需要输入密码 local_enable=YES #允许本地用户登录 write_enable=YES #允许本地用户上传文件 local_umask=022 #设置本地用户上传文件或文件夹的umask值 chroot_local_user=YES #将本地用户锁定在主目录中,不允许切换到上一级目录中 userlist_deny=YES #禁止/etc/vsftpd.user_list中列出的用户名登录FTP服务器 userlist_enalbe=YES userlist_file=/etc/vsftpd.user_list chmod_enable=NO #禁止用户通过FTP修改文件或文件夹的权限 max_clients=100 #最多同时允计100个客户连接 max_per_ip=5 #允许每个客户IP地址最多打开5个线程 anon_max_rate=8192 #匿名用户的最高下载速度为8KB/s(1024×8=8192) local_max_rate=81920 #普通用户的最高下载速度为80KB/s idle_session_timeout=600 #设置闲置的会话过程超时值为600秒(10分钟) data_connection_timeout=120 #设置数据连接的超时值为120秒(2分钟) xferlog_file=/var/log/vsftpd.log #启动记录上传/下载活动日志功能