一、安全技术
1、入侵检测机制:阻断、量化、定位来自内外的网络威胁情况,提供报警和事后监督。类似于监控
2、入侵防御:以透明模式工作,一切行为是公开的。对数据包的内容进行分析,一切进入本机的内容进行防护,例如木马、蠕虫、系统漏洞进行分析判断、进行阻断。是一种主动的防护机制。部署在整个架构,或者是集群的入口处(必经之路)
3、防火墙:隔离功能,工作在网络或者主机的边缘。部署在内外网之间。对网络或者主机进出的数据包按照一定规则进行检查(网络层转发的数据包)。一般对防火墙的设置都是白名单,拒绝所有,允许个别
4、防水墙:透明模式工作。一切对于防水墙都是透明的。在事前、事中、事后都可以进行检测
二、防火墙的种类
按照保护范围划分
1、主机防火墙:仅为当前主机服务
2、网络防火墙:防护的是另一侧内部的局域网(或者是内网)
网络层防火墙iptables(包过滤防火墙)
访问控制,可对每个数据包的源ip地址、目的ip地址、端口号、协议等进行组合式监控,由此判断该数据包是否允许通过
(面试题)通信的5要素:
源/目的IP 源/目的端口 协议
通信的4要素:
源/目的IP 源/目的端口
三、iptables:系统自带的包过滤防火墙(面试题)
(1)四表五链
1、raw:连接跟踪。跟踪数据包的一种机制。配置后可以加快防火墙的穿越速度(最快方式是关闭raw里面的追踪)与我们无关
2、mangle:修改数据包的标记位规则与我们无关
3、nat:地址转换的规则表
4、filter:包过滤规则表。根据预定义规则、人工设置的规则对符合条件的数据包进行过滤。iptables的默认规则表常用
四表的优先级:raw>mangle>nat>filter
五链:
1、prerouting链:处理数据包进入本机之前的规则
2、input链:处理数据包进入本机的规则
3、FORWARD链:处理数据包转发到其他主机的规则
4、output链:处理本机发出的数据包的规则。一般不做限制(能让进,就不会不让出)
5、postrouting链:处理数据包离开本机之后的规则
(2)管理选项
-A在指定链的末尾追加
-I在指定链的行插入新的规则。可以指定插入规则的位置
-P修改默认策略(链的策略)
-D删除
-R修改,替换规则(一般不用,容易出问题)
-L查看指定链中的规则
-n以数字形式显示规则
-v查看详细信息
--line-numbers给每个链里的规则进行编号查看
-F清空指定链中的规则(禁用)
-X清空自定义链的规则(很少用)
-t指定表名(可加可不加)
(3)匹配条件
-p指定数据包的协议类型
-s指定数据包的源ip地址
-d指定数据包的目的ip地址
-i指定数据包进入本机的网络接口
-o指定数据包离开本机的时候使用的网络接口
--sport指定源端口
--dport指定目的端口号
(4)控制类型
-j后面加上控制类型
ACCEPT允许数据包通过(常用)
DROP直接丢弃数据包,拒绝数据包通过,不给任何回应的信息(不用)
REJECT拒绝数据包通过,会给一个回应信息
SNAT修改数据包的源地址
DNAT修改数据包的目的地址
(5)匹配策略
从上往下按照规则顺序匹配,若匹配到了规则,后面的规则不再匹配。针对相同规则的类型,匹配到之后后续的规则也不生效
(6)黑名单
允许所有,拒绝个别
1、对IP地址进行限制
2、对端口进行限制
注意:端口不能写在协议前
3、删除指定规则
指定规则序号进行删除
四、生产环境中配置iptables
用策略来拒绝,用规则进行放通
1、修改默认策略(重要)
iptables -P INPUT DROP(此配置会炸了生产环境。生产中一般已经配置过DROP,就不要再动了,直接配置后续的ACCEPT)
iptables -A INPUT -p icmp -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
systemctl restart iptables.service重启服务,恢复默认策略
2、通用匹配规则:ip+端口+网段+接口(网卡设备)
五、隐藏扩展模块
-p指定协议时,不需要使用-m指明扩展模块
-m扩展模块,可以明确指定类型,多端口,MAC地址,ip范围
1、多端口访问
2、指定IP地址范围
-m iprange --src-range 源ip范围
-m iprange --dst-range 目的ip范围
3、指定MAC地址
-m mac --mac-source
六、备份和还原
备份:iptables-save >/opt/iptables.bak
还原:iptables-restore </opt/iptables.bak
永久修改iptables的配置文件:
cat /opt/iptables >/etc/sysconfig/iptables(慎重)
七、自定义链
1、添加自定义链:
添加链:iptables -N test
自定义链名:test
修改链名:iptables -E test yst
现在自定义链名是yst
创建自定义链规则:iptables -I yst 1 -p icmp -j ACCEPT
将规则添加到系统的规则下:iptables -I INPUT 1 -p icmp -j yst
注意:系统只能识别四个表名
2、删除自定义规则和链:
先删除系统链中的规则:iptables -D INPUT 1
再删除自定义链中的规则:iptables -D yst 1
最后删除自定义链:iptables -X yst