安全技术:(市场上常见的防御)
1.入侵检测机制
阻断,量化,定位来自内外的网络的威胁情况
提供报警和事后监督。类似于监控。
2.入侵防御
以透明模式工作,分析数据包的内容,一切进入本机的内容进行防护,木马,蠕虫,系统漏洞进行分析判断,然后进行阻断。主动的防护机制。部署在整个架构,或者是集群的入口处。(必经之路。)
3.防火墙
隔离功能,工作在网络或者主机的边缘 路由
对网络或者主机的数据包按照一定规则进行检查。(网络层转发数据包)
一般对防火墙的设置都是白名单,拒绝所有,允许个别。
保护范围:主机防火墙,仅为当前主机服务。
网络防火墙,防护的是另一侧的局域网。
网络层防火墙,iptables包过滤防火墙
访问控制,每个数据包的源IP地址,目的IP地址,端口号,协议等等进行组合式监控,由此来判断数据包是否允许通过。
iptables: 系统自带的包过滤防火墙。
firewalld: 主机防火墙,他也有包过滤的功能。centos7以后集成的。
4.防水墙
透明模式工作,华为的ensp监控就是防火墙。一切对于防水墙都是透明的
事前,事中,事后都可以进行检测
通信的五大要素和四要素
源/目的ip 源/目的mac 端口 协议。
源/目的ip 源/目的mac 端口
iptables
内核防火墙,内置四个表,而且在所有表中配置规则,配置后立即生效,不需要重启服务。
四个表
raw | 连接跟踪,跟踪数据的一种机制。配置了之后,可以加快防火墙的穿越速度(关闭raw里面的追踪。) |
mangle | 修改数据包的标记规则 |
nat | 地址转化的规则表 |
filter | 包过滤规则表。根据预定义的规则,人工设置的规则,对符合条件的数据包进行过滤,也是iptables的默认表 |
四表的优先级:raw---mangle---nat---filter |
表里有链,链里面有规则;iptables的配置规则,写在链当中。
五个链
prerouting链 | 处理数据包进入本机之前的规则 NAT |
input链 | 处理数据包进入本机的规则。 包能否进来 |
FORWARD链 | 处理数据包转发到其他主机的规则。 包能否转发 |
output链 | 处理本机发出的数据包的规则,一般不做处理。 |
postrouting链 | 处理数据包离开本机之后的规则 NAT |
数据流程图
安装iptables
systemctl stop firewalld
yum -y install iptables iptables-services
systemctl restart iptables
iptables管理选项:
选项 | 说明 |
-A | 在指定链的末尾进行追加 |
-I | 在指定链插入新的规则。可以指定插入规则的位置 |
-P | 修改默认策略(链的策略) |
-D | 删除 |
-R | 修改,替换规则 |
-L | 查看指定链当中的规则 |
-n | 以数字形式显示规则 |
-v | 查看详细信息 |
--line-number | 给每个链中的规则进行编号查看 |
-F | 清空指定链当中的规则(慎用) |
-X | 清空自定义链的规则 |
-t | 指定表名 |
匹配条件
匹配策略:从上到下按照规则顺序匹配,相同类型匹配,只生效第一条
-p | 指定数据包的协议类型 |
-s | 指定数据包的源ip地址 |
-d | 指定数据包的目的ip地址 |
-i | 指定数据包进入本机的网络接口 |
-o | 指定数据包离开本机的时候使用的网络接口 |
--sport | 指定源端口 |
--dport | 指定目的端口号 |
控制类型
-j | 后面跟上控制类型 |
ACCEPT | 允许数据包通过 |
DROP | 拒绝数据包通过,直接丢弃数据包,不给任何回应的信息 |
REJECT | 拒绝,拒绝数据包通过,但会给一个回应的信息 |
SNAT | 修改数据包的源地址 |
DNAT | 修改数据包的目的地址 |
通用匹配规则
ip+端口+网段+接口(网卡设备)
1.查看filter中的 INPUT表
iptables -t filter -vnL INPUT --line-numbers
num pkts bytes target prot opt in out source destination
num:--line-numbers 序号
pkts:匹配规则收到的报文个数
bytes:包的大小综合
target:规则对应的动作
port:规则对应的协议
2.清空filter表中的规则
iptables -F
3.拒绝所有主机ping
iptables -t filter -A INPUT -p icmp -j REJECT
4.在第一行插入新规则允许ping
iptables -t filter -I INPUT 1 -p icmp -j ACCEPT
5.对ip 进行设置
对ping本机进行限制
1.对单个ip拒绝
iptables -A INPUT -s 192.168.10.20 -p icmp -j REJECT
2.对多个ip决绝
iptables -A INPUT -s 192.168.10.20,192.168.10.30 -p icmp -j REJECT
6.对端口进行拒绝
1.对192.168.10.20的22端口进行限制---禁止20远程登陆本机
iptables -A INPUT -s 192.168.10.20 -p tcp --dport 22 -j REJECT
s--源主机限制
7.指定规则删除
删除INPUT里的第一条规则
iptables -D INPUT 1
1--协议序号
8.-R 修改
注意同时源地址改变,工作中极少使用
9.修改链的策略
工作中都拒绝所有,允许个别
修改INPUT策略
iptables -P INPUT DROP
10.指定网段
11.拒绝22端口和80端口
1.拒绝20网段80端口
iptables -A INPUT -s 192.168.20.0/24 -p tcp --dport 20:80 -j REJECT
小号端口在前,大号端口在后
2.拒绝20网段20,30,80,90,254端口
iptables -A INPUT -s 192.168.20.0/24 -p tcp -m multiport --dport 20,80,30,90,254 -j REJECT
-m (+控制模块 ,明确指定类型 多端口 MAC地址 ip范围)显示匹配
nultiport 端口 |
iprange --src-range 源ip |
iprange --dst-range 目的ip |
mac --mac-source 源mac |
12.指定多个端口
13.指定匹配IP地址范围
14.指定匹配mac地址
自定义链:
添加自定义链
iptables -N LIU2
自定义链重命名
iptables -E LIU2 LIU3
删除自定义链
iptables -X 自定义列名
自定义链的实现
在自定义链添加规则,将自定义列添加到系统原有链中(添加如下图)规则才会实现
删除自定义规则和链
先将自定义链从系统默认链中删除,再将自定义链中的规则删除,最后删除自定义链
策略备份和还原
备份 iptables-save >/opt/iptables.bank
还原 iptables-restore < /opt/iptable.bank
默认策略存放位置 /etc/sysconfig/iptables 立即生效