炒沙作縻终不饱,缕冰文章费工巧。这篇文章主要讲述防火墙的基础与编写规则相关的知识,希望能为你提供帮助。
一、防火墙的基础
1.概述
防火墙是一个由计算机硬件和软件组成的系统,部署于网络边界,是内部网络和外部网络之间的连接桥梁,同时对进出网络边界的数据进行保护,防止恶意入侵、恶意代码的传播等,保障内部网络数据的安全。?防火墙技术是建立在网络技术和信息安全技术基础上的应用性安全技术,几乎所有的企业内部网络与外部网络(如因特网)相连接的边界设都会放置防火墙,防火墙能够起到安全过滤和安全隔离外网攻击、入侵等有害的网络安全信息和行为。
2.netfilter与iptables
Linux系统的防火墙:IP信息包过滤系统,它实际上由两个组件netfilter和 iptables组成.主要工作在网络层,针对IP数据包。体现在对包内的IP地址、端口等信息的处理上。
1.netfilternetfilter:属于"内核态”(Kernel Space,又称为内核空间)的防火墙功能体系。
是内核的一部分,由一些数据包过滤表组成,这些表包含内核用来控制数据包过滤处理的规则集。
2.iptablesiptables:属于"用户态”(User Space,又称为用户空间)的防火墙管理体系。
是一种用来管理Linux防火墙的命令程序,它使插入、修改和删除数据包过滤表中的规则变得容易,通常位于/sbin/iptables文件下
3.小结??netfilter与iptables都可以表示Linux防火墙,??正确认识两者的关系有助于理解 Linux 防火墙的工作方式
3.iptables的四表五链
iptables的作用是为包过滤机制的实现提供规则(或称为策略),通过各种不同的规则,告诉 netfilter 对来自某些源、前往某些目的或具有某些协议特征的数据包应该如何处理
为了更方便地组织和管理防火墙规则,iptables 采用了“表”和“链”的分层结构,且表中所有规则配置后,立即生效,不需要重启服务
【防火墙的基础与编写规则】?
规则表的作用:容纳各种规则链。
规则链的作用:容纳各种防火墙规则。
总结:表里有链,链里有规则
1.规则表(四表)
在 iptables 的四个规则表中,mangle表和raw表的应用相对较少。
2.规则链(五链)在处理各种数据包时,根据防火墙规则的不同介入时机,iptables 默认划分为五种不同的规则链
4.数据包过滤的匹配流程
iptables 管理着四个默认表和五种链,各种防火墙规则依次存放在链中。
?
1.规则表之间的匹配顺序?当数据包抵达防火墙时,优先顺序为(如果存在):
raw >
mangle >
nat >
filter
2.规则链之间的顺序根据规则链的划分原则,不同链的处理时机是比较固定的,因此规则链之间的应用顺序取决于数据包的流向
主机型防火墙
网络型防火墙
3.规则链内的匹配顺序当数据包经过每条规则链时,自上向下按顺序依次进行检查,找到相匹配的规则即停止(LOG策略例外,表示记录相关日志)
若在该链内找不到相匹配的规则,则按该链的默认策略处理(未修改的状况下,默认策略为允许)
二、编写规则1.准备工作
Centos7默认使用firewalld防火墙没有安装iptables,若想使用iptables防火墙。必须先关闭firewalld防火墙,再安装iptables
systemctl stop firewalld.service
yum -y install iptables iptables-services.x86_64
systemctl start
2.基本语法
使用 iptables 命令管理、编写防火墙规则时,基本的命令格式如下
iptables [-t 表名] 管理选项 [链名] [匹配条件] [-j控制类型]
?
注意事项:
3.常用的控制类型
4.常用的管理选项
5.常用的匹配条件
1.添加新的规则iptables -t filter -A INPUT -p icmp -j REJECT
2.查看规则列表iptables [-t 表名] -n -L [链名] [--line-numbers]
iptables -[vn]L
iptables -n -L --line-numbers
不指定表名,默认是filter表。nvL可以合写在一起,但L必须在最后。
3.设置默认策略iptables [-t 表名] -P <
链名>
<
控制类型>
iptables -P INPUT DROP
iptables -P FORWARD DROP
一般在生产环境中设置网络型防火墙、主机型防火墙时都要设置默认规则为DROP,并设置白名单
4.删除规则iptables -D INPUT 2
iptables -t filter -D INPUT -p icmp -j REJECT
重启防火墙也可以删除规则,恢复到默认规则。
注意:
5.清空规则iptables [-t 表名] -F [链名]
iptables -F INPUT
iptables -F
注意:
6.规则的匹配
在编写防火墙规则时,匹配条件的设置起着决定性的作用;只有清晰、准确地设置好匹配条件,防火墙才知道对符合什么条件的数据包进行处理,避免“误杀”;对于同一条防火墙规则,可以指定多个匹配条件,表示这些条件必须都满足规则才会生效;根据数据包的各种特征,结合iptables的模块结构,匹配条件的设置包括以下三大类
1.通用匹配可以直接使用,不依赖其他条件或拓展,包括网络协议、IP地址、网络接口等条件。
iptables -A FORWARD ! -p icmp -j ACCEPT
iptables -A INPUT -s 192.168.80.11 -j DROP
iptables -I INPUT -i ens33 -s 192.168.80.0/24 -j DROP
2.隐含匹配要求以特定的协议匹配作为前提,包括端口、TCP标记、ICMP类型等条件。
端口匹配:--sport 源端口、--dport 目的端口(可以是个别端口、端口范围)
--sport 1000
匹配源端口是1000的数据包
--sport 1000: 3000
匹配源端口是1000-3000的数据包
--sport :3000
匹配源端口是3000及以下的数据包
--sport 1000:
匹配源端口是1000及以上的数据包
--sport和--dport必须配合 -p<
协议类型>
使用
iptables -A INPUT -p tcp --dport 20:21 -j ACCEPT
iptables -I FORWARD -d 192.168.80.0/24 -p tcp --dport 24500:24600 -j DROP
ICMP类型匹配:--icmp-type
可以是字符串、数字代码
”Echo-Request”(代码为8)表示请求
"Echo-Reply"(代码为0)表示回显
"Destination-Unreachable”(代码为3)表示目标不可达
关于其它可用的ICMP协议类型,可以执行"iptables -p icmp -h"命令,查看帮助信息
iptables -A INPUT -p icmp --icmp-type 8 -j DROP禁止其它主机ping本机
iptables -A INPUT -p icmp --icmp-type 0 -j ACCEPT允许本机ping其它主机
iptables -A INPUT -p icmp --icmp-type 3 -j
推荐阅读
- 在使用优雅主题的Divi主题的WordPress中,长菜单不显示
- Windows Server 2022 中的最佳新功能
- RabbitMQ 安装
- 文本处理和加密安全
- 《嵌入式系统 - RT-Thread开发笔记》 第三部分 RT-Thread 移植与设备驱动开发 -第1章 RT-Thread 开发环境搭建 (Keil+env)
- ubuntu20.04设置静态IP地址
- 自动化集成(Pipeline整合Docker容器)
- iptables防火墙
- iptables中 SNAT与DNAT的原理与应用