Linux网络服务(二):FTP服务和iptables服务
文章目录前言一、FTP简介二、FTP作用2.1 文件上传2.2 文件下载2.3 文件管理三、FTP原理3.1 FTP主动模式3.2 FTP被动模式四、FTP搭建4.1 准备工作4.1.1 关闭防火墙、关闭增强功能4.1.2 检查与安装VSFTP软件4.1.3 开启并设置VSFTP服务自启4.1.4 切换配置目录并备份配置文件4.2 匿名用户访问配置与测试4.2.1 匿名用户访问配置4.2.2 匿名用户访问测试Windows客户端**4.3 用户模式登录配置与测试4.3.1 本地用户访问配置禁锢目录4.3.2 本地用户登录测试4.4 配置用户列表黑白名单五、iptables防火墙5.1 iptables 概述5.2 iptables 的表与链结构5.2.1 四张表5.2.2 五条链5.2.3 数据包流向与匹配顺序总结前言在 Linux 系统运维中文件传输协议FTP服务与防火墙管理是两项基础且重要的技能。无论是搭建文件共享服务器还是保障系统网络安全掌握 FTP 服务的部署与防火墙规则的配置都必不可少。一、FTP简介FTPFile Transfer Protocol文件传输协议是典型的C/S客户端/服务器架构应用层协议需由服务端软件与客户端软件协同工作实现文件传输功能。FTP客户端与服务器之间的连接基于TCP协议属于可靠的、面向连接的连接方式能为数据传输提供稳定保障。FTP使用21端口: 用于传输指令20端口用于传输数据。二、FTP作用2.1 文件上传允许用户从本地计算机 上传文件 到远程服务器。2.2 文件下载允许用户从服务器 下载文件 到本地。2.3 文件管理FTP 客户端可以执行创建、删除、重命名文件或目录修改文件权限如 chmod 列出目录内容三、FTP原理3.1 FTP主动模式1客户端发送FTP请求包含用户名、密码、连接模式命令PORT和自己开放的用于自身接收数据的端口2FTP服务器进行响应ACK服务器21号端口和客户高位端口1进行FTP会话连接。3FTP服务器主动从自己的20端口连接客户端发送连接请求时发送的端口。4最后客户端发送ACK确认开始数据传输。3.2 FTP被动模式1客户端发送FTP连接请求(包含用户、密码、连接模式命令PASV)2FTP服务器响应(ACK),服务器21号端口和客户端(高位端口建立FTP连接这个响应过程会告诉客户端服务器开放一个高位端口等你来连接3客户端从自己的一个高位端口连接服务器响应的高位端口4服务器给客户端一个ACK响应接下来进行数据传输过程。四、FTP搭建4.1 准备工作4.1.1 关闭防火墙、关闭增强功能systemctl stop firewalld#停止防火墙setenforce0#关闭增强功能getenforce#查看是否关闭增强功能4.1.2 检查与安装VSFTP软件查看是否安装若未安装VSFTP软件执行yum install -y vsftpd命令rpm-qvsftpd#查看是否安装vsftpyuminstall-yvsftpd#下载vsftp4.1.3 开启并设置VSFTP服务自启systemctl status vsftpd#查看vsftpd状态systemctlenablevsftpd#设置开机自启动systemctl is-enabled vsftpd#查看是否设置开机自启动4.1.4 切换配置目录并备份配置文件4.2 匿名用户访问配置与测试4.2.1 匿名用户访问配置编辑配置文件执行vim /etc/vsftpd/vsftpd.conf命令打开主配置文件。调整配置参数按需求修改或添加以下参数anonymous_enableYES开启匿名用户访问功能默认已开启。write_enableYES开放服务器的写权限若需实现文件上传必须开启此参数默认已开启。anon_umask022设置匿名用户上传文件的权限掩码反掩码通过该参数控制上传文件的默认权限如022对应文件权限为644目录权限为755。因为文件默认权限为666目录默认权限为777。anon_upload_enableYES允许匿名用户上传文件默认配置文件中该参数被注释需取消注释启用。anon_mkdir_write_enableYES允许匿名用户创建上传目录默认配置文件中该参数被注释需取消注释启用。anon_other_write_enableYES允许匿名用户执行删除、重命名、覆盖文件等操作默认配置文件中无此参数需手动添加。重启vsftp服务systemctl restart vsftpd#重启服务设置目录权限执行chmod 777 /var/ftp/pub/命令为匿名用户访问FTP的根目录/var/ftp/下的pub子目录设置最大权限777确保匿名用户可正常上传数据到该目录。4.2.2 匿名用户访问测试Windows客户端**在Windows系统中通过命令提示符测试匿名用户登录FTP服务具体步骤如下1打开命令提示符点击Windows开始菜单输入“cmd”并回车打开命令提示符窗口。2建立FTP连接执行ftp 10.8.0.10命令其中10.8.0.10为FTP服务器的IP地址发起与FTP服务器的连接。3执行FTP操作pwd查看当前匿名用户在FTP服务器中的根目录默认对应Linux系统的/var/ftp/目录ls查看当前目录下的文件与目录列表cd pub切换到pub子目录匿名用户上传文件的指定目录get 文件名将FTP服务器中指定的文件下载到当前Windows客户端的本地目录。文件被下载到C:\Users\用户名下put 文件名将Windows客户端本地目录中的指定文件上传到FTP服务器的当前目录quit退出FTP连接关闭命令提示符窗口即可结束操作4.3 用户模式登录配置与测试4.3.1 本地用户访问配置禁锢目录设置本地用户Linux系统中的系统用户验证登录FTP并将用户禁锢在其宿主目录中禁止切换到FTP目录以外的系统目录具体步骤如下编辑配置文件执行vim /etc/vsftpd/vsftpd.conf命令打开主配置文件。调整配置参数按需求修改或注释以下参数local_enableYes启用本地用户登录功能本地用户即Linux系统中的系统用户。anonymous_enableNO关闭匿名用户访问仅允许本地用户登录。write_enableYES开放服务器的写权限若需本地用户上传文件必须开启此参数。local_umask077设置本地用户上传文件的权限掩码反掩码077对应文件权限为600、目录权限为700仅允许文件宿主用户即上传用户拥有读写权限。chroot_local_userYES将本地用户的访问范围禁锢在其宿主目录中默认宿主目录为/home/用户名禁止用户切换到其他系统目录。allow_writeable_chrootYES允许被禁锢的用户宿主目录拥有写权限避免因目录权限不足导致登录失败。注释匿名用户相关权限参数将anon_mkdir_write_enableYES、anon_other_write_enableYES两行参数注释在参数前添加“#”因已关闭匿名用户访问无需保留匿名用户权限配置。重启VSFTP服务执行systemctl restart vsftpd命令重启服务使新的配置生效4.3.2 本地用户登录测试先创建用户和设置密码useradd用户名#创建用户passwd用户名#设置密码命令提示符登录打开Windows命令提示符执行ftp 10.8.0.10命令10.8.0.10为FTP服务器IP地址按提示输入Linux系统中的本地用户名和密码完成登录。图形化界面登录打开windows文件夹在地址栏输入ftp://csq10.8.0.10按提示输入密码即可登录。登录后可以把文件拖进去进行上传。4.4 配置用户列表黑白名单编辑用户列表文件执行vim /etc/vsftpd/user_list命令打开用户列表文件在文件末尾添加需管理的用户如csq每个用户占一行。配置用户列表功能执行vim /etc/vsftpd/vsftpd.conf命令添加或修改以下参数userlist_enableYES启用user_list用户列表文件使列表生效。userlist_denyNO将user_list设置为白名单仅允许列表中的用户如csq登录FTP默认值为YES此时user_list为黑名单禁止列表中的用户登录。重启服务执行systemctl restart vsftpd命令重启服务使配置生效。五、iptables防火墙5.1 iptables 概述1Netfilter与iptables的关系NetfilterLinux内核中的防火墙框架工作在内核空间kernel space负责实际的数据包过滤、转发、修改等操作。iptables用户空间user space的工具用于配置和管理Netfilter规则。二者合称“iptables 防火墙”通常简称为iptables。2特点工作在网络层属于包过滤防火墙。性能稳定、高效广泛应用于 Linux 系统。支持四表五链结构规则灵活可配置。5.2 iptables 的表与链结构5.2.1 四张表1raw状态跟踪是否对数据包进行连接跟踪2mangle修改数据包如 TOS、TTL、标记等3nat网络地址转换SNAT、DNAT4filter过滤数据包是否放行5.2.2 五条链1INPUT处理进入本机的数据包2OUTPUT处理本机发出的数据包3FORWARD处理经过本机转发的数据包4PREROUTING路由前处理常用于 DNAT5POSTROUTING路由后处理常用于 SNAT5.2.3 数据包流向与匹配顺序1入站PREROUTING → INPUT → 应用程序2出站应用程序 → OUTPUT → POSTROUTING3转发PREROUTING → FORWARD → POSTROUTING4表优先级raw → mangle → nat → filter总结1FTP 服务管理 FTPFile Transfer Protocol是 Linux 中常用的文件传输服务典型实现为 vsftpd。重点是FTP的工作原理分为主动模式与被动模式。需注意 FTP 默认使用 21 控制端口与 20 数据端口若需被动模式还需开放随机端口范围。2防火墙管理 iptables 是 Linux 内核集成的包过滤防火墙通过表和链对数据包进行过滤与转发。日常使用 firewall-cmd 添加规则如 firewall-cmd --add-serviceftp并持久化保存。文章明确了四张表的优先级五条链的作用熟悉数据包流向与匹配顺序