热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

_Linux网络配置|FTP服务原理

第四章Linux网络配置4.2FTP服务我准备用两篇文章来讲解FTP服务,本篇是FTP的原理及技术要点,下一篇是具体的实现过程。读完本篇文章你会对FTP
第四章 Linux网络配置4.2 FTP服务

我准备用两篇文章来讲解FTP服务,本篇是FTP的原理及技术要点,下一篇是具体的实现过程。读完本篇文章你会对FTP有一个整体的了解,包括相关文件的作用,以及FTP登录机制,至于具体实现的步骤需要参考下一篇文章。

4.2.1 FTP服务基本概念

FTP是用于文件传输的网络协议,FTP服务分为服务器(Server)和客户机(Client)两个角色。FTP服务器使用的端口是21端口和20端口,21端口用于服务器和客户机建立命令的链路,20端口用于服务器向客户机建立数据链路。

4.2.2 FTP服务的传输模式

FTP传输模式分别为主动模式和被动模式,前者是服务器主动连接客户机并建立数据链路,而后者是服务器等待客户机建立数据链路。这两种传输方式如下图所示

aba7354667cf670c1b712223f14927ad.png

图1. FTP服务的两种传输模式

4.2.3 vsftpd服务

常用的FTP服务包括,Windows操作系统中的IIS服务、Serv-U服务,Linux操作系统中的Wu-ftpd、Proftpd和vsftpd。其中的vsftpd强调服务的安全性,同时也有很高的运行效率。

vsftpd.conf文件

存储位置是/etc/vsftpd/vsftpd.conf,是vsftpd服务的主配置文件,也可以通过查询手册查看详细内容 man vsftpd.confvsftpd.ftpusers文件
存储位置是/etc/vsftpd.ftpusers,用于保存不允许进行FTP登录的bending用户账号,禁止本地具有较高权限用户的登录,提高系统的安全性。vsftpd.user_list文件

存储位置是/etc/vsftpd.user_list,用来灵活设置vsftpd的访问控制权限,例如:

  • userlist_enable=YES userlist_deny=YES 用来禁止vsftpd.user_list文件中的用户登录
  • userlist_enable=YES userlist_deny=NO
    用来只允许vsftpd.user_list文件中的用户登录

匿名登录

vsftpd服务允许用户进行匿名登录,匿名登录所使用的用户名为anonymous或ftp,匿名登录不需要密码。FTP服务器的匿名登录用于构建公共的文件下载服务。匿名用户都登录到相同的目录下:/var/ftp

服务器的启动脚本

  • 启动脚本名称是vsftpd/etc/init.d/vsftpd
  • FTP服务启动命令#service vsftpd start
  • FTP服务停止的命令#service vsftpd stop
  • FTP服务重启的命令#service vsftpd restart
  • 设置开机启动命令#chkconfig vsftpd on
  • 查看vsftpd服务是否设置为开机启动命令#chkconfig --list vsftpd
  • FTP服务运行状态命令是#service vsftpd status
  • 登录FTP服务器的命令是#ftp 192.168.0.1
4.2.4 FTP的三种登录方式


FTP服务器支持匿名用户、本地用户和虚拟用户三种用户方式登录,

  • 匿名开放模式:是一种最不安全的认证模式,任何人都可以无需密码验证而直接登录到FTP服务器。
  • 本地用户模式:是通过Linu系统本地的账户密码信息进行认证的模式,相较于匿名开放模式更安全,而且配置起来也很简单。但是如果被黑客破解了账户的信息,就可以畅通无阻地登录FTP服务器,从而完全控制整台服务器。
  • 虚拟用户模式:是这三种模式中最安全的一种认证模式,它需要为FTP服务单独建立用户数据库文件,虚拟出用来进行口令验证的账户信息,而这些账户信息在服务器系统中实际上是不存在的,仅供FTP服务程序进行认证使用。这样,即使黑客破解了账户信息也无法登录服务器,从而有效降低了破坏范围和影响。

根据不同的登录方式,配置vsftpd.conf相应的参数

匿名用户模式下开放的权限参数以及作用:

  1. anonymous_enable=YES 允许匿名访问模式
  2. anon_umask=022 匿名用户上传文件的umask值
  3. anon_upload_enable=YES 允许匿名用户上传文件
  4. anon_mkdir_write_enable=YES 允许匿名用户创建目录
  5. anon_other_write_enable=YES 允许匿名用户修改目录名称或删除目录

本地用户模式下开放的权限参数以及作用:

  1. anonymous_enable=NO 禁止匿名访问模式
  2. local_enable=YES 允许本地用户模式
  3. write_enable=YES 设置可写权限
  4. local_umask=022 本地用户模式创建文件的umask值
  5. userlist_deny=YES 启用“禁止用户名单”,名单文件为ftpusers和user_list
  6. userlist_enable=YES 开启用户作用名单文件功能


虚拟用户模式下开放的权限参数以及作用

  1. anonymous_enable=NO 禁止匿名开放模式
  2. local_enable=YES 允许本地用户模式
  3. guest_enable=YES 开启虚拟用户模式
  4. guest_username=virtual 指定虚拟用户账户
  5. pam_service_name=vsftpd.vu 指定PAM文件
  6. allow_writeable_chroot=YES 允许对禁锢的FTP根目录执行写入操作,而且不拒绝用户的登录请求
7b1ad4948c205fb2cd71aacd3d2d8a77.png



推荐阅读
  • SecureCRT是一款功能强大的终端仿真软件,支持SSH1和SSH2协议,适用于在Windows环境下高效连接和管理Linux服务器。该工具不仅提供了稳定的连接性能,还具备丰富的配置选项,能够满足不同用户的需求。通过SecureCRT,用户可以轻松实现对远程Linux系统的安全访问和操作。 ... [详细]
  • 为了确保iOS应用能够安全地访问网站数据,本文介绍了如何在Nginx服务器上轻松配置CertBot以实现SSL证书的自动化管理。通过这一过程,可以确保应用始终使用HTTPS协议,从而提升数据传输的安全性和可靠性。文章详细阐述了配置步骤和常见问题的解决方法,帮助读者快速上手并成功部署SSL证书。 ... [详细]
  • 帝国CMS中的信息归档功能详解及其重要性
    本文详细解析了帝国CMS中的信息归档功能,并探讨了其在内容管理中的重要性。通过归档功能,用户可以有效地管理和组织大量内容,提高网站的运行效率和用户体验。此外,文章还介绍了如何利用该功能进行数据备份和恢复,确保网站数据的安全性和完整性。 ... [详细]
  • 本文详细介绍了在CentOS 6.5 64位系统上使用阿里云ECS服务器搭建LAMP环境的具体步骤。首先,通过PuTTY工具实现远程连接至服务器。接着,检查当前系统的磁盘空间使用情况,确保有足够的空间进行后续操作,可使用 `df` 命令进行查看。此外,文章还涵盖了安装和配置Apache、MySQL和PHP的相关步骤,以及常见问题的解决方法,帮助用户顺利完成LAMP环境的搭建。 ... [详细]
  • 基于Linux系统的Kickstart自动化服务器部署方案
    本文针对企业需求,提出了一种基于Linux系统的Kickstart自动化服务器部署方案。该方案旨在通过无盘批量安装操作系统,提高企业IT基础设施的部署效率。Kickstart是一种利用Anaconda工具实现服务器自动化安装的技术,能够显著简化和加速操作系统的安装过程。通过详细的实施规划,本文介绍了Kickstart的工作原理及其在实际部署中的应用,为企业提供了高效的自动化部署解决方案。 ... [详细]
  • MySQL数据库安装图文教程
    本文详细介绍了MySQL数据库的安装步骤。首先,用户需要打开已下载的MySQL安装文件,例如 `mysql-5.5.40-win32.msi`,并双击运行。接下来,在安装向导中选择安装类型,通常推荐选择“典型”安装选项,以确保大多数常用功能都能被正确安装。此外,文章还提供了详细的图文说明,帮助用户顺利完成整个安装过程,确保数据库系统能够稳定运行。 ... [详细]
  • 本文详细介绍了如何在Java Web服务器上部署音视频服务,并提供了完整的验证流程。以AnyChat为例,这是一款跨平台的音视频解决方案,广泛应用于需要实时音视频交互的项目中。通过具体的部署步骤和测试方法,确保了音视频服务的稳定性和可靠性。 ... [详细]
  • 在IIS上运行的WebApi应用程序在开发环境中能够正常进行文件的读写操作。然而,在尝试通过FTP访问实时服务器上的文件列表时,遇到了无法显示的问题,尽管服务器配置与开发环境相同。这可能涉及权限设置、FTP服务配置或网络连接等方面的问题。 ... [详细]
  • CentOS 7 中 iptables 过滤表实例与 NAT 表应用详解
    在 CentOS 7 系统中,iptables 的过滤表和 NAT 表具有重要的应用价值。本文通过具体实例详细介绍了如何配置 iptables 的过滤表,包括编写脚本文件 `/usr/local/sbin/iptables.sh`,并使用 `iptables -F` 清空现有规则。此外,还深入探讨了 NAT 表的配置方法,帮助读者更好地理解和应用这些网络防火墙技术。 ... [详细]
  • 在CentOS 7环境中安装配置Redis及使用Redis Desktop Manager连接时的注意事项与技巧
    在 CentOS 7 环境中安装和配置 Redis 时,需要注意一些关键步骤和最佳实践。本文详细介绍了从安装 Redis 到配置其基本参数的全过程,并提供了使用 Redis Desktop Manager 连接 Redis 服务器的技巧和注意事项。此外,还探讨了如何优化性能和确保数据安全,帮助用户在生产环境中高效地管理和使用 Redis。 ... [详细]
  • 性能测试中的关键监控指标与深入分析
    在软件性能测试中,关键监控指标的选取至关重要。主要目的包括:1. 评估系统的当前性能,确保其符合预期的性能标准;2. 发现软件性能瓶颈,定位潜在问题;3. 优化系统性能,提高用户体验。通过综合分析这些指标,可以全面了解系统的运行状态,为后续的性能改进提供科学依据。 ... [详细]
  • 本指南详细介绍了在Linux环境中高效连接MySQL数据库的方法。用户可以通过安装并使用`mysql`客户端工具来实现本地连接,具体命令为:`mysql -u 用户名 -p 密码 -h 主机`。例如,使用管理员账户连接本地MySQL服务器的命令为:`mysql -u root -p pass`。此外,还提供了多种配置优化建议,以确保连接过程更加稳定和高效。 ... [详细]
  • 小王详解:内部网络中最易理解的NAT原理剖析,挑战你的认知极限
    小王详解:内部网络中最易理解的NAT原理剖析,挑战你的认知极限 ... [详细]
  • 本文探讨了 Kafka 集群的高效部署与优化策略。首先介绍了 Kafka 的下载与安装步骤,包括从官方网站获取最新版本的压缩包并进行解压。随后详细讨论了集群配置的最佳实践,涵盖节点选择、网络优化和性能调优等方面,旨在提升系统的稳定性和处理能力。此外,还提供了常见的故障排查方法和监控方案,帮助运维人员更好地管理和维护 Kafka 集群。 ... [详细]
  • TCP三次握手过程详解与图示解析
    本文详细解析了TCP三次握手的过程,并通过图示清晰展示了各个状态的变化。同时,文章还介绍了四次挥手的图解,解释了在TIME_WAIT状态中,客户端最后一次发送的ACK包的作用和重要性。 ... [详细]
author-avatar
2012hellen_887
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有