安全技术和防火墙(iptables)

发布于:2024-06-27 ⋅ 阅读:(144) ⋅ 点赞:(0)

安全技术

入侵检测系统:特点是不阻断网络访问,主要是提供报警和事后监督,不主动介入,类似于监控。

入侵防御系统:透明模式工作,对数据包,网络监控,服务攻击,木马,蠕虫,系统漏洞等等进行准确的分析和判断,在判定攻击行为后会立即阻断。它是主动防御(所有的数据在进入本机之前必须要通过的设备或者是软件)

防火墙

作用就是隔离,工作在网络或者主机的边缘。对网络或者主机的数据包基于一定的规则进行检查,匹配到的规则放行,匹配不到的规则拒绝,数据包将会被丢弃。只开放允许访问的策略(白名单机制,拒绝所有,允许个别)

防水墙:是一种防止内部信息泄露的产品,对外有防火墙的功能,对内是透明模式工作。类似于监控

应用层防火墙

在应用层对数据进行检查

优点:更安全,精准定位问题

缺点:所有数据都会检查,增加防火墙的负荷

包过滤防火墙(对数据包进行控制)

特点:网络层对数据包进行选择,选择的依据是防火墙设置的策略

策略:包含ip地址、端口、协议

优点:处理速度快,易于维护

缺点:无法检查应用层数据,就是病毒无法进行处理

iptables这个是Linux自带的防火墙,一般用于内部配置,对外一般不使用(对外使用专业的)

firewalld 这个是Linux自带的防火墙,它是centos7版本以后默认的防火墙

iptables

需要安装iptables 和 iptables-services

iptables:工作在网络层,针对数据包实施过滤和限制(包过滤防火墙)

面试题

通信的要素:五大要素和四大要素

五大要素:源ip、目的ip、源端口、目的端口、协议(TCP、UPD)

四大要素:源ip、目的ip、源端口、目的端口

内核态和用户态:

内核态:涉及到软件的底层代码或者系统的基层逻辑,以及一些硬件的编码,如果数据是内核态处理,速度相对较快

iptables的过滤规则就是由内核来进行控制的

用户态

应用层软件层面,人为控制的一系列操作,使用功能

数据只通过用户态处理,速度是比较慢的

面试题

iptables的配置和策略:四表五链

iptables四表:1.raw表:用于控制数据包的状态,跟踪数据包的状态

                       2.mangle表:修改数据包的头部信息

                       3.NAT表:网络地址转换,可以改变数据包的源地址和目的地址

                       4.filter表:也是iptables的默认表,不做声明,默认就是filter表,它的作用就是过滤                            数据包,控制数据包的进出,以及接受和拒绝数据包

iptables五链:1.PREROUTING链:处理数据包进入本机之前的规则(NAT表)

                        2.INPUT链:处理数据包进入本机的规则(filter表,即是否允许数据包进入)

                        3.OUTPUT链:处理本机发出的数据包的规则,或者是数据包离开的本机的规则                                   (filter表,一般不做设置)

                        4.FORWADR链:处理数据包转发到其他主机的规则,或者是否允许本机进行数据                             包转发

                        5.POSTROUTING链:处理数据包离开本机之后的规则(NAT表)

表里有链,链里有规则

管理选项:在表的链中插入,增加,删除,查看规则

匹配条件:数据包的ip地址、端口、协议

控制类型:允许,拒绝,丢弃

注意事项:1.不指定表名,默认就是filter表

                  2.不指定链名,默认就是所有链(必须要指定链名)

                  3.除非设置了链的默认策略,否则必须执行匹配条件(一般都是指定匹配条件)

                  4.选项,链名和控制类型都是大写,其余的都是小写

控制类型

ACCEPT:允许数据包通过

DROP:直接丢弃数据包,没有任何回应信息

REJECT:拒绝数据包通过,数据包也会被丢弃,但是会有一个响应的信息

SNAT:修改数据包的源地址  

DNAT:修改数据包的目的地址

管理选项(都是大写)

-A  在链中添加一条规则,是在链尾添加

-I( i 的大写) 指定位置插入一条规则

-P  指定默认规则,链的规则一般都是设置成拒绝(默认是允许)

-D 删除规则

-R 修改规则(一般不用)

-vnL  查看规则     v是显示详细信息  n是以数字形式展示内容   L是查看

--line-numbers:显示规则的编号,和查看一起使用  -vnL --line-numbers

-F  清空链中所有规则

-X  清除自定义链中的规则

匹配条件

-p  指定协议类型

-s  指定匹配的源ip地址

-d  指定匹配的目的ip地址

-i 指定数据包进入本机的网络设备(ens33)

-o  指定数据包离开本机的网络设备

--sport  指定源端口

--dport  指定目的端口

iptables的命令格式

iptables -t  表名  管理选项  链名(大写)   匹配条件   -j   控制类型

所有的控制类型前面都是-j

iptables 基于的是本机策略 ,谁来访问本机 

匹配原则:每个链中规则都是从上到下的顺序匹配,匹配到之后就不再向下匹配

如果链中没有规则,则执行链的默认策略进行处理

查看规则 

iptables -vnL --line-numbers

添加规则 
指定ip

iptables -A INPUT -p icmp -j REJECT 拒绝其他所有主机ping本机

iptables  -I INPUT   1  -p  icmp -j  ACCEPT  插入规则到第一条 

iptables -A INPUT -s 192.168.233.20 -p icmp -j REJECT 指定20的主机拒绝ping本机

iptables -A INPUT -s  192.168.233.20,192.168.233.30 -p icmp -j DROP 指定多个主机拒绝ping本机

指定端口

iptables -A INPUT -p tcp --dport 22  -j REJECT  拒绝端口22的主机访问本机

iptables -AINPUT -s 192.168.233.20 -p tcp --dport 22 -j REJECT  拒绝ip20主机访问端口22的本机

删除规则

iptables -D INPUT 1

修改规则

iptables -R INPUT 1 -s 192.168.233.30 -p tcp --dport 80 -j REJECT 拒绝30的主机访问端口80的本机

修改链的策略

网络设备

iptables -A INPUT -i ens33 -s 192.168.233.20 -p tcp --dport 80 -j ACCEPT 允许网卡是ens33的20主机访问端口是80的本机

iptables -A INPUT -s 192.168.233.0/24 -p tcp --dport 80 -j REJECT 拒绝整个网段访问本机

一次性对多个端口进行操作

iptables -A INPUT -p tcp --dport 22:80 -j REJECT

-m拓展模块

一次禁止多端口或ip范围或mac地址

iptables -A INPUT -p tcp -m multiport --dport 80,22,21,23,3306 -j REJECT 禁止多端口

iptables -A INPUT -p tcp -m iprange --src-range 192.168.233.20-192.168.233.30  --dport 80 -j REJECT 拒绝20-30的IP访问本机的80端口

--src-range  源地址池

--dst-range 目的地址池

-m multiport --sport 源端口池

-m multiport --dport  目的端口池

-m iprange --src-range  源地址池

-m iprange --dst-range 目的地址池

匹配mac地址

iptables -A INPUT -m mac --mac-source 00:0c:29:94:6d:dd0 -j DROP

备份和还原

文件地址在   /etc/sysconfig/iptables

自定义链  iptables -N 链名

修改链名 iptables -E 

删除自定义链 iptables -X

永久生效规则步骤

1.iptables-save > /opt/iptables.bak 保存文件

2.cat iptables.bak >/etc/sysconfig/iptables 覆盖文件

3.systemctl restart iptables.service 重启


网站公告

今日签到

点亮在社区的每一天
去签到