2022年在linux中配置FTP服务器终版 .pdf
5 在 linux 中配置 FTP 服务器一、实验目的1、了解 FTP 的基本原理和作用;2、掌握 linux 下配置 FTP 服务器的方法;3、掌握常用的FTP 基本内部命令。二、实验工具及设备1、交换机(或集线器),网线若干;2、带网卡的微机,包括安装有Windows 系统的微装有 linux 系统的服务器(微机);3、Red Hat Enterprise Linux AS 4安装光盘。三、实验预备知识1、FTP 服务器简介;(1)FTP 传输方式:ASCII 传输方式,二进制传输方式;(2)FTP 工作模式:Standard,Passive;(3)FTP 服务器软件。2、VSFTP 服务器的安装;3、VSFTP 服务器的配置;4、FTP 服务器运行控制。四、实验内容和步骤1、vsftpd 的安装、检测和启动(1)vsftpd 的安装:有两种方法,一种是在图形界面的名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 24 页 -主菜单中选择“系统设置”“添加和删除应用程序”菜单命令,选择“FTP 服务器”软件包组,再单击“更新”按钮就可以安装与vsftpd 相关的软件包;另一种是将光盘放入光驱挂载:mount/dev/cdrom/media/cdrom,进入目录:cd/media/cdrom/RedHat/RPMs,查 找 安 装 包:ll*vsftpd*,安装 rpm-ivh vsftpd-2.0.1-5.i386.rpm;(2)vsftpd 的检测:可以使用命令来检测是否安装成功,rootlocalhost#rpm-qa|grep vsftpd Vsftpd-2.0.1-5.EL4.3 如果出现了上述的结果,表明安装成功。(3)vsftpd 的启动:也有两种管理vsftpd 服务的脚本,一 种 是 在 命 令 模 式 下 输 入 rootlocalhost#/etc/init.d/vsftpd start;另 一 种 是 输 入 rootlocalhost#service vsftpd start,分别如下所示:rootlinuxsir001 root#/etc/init.d/vsftpd start 为 vsftpd启动 vsftpd:确定 rootlinuxsir001 root#service vsftpd start 为 vsftpd启动 vsftpd:确定 名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 24 页 -FTP 相关配置文件说明:主配置其相关配置文件有三个/etc/vsftpd/vsftpd.conf,/etc/vsftpd.ftpusers,/etc/vsftpd.user_list,在配置 FTP 服务器时,主要是修改这些文件中的相关语句.1、/etc/vsftpd/vsftpd.conf 说明,如下所示:1.vsftpd.conf文件说明#Example config file/etc/vsftpd/vsftpd.conf#The default compiled in settings are fairly paranoid.This sample file#loosens things up a bit,to make the ftp daemon more usable.#Please see vsftpd.conf.5 for all compiled in defaults.#READ THIS:This example file is NOT an exhaustive list of vsftpd options.#Please read the vsftpd.conf.5 manual page to get a full idea of vsftpds#capabilities.#Allow anonymous FTP?(Beware-allowed by default if you comment this out).名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 24 页 -anonymous_enable=YES /是否允许 anonymous登录 FTP 服务器,默认是允许的.#Uncomment this to allow local users to log in.local_enable=YES/是否允许本地用户登录FTP 服务器,默认是允许#Uncomment this to enable any form of FTP write command.write_enable=YES /是否允许用户具有在FTP 服务器文件中执行写的权限,默认是允许#Default umask for local users is 077.You may wish to change this to 022,#if your users expect that(022 is used by most other ftpds)local_umask=022/设置本地用户的文件生成掩码为022,默认是077#Uncomment this to allow the anonymous FTP user to upload files.This only#has an effect if the above global write enable is activated.Also,you will#obviously need to create a directory writable by the FTP 名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 24 页 -user.#anon_upload_enable=YES#Uncomment this if you want the anonymous FTP user to be able to create#new directories.#anon_mkdir_write_enable=YES /是否允许匿名账户在FTP服务器中创建目录#Activate directory messages-messages given to remote users when they#go into a certain directory.dirmessage_enable=YES/激活目录信息,当远程用户更改目录时,将出现提示信息#Activate logging of uploads/downloads.xferlog_enable=YES /启用上传和下载日志功能#Make sure PORT transfer connections originate from port 20(ftp-data).connect_from_port_20=YES /启用 FTP 数据端口的连接请求#名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 24 页 -#If you want,you can arrange for uploaded anonymous files to be owned by#a different user.Note!Using root for uploaded files is not#recommended!#chown_uploads=YES#chown_username=whoever#You may override where the log file goes if you like.The default is shown#below.#xferlog_file=/var/log/vsftpd.log /设置日志文件的文件名和存储路径,这是默认的#If you want,you can have your log file in standard ftpd xferlog format xferlog_std_format=YES/是否使用标准的ftpd xferlog日志文件格式#You may change the default value for timing out an idle session.#idle_session_timeout=600 /设置空闲的用户会话中断时间,默认是 10 分钟名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 24 页 -#You may change the default value for timing out a data connection.#data_connection_timeout=120/设置数据连接超时时间,默认是120 秒.#It is recommended that you define on your system a unique user which the#ftp server can use as a totally isolated and unprivileged user.#nopriv_user=ftpsecure#Enable this and the server will recognise asynchronous ABOR requests.Not#recommended for security(the code is non-trivial).Not enabling it,#however,may confuse older FTP clients.#async_abor_enable=YES#By default the server will pretend to allow ASCII mode but in fact ignore#the request.Turn on the below options to have the server 名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 24 页 -actually do ASCII#mangling on files when in ASCII mode.#Beware that turning on ascii_download_enable enables malicious remote parties#to consume your I/O resources,by issuing the command SIZE/big/file in#ASCII mode.#These ASCII options are split into upload and download because you may wish#to enable ASCII uploads(to prevent uploaded scripts etc.from breaking),#without the DoS risk of SIZE and ASCII downloads.ASCII mangling should be#on the client anyway.#ascii_upload_enable=YES#ascii_download_enable=YES/是否允许使用ASCII 格式来上传和下载文件#You may fully customise the login banner string:#ftpd_banner=Welcome to blah FTP service./在 FTP 服务器中设置欢迎登录的信息.#名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 24 页 -#You may specify a file of disallowed anonymous e-mail addresses.Apparently#useful for combatting certain DoS attacks.#deny_email_enable=YES#(default follows)#banned_email_file=/etc/vsftpd.banned_emails#You may specify an explicit list of local users to chroot()to their home#directory.If chroot_local_user is YES,then this list becomes a list of#users to NOT chroot().#chroot_list_enable=YES/如果希望用户登录后不能切换到自己目录以外的其它目录,需要设置该项,如果设置chroot_list_enable=YES,那么只允许/etc/vsftpd.chroot_list中列出的用户具有该功能.如果希望所有的本地用户都执行者chroot,可以增加一行:chroot_local_user=YES#(default follows)#chroot_list_file=/etc/vsftpd.chroot_list#You may activate the-R option to the builtin ls.This is disabled by 名师资料总结-精品资料欢迎下载-名师精心整理-第 9 页,共 24 页 -#default to avoid remote users being able to cause excessive I/O on large#sites.However,some broken FTP clients such as ncftp and mirror assume#the presence of the-R option,so there is a strong case for enabling it.#ls_recurse_enable=YES pam_service_name=vsftpd /设置 PAM 认证服务的配置文件名称,该文件存放在/etc/pam.d/目录下.userlist_enable=YES/用户列表中的用户是否允许登录FTP 服务器,默认是不允许#enable for standalone mode listen=YES /使 vsftpd 处于独立启动模式tcp_wrappers=YES /使用 tcp_wrqppers作为主机访问控制方式2、/etc/vsftpd.ftpusers 说明,如下所示:这个文件是用来记录不允许 登录到 FTP 服务器的用户,通常是一些系统默认的用户.下面是该文件中默认的不允许登录的名单:#Users that are not allowed to login via ftp root/默认情况下,root和它以下的用户是不允许登录FTP服务器的.可以将不允许登录的用户添加到这里来.但切记每个用户都要单独占用一行.名师资料总结-精品资料欢迎下载-名师精心整理-第 10 页,共 24 页 -bin daemon adm lp sync shutdown halt mail news uucp operator games nobody 注意:修改前建议使用“cp”命令备份这三个文件,修改完成后需要重启 vsftpd服务才能使设置生效。3、/etc/vsftpd.user_list 其实它的内容跟上面那个文件内容一样,只是在系统对文件vsftpd.conf 进行检测时,会检测到 userlist_deny=YES,因此这个文件必须存在.下面是这个文件的内容.#vsftpd userlist#If userlist_deny=NO,only allow users in this file#If userlist_deny=YES(default),never allow users in this file,and#do not even prompt for a password.#Note that the default vsftpd pam config also checks/etc/vsftpd.ftpusers#for users that are denied.root 名师资料总结-精品资料欢迎下载-名师精心整理-第 11 页,共 24 页 -bin daemon adm lp sync shutdown halt mail news uucp operator games nobody 2、配置 FTP 服务器为了防止配置过程中出现错误,一般应把原配置文件/etc/vsftpd/vsftpd.conf复制一份到别的目录中,一旦配置后出现问题解决不了,还可以把原配置文件复制回来.一、配置匿名账号FTP服务器下面修改文件/etc/vsftpd/vsftpd.conf如下:名师资料总结-精品资料欢迎下载-名师精心整理-第 12 页,共 24 页 -(1)anonymous_enable=YES write_enable=YES anon_upload_enable=YES anon_mkdir_write_enable=YES#以上四条配置文件默认就有,只需去掉行开头用于注释的#即可;注意了,因为上传文件和目录的同时,也就是在 FTP 服务器的本地目录建立文件和目录,所以必须为上传目录指定写权限.(2)anon_umask=022 这条也很重要,用来设置匿名用户上传的文件的默认权限#实际权限的计算方法为:777-umask 值,这里设 022,则实际权限755。(3)在主配置文件末尾手动添加以下命令:max_clients=100 max_per_ip=2 anon_max_rate=20000 local_max_rate=1000000 anon_world_readable_only=NO anon_other_write_enable=YES 名师资料总结-精品资料欢迎下载-名师精心整理-第 13 页,共 24 页 -(4)/etc/vsftpd.user_list 中指定用户在/etc/vsftpd/vsftpd.conf中设置了 userlist_enable=YES且userlist_deny=YES时不能访问 FTP服务器;(5)在/etc/vsftpd/vsftpd.conf中设置了userlist_enable=YES且 userlist_deny=NO时,仅仅允许/etc/vsftpd.user_list中指定的用户访问FTP服务器。测试如下图:(我这里的匿名账号是tom)名师资料总结-精品资料欢迎下载-名师精心整理-第 14 页,共 24 页 -二、配置本地账号FTP服务器下面修改文件/etc/vsftpd/vsftpd.conf如下:(1)激活用户列表文件userlist_enable=YES(2)允许用户列表文件中的用户名登录uselist_deny=NO(3)指定用户列表文件名称和路径userlist_file=/etc/vsftpd.user_list 如图:名师资料总结-精品资料欢迎下载-名师精心整理-第 15 页,共 24 页 -(4)/etc/vsftpd.user_list中添加我所创建的本地用户huxueqi,如图:(5)在/etc/vsftpd.ftpusers中的 root注释掉,如图:名师资料总结-精品资料欢迎下载-名师精心整理-第 16 页,共 24 页 -(6)测试如图:(这里我创建的本地用户是huxueqi)三、配置虚拟账号FTP服务器(1)首先要在第三张和第四张光盘中安装以db 开头的所有软件,如图:名师资料总结-精品资料欢迎下载-名师精心整理-第 17 页,共 24 页 -(2)创建虚拟用户数据库文件,先创建一个存放虚拟用户及其口令的文本文件/etc/virtuserdb.txt,要用 vi 编辑器打开,内容如下:Virtuser1 123 Virtuser2 123 奇数行为虚拟用户名,偶数行为相应的口令,然后执行如下命令生成虚拟用户数据库文件,并改变虚拟用户数据库文件的权限:rootrhel4#db_load T t hash f/etc/virtuserdb.txt/etc/vsftpd/vsftpd.db rootrhel4 chmod 600/etc/vsftpd/vsftpd.db 下面修改文件/etc/vsftpd/vsftpd.conf如下:(3)创建虚拟用户使用的PAM 认证文件/etc/pm.d/vsftpd.virtual,内容如下:名师资料总结-精品资料欢迎下载-名师精心整理-第 18 页,共 24 页 -auth required/lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd account required/lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd(4)创建虚拟用户所对应的真实账号及其所登录的目录,并设置相应的权限:rootrhel4 useradd d/var/virtuser virtuser rootrhel4 chmod 744/var/virtuser(5)在主配置文件/etc/vsftpd/vsftpd.conf做如下修改:激活虚拟用户登录功能:guest_enable=YES 制定虚拟用户所对应的真实用户guest_username=virtuser 修改原文件中的pam_service_name,设置 PAM 认证时所采用的文件名称pam_service_name=vsftpd.virtual 如图:名师资料总结-精品资料欢迎下载-名师精心整理-第 19 页,共 24 页 -(6)/etc/vsftpd.user_list中添加我所创建的虚拟用户virtuser1,并把本地账号huxueqi注释掉,如图:(7)测试如图:名师资料总结-精品资料欢迎下载-名师精心整理-第 20 页,共 24 页 -虽然我选用命令来测试,但是我们学习时需要知道的是测试时共有三中访问方法:一种是以浏览器的方式访问,一种是以专门的 FTP 客户端软件(如windows下的 CutFTP,linux下的 Gftp等)访问,还有一种就是以命令的方式(FTP)程序访问。格式如下:(1)浏览器访问:输入ftp:/ip 地址:端口号;(2)命令访问:ftp 域名|ip 地址 端口号;五、实验总结名师资料总结-精品资料欢迎下载-名师精心整理-第 21 页,共 24 页 -(1)在实验中,当检测vsftpd 是否安装成功时,可能会安装不成功,在图形界面的主菜单中选择“系统设置”“添加和删除应用程序”菜单命令,选择“FTP 服务器”软件包组,再单击“更新”按钮就可以安装与vsftpd 相关的软件包;(2)安装成功之后,可能会出现vsftpd 无法开启的问题,这时只需要用以下命令便可以解决这个问题:rootlinuxsir001 root#ntsysv 把 vsftpd 服务器打开,也就是在运行ntsysv命令后,把 vsftpd 服务选中。*vsftpd 3。运行/etc/init.d/vsftpd start rootlinuxsir001 root#/etc/init.d/vsftpd start 为vsftpd 启动vsftpd:确定 rootlinuxsir001 root#(3)配置主文件时会不小心配置错误,所以应该提前备份,修改前建议使用“cp”命令备份这三个文件,修改主配置文件时,应该严格按照上述要求操作才不会出错,并要特别注意权限的修改;名师资料总结-精品资料欢迎下载-名师精心整理-第 22 页,共 24 页 -(4)修改完成后,要存盘后退出,还要重启 vsftpd 服务才能生效;(5)测试时,只能上传主目录中已经有的文件;(6)在配置虚拟账号时需要注意一定要安装以db 开头的软件包,在第三章和第四张光盘中,否则输入命令后会找不到该项命令;(7)实现所有配置后,需要注意的是:1、测试匿名用户是需要在/etc/vsftpd/vsftpd.conf中注释掉后面配置本地账号和虚拟账号的FTP 服务 器 的 所 有 命 令,并 把 原 来 添 加 在/etc/vsftpd.user_list中的本地用户和虚拟用户注释掉,而把/etc/vsftpd.ftpusers中的 root用户恢复过来;2、在 测 试 本 地 用 户 时,需 要 在 主 配 置 文 件/etc/vsftpd/vsftpd.conf中把之前注释掉的关于配 置 本 地 账 号 的 命 令 恢 复 过 来,把/etc/vsftpd.ftpusers中的 root又注释掉,并只把/etc/vsftpd.user_list中的本地账号恢复过来;3、在 测 试 虚 拟 账 号 时,需 要 在 主 配 置 文 件/etc/vsftpd/vsftpd.conf中配置的关于本地账号的命令注释掉,而把关于虚拟账号的命令恢复过名师资料总结-精品资料欢迎下载-名师精心整理-第 23 页,共 24 页 -来,并只需把/etc/vsftpd.user_list中的本地账号注释掉,而把虚拟账号恢复过来。(8)测试时,文件上传不了,多半是文件或文件夹的权限出了问题,要加以改正。名师资料总结-精品资料欢迎下载-名师精心整理-第 24 页,共 24 页 -