安全技术
1入侵检测系统:特点是不阻断网络访问,主要提供报警和事后监督,不主动介入,默默的看着你(监控)
2入侵防御系统:透明模式工作,如数据包,网络监控,服务攻击,木马,蠕虫,系统漏洞等进行准确的分析和判断。在判断为攻击行为后会2立即阻断,主动的防御(所有的数据在进入本机之前,必须要通过的设备或者软件)
3防火墙
作用和功能:隔离
工作在网络或者主机的边缘
对网络或者主机的数据包基于一定的规则进行检查,匹配到的规则
放行,拒绝。拒绝后数据包将会被丢弃
只允许访问的策略(白名单机制,拒绝所有,允许个别)
4防水墙
是一种防止内部信息泄露的产品,对外有防火墙的功能,对内是透明模式工作,类似监控
事前,事中,事后都知道
防火墙
iptables 是linux自带的防火墙,一般用于内部配置。对外一般不适用(对外都使用专业的)
firewalld 也是linux自带的防火墙,centos7以后的默认防火墙。
都属于包过滤防火墙(数据包进行控制)
是在网络层对数据包进行选择,选择的依据是防火墙设置的策略
策略包含:ip地址,端口,协议
优点:处理速度快,易于维护
缺点:无法检查应用层数据,即无法处理病毒
应用层防火墙
在应用层对数据进行检查,比较安全
优点:更安全,问题可以精准定位
缺点:所有的数据都会检查,会增加防火墙的负荷
iptables
工作在网络层,针对数据包实施过滤和限制,是包过滤防火墙
通信的要素:
五大要素:源ip,目的ip,源端口,目的端口,协议(TCP/UPD)
四要素:源ip,目的ip,源端口,目的端口
内核态和用户态
内核态:
设计到软件的底层代码或者系统的基层逻辑,以及一些硬件的编码。
数据如果是内核态处理,速度相对较快
iptables的过滤规则就是由内核来进行处理的
用户态:
应用层软件层面,人为控制的一系列操作,使用功能。
运维人员只考虑用户态
数据只通过用户态处理,速度是比较慢的
iptables的配置和策略:
*四表五链:
四表:
raw表:用于控制数据包的状态,跟踪数据包的状态
mangie表:修改数据包的头部信息
nat表:网络地址转换,可以改变数据包的源地址是目的地址
filter表:也是iptables的默认表,不做声明,默认就是filter表,过滤数据包,控制数据包的进出,以及接受和拒绝数据包
五链:
PREROUTING链:处理数据包进入本机之前的规则(NAT表)
INPUT链:处理数据包进入本机的规则(filter表,是否允许数据包进入)
OUTPUT链:处理本机发出的数据包的规则,或者是数据包离开的本机的规则(filter表,一般不做设置)
FORWARD链:处理数据包转发到其他主机的规则,或者是否允许本机进行数据包转发
POSTROUTING链:处理数据包离开本机之后的规则(NAT表)
表里面有链,链里面有规则
管理选项:在表的链中插入,增加,删除,查看规则
匹配的条件:数据包的ip地址,端口,协议
控制类型:允许,拒绝,丢弃
控制类似:
ACCEPT:允许数据包通过
DROP:直接丢弃数据包,没有任何回应信息
REJECT:拒绝数据包通过,数据包也会被丢弃,但是会有一个响应的信息
SNAT:修改数据包的源地址
DNAT:修改数据包的目的地址
管理选项
-A :在链中添加一条规则,在链尾添加
-I :可以指定位置插入一条规则
-P :指定链的默认规则,链的规则一般都设置成拒绝(默认允许)
-D :删除规则
-R :修改规则(慎用)
-vnL:v显示详细信息,n 以数字形式展示内容, L 查看
-line-numbers :显示编号,和查看一起使用
-F :清空链中的所有规则(慎用)
-X :清除自定义链中的规则
匹配条件
-p :指定协议类型
-s :指定匹配的源ip地址
-d :指定匹配的目的ip地址
-i :指定数据包进入本机的网络设备(ens33)
-o :指定数据包离开本机的网络设备
--sport :指定源端口
--dport :指定目的端口
命令格式
iptables [-t 表名] 管理选项 链名(大写) 匹配条件 [-j 控制类型]
所有的控制类似前面都是 j
注意事项:
1)不指定表名,默认就是filter表
2)不指定链名,默认就是所有链。(禁止行为)
3)除非设置了链的默认策略否则必须执行匹配条件(一般都是指定匹配条件)
4)选项,链名和控制类型都是大写,其余都是小写
匹配原则:
每个链中规则都是从上到下的顺序匹配,匹配到之后不再向下匹配
如果链中没有规则,则执行链的默认策略进行处理
-m :扩展模块,一次性禁止多端口,ip范围,指定mac地址
--src-range :源地址池
--dst-range :目的地址池
-m multiport --sport :源端口池
-m iprange -- dport :目的端口池
-m iprange -- src range :源地址池
-m iprange --dst-range :源目的地址池