《2022年FTP服务器的设置 .pdf》由会员分享,可在线阅读,更多相关《2022年FTP服务器的设置 .pdf(7页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、FTP 服务器的设置本章目标:掌握 FTP 服务器的工作原理,掌握 vsftpd服务器的架设,区分 FTP 用户类型,掌握 FTP客户程序的使用一.FTP 服务的相关概念1.FTP服务:是进行数据传输的基本服务之一,其实现可以独立于平台.仅用于数据传输和校验,资源独占,具有断点续传的功能2.FTP 协议:File Transfer Protocol,FTP是 RFC959说明的,运行于OSI 模型的应用层,并利用TCP 在不同的主机之间提供可靠的数据传输3.FTP 的运行原理:用户通过一个支持FTP 协议的客户机程序,连接到远程主机上的FTP 服务器程序.用户通过客户机程序向服务器程序发出命令
2、,服务器程序执行用户所发出的命令并将执行结果返回给客户机,一个 FTP 会话通常要包括五个软件元素CDTP:客户端数据传输协议,负责完成和服务器数据传输过程及客户端本地文件系统的通信SDTP:服务端数据传输协议,负责完成和客户数据传输过程及服务器端文件系统的通信CPI:客户端协议解释器,向远程服务器协议机发送命令并且驱动客户的数据传输过程SPI:服务器端协议解释器,响应客户协议机的命令并驱动服务器数据传输过程用户接口:UI,使用客户端协议解释器的服务在 FTP 会话中,会存在两个独立的TCP 连接,一个是CPI 和 SPI 使用的控制连接,另一个是由CDTP 和 SDTP 使用的数据连接,控制
3、连接主要用来传送在实际通信过程中需要执行的FTP 命令以及命令的响应,控制连接建立后,服务器通过一的方式来验证客户的身份,以决定是否可以建立数据连接.数据连接用来传输用户的数据,在客户端进行上列表,上传和下载操作4.FTP 的数据传输模式:主动传输:control connection建立后,客户提出目录列表、传输文件时,客户端发出 PORT 命令与服务器进行协商,FTP 服务器使用一个标准的端口20 作为服务器端的数据连接端口(ftp-data)与客户建立数据连接.FTP 命令行客户程序支持主动传输被动传输:客户端发送PASV 命令使服务器处于被动模式,FTP 服务器等待客户与其联系.FTP
4、 服务器在非20 端口的其他数据传输端口监听客户的请求,用户告诉服务器自己要连接服务器的某一个端口,如果这个服务器上的这个端口是空闲的可用的,那么服务器会返回ACK 的确认信息,之后数据传输通道被建立并返回用户所要的信息(根据用户发送的指令,如ls、dir、get 等);CuteFTP支持被动连接单端口传输模式:当 FTP 的控制连建立后,且客户提出目录列表、传输文件时,FTP服务器就会使用FTP 协议的数据传输端口20 和客户端的控制连接源端口建立一个数据传输连接.这就需要客户程序在这个端口上监听,客户端的控制连接端口和数据端口是一致的.在 FTP 服务器支持的前提下,要使用此种模式,必须:
5、在客户程序上使用sendport命令关闭 FTP 协议的 PORT 控制指令,在客户程序上使用passiv命令关闭被动传输模式5.FTP 的典型消息125 数据连接打开,传输开始200 命令 OK 226 数据传输完毕331 用户名 OK,需要输入密码名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 7 页 -425 不能打开数据连接426 数据连接被关闭,传输中断452 错误写文件500 语法错误,不可识别的命令二.Linux下的 FTP 服务器1.linux下的 FTP 客户2.linux下的 FTP 服务器wu-ftpd:非商业 FTP 服务器程序之一,功能强大而稳定,服务器
6、的组织较为零散,安全性较差,但稳定性好Proftpd:安全而易于设定vsftpd:Very Secure,是一个基于GPL 发布的类 UNIX 系统上使用的FTP 服务器的软件,具有安全、稳定(单机上支持4000个以上的并发用户同时连接)和高速(千兆以太网可达 86M/s)的特点著名的 vsftpd站点: ftp.gnome.org3.FTP 服务的使用者:本地用户(本地用户可能通过输入自已的帐号和口令登陆到自家目录,即可以下载也可以上传)、虚拟用户(FTP 服务器上只用于文件传输的的帐号)和匿名用户(匿名用户可以输入anonmous或 ftp和口令用户自己的E-Mail地址来进行登陆)4.F
7、TP 客户的使用:FTP 命令行客户程序的使用,ftp 子命令三.FTP 服务器的配置1.安装 vsftpd rpm-qa|grep vsftpd 插入第 3 张光盘mount/mnt/cdrom cd/mnt/cdrom/RedHat/RPMS rpm-ivh vsftpd-1.1.3-3.i386.rpm cd;eject 2.启动 vsftpd service vsftpd start pstree|grep vsftpd ntsysv 3.Red Hat Linux9中的配置文件/etc/vsftpd/vsftpd.conf是主配置文件/etc/vsftpd.ftpusers指定哪些用
8、户不能访问 FTP 服务器/etc/vsftpd.user_list中指定的用户在/etc/vsftpd/vsftpd.conf中设置了 userlist_enable=YES且 userlist_deny=YES时不能访问FTP 服务器4.vsftpd的默认主配置文件anonymous_enable=YES允许匿名登录local_enable=YES允许本地用户登录write_enable=YES开放本地用户的写权限local_umask设置本地用户的文件生成掩码为022,默认值为 077 dirmessage_enable=YES xferlog_enable=YES激活上传和下载日志co
9、nnect_from_port_20=YES启用 FTP 数据端口的连接请求xferlog_std_name=vsftpd使用标准的ftpd xferlog日志格式名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 7 页 -pam_service_name=vsftpd设置 PAM 认证服务的配置文件名称,该文件存放在/etc/pam.d/目录下userlist_enable=YES文件中所列的用户均不能访问此vsftpd服务器listen=YES使 vsftpd处于独立启动模式tcp_wrappers=YES使用 tcp_wrappers作为主机访问控制方式例 1.允许匿名用户上
10、传anon_upload_enable=YES允许匿名用户上传write_enable=YES匿名用户对文件系统的上传目录具有写权限anon_mkdir_write_enable=YES开启匿名用户的写和创建目录的权限anon_world_readable_only=NO放开匿名用户YES 览权限,即浏览此服务器中全部的内容anon_other_write_enable=YES开放了文件更名、删除文件等权限创建匿名上传目录mkdir/var/ftp/incoming#chmod o+w/var/ftp/incoming/#service vsftpd restart 测试匿名用户上传ftp 1
11、92.168.1.57 ls列出文件和目录列表put install.log将本地文件传送至远程主机mkdir newdir bye退出 ftp 例 2.配置基于本地用户的访问控制限制指定的用户不能访问,而其他本地用户可访问。例如userlist_enable=YES userlist_deny=YES userlist_file=/etc/vsftpd.user_list 使文件/etc/vsftpd.user_list中指定的本地用户不能访问FTP 服务器限制指定的用户能访问,而其他本地用户不能访问。例如userlist_enable=YES userlist_deny=NO userli
12、st_file=/etc/vsftpd.user_list 使文件/etc/vsftpd.user_list中指定的本地用户能访问FTP 服务器例 3.配置基于主机的访问控制Vsftpd从版本 1.1.3以后内置了对TCP_wrppers支持,为独立的 vsftpd提供基于主机的访问控制配置.TCP_wrappers使用/etc/hosts.allow和/etc/hosts.deny两个配置文件实现访问控制#cat/etc/vsftpd/vsftpd.conf|grep tcp_wrappers tcp_wrappers=YES#cat/etc/vsftpd/vsftpd.conf local
13、_max_rate=10000 anon_max_rate=10000 max_per_ip=1!编辑/etc/hosts.deny ALL:ALLALL,PARANOID除非在allow 文件中说明允许访问,所有服务、所有主机都被拒绝。名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 7 页 -编辑/etc/hosts.allow#cat/etc/hosts.allow vsftpd:,192.168.1.0/24/:setenv VSFTPD_LOAD_CONF/etc/vsftpd/vsftpd_tcp_wrap.conf vsftp:202.54.15.99 对于你的客户机
14、来说:202.54.15.99为 IP 地址,为允许使用ftp 的一个客户机。vsftpd:192.168.1.0/255.255.255.0:allow vsftpd:主机表:setenv VSFTPD_LOAD_CONF 配置文件名vsftpd表示是对vsftpd进程实施访问控制表示当遇到主机表中的主机访问本FTP服务器时,修改环境变量的值为指定的配置文件名.其意图是让vsftpd守护进程读取新的配置文件中的配置项来覆盖主配置文件中的配置,关于主机表的书写形式Hostname可解析的主机名IP Address点分十进制表示的IP 地址 .domain匹配一 个 域 中 的 所 有 主 机,
15、表 示 在DNS域 中 的 任 何 主 机network-number匹配 IP 地址的开始部分,如192.168 IPAddress/netmask定义要匹配的网络或子网,例 172.19.16/20匹配从 172.19.16.0到 172.19.31.255 编辑/etc/vsftpd/vsftpd_tcp_wrap.conf#cat/etc/vsftpd/vsftpd.conf local_max_rate=0 anon_max_rate=0 max_per_ip=0!#service vsftpd restart 例 4.配置本地组访问的FTP 服务器本地组 softgrp有 3 个用
16、户 soft、soft1和 soft2,其中 soft 对 FTP 有读写权限,而soft1和 soft2对 FTP 只有读的权限,可借助于本地文件系统的权限设置来实现#vi/etc/vsftpd/vsftpd.conf local_enable=YES write_enable=YES chroot_local_user=YES不允许本地用户切换到自家目录以外的目录进行浏览#mkdir-p/var/local-ftp/softgrp#groupadd softgrp#groupadd softgrp#useradd-G softgrp-d/var/local-ftp/softgrp-M so
17、ft-G指定新用户的附加组-d 指定宿主目录-M 不建立新用户的自家目录#useradd-G softgrp-d/var/local-ftp/softgrp-M soft1#useradd-G softgrp-d/var/local-ftp/softgrp-M soft2#passwd soft#passwd soft1#passwd soft2#chown soft.softgrp/var/local-ftp/softgrp#chmod 750/var/local-ftp/softgrp#ll-d/var/local-ftp/softgrp#ftp 192.168.1.57 ftpput i
18、nstall.log ftpclose ftpopen 192.168.1.57 名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 7 页 -例 5.配置 vsftpd在非标准端口下提供服务#echo listen_port=10021/etc/vsftpd/vsftpd.conf#service vsftpd restart#ftp 192.168.1.57 10021 ftpbye 例 6.配置独立启动的基于IP 的虚拟 FTP 服务器配置虚拟 IP 地址建立虚拟 FTP 的服务器目录并设置适当的权限建立虚拟 FTP 的服务器的主配置文件#ifconfig|grep-1 eth
19、0#ifconfig eth0:1 192.168.1.57 up#ifconfig|grep-1 eth0:1#mkdir-p/var/ftp2/pub#ll-d/var/ftp2/pub#ll-d/var/ftp2#echo hello/var/ftp2/pub/test_file#useradd-d/var/ftp2-M ftp2#vi/etc/vsftpd/vsftpd.conf listen_address=192.168.1.67#cp/etc/vsftpd/vsftpd.conf.rh9/etc/vsftpd/vsftpd_site2.conf#vi/etc/vsftpd/vsf
20、tpd_site2.conf listen_address=192.168.1.234 ftp_username=ftp2 ftpd_banner=This is the alternative FTP site,and vsftpd in standalone mode.#service vsftpd restart 测试例 7.配置简单的虚拟用户FTP 服务器生成虚拟用户口令库文件配置生成 vsftpd的认证文件建立虚拟用户所要访问的目录并设置相应权限建立配置文件cat logins.txt tom foo fred bar 单数行为用户名,偶数行为口令#db_load-T-t hash-
21、f/logins.txt/etc/vsftpd/vsftpd_login.db使 用db_load命令生成口令库文件前,要先安装db4-utils-4.0.14-20工具插入第二张光盘#rpm-ivh db4_utils-4.0.14-20.i386.rpm#chmod 600/etc/vsftpd/vsftpd_login.db#vi/etc/pam.d/vsfpt.vu 类型(type)控 制(control)模块 路径(module-path)模 块参数名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 7 页 -(module-arguments)auth required/
22、lib/security/pam_userdb.so db=/etcvsftpd/vsftpd_login accout required/lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login PAM,Pluggable Authentication Modules for Linux 类型:accout验证用户帐号是否被允许访问服务,如用户帐号口令是否已过期等auth验证用户身份,一般为通过口令进行验证控制:控制标记告诉PAM 如何对待模块认证失败,例:required模块认证失败会导致拒绝用户认证,但在拒绝用户之前PAM 仍将调用所有
23、的其他模块模块路径:module-path告诉 PAM 使用哪个模块的路径,如未给出模块路径PAM 会在默认的 PAM 模块目录/lib/security中查找模块参数:module-arguments用于给模块传递参数#useradd-d/home/ftpsite virtual#chmod 700/home/ftpsite/#su-virtual-c echo hello/home/ftpsite/test_file#cp/etc/vsftpd/vsftpd/conf/bak/etc/vsftpd/vsftpd.conf#vi/etc/vsftpd/vsftpd.conf listen=Y
24、ES anonymous_enable=NO local_enable=YES write_enable=NO anon_upload_enable=NO anon_mkdir_write_enable=NO anon_other_write_enable=NO one_process_model=NO这个设定项目比较危险一点,当设定为YES 时,表示每个建立的连线都会拥有一支process 在负责,可以增加vsftpd 的效能。不过,除非您的系统比较安全,而且硬体配备比较高,否则容易耗尽系统资源!一般建议设定为!chroot_local_user=YES ftp_banner=This FT
25、P server is virtual user only guest_enable=YES guest_username=virtual pam_service_name=vsftp.vu#service vsftpd restart 下面分别创建虚拟用户tom的配置文件#vi/etc/vsftpd.conf user_config_dir=/etc/vsftpd_user_conf激活对不同的虚拟用户进行不同权限配置的配置语句#vi/etc/vsftpd_user_conf/tom anon_upload_enable=YES write_enable=YES anon_world_rea
26、dable_only=NO anon_mkdir_write_enable=YES anon_other_write_enable=YES 例 8.配置安全的vsftpd 名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 7 页 -仅仅允许匿名用户访问anonymous_enable=YES 不允许本地用户访问local_enable=NO 关闭所有写权限write_enable=NO 不允许匿名用户上传anon_upload_enable=NO anon_other_write_enable=NO 设置客户端连接时的端口范围pasv_min_port=50000 pasv_max
27、_port=60000 设置匿名用户的最大传输速率限制anon_max_rate=50000 设置空闲的数据连接的中断时间data_connection_timeout=300 设 置 客 户 端 空 闲 时 的 自 动 中 断 和 激 活 连 接 的 时 间accept_timeout=60 connect_timeout=60 配置每个主机的最大连接数max_per_ip=5 配置总的并发连接数instances=60 配置 禁止访 问的主机userlist_enable=YES userlist_deny=YES userlist_file=/etc/vsftpd/user_list 配 置 安 全 日 志xferlog_enable=YES anon_world_readable_only=YES connect_from_port_20=YES名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 7 页 -