目录
一.iptable防火墙
1.linux防火墙基础
(1.)iPtable的表链结构
防火墙的结构
表:表是链的容器,一个表包含多个链,不同的表功能不同
链:链是规则的容器,链有多条规则
规则:真正执行的命令
5个链:INPUT,OUTPUT,FORWARD,POSTROUTING,PREROUTING
5表:
Raw:对数据包进行跟踪,了解数据包的状态,存放链接跟踪记录的表,默认受内存大小影 响,容易满
Mangle:打标签的表,给不同数据包打不同的标签,知道数据包去向
Nat:对经过防火墙的数据包进行 源地址和目的地址 转换
Filter:过滤作用,决定什么包可以通过,什么包不能通过
安全表:类unix用
//raw
//mangle
//nat
//filter
(2)数据包匹配流程
先表的优先级再链的优先级
进来的数据包:nat判断是给本机的还是转发,本机的就是iput拿去,转发的就forward
出去的数据包:从out,然后交给postrouting发出去
指定表,指定链,数据包的描述,规则方式
2.编写防火墙规则
(1)基本语法,控制类型
指定表,指定链,数据包的描述,规则方式
添加规则以后
查看网关的时候 ,更喜欢IP的方式看
(2)添加查看删除规则
不指定清空的表和链,就会情况默认表的所有链,其中filter是默认表
(2)规则的匹配条件
INPUT 和 OUTPUT 链的 --sport 和 --dport 是完全相反的
建议使用 FORWARD 链 进行测试,测试进入进出用 INPUT 链
查看mac地址
本地mac地址
–State:数据包分为:
NEW: 两个IP第一次握手时候,第一个包
ESTABLISHED: 和之前的连接有关联的包
RELATED: 包所包含的信息正在试图建立新的连接,并且与这个包有关系,类似FTP,先 建立控制通道,再建立数据通道,此时数据通道建立的时候,就与上一个包有 关系
INVALID: 无关系的包
只要NEW包DROP,所有人都无法连接此IP
NEW包分为:进入的NEW包和出去的NEW包
由于防火墙指令reboot之后就还原了,要么写入配置文件,要么安装服务,才能保留相关防火墙指令
规则集文件
链规则[计数器计数]
规则的内容
也可以从指定的位置加载防火墙规则
(4)SNAT策略及应用
(5)DNAT策略及应用
iptable实现SNAT和DNAT(实验)
SNAT是“Source Network Address Translation”的缩写,指的是一种将源IP地址转换为另一个IP地址的技术。在网络通信中,当内部网络的主机向外部网络发送数据包时,数据包的源IP地址会被修改为一个公共IP地址,这样外部网络就无法直接访问内部网络的真实IP地址。
DNAT是“Destination Network Address Translation”的缩写,指的是一种将目标IP地址转换为另一个IP地址的技术。在网络通信中,当外部网络的主机向内部网络发送数据包时,数据包的目标IP地址会被修改为内部网络的某个主机的IP地址,从而实现数据包的路由。如果你访问A,可是因为网关做了DNAT,把所有访问A的数据包的目的IP全部修改为B,那么,你实际上访问的是B 因为
我认为SNAT,DNAT的主要作用是隐藏内部网络的真实IP地址,从而增强网络的安全性。同时也使将内部网络的请求路由到外部网络【snat】(外部网络的请求路由到内部网络【dnnt】),从而实现网络服务的访问。
简而言之,SNAT就是出去的时候改变原地址,DNAT就是进来的时候改变目的地址。因此DNAT是在PREROUTING链上来进行的,而SNAT是在数据包发送出去的时候才进行,所以是在POSTROUTING链上进行的。 通过SNAT和DNAT可以使内网和外网进行相互通讯。
SNAT
首先我们需要三台虚拟机
分为客户机,防火墙,网络端
我们分别设置客户机的ip为192.168.2.3
防火墙的ip1为192.168.2.1
ip2为192.168.3.1
网络端的ip为192.168.3.5客户机
防火墙
网络端
网络端需要下载apache服务
yum install httpd -y
我们启动服务看看是否能访问网页,如果页面如下图所示,说明服务启动成功
我们再新建一个终端,打开日志,以便于我们之后的实时查看
在客户机添加网关,和防火墙的一张网卡放在同一网段,使客户机可以ping通防火墙
在防火墙这里,首先开启转发功能
进行iptables的SNAT转发
在客户机访问网络端ip,就可以发现成功访问了
客户机可以访问 192.168.3.5 外网地址
接着我们在网络端的日志上可以看到网络端收到的ip地址是防火墙的第二块网卡的ip地址
DNAT
网络端
添加网关让自己能够访问3。1
打开日志可以实时查看
首先清理防火墙规则避免上方的规则造成影响
查看规则,发下是空,说明清理完毕
添加DANT规则
查看规则,显示已经添加
在客户机访问防火墙,发现显示的页面是网络端3.5的
打开网络端的日志可以发现,还是2.3的客服机所访问的
客户机访问2.1,相当于访问了3.5,这样就保护了3.5的ip不被暴露
二.firewall防火墙
1.linux防火墙基础
(1)firewalld概述
(1)firewall概述防火墙配置方法
2.firewalld防火墙配置应用
firewalld的地址伪装和端口转发(类似于SNAT和DNAT)
地址伪装(SNAT)
客户机
添加网关
看看是否添加成功
防火墙
区域选择公共区域
添加网卡
如果ens33也没有记得添加
结果ens33和ens36都要
添加富语言规则
查看转发是否开启
添加转发规则,开启端口转发
在客户机访问3.5网络端
打开日志文件查看访问ip地址
端口转发(DNAT)
首先在客户机删除上个时间留下来的网关
在防火墙所在的机器首先删除上个实验所留下的记录
写入新的富语命令
防火墙的转发一定要开启,因为上面的实验开启了,这里就不开了
网络机加入目标指向防火墙的网关
日志显示访问的是2.3的客户机
客户机访问2.1,相当于访问了3.5,这样就保护了3.5的ip不被暴露