使用FTP服务于Linux系统之上,是用作在本地网络或者特定场景当中传输文件的一种传统办法。虽然它有着悠久历史并且部署起来较为简单,然而我们必须要清晰地认识到,在当今这个网络安全情形之下,默认的以及不加保护的FTP服务会带来明显的风险。本文将会客观地去分析它的应用以及隐患,以此来帮助你安全且合理地运用这一工具。

为什么要使用Linux FTP服务

于某些隔离着的内部开发环境或者测试环境里,团队兴许会需要一种能快速共享大文件的临时方案。配置一个简易的FTP服务器,相较于搭建更为复杂的版本控制系统或者网盘而言,要更加快捷。比如说,硬件测试团队常常需要上传固件镜像,运用FTP能够提供一个稳定的文件落地的目录,方便自动化脚本去抓取。某些遗留下来的工业控制设备或者软件可能仅仅支持基于FTP协议来进行数据备份或者日志上传。于这般封闭且可控的场景当中,启用FTP服务具备其存在的合理之处,重点在于怎样把它的风险限定于最小的范围之中,关键在于如何将其风险限制在最小范围。

启动服务器应用程序失败_linux 启动ftp服务_启动服务linux

可是,即便处于这些情形之下,也得施行严谨的访问管控以及网络隔绝。千万绝不可以把FTP服务器径直暴露于公网之上。你务必要明晰使用FTP究竟是由于对特定古老协议兼容的无奈之举,还是仅仅是因为“操作顺手”。要是属于后者,那么就有必要再度进行评估,因为已然出现了更多安全便利的替代办法。

如何安全配置Linux FTP服务

第一步是选定相对安全的FTP服务器软件,相较于古老的vsftpd早期版本,可考虑维护更积极的ProFTPD或Pure-FTPd,且务必从官方源安装最新版本,配置的核心原则是“最小权限”,要禁止匿名登录,为每个必需用户创建独立系统账户,严格限制其可访问目录范围,像通过chroot将其锁在自家目录。

linux 启动ftp服务_启动服务linux_启动服务器应用程序失败

不得不强制性地运用虚拟用户,而不是系统真实用户去开展认证,如此这般能够切实有效地隔离文件系统权限。于配置文件当中linux 启动ftp服务,务必要确切地关闭那些不必要的功能,像是写权限、匿名上传之类的。每一回修改配置完毕之后,都应当开展细致详尽的权限测试linux vps,以此来保证用户没有办法越权去访问或者执行命令。安全配置可不是一劳永逸的事情,需要定期去审计日志,查看异常登录以及操作记录。

FTP服务存在哪些安全隐患

FTP协议最为严重的原罪存于其设计方面所具有的缺陷,标准FTP于传输命令以及文件之际,默认情形下采用明文通信的方式。这就表明用户名称、登录密码以及所有作传输之用的文件内容能够被隶属同一网络的攻击者轻易截获,纵然服务器配置极为严格,于网络层面也就好比处于“裸奔”状态。除此之外,协议自身具备的复杂性致使需开放多个端口,也就是命令端口以及数据端口,这使得防火墙策略的复杂度得以增加,易于出现配置失误。

启动服务linux_启动服务器应用程序失败_linux 启动ftp服务

1. 引发客户端防火墙问题这件事,主动模式也就是PORT模式是有可能做到的。 2. 被动模式即PASV模式呢,则有着一种情况linux 启动ftp服务,是什么情况呢,就是需要服务器去开放一大段高端口范围。 3. 而开放一大段高端口范围这样的情况有什么影响呢,它同样是扩大了攻击面的。 4. 在服务器软件当中,其本身存在的漏洞是一直有着威胁的。 5. 历史上像vsftpd等主流软件这个情况,都曾经出现过严重的远程执行漏洞这样的事。 6. 前面所说的这些安全隐患把它们叠加起来之后,就导致了FTP在公网环境里成为一个高危服务啦。

为什么推荐使用SFTP替代FTP

在绝大多数情形下,首选的替代方案是SFTP(SSH File Transfer Protocol),它可不是FTP over SSL,而是一种基于SSH协议的安全文件传输协议,其最大的优势在于能直接复用SSH的加密通道以及认证机制,并且所有数据的传输都是加密的,你不用另行维护一套用户体系还有认证流程,直接运用系统的SSH账户就可以,管理成本大幅降低了。

该功能上,SFTP 也全然契合需求,对文件的上传、下载、删除、目录列表以及权限修改予以支持。鉴于其仅需一个 SSH 端口(默认是 22),极大地将网络防火墙的配置予以简化。于系统管理员来讲,这意味着只需强化 SSH 服务的安全,便同时实现了对文件传输的保护。从 FTP 迁移至 SFTP,客户端仅需把用于连接的协议从 FTP 改成 SFTP 就行,几乎不存在额外的学习成本,就像客户端软件(像 FileZilla)那样。

linux 启动ftp服务_启动服务器应用程序失败_启动服务linux

如何使用vsftpd搭建基础FTP服务

要是历经评估之后,你照样还务必于封闭环境之内去部署基础FTP服务,在下面所讲的便是以vsftpd作为例子的简洁明了的步骤。先是借助包管理器开展安装,好比在Ubuntu上予以执行sudo apt install vsftpd。安装完毕以后,首要的任务是进行备份接着去编辑其配置文件/etc/vsftpd.conf。必须修改关键的那几项配置,把anonymous_enable设置成NO用来禁用匿名登录,把local_enable设置为YES去允许本地用户登录,能够依据需求来设置write_enable

为把用户限定在其家目录范围之内,要添加chroot_local_user=YES这个行。配置更改完毕之后,运用sudo systemctl restart vsftpd重启服务让配置发挥效用。接下来,你得为FTP访问打造专用的、权限受限制的系统用户,像sudo adduser ftpuser,还得保证其家目录的权限设定恰当。最终,运用sudo systemctl enable vsftpd这一命令来进行服务开机自启的设置 。

如何监控和管理FTP服务运行状态

linux 启动ftp服务_启动服务器应用程序失败_启动服务linux

在任何处于运行状态的服务方面呀,持续不断地进行监控这件事是极其关键重要的呢。就拿FTP服务来讲嘛嵌入式linux,需要按照一定的周期定时去检查系统日志(像/var/log/vsftpd.log这样的)以及系统认证日志(类似/var/log/auth.log这种)哟,还要着重留意那些失败的登录尝试情况、频繁发生的连接等种种属于异常的行为呢。而且呀,能够借助使用sudo systemctl status vsftpd这个命令,快速简便地查看服务所处的运行状态,进而确认它是处于活动(active)状态的哟。

FTP服务的管理涵盖了用户管理以及连接管理,这是需要明确的。对于不再有需求的FTP用户账户,得定期去做审查以及清理的操作。当前连接至FTP端口的客户端IP地址,能够通过netstat或者ss命令来查看,就类似于sudo ss -tulnp | grep :21这样的指令。一旦察觉到异常IP或者流量出现激增的状况,那就必须要及时去进行介入并处理 。当服务不再被需要时,要果断施行停止并禁用该服务的操作,即执行“sudo systemctl stop vsftpd”以及“sudo systemctl disable vsftpd”指令,并且把与之相关的软件包从系统里移除掉,以此来达成彻底消除攻击面的目的。

如今你身处内部网络里,究竟是缘何依旧持续在运用传统的FTP协议,而非更为安全的SFTP或者别的现代传输方案呢?欢迎于评论区讲述你的场景以及考量,可以的话请点赞并且分享给可能有需求的同事以及朋友。

Tagged:
Author

这篇优质的内容由TA贡献而来

刘遄

《Linux就该这么学》书籍作者,RHCA认证架构师,教育学(计算机专业硕士)。

发表回复