目录
3.创建自定义当中的规则,需要添加到默认链当中,才能使用, -j ky30 自定义的链名
防火墙
隔离功能
部署在网络边缘或者主机边缘
防火墙主要作用决定哪些数据可以被外网访问以及那些数据可以进入内网访问
网络层
安全技术
1、入侵检测系统:检测威胁,病毒,木马,不会阻断网络访问,事后提供报警和监督,类似于监控
2、入侵防御系统:一旦发现威胁,立刻阻断,主动的方式保护网络安全,透明模式工作的,一般都是在线部署的方式
大部分防火墙都是上述二者的结合体
防水墙:waterwall 防止信息泄露
软件防火墙 360 卡巴斯基 金山毒霸 IPtables firewalld
硬件防火墙 路由器 交换机 三层交换机
网络、外设接口、存储介质和打印机构成信息泄漏的全部途径。
防水墙针对这四种泄密途径,在事前、事中、事后进行全面防护。
其与防病毒产品、外部安全产品一起构成完整的网络安全体系。
(华为的ensp就是类似与防水墙,不透明的工作,你干什么都会记录,但是你自己不知道!)
按保护范围划分
主机防火墙:服务范围为当前一台主机
网络防火墙:服务范围为防火墙一侧的局域网
按实现方式划分
硬件防火墙:在专用硬件级别实现部分功能的防火墙;另一个部分功能基于软件实现,
如:华为,山石hillstone,天融信,等
软件防火墙:运行于通用硬件平台之上的防火墙的应用软件,Windows防火墙
按网络协议划分
网络层防火墙:OSI模型下四层,又称为包过滤防火墙
应用层防火墙/代理服务器:proxy 代理网关,OSI模型七层
包过滤防火墙
网络层对数据包进行选择,选择的依据是系统内设置的过滤逻辑,
被称为访问控制列表(ACL),通过检查数据流中每个数据的源地址,
目的地址,所用端口号和协议状态等因素,或他们的组合来确定是否允许该数据包通过
优点:对用户来说透明,处理速度快且易于维护
缺点:无法检查应用层数据,如病毒等
应用层防火墙
应用层防火墙/代理服务型防火墙,也称为代理服务器(Proxy Server)
将所有跨越防火墙的网络通信链路分为两段
内外网用户的访问都是通过代理服务器上的“链接”来
实现优点:在应用层对数据进行检查,比较安全
缺点:增加防火墙的负载
提示:现实生产环境中所使用的防火墙一般都是二者结合体,即先检查网络数据,通过之后再送到应用层去检查
selinux 自带的安全工具
集成在一个内核:netfliter 组件
iptables
包过滤防火墙
工作在:网络层
针对数据包进行过滤和限制
iptables 属于用户态
netfiler 属于内核态
过滤数据包:IP地址 端口 协议 都可以在iptables中进行配置,可以限制 也可以放行
iptables的构成 和工作机制
iptables的组成部分
四表五链组成
(selinux,也是一个表,不在我们讨论范围之内。)
raw:连接跟踪机制,可以加快封包穿过防火墙的速度,数据包跟踪
mangle :数据标记
nat :地址转换表
filter :过滤规则表,根据规则来定义或者过滤条件的数据包,默认表。
表的作用,容纳各种链
四表优先级
security-------raw--------mangle---------nat---------filter
五链
INPUT:处理数据包进入本机的规则
OUTPUT:处理数据包发出的规则,一般不做处理
prerouting 处理数据包进入的规则
postrouting :处理数据包离开本机之后规则 结合地址转换使用
FORWARD:处理数据转发的规则
链的作用容纳各种规则
规则时从上到下匹配,匹配到立刻终止,不再向下匹配
iptable规则
表里面有链,链里面有规则,规则就是我们自定义的对数据包的控制命令
匹配顺序
根据表达优先级匹配 ,在表中从上到下进行查找,找到匹配会规则立刻停止,不再表中查找,如果匹配不到规则,按照链的默认规则进行处理。
流入本机 :prerouting -----iuput--------用户进程(httpd 服务)------- 请求-------响应-------数据返回用户
流出本机:httpd ---------响应----output----pastrouting (地址转换)-----用户
转发 数据包进来,肯定不是同一网段,路由器转发 ------forward -------数据包出去
不允许转发,数据包直接丢弃
iptables的命令格式
iptables [ -t 表名](不指定表名,默认就是filter表)管理选项[链名][匹配条件][-j 控制类型]
管理选项
-A 在链的末尾追加一条,添加
-I 在链中插入一条新的规则,可以指定序号。-I 后面跟上数字,表示序号
-P 修改链的默认策略
-D 删除
-R 修改,替换规则
-L 查看链中的规则
vnL
v 显示详细信息
n 把规则以数字形式进行展示
-F 清空链中的所有规则,慎用
匹配条件
-p 指定匹配数据包协议类型
-s 指定匹配数据包的源ip地址
-d 指定匹配数据包目的IP地址
-i 指定数据包进入本机的网络接口
-o 指定数据包离开本机使用的网络接口
--sport 指定源端口号
--dport 指定目的端口号
控制类型
ACCEPT:允许数据包通过
DROP:拒绝,直接丢弃数据包,不给任何信息回应
REJECT:拒绝,会给回应相应信息
SNAT:修改数据包的源IP地址
DNAT:修改数据包的目的地址
注意事项
IP地址,且写在协议,端口写在协议后
指定多个IP地址用逗号隔开
多个端口用冒号隔开,小的端口号在前,大的端口号在后
修改规则一般不用
在生产中,iptables所有的链的默认规则都是DROP
通用匹配
网络协议 端口 IP地址
隐藏扩展模块
-p 指定协议时,tcp udp指明了时什么协议,就不需要再用-m 指明扩展模块
指定多端口,可以用冒号的形式,也可以用-m隐藏模块来实现。
-m 可以用明确的形式指出类型:多端口,mac地址,IP地址,数据包的状态
指定多端口
-m multiport 指定多端口,多个端口号用逗号分开
-m multiport --dport
-m multiport --sport
ip范围
-m iprange --src -range 源IP地址的范围
-m iprange --drc -range 目标IP地址的范围
mac地址
-m mac --mac -source
iptables的备份和还原
1、写在命令行当中的都是临时配置
2、把我们的规则配置在服务的文件当中,形成永久生效
例如
iptables > /opt/ky30.bak
备份到/opt/ky30.bak
cat/etc/sysconfig/iptables
默认配置文件
iptables-restore < /opt/ky30.bak
导入配置
iptables-save> /opt/ky30.bak
导出配置
永久生效要写入配置文件
自定义链
1、创建自定义链
iptables-N 名称
没有指定表名,就是默认在filter表中添加一个自定义链
2、改名字
iptables -E custom ky30
前一个原链名 后一个新链名
3.创建自定义当中的规则,需要添加到默认链当中,才能使用, -j ky30 自定义的链名
iptables -I INRUT -p icmp -j ky30
4、删除
第一步,自定义被默认链使用,要先在默认链当中删除,再把自定义链中的规则删除,最后才能把自定义链删除
iptables -D INPOT 1
iptables -X ky30 1 (自定义链名)
SNAT和DNAT
SNAT:源地址转换
内网到外网
DNAT:目标地址转换
外网到内网
面试题,必要的技能之一
linux 如何抓包
tcpdump 来实现linux抓包
-i ens33 只抓经过ens33的数据报
-t 不显示时间戳
-s0 抓取完整的数据包
and :目的端口是80 and 192.168.233.0/24 数据包的源地址
-w :把抓包文件保存
tcpdump tcp -i ens33 -s0 -w ./ens33.cap
动态转包