




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第10章
FTP服务配置与管理Linux系统管理基础项目教程(CentOS7.2)(微课版)知识要点10.1项目描述10.2知识准备10.2.1FTP工作模式10.2.2FTP软件简介10.2.3vsftpd配置文件解析10.3项目实施10.3.1安装vsftpd10.3.2vsftpd本地账户管理10.3.3vsftpd虚拟账户管理9.3.4管理SELinux端口标记10.4项目实训目录10.1项目描述小明所在的公司需要部署FTP服务器,针对不同部门和用户设置不同的FTP服务访问权限,以满足公司内部不同的员工和部门通过网络传输和存储文件的需求。小明作为数据中心系统工程师制定了实施方案:开发工程师组使用本地账户登录,可以上传和下载文件;运维工程师组通过虚拟账户登录,赋予其上传和下载文件的权限;网络工程师组通过虚拟账户登录,只赋予其下载文件的权限。本项目主要介绍FTP服务的实施和管理方法,通过配置服务器端参数设置本地账户和虚拟账户,并针对不同的部门和员工划分不同的访问权限。10.2知识准备10.2.1FTP工作模式文件传输协议(FileTransferProtocol,FTP)是一个用于在计算机网络中的客户端和服务器之间进行文件传输的应用层协议。FTP服务一般运行在20和21两个端口。端口20用于在客户端和服务器之间传输数据流,端口21用于传输控制流。FTP有两种使用模式,分别是主动模式和被动模式。1.主动模式主动模式要求客户端和服务器同时打开并监听一个端口以创建连接。主动模式(ActiveMode)的工作过程如下。第1步:客户端随机开启大于1024的X端口与服务器的21端口建立连接通道,通道建立后,客户端随时可以通过该通道发送上传或下载的命令。第2步:当客户端需要与服务器进行数据传输时,客户端会再开启一个大于1024的随机端口Y,并将Y端口号通过之前的命令通道传输给服务器的21端口。第3步:服务器获取客户端的第二个端口号后会主动连接客户端的该端口,通过3次“握手”后,完成服务器与客户端数据通道的建立,所有的数据均通过该数据通道进行传输。10.2知识准备2.被动模式由于客户端安装了防火墙,有时会产生一些问题,被动模式只要求服务器产生一个监听相应端口的进程,这样就可以绕过客户端安装的防火墙。被动模式(PassiveMode)的工作过程如下。第1步:客户端随机开启大于1024的X端口,与服务器的21端口建立连接通道。第2步:当客户端需要与服务器进行数据传输时,客户端从命令通道发送数据请求——上传或下载数据。第3步:服务器收到数据请求后会随机开启一个端口Y,并通过命令通道将该端口信息传输给客户端。第4步:客户端在收到服务器发送过来的数据端口Y的信息后,将在客户端本地开启一个随机端口Z,此时客户端再主动通过本机的Z端口与服务器的Y端口进行连接,通过3次“握手”完成连接后,即可进行数据传输。10.2知识准备10.2.2FTP软件简介01vsftpd是verysecureFTPdaemon的缩写,是一款非常安全的FTP软件,安全性是它最大的特点。02ProFTPd是一套可配置性强且开放源代码的FTP服务器软件,ProFTPd与Apache的配置方式类似,同时,其配置和管理也非常灵活。03PureFTPd是一款专注于程序鲁棒性和软件安全性的免费FTP服务器软件,基于BSDLicense开发。04Serv-U是Windows平台和Linux平台的安全FTP服务器(FTPS、SFTP、HTTPS),是一个优秀、安全的文件管理、文件传输和文件共享的解决方案,同时也是应用最广泛的FTP服务器软件之一。10.2知识准备10.2.3vsftpd配置文件解析vsftpd软件安装完成后,该软件的主程序是/usr/sbin/vsftpd,vsftpd配置文件及内容如表所示。配置文件内容/etc/logrotate.d/vsftpd日志轮转备份配置文件/etc/pam.d/vsftpd基于PAM的vsftpd验证配置文件/etc/vsftpdvsftpd软件主目录/etc/vsftpd/ftpusers默认的vsftpd黑名单/etc/vsftpd/user_list可以通过主配置文件设置该文件为黑名单或白名单/etc/vsftpd/vsftpd.confvsftpd主配置文件/usr/sbin/vsftpdvsftpd主程序/usr/share/doc/vsftpd-3.0.2vsftpd文档资料路径/var/FTP默认vsftpd共享目录10.2知识准备配置文件的格式为:参数=值(中间不可以有任何空格符),以#开头的行会被识别为注释行。vsftpd主要配置参数及作用如表所示。账户类型配置参数作用全局设置listen=YES是否监听端口,独立运行守护进程listen_port=21监听入站FTP请求的端口号write_enable=YES是否运行写操作命令,全局开关download_enable=YES如果设置为NO,则拒绝所有的下载请求dirmessage_enable=YES用户进入目录是否显示消息connect_from_port_20=YES使用主动模式连接,启用20端口pasv_enable=YES是否启用被动模式连接,默认为被动模式连接pasv_max_port=24600被动模式连接的最大端口号pasv_min_port=24500被动模式连接的最小端口号userlist_enable=YES是否启用user_list用户列表文件userlist_deny=YES是否禁止user_list文件中的账户访问FTPmax_clents=2000最大同时运行2000客户端的连接,0代表无限制max_per_ip=0每个客户端的最大连接限制,0代表无限制tcp_wrappers=YES是否启用tcp_wrappersguest_enable=YES如果为YES,则所有的非匿名登录都映射为guest_username指定的账户guest_username=FTP设置来宾账户user_config_dir=/etc/vsftpd/conf指定目录,在该目录下可以为用户设置独立的配置文件与参数dual_log_enable=NO是否启用双日志功能,来生成两个日志文件anonymous_enable=YES是否开启匿名访问功能,默认为开启10.2知识准备账户类型配置参数作用匿名账户anon_root=/var/FTP匿名访问FTP的根路径,默认为/var/FTPanon_upload_enable=YES是否允许匿名账户上传文件,默认为禁止anon_mkdir_write_enable=YES是否允许匿名账户创建目录,默认为禁止anon_other_write_enable=YES是否允许匿名账户进行其他所有的写操作anon_max_rate=0设置匿名数据传输率anon_umask=077设置匿名上传权限掩码本地账户local_enable=YES是否启用本地账户FTP功能local_max_rate=0设置本地账户数据传输率local_umask=077设置本地账户权限掩码chroot_local_user=YES是否禁锢本地账户根目录,默认为NOlocal_root=/FTP/share本地账户访问FTP根路径10.3项目实施10.3.1安装vsftpd安装vsftpd组件[root@server~]#yuminstallvsftpd启动并启用vsftpd服务。[root@server~]#systemctlstartvsftpd[root@server~]#systemctlenablevsftpd设置相应的SELinux布尔值。[root@server~]#setsebool-Pftpd_full_accesson设置防火墙规则,允许FTP服务使用相关端口。[root@server~]#firewall-cmd--add-service=FTP--permanent[root@server~]#firewall-cmd--reload10.3项目实施10.3.2vsftpd本地账户管理vsftpd支持不同的登录方式,常用登录方式包括匿名登录、本地登录、虚拟账户登录3种。匿名登录一般用于下载服务器。vsftpd默认开启的是匿名共享,默认共享路径为/var/FTP。匿名用户权限参数和作用如表所示。参数作用anonymous_enable=YES允许匿名用户访问anon_umask=022匿名用户上传文件的umask值anon_upload_enable=YES允许匿名用户上传文件anon_mkdir_write_enable=YES允许匿名用户创建目录anon_other_write_enable=YES允许匿名用户修改目录名称或删除目录10.3项目实施10.3.2vsftpd本地账户管理本地登录则需要使用系统账户,以及对应的系统密码才可以登录,安装完成系统自带的RPM包vsftpd软件后,默认的配置文件中,anonymous_enable与local_enabled均被设置为YES,此时FTP为匿名访问模式,如果需要开启本地账户FTP功能,需要将anonymous_enable设置为NO,默认共享路径为账户的家目录。需要注意的是,开启本地登录后,用户可以离开家目录,从而进入系统中的其他目录,这样做非常危险,如果在配置文件中使用chroot_local_user,用户将被禁锢在自己的家目录下,从而防止用户进入系统中的其他目录。由于SELinux默认不允许FTP共享家目录,因此需要设置SELinux相关规则。本地用户权限参数和作用如表所示。参数作用anonymous_enable=NO禁止匿名用户访问local_enable=YES允许本地用户访问write_enable=YES设置可写权限local_umask=022本地用户上传文件的umask值userlist_deny=YES启用“禁止用户名单”功能,名单文件为ftpusers和user_listuserlist_enable=YES开启“用户名单文件”功能10.3项目实施编辑配置文件,设置本地账户权限参数[root@server~]#vim/etc/vsftpd/vsftpd.conf1anonymous_enable=NO2local_enable=YES3write_enable=YES4local_umask=0225dirmessage_enable=YES6xferlog_enable=YES7connect_from_port_20=YES8xferlog_std_format=YES9listen=NO10listen_ipv6=YES11pam_service_name=vsftpd12userlist_enable=YES13tcp_wrappers=YES10.3项目实施创建系统账户与测试文件。[root@server~]#useradd-s/sbin/nologinftpuser1启动vsftpd服务进程。[root@server~]#systemctlrestartvsftpd[root@server~]#systemctlenablevsftpdln-s'/usr/lib/systemd/system/vsftpd.service''/etc/systemd/system/multi-user.target.wants/vsftpd.service设置SELinux规则[root@server~]#setsebool-Pftpd_full_access=on10.3项目实施使用本地用户的身份登录FTP服务器[root@server~]#ftp0Connectedto0(0).220(vsftpd3.0.2)Name(0:root):ftpuser1331Pleasespecifythepassword.Password:此处输入该用户的密码230Loginsuccessful.RemotesystemtypeisUNIX.Usingbinarymodetotransferfiles.FTP>mkdirfiles257"/home/linuxprobe/files"createdFTP>renamefilesdatabase350ReadyforRNTO.250Renamesuccessful.FTP>rmdirdatabase250Removedirectoryoperationsuccessful.FTP>exit221Goodbye.10.3项目实施10.3.3vsftpd虚拟账户管理通过guest_enable命令可以开启vsftpd的虚拟账户功能,guest_username用来指定本地账户的虚拟映射名称。虚拟账户权限参数和作用如表所示。参数作用anonymous_enable=NO禁止匿名用户访问local_enable=YES允许本地用户访问guest_enable=YES允许虚拟用户访问guest_username=virtual指定虚拟用户账户pam_service_name=vsftpd.vu指定PAM文件allow_writeable_chroot=YES允许对禁锢的FTP根目录执行写入操作,而且不拒绝用户的登录请求10.3项目实施Vsftpd可以通过两个文件(黑名单文件和白名单文件)对用户进行ACL控制。/etc/vsftpd/ftpusers默认是一个黑名单文件,存储在该文件中的所有用户都无法访问FTP,格式为每行一个账户名称。/etc/vsftpd/user_list文件会根据主配置文件中配置项设定的不同来决定成为黑名单还是白名单文件,此外也可以禁用该文件。注意:黑名单表示仅禁止名单中的账户访问FTP,也就是说,除黑名单中的账户以外,其他所有的账户都默认允许访问FTP。创建虚拟用户数据库创建用于进行FTP认证的用户数据库文件,其中奇数行为账户名,偶数行为密码。下面分别创建出zhangsan和lisi两个账户,密码均为redhat。[root@server~]#cd/etc/vsftpd/[root@servervsftpd]#vimvuser.listzhangsanredhatlisiredhat10.3项目实施设置虚拟账户共享目录。采用明文信息既不安全,也不符合让vsftpd服务程序直接加载的格式,因此需要使用db_load命令用散列算法将原始的明文信息文件转换成数据库文件,并且降低数据库文件的权限(避免其他人看到数据库文件的内容),然后再把原始的明文信息文件删除。[root@servervsftpd]#db_load-T-thash-fvuser.listvuser.db[root@servervsftpd]#filevuser.dbvuser.db:BerkeleyDB(Hash,version9,nativebyte-order)[root@servervsftpd]#chmod600vuser.db[root@servervsftpd]#rm-fvuser.list因为所有的虚拟账户最终都需要映射到一个真实的系统账户,所以这里需要添加一个系统账户并设置家目录。[root@server~]#useradd-d/var/FTProot-s/sbin/nologinvirtual[root@server~]#ls-ld/var/FTProot/drwx------.3virtualvirtual74Jul1417:50/var/FTProot/[root@server~]#chmod-Rf755/var/FTProot/10.3项目实施创建PAM文件,设置基于虚拟账户的验证机制。Linux操作系统一般通过PAM文件设置账户的验证机制,然后通过创建新的PAM文件、使用新的数据文件进行登录验证,PAM文件中的db参数用于指定并验证账户和密码的数据库文件,数据库文件无须以.db为后缀。新建一个用于虚拟用户认证的PAM文件vsftpd.vu,其中PAM文件内的“db=”参数为使用db_load命令生成的账户密码数据库文件的路径,但不用写数据库文件的后缀。[root@server~]#vim/etc/pam.d/vsftpd.vuauth
requiredpam_userdb.sodb=/etc/vsftpd/vuseraccount
requiredpam_userdb.sodb=/etc/vsftpd/vuser修改主配置文件在vsftpd服务程序的主配置文件中通过pam_service_name参数将PAM认证文件的名称修改为vsftpd.vu,PAM作为应用程序层与鉴别模块层的连接纽带,可以让应用程序根据需求灵活地插入所需的鉴别功能模块。现在我们要做的就是把vsftpd主配置文件中原有的PAM认证文件vsftpd修改为新建的vsftpd.vu文件。10.3项目实施[root@server~]#vim/etc/vsftpd/vsftpd.conf1anonymous_enable=NO2local_enable=YES3guest_enable=YES4guest_username=virtual5allow_writeable_chroot=YES6write_enable=YES7local_umask=0228dirmessage_enable=YES9xferlog_enable=YES10connect_from_port_20=YES11xferlog_std_format=YES12listen=NO13listen_ipv6=YES14pam_service_name=vsftpd.vu15userlist_enable=YES16tcp_wrappers=YES为每个用户设置独立的共享路径。虽然zhangsan和lisi都是用于vsftpd服务程序认证的虚拟账户,但是依然可以为它们设置不同的权限。[root@server~]#mkdir/etc/vsftpd/vusers_dir/[root@server~]#cd/etc/vsftpd/vusers_dir/[root@servervusers_dir]#touchlisi[root@servervusers_dir]#vimzhangsananon_upload_enable=YESanon_mkdir_write_enable=YESanon_other_write_enable=YES10.3项目实施然后再次修改vsftpd主配置文件,通过添加user_config_dir参数来定义这两个虚拟账户不同权限的配置文件所存放的路径。[root@server~]#vim/etc/vsftpd/vsftpd.confanonymous_enable=NOlocal_enable=YESguest_enable=YESguest_username=virtualallow_writeable_chroot=YESwrite_enable=YESlocal_umask=022dirmessage_enable=YESxferlog_enable=YESconnect_from_port_20=YESxferlog_std_format=YESlisten=NOlisten_ipv6=YESpam_service_name=vsftpd.vuuserlist_enable=YEStcp_wrappers=YESuser_config_dir=/etc/vsftpd/vusers_dir10.3项目实施启动并启用vsftpd服务为了让修改后的参数立即生效,重启vsftpd服务程序并将该服务添加到开机启动项中。[root@server~]#systemctlrestartvsftpd[root@server~]#systemctlenablevsftpdln-s'/usr/lib/systemd/system/vsftpd.service''/etc/systemd/system/multi-user.target.wants/vsftpd.service设置SELinux布尔值规则设置SELinux布尔值参数,允许ftp服务提供访问。[root@server~]#getsebool-a|grepftp[root@server~]#setsebool-Pftpd_full_access=on10.3项目实施验证虚拟账户使用FTP客户端命令登录FTP服
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高考化学备考浙江选考专用版讲义专题1化学家眼中的物质世界第二单元
- 河北省正定中学2017-2018学年高一月考(四)英语试题
- 低年级数学课堂教育戏剧实践研究
- 新疆地区丙型肝炎发病数预测模型的研究
- 自媒体时代背景下高校辅导员网络思政工作对策研究
- 元旦特色亲子活动方案
- 2025版高中化学课时作业9化学反应的速率含解析新人教版必修2
- 2025版高考数学一轮复习第三章导数及其应用第4讲导数的综合应用第1课时利用导数解决不等式问题教案文新人教A版
- 企业设备购买合同范本
- 代持股转让合同范例
- 2025年浙江宁波市奉化区农商控股集团有限公司招聘笔试参考题库附带答案详解
- 2025年中考百日誓师大会校长发言稿:激扬青春志 决胜中考时
- YY/T 1860.1-2024无源外科植入物植入物涂层第1部分:通用要求
- 封条模板A4直接打印版
- 2022年度八年级美术抽测题库
- 义务教育《地理》课程标准(2022年版)
- 锅炉改造方案(省煤器)讲解-共18页
- 单细胞蛋白论文
- 021[学士]某六层框架宿舍楼毕业设计(含计算书、图纸)
- (完整版)高层钢结构住宅施工方案(非常详细)
- 云管理系统CRM系统操作手册
评论
0/150
提交评论