一、安全技术
1.入侵检测系统:特点式不阻断网络访问,主要式提供报警和事后监督,不主动介入,默默的看着你(相当于360安全卫士)
2.入侵防御系统:透明模式工作,对数据包,网络监控,服务攻击,木马,蠕虫,系统漏洞等等进行准确的分析和判断,在判定为攻击行为后立即阻断,主动的防御(所有的数据在进入本机之前,必须要通过的设备或者软件)
二、防火墙:作用是隔离,工作在网络或者主机的边缘,对网络或者主机的数据包基于一定的规则进行检查,匹配到的规则,要么放行,要么拒绝(拒绝就就是把数据包丢弃),只开放允许访问的策略(白名单机制,拒绝所有,允许个别)。
**三、防水墙:**透明模式工作,华为的ensp监控就是防水墙。一切对于防水墙来说都是透明的。可以在事前、事中、事后都可以进行检测。
四、防火墙:
1.iptables:这个是linux自带的防火墙,一般用于内部配置,工作在网络层,针对数据包实施过滤和限制,是包过滤防火墙,对外一般不适用(对外都使用专业的);iptable的过滤规则就是由内核态来进行控制。
2.firewald :这个也是Linux自带的防火墙,centos7以后默认的防火墙,也是包过滤防火墙;作用是网络层对数据包进行选择,选择的依据是防火墙设置的策略,策略包括:IP地址,端口,协议;优点是处理速度块,容易维护;缺点是无法检查应用层数据,病毒无法进行处理。
3.应用层防火墙:在应用层对数据进行检查,比较安全;优点是更加安全,问题定位精准;缺点是所有数据都会检查,会增加防火墙的负载。
五、通信的五大要素:源ip和目的ip
源端口和目的端口
协议(tcp/upd)
通信的四大要素:源ip和目的ip
源端口和目的端口
六、内核态和用户态:
内核态:设计到软件的底层代码或者是系统的基层逻辑,以及一些硬件的编码,开发人员更关注内核态;数据如果是内核态处理,速度相对较快。
用户态:应用层软件层面,认为控制的一系列操作,使用功能,运维人员只考虑用户态;数据通过用户态处理,速度是比较慢的。
七、iptables的配置和策略:四表五链(表里面有链,链里面有规则)
四表:
Raw表:控制数据的状态,跟踪数据包的状态。优先级最高
Mangle表:修改数据包的头部信息。
NAT表:网络地址转换,可以改变数据包的源地址和目的地址
filter表:也是iptables的默认表,不做声明,默认就是filter表,作用是过滤数据包,控制数据包的进出,以及接受和拒绝数据包。优先级最低。
五链:
PREROUTING链:处理数据包进入本机之前的规则(NAT表)
INPUT链:处理数据包进入本机的规则(filter表,是否允许数据包进入,拒绝的话数据包将直接丢弃)
output链:处理本机发出的数据包规则,或者是数据包离开的本机规则(filter表,一般不做设置,进来肯定会让其出去)
forward链:处理数据包转发到其它主机的规则,或者是允许本机进行数据包转发。
postrouting链:处理数据包离开本机之后的规则(NAT表)
优先级:
第一种跨网段数据包转发的情况
第二种情况:请求和响应的过程
八、iptables:
1.管理选项:在表的链中插入,增加,删除,查看规则。
-t : 指定表名+管理选项
-A :在链中添加一条规则,在链尾添加
-I:指定位置插入一条规则
-P:指定默认规则,链的规则一般都是设置成拒绝
-D:删除规则
-R:修改规则(慎用)
-vnL:v显示详细信息,n以数字形式展示内容,L查看
--line-numbers:显示规则的编号,一般和查看一起使用
-F:清空链中的所有规则(慎用)
-X:清除自定义链中的规则
2.匹配条件:数据包的ip地址,端口,协议。
匹配原则:每个链中规则都是从上到下的顺序匹配,匹配到之后不再向下匹配
如果链中没有规则,则执行链的默认策略进行处理
-p:指定协议类型
-s:指定匹配的源ip地址
-d:指定匹配的目的ip地址
-i:指定数据包进入本机的网络设备(比如ens33)
-o:指定数据包离开本机的网络设备
--sport:指定原端口
--dport:指定目的端口
3.控制类型:允许,拒绝,丢弃。
-j :后面跟上下面的控制类型
ACCEPT:允许数据包通过。
DROP:直接丢弃数据包,没有任何回应信息。
REJECT:拒绝数据包通过,数据包也会被丢弃,但是会有一个响应的信息。
SNAT:修改数据包的源地址。
DNAT:修改数据包的目的址。
4.注意事项:不指定表名,默认就是filter表
不指定链名,默认就是所有链(禁止行为)
除非设置了链的默认策略,否则必须执行匹配条件(一般都是指定匹配条件)
选项、链名和控制类型都是大写,其余的都是小写。
九、iptables的命令格式:
iptables [ -t 表名] 管理选项 链名 (大写)匹配条件 [ -j 控制类型]
十、隐藏 扩展模块
-m:扩展模块,明确指定类型,多端口,Mac地址,IP范围。
如何指定多端口:
-m multiport --sport /--dport
iptables -A INPUT -p tcp -m multiport --dport 80,22,21,20,53 -j REJECT
指定IP地址的范围:
-m iprange --src-range 源IP范围
-m iprange --dst-range 目的IP范围
在20-50范围内的主机不允许ping主机
iptables -A INPUT -p icmp -m iprange --src-range 20.0.0.20-20.0.0.50 -j REJECT
十一、实验:
1.首先要关闭firewalld的防火墙:systemctl stop firewalld
关闭安全机制:setenforce 0
安装iptables防火墙:yum -y install iptables iptables-services
重启iptables防火墙:systemctl restart iptables
安装service:systemctl enable iptables.service
2.查看规则:iptables -L
iptables -vnL:以数字化的形式查看原则
查看iptables的行号 iptables -vnL --line-numbers
清空规则(不指定的话系统默认只清空的是filter表):iptables -F
添加一条拒绝所有主机来ping本机的规则
插入一条允许所有主机都可以ping通本机的规则(当你直接添加一条允许规则是不会生效的,只能是插入,而且是要插入到第一条)
指定IP地址(拒绝IP20ping主机,允许IP30ping主机)
指定多个IP地址(一次拒绝多个IP地址ping主机):多个IP要用逗号隔开,控制类型既可以是REJECT也可以是DROP。
DROP:直接丢弃数据包,没有任何回应信息。
REJECT:拒绝数据包通过,数据包也会被丢弃,但是会有一个响应的信息。
拒绝指定端口
--sport:指定原端口
--dport:指定目的端口
即拒绝IP也拒绝端口
拒绝主机访问本机的nginx
3.删除规则:根据序号删除即可
- 修改策略(一般不用)
5.修改链名的默认策略(工作中不用):将默认的INPUT链的ACCEPT修改为DROP
6.如何指定网络设备
禁止IP192.168.127.20主机通过ens33的网卡来访问本机的80端口服务
7.备份和还原:iptables 的配置文件保存在 /etc/sysconfig/iptables,每次重启服务都会重新读取配置文件里的规则,也可以通过iptables-save把当前防火墙配置保存在文件中,每次需要读取这个配置时通过iptables-restore命令获取配置,这个获取配置也是临时生效。可以配合脚本在系统启动时自动加载配置。
8.自定义链:iptables -N 自定义链名:添加自定义链
iptables -E 原自定义链名 现在的自定义链:更改源自定义链名
iptables -X 自定义链 :删除自定义链名
十二、地址转换
sant和dnat
snat:源地址转换(内网的多个主机可以只有一个有效的公网ip地址访问外部网络)
dnat:目的地址转换(外部用户,可以通过一个公网地址访问服务内部的私网服务,私网的ip和公网ip做了一个映射)
实验:
1.分别关闭三台主机firewalld防火墙及安全机制,并向10及30主机进行安装nginx
2.给20主机添加一个网卡
3.修改20主机的网卡的IP地址:vim ifcfg-ens33
4.配置30主机
5.配置10主机
6.配置20主机的linux内核参数配置文件,内核优化都在这个配置文件中设置:vim /etc/sysctl.conf
十三、在Linux当中如何抓包
tcpdump就是linux自带的抓包工具(最小化安装是不带的,需要额外安装)
tcpdump命令:
十四、centos7防火墙:firewalld
firewalld:centos7自带的。和iptables一样,也是包过滤防火墙
firewalld过滤,通过区域来进行配置
iptables是一个静态防火墙,只有满足条件他才会触发
firewalld是动态防火墙
iptables靠规则
firewalld靠区域
firewalld的区域:
1.trusted:信任区,所有流量都可以传入
2.public:公共区域,允许ssh或者dhcpv6-client的流量可以传入,其他的全部拒绝,也是firewalld的默认区域。
3.dhcpv6-client:获取ipv6地址的客户端工具
4.external:外部区域,允许ssh或者dhcpv6-client的流量可以传入,其他的全部拒绝,默认通过此区域转发的ipv4流量地址,可以进行伪装。
5.home:家庭区域,允许ssh或者dhcpv6-client的流量可以传入,其他的全部拒绝
6.internal:内部区域,默认值与home区域的作用相同
7.work:工作区域。允许ssh或者dhcpv6-client的流量可以传入,其他的全部拒绝
8.DMZ:隔离区/非军事区,允许ssh和其他的预定义好的配置,其他的全部拒绝
9.block:限制区,所有流量都会被拒绝
10.drop:丢弃区,所有流量都会丢弃,没有任何响应
firewalld命令