防火墙
防火墙的主要功能是隔离,决定数据是否可以被外网访问以及哪些数据可以进入内。
它主要部署在网络边缘或者主机边缘,应用在网络层。
防火墙的安全技术:
1、入侵检测系统:检测数威胁,病毒,木马,不会阻断网络访问,事后提供报警和监督,类似于监控。
2、入侵防御系统:一旦检测出威胁,会立即予以阻断,主动的方式保护网络安全。透明模式模式工作的。一般都是用在线部署的方式。(所有数据进出的必经之路。
现在市面上大部分的防火墙都是上述二者的结合体。
防水墙
广泛意义上的防水墙:防水墙(Waterwall),与防火墙相对,是一种防止内部信息泄漏的安全产品。
防火墙主要分为软件防火墙和硬件防火墙
防火墙的保护范围
1、主机防火墙:服务范围就是当前白己的主机。
2、网络防火墙:服务范围为防火墙一侧的局域网。
实现方式
1、硬件防火墙:既有专业的硬件来实现防火墙功能,又有软件来进行配合。
2、软件防火墙:主要靠代码实现防护与数据判断。
网络协议划分
网络层:包过滤防火墙。
应用层:也叫代理服务器,可以设置数据的进出。
包过滤防火墙(iptables)
主要工作在网络层,用于针对数据包进行过滤和限制。
iptables属于用户态
netfilter 属于内核态。
过滤数据包:ip地址端口协议。都可以在iptables中进行配置,可以限制,也可以方行。
iptable的组成部分
由四表五链组成(selinux,也是一个表,一般不纳入范围).
注: 按优先级从左往右,从高到低。
四表:
raw表:提供连接跟踪机制,可以加快封包穿过防火墙的速度。数据包跟踪
mangle表:数据标记
net表:地址转换表
filter表:过滤规则表,可以根据规则来定义或过滤符合条件的数据包,也是默认表。
五链:
input:处理数据包进入本机的规则。
output:处理数据包发出的规则,一般不做处理。
prerouting:处理数据包进入的规则,主要结合地址转换使用。
postrouting:处理数据包离开本机后的规则,主要结合地址转换使用。
forward:处理数据转发的规则。
iptable的规则
表里面有链,链里面有规则,规则就是我们自定义的对于数据包的控制命令。
匹配顺序
1、根据表的优先级进行匹配,在表中从上到下进行检查,找到匹配规则立即停止,不再表中向下继续查找,如果匹配不到规则,按照链的默认规则进行处理。
管理选项
-A 在链的末尾追加一条,添加
-I 在链中插入一条新的规则,后面跟上数字,表示序号
-P 修改链的默认策略
-D 删除,根据编号进行删除
-R 修改,替换规则
-L 查看链中的规则
-F 清空链中的所有规则
v 显示详细信息
n 把规则已数字形式进行展示
匹配条件
-p 指定匹配的数据包协议类型
-s 指定匹配的数据包源ip地址
-d 指定匹配数据包的目的ip地址
-i 指定数据包进入本机的网络接口
-o 指定数据包离开本机使用的网络接口
--sport:指定源端口号,写在协议后
--dport:指定目的端口号
控制类型
ACCEPT:允许数据包通过
DROP: 拒绝,直接丢弃数据包,不给回应信息
REJECT:拒绝,会给响应信息
SNAT: 修改数据包源ip地址
DNAT: 修改数据包目的IP地址
实例
禁止所有网段访问80端口
隐藏扩展模块
-p指定协议时,tcp udp指明了是什么协议,就不需要再用-m指明扩展模块。
指定对端口,可以用冒号的形式,也可以用-m隐藏模块来实现。
-m 可以用明确的形式指出类型(包括多端口,mac地址,IP地址,数据包状态)