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

相关推荐
newxtc1 小时前
【支付行业-支付系统架构及总结】
安全·支付宝·第三方支付·风控系统·财付通
newxtc1 小时前
【旷视科技-注册/登录安全分析报告】
人工智能·科技·安全·ddddocr
成都古河云1 小时前
智慧场馆:安全、节能与智能化管理的未来
大数据·运维·人工智能·安全·智慧城市
Gworg1 小时前
您与此网站之间建立的连接不安全解决方法
安全
长弓三石2 小时前
鸿蒙网络编程系列44-仓颉版HttpRequest上传文件示例
前端·网络·华为·harmonyos·鸿蒙
xianwu5432 小时前
反向代理模块
linux·开发语言·网络·git
follycat2 小时前
[极客大挑战 2019]HTTP 1
网络·网络协议·http·网络安全
ac-er88882 小时前
MySQL如何实现PHP输入安全
mysql·安全·php
xiaoxiongip6663 小时前
HTTP 和 HTTPS
网络·爬虫·网络协议·tcp/ip·http·https·ip
JaneJiazhao3 小时前
HTTPSOK:智能SSL证书管理的新选择
网络·网络协议·ssl