linux的安全技术和防火墙

一、安全技术

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.删除规则:根据序号删除即可

  1. 修改策略(一般不用)

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命令

相关推荐
用户962377954481 天前
DVWA 靶场实验报告 (High Level)
安全
数据智能老司机1 天前
用于进攻性网络安全的智能体 AI——在 n8n 中构建你的第一个 AI 工作流
人工智能·安全·agent
数据智能老司机1 天前
用于进攻性网络安全的智能体 AI——智能体 AI 入门
人工智能·安全·agent
用户962377954481 天前
DVWA 靶场实验报告 (Medium Level)
安全
red1giant_star1 天前
S2-067 漏洞复现:Struts2 S2-067 文件上传路径穿越漏洞
安全
用户962377954481 天前
DVWA Weak Session IDs High 的 Cookie dvwaSession 为什么刷新不出来?
安全
cipher3 天前
ERC-4626 通胀攻击:DeFi 金库的"捐款陷阱"
前端·后端·安全
一次旅行6 天前
网络安全总结
安全·web安全
DianSan_ERP6 天前
电商API接口全链路监控:构建坚不可摧的线上运维防线
大数据·运维·网络·人工智能·git·servlet
red1giant_star6 天前
手把手教你用Vulhub复现ecshop collection_list-sqli漏洞(附完整POC)
安全