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