防火墙——iptables

本文详细介绍了iptables的四表五链及其功能,包括raw、mangle、nat和filter表,以及INPUT、OUTPUT、FORWARD、PREROUTING和POSTROUTING链的作用。iptables命令行配置方法也进行了讲解,包括规则匹配、控制类型和管理选项。此外,还提到了CentOS 7/8中firewalld作为新一代防火墙管理工具的使用情况。

iptables是系统自带的软件防火墙 (IP信息包过滤系统:IP 端口 协议)网络层
iptables    CentOS 5/6
两个关键组件    netfilter  内核态(保存规则集)    iptables 用户态(防火墙的管理规矩)

内容:

四表
raw表: 确定是否对该数据包状态进行跟踪  
 包含两个链:#OUTPUT  #PREROUTING

mangle表:修改数据包内容,用来做流量整形的,给数据包设置标记。
包含链:    #INPUT #OUTPUT #FORWARD  #PREROUTING  #POSTROUTING

nat表:负责网络地址的转换,用来修改数据包中的源、目标ip地址或端口。
包含链:#OUTPUT #PREROUTING #POSTROUTING

filter表:负责过滤数据包,确定是否放行该数据包。
包含链:#INPUT #FORWARD #OUTPUT

五链
INPUT:处理入站数据包,匹配目标IP为本机的数据包
OUTPUT:处理出站数据包,一般不在此链上做配置
FORWARD:处理转发数据包,匹配流经本机的数据包
PRERONTING:在进行路由选择前处理数据包,用来修改目的地址,用来做DNAT。相当于把内网服务器的ip和端口映射到路由器的外网ip和端口上。
POSTRONTING:在进行路由选择后处理数据包,用来修改源地址,用来做SNAT。相当于内网通过路由器NAT转换功能实现内网主机通过一个公网地址上网。

默认策略:默认值为 允许通过

链中的规则:"串行"  从上到下依次处理,找到对应的处理规则就结束,若是没有就按照默认值

iptable 命令行配置方法:
命令格式
iptables [-t 表名] 管理选项 [链名][匹配条件][-j 控制类型(需要大写)]

 

注意事项:
不指定表名时,默认指filter表
不指定链名时,默认指定表内的所有链
除非设置链的默认策略,否则必须指定匹配条件
控制类型使用大写字母,其余的均是小写

常用的控制类型:(必须大写)
ACCEPT:允许数据包的通过
DROP:直接丢弃数据包,不给出任何回应信息
SNAT:修改数据包的源地址
DNAT:修改数据包的目的地址
REJECT: 拒绝数据包通过
MASQUERADE:地址欺骗
REDIECT:重定向


规则的匹配:
1.通用匹配
可直接使用,不依赖于其他条件或扩展,包括网络协议、IP地址、网络接口协议

协议匹配:-p 协议名
地址匹配:-s 源地址 -d 目的地址   可以是ip 网段 域名 
接口匹配:-i入网网卡 -o出站网卡

2.隐含匹配
要求以特定的协议匹配作为前提,包括端口、TCP标记、ICMP类型等类型

端口匹配: --sport源端口  --dport目的端口


iptables -t 表 -A  匹配条件 -j ACCEPT|DROP|REJECT
               -I插入防火墙规则  
               -D删除防火墙规则
               -F清空防火墙规则
               -R  替换防火墙
               -nL --line-numbers  查看筛查表中的链规则
               -P ACCEPT|DROP|REJECT 设置默认值

匹配条件
-p   tcp|udp|imcp  匹配协议
-s 源IP|网段 
-d 目的IP|网段
-i 入站网卡
-o 出战网卡

-p  tcp|udp   --sport 源端口
              --dport 目的端口
              
-p  tcp  --tcp-flags  SYN|FIN|ACK|RST|PSH|URG              

-p  icmp --icmp-type  8|0|3

firewalld     CentOS  7/8
(在7里面一般默认安装了iptables的应用,但是缺乏服务管理工具需要安装iptables-services)
 

### 关于全国职业技能大赛中的网络安全赛题解析 #### 防火墙与 `iptables` 的基本概念 `iptables` 是一种强大的工具,用于实现基于 Linux 内核的防火墙功能。它能够通过定义规则来控制网络流量的进出行为,从而增强系统的安全性[^2]。 以下是针对防火墙和 `iptables` 在全国职业技能大赛中的具体应用及其详细解析: --- #### 基础规则设置 为了防止潜在的安全威胁,通常会使用以下基础规则来阻止异常 TCP 数据包: ```bash iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP ``` 这两条命令分别用于丢弃具有所有标志位或无任何标志位的 TCP 数据包,这些数据包通常是恶意攻击的一部分[^1]。 --- #### 进阶防护策略 在全国职业技能大赛中,参赛者可能需要完成更复杂的任务,例如配置特定端口和服务的安全规则。以下是一些常见的场景及解决方案: ##### 场景一:开放指定服务端口 假设需要开放 HTTP (80) 和 HTTPS (443) 两个常用的服务端口,则可以添加如下规则: ```bash iptables -A INPUT -p tcp --dport 80 -j ACCEPT iptables -A INPUT -p tcp --dport 443 -j ACCEPT ``` ##### 场景二:拒绝来自特定 IP 或子网的访问 如果发现某些 IP 地址存在可疑活动,可以通过以下方式将其屏蔽: ```bash iptables -A INPUT -s 192.168.1.100 -j DROP iptables -A INPUT -s 192.168.1.0/24 -j DROP ``` ##### 场景三:仅允许 SSL 访问 对于比赛题目提到的要求(如创建支持 SSL 的网站),可通过以下方法强制客户端使用加密连接: ```bash iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 443 ``` 此规则将所有的 HTTP 请求重定向至 HTTPS 协议下的目标地址[^3]。 --- #### 实际案例分析 以 **2024 年全国职业技能大赛** 中的任务为例,要求创建名为 `chinaskills.com` 的 Web 站点,并满足以下条件: 1. 主页位于路径 `C:\web\chinaskills.html`; 2. 显示内容为“热烈庆祝2021年全国职业技能大赛开幕”; 3. 只能通过域名访问且启用 SSL 加密传输。 解决思路分为两步: 1. 使用 Apache/Nginx 等服务器软件部署静态 HTML 页面; 2. 调整防火墙规则以确保只有合法请求被接受。 最终效果验证需结合实际环境测试,确认是否符合赛事评分标准。 --- #### 总结 通过对以上知识点的学习与实践,选手可以在比赛中快速构建高效而安全的网络防御体系。掌握 `iptables` 的核心语法以及灵活运用其高级特性将是取得优异成绩的关键所在。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南京的山南

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值