简介:文章详细介绍了网络安全中的防火墙技术,包括防火墙的分类和工作原理,特别是iptables的五表五链结构、基本语法和选项。此外,还提到了入侵检测系统和入侵防御系统的区别,以及如何通过iptables规则来管理网络流量和安全策略
按保护范围划分:
按实现方式划分:
按网络协议划分:
1. iptables五表五链
1.1 五表
1.2 五链
2. 黑白名单
3. iptables基本语法
iptables [-t 表名] 选项 [链名] [条件] [-j 控制类型]
下面是我在网上找的一张示例图:
3.1 在链的末尾追加一条规则 (-A)
3.2 在链的行首插入一条新的规则,若-I 后加数字表示在第几条前插入新规则(-I)
3.3 删除规则(-D)
3.4 修改默认链的默认规则,默认都是ACCEPT,使用格式:iptables -P 修改的链 修改的默认规则
3.5 清空防火墙规则(-F)默认情况filter表,加-t 表名可以情况其他表
3.6 替换某条规则(-R) +要替换的规则编号
3.7 以列表查看iptables,使用组合时必须在最后一位(-L)
3.8 添加自定义规则(-N)
3.9 删除自定义规则链(-X)
3.10 指定服务名称,TCP、ICMP等
3.11 数字化显示规则表(-n)多用于和-n -L选项配合看表
3.12 显示规则表的详细信息(-v)
3.13 查看规则编号(--line--numbers)
4. 控制类型
控制类型需要使用 -j 跳转到某类型处理数据包。
5.隐藏扩展模块
iptables在使用-p 指定协议时,若指明特定协议后就无须再使用-m指明扩展模块的扩展机制,例如若已经指明是 -p tcp 协议则使用--dport及--sport等tcp模块内容时即可省略-m tcp
5.1 TCP模块
--sport 指明源端口,使用格式: --sport 端口或 端口1:端口2(端口1到端口2的连续端口范围指定):
--dport 指明目的端口,使用格式: --dport 端口或 端口1:端口2(端口1到端口2的连续端口范围指定):
5.2 ICMP模块
--icmp-type 指定icmp的type值制定规则。type值:Echo- Request" (代码为8)、表示请求 "Echo- Reply" (代码为0)表示回复 、"Dest ination-Unreachable" (代码为3)表示目标不可达。
例如设置自己可以ping其他机器但是不允许其他机器ping自己:
6. 显示扩展模块
扩展模块使用格式: -m {模块名} [选项]
6.1 multiport模块
--sports 端口1,端口2 ,等 使用,隔开最多指定15个不连续端口:
--dports 端口1,端口2 ,等 使用,隔开最多指定15个不连续端口:
6.2 iprange模块
iprange模块可以指定连续的(一般不是整个网络)ip地址范围。
--src-range 源地址范围或 目的地址范围,例如:10.0.0.0-10.0.0.15
--dst-range 源地址范围或 目的地址范围,例如:10.0.0.0-10.0.0.15
6.3 mac地址模块
指明源MAC地址,适用INPUT链,PREOUTING,POSTROUTING链。
--mac-source 源mac地址,只能指定源mac地址。
6.4 string字符串模块
可以使用string模块指定字符串范围。
--from offset 字符串开始查询的地方。
--to offset 字符串结束查询的地方 。
例如:iptables -A OUTPUT -p tcp --sport 80 -m string --algo bm --from 62 --string "bilibili" -j REJECT
6.5 connlimit模块
据每客户端IP做并发连接数数量匹配,可防止Dos(Denial of Service,拒绝服务)攻击。
--connlimit-upto N #连接的数量小于等于N时匹配
--connlimit-above N #连接的数量大于N时匹配
例如:iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 2 -j REJECT
6.6 stat模块
stat模块可以根据连接状态控制数据包。
NEW:新发出的请求;第一次发出的请求。
ESTABLISHED:new之后的正常连接状态。
例如:ipatables -A INPUT -m state --state NEW -j REJECT
ipatables -A INPUT -m state --state ESTABLISHED -j ACCEPT
6.7 控制流量模块
limit控制流量模块,可以控制通过的包数以及每分钟或每小时通过的包数。
--limit 10/minute(1分钟之内只允许10个包通过)
--limit-burs 数字 例如: --limit-burst 5(允许通过前5个包,5个包不受影响)
7 iptables规则保存
将写好的规则导入一个文件中 iptables-save >文件名。
永久保存保存规则的文件重新写入 iptables-restore <保存规则的文件名。
有遗漏或者不对的可以在我的公众号留言哦