目录
一、理论
1.安全技术
2.防火墙
3.通信五元素和四元素
4.总结
二、实验
1.iptables基本操作
2.扩展匹配
3. 自定义链接
一、理论
1.安全技术
(1)安全技术
①入侵检测系统(Intrusion Detection Systems):特点是不阻断任何网络访问,量化、定位来自内外网络的威胁情况,主要以提供报警和事后监督为主,提供有针对性的指导措施和安全决策依据,类 似于监控系统一般采用旁路部署(默默的看着你)方式。
②入侵防御系统(Intrusion Prevention System):以透明模式工作,分析数据包的内容如:溢出攻击、拒绝服务攻击、木马、蠕虫、系统漏洞等进行准确的分析判断,在判定为攻击行为后立即予以 阻断,主动而有效的保护网络的安全,一般采用在线部署方式。
③防火墙( FireWall ):隔离功能,工作在网络或主机边缘,对进出网络或主机的数据包基于一定的规则检查,并在匹配某规则时由规则定义的行为进行处理的一组功能的组件,基本上的实现都是默 认情况下关闭所有的通过型访问,只开放允许访问的策略,会将希望外网访问的主机放在DMZ (demilitarized zone)网络中。
(2)防火墙分类
①按保护范围划分
主机防火墙:服务范围为当前一台主机。
网络防火墙:服务范围为防火墙一侧的局域网。
②按实现方式划分
硬件防火墙:在专用硬件级别实现部分功能的防火墙;另一个部分功能基于软件实现,华为、深信服等。
软件防火墙:运行于通用硬件平台之上的防火墙的应用软件,Windows 防火墙 ISA --> Forefront。
③按网络协议划分
包过滤防火墙:只对osi模型下四层生效,速度快拆包少。
网络层防火墙:OSI模型下四层,又称为包过滤防火墙。
应用层防火墙/代理服务器:proxy 代理网关,OSI模型七层。
2.防火墙
(1)iptables
netfilter/iptables(简称为iptables)组成Linux平台下的包过滤防火墙,与大多数的Linux软件一样,这个包过滤防火墙是免费的,它可以代替昂贵的商业防火墙解决方案,完成封包过滤、封包重定向和网络地址转换(NAT)等功能。
iptables的表、链结构
规则表—(容纳)—规则链—(容纳)—防火墙规则
①四表
规则表之间的优先顺序:
Raw——mangle——nat——filter
规则表:
1)filter表——三个链:INPUT、FORWARD、OUTPUT
作用:过滤数据包 内核模块:iptables_filter.
2)Nat表——三个链:PREROUTING、POSTROUTING、OUTPUT
作用:用于网络地址转换(IP、端口) 内核模块:iptable_nat
3) Mangle表——五个链:PREROUTING、POSTROUTING、INPUT、OUTPUT、FORWARD
作用:修改数据包的服务类型、TTL、并且可以配置路由实现QOS内核模块:iptable_mangle
4) Raw表——两个链:OUTPUT、PREROUTING
作用:决定数据包是否被状态跟踪机制处理 内核模块:iptable_raw
表1 四表
表 | 功能 |
secure表 | 用于强制访问控制(MAC)网络规则,由Linux安全模块(如SELinux)实现。 |
raw表 | 关闭启用的连接跟踪机制,加快封包穿越防火墙速度。 |
mangel表 | 修改数据标记位规则表。 |
nat表 | 地址转换规则表。 |
filter表 | 过滤规则表,根据预定义的规则过滤符合条件的数据包,默认表为filter表。 |
②五链
表2 五链
链 | 功能 |
INPUT链 | 处理入站数据包。 |
OUTPUT链 | 处理出站数据包。 |
FORWARD链 | 转发数据包。 |
PREROUTING链 | 处理路由选择前数据包。 |
POSTROUTING链 | 处理路由选择后数据包。 |
③ 匹配流程
流程 | 表、链 |
入站 | PREROUTING→INPUT (nat) (filter) |
出站 | OUT→POSTROUTING (filter) (nat) |
转发 | PREROUTING→FORWARD→POSTROUTING (nat) (filter) (nat) |
(2)黑白名单
① 黑名单:默认全部允许通过,添加谁才不允许谁通过。
② 白名单:默认全部不允许通过,添加谁允许谁通过。
(3)iptables基本语法
iptables [-t 表名] 选项 [链名] [条件] [-j 控制类型]
(4)iptales选项
①管理选项
表3 iptables选项
选项 | 功能 |
-A | 在链的末尾追加一条规则。 |
-I | 在链的行首插入一条新的规则,若-I 后加数字表示在第几条前插入新规则。 |
-D | 删除规则。 |
-P | 修改默认链的默认规则,默认都是ACCEPT,使用格式:iptables -P 修改的链 修改的默认规则。 |
-F | 清空防火墙规则,默认情况filter表,加-t 表名可以情况其他表。 |
-R | 替换某条规则,-R +要替换的规则编号。 |
-L | 以列表查看iptables,使用组合时必须在最后一位。 |
-N | 添加自定义规则链。 |
-X | 删除自定义规则链。 |
②匹配条件
表4 匹配条件
条件 | 功能 |
-p | 指定服务名称,TCP、ICMP等。 |
-n | 数字化显示规则表,多用于和-n -L选项配合看表。 |
-v | 显示规则表的详细信息。 |
--line--numbers | --line--numbers |
(5)控制类型
控制类型需要使用 -j 跳转到某类型处理数据包。
表5 控制类型
类型 | 功能 |
ACCEPT | 允许通过 |
REJECT | 拒绝通过 |
DROP | 丢弃,会接受但是将数据包丢弃不处理 |
SNAT | 源地址转换 (内→外) |
DNAT | 目的地址转换 (外→内) |
LOG | 在/var/log/messages 文件中记录日志信息,然后将数据包传递给下一条规则 |
(6)隐藏扩展模块
iptables在使用-p 指定协议时,若指明特定协议后就无须再使用-m指明扩展模块的扩展机制,例如若已经指明是 -p tcp 协议则使用--dport及--sport等tcp模块内容时即可省略-m tcp。
①TCP模块
--sport 指明源端口,使用格式: --sport 端口或 端口1:端口2(端口1到端口2的连续端口范围指定)。
--dport 指明目的端口,使用格式: --dport 端口或 端口1:端口2(端口1到端口2的连续端口范围指定)。
②ICMP模块
--icmp-type 指定icmp的type值制定规则。type值:Echo- Request" (代码为8)、表示请求 "Echo- Reply" (代码为0)表示回复 、"Dest ination-Unreachable" (代码为3)表示目标不可达。
(7)显示扩展模块
扩展模块使用格式: -m {模块名} [选项]
①multiport模块
--sports 端口1,端口2 ,等 使用,隔开最多指定15个不连续端口。
--dports 端口1,端口2 ,等 使用,隔开最多指定15个不连续端口。
② iprange模块
iprange模块可以指定连续的(一般不是整个网络)ip地址范围。
--src-range 源地址范围或 目的地址范围。
③mac地址模块
指明源MAC地址,适用INPUT链,PREOUTING,POSTROUTING链。
--mac-source 源mac地址,只能指定源mac地址。
④string字符串模块
可以使用string模块指定字符串范围。
--from offset 字符串开始查询的地方。
--to offset 字符串结束查询的地方 。
⑤connlimit模块
据每客户端IP做并发连接数数量匹配,可防止Dos(Denial of Service,拒绝服务)攻击。
--connlimit-upto N #连接的数量小于等于N时匹配
--connlimit-above N #连接的数量大于N时匹配
⑥stat模块
stat模块可以根据连接状态控制数据包。
NEW:新发出的请求;第一次发出的请求。
ESTABLISHED:new之后的正常连接状态。
⑦控制流量模块
limit控制流量模块,可以控制通过的包数以及每分钟或每小时通过的包数。
--limit 10/minute(1分钟之内只允许10个包通过)
--limit-burs 数字 例如: --limit-burst 5(允许通过前5个包,5个包不受影响)
(8)iptables规则保存
将写好的规则导入一个文件中 iptables-save >文件名。
永久保存保存规则的文件重新写入 iptables-restore <保存规则的文件名。
安装软件包
查看永久配置
备份
备份导入永久配置
(9)自定义链使用
①自定义链添加:iptables -N web(链名) 创建链
②自定义链改名:iptabels -E web(原来名称) (新名称) 自定义链改名
③创建自定义链规则:iptables -t filter -I web -p icmp -j REJECT 创建自定义规则,iptables的链中添加一条对应到自定义链中才能生效
④iptabales创建对应链规则然后跳转自定义链web:iptables -t filter -I INPUT -p icmp -j web
⑤删除自定义规则链:先删除iptables INPUT链中的对应关系,然后删除自定义链中的规则。
3.通信五元素和四元素
(1)五元素
源IP和目标IP、源端口和目标端口、协议
(2)四元素
源IP和目标IP、源端口和目标端口
4.总结
(1)管理
增、删、改、查
(2)匹配
ip地址、协议、端口
(3)控制
允许、拒绝、丢弃
二、实验
1.iptables基本操作
(1)详细查看(默认filter表)
清空规则
(2)添加规则
禁止所有地址ping主机
(3)设置允许(不生效),一旦匹配立即终止
查询
(4)带编号查询
(5)重新加入ACCEPT
显示PING通
(6)拒绝单个IP
(7)禁止IP出口
(8)允许出口
(9)指定端口 协议在前,端口在后
(10)删除指定协议
(11)删除指定序号
(12)修改链
(13)清空防火墙规则
(14)拒绝指定网段的端口,80端口协议为tcp
2.扩展匹配
(1)隐藏扩展匹配
拒绝多端口(小端口在前,大端口在后)
(2)显示扩展匹配 (端口无顺序限制)
拒绝对地址池访问
指定MAC地址
3. 自定义链接
创建自定义链
添加自定义链到INPUT链
改链名
删除自定义规则
删除自定义链