firewalld 防火墙 nat 网络地址转换

Posted myxxjie

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了firewalld 防火墙 nat 网络地址转换相关的知识,希望对你有一定的参考价值。

目的:实现以下效果

技术图片

 

一、 准备环境

@1 三台虚拟机

@2  client 端 ip  192.168.1.2      server端   两块网卡 , ip 分别是 192.168.1.1   和  172.16.100.1  web端 ip 为 172.16.100.3

注:虚拟机添加网卡后没显示配置文件,需要自己手动编辑一个配置文件

二,部署环境

1> 这时会发现,用client 端去ping web 端时ping 不通的,如下

技术图片

 

这是因为  server端相当于client端与web 端的桥梁, server端的路由转发功能没有开启

注: 路由转发 是一个内核参数如下

 技术图片

 

0 表示未开启, 那么如何将它开启呢,下面是一种临时开启的方法

 技术图片

 

1 表示开启,这样路由转发就临时开启了,我们来测试一下能否ping通

 技术图片

 

 client  端 通过  server 端的 路由转发成功的  ping 通了 web 端

#上述方法是临时 开启路由转换功能,那么想要永久开启呢?需要写入  /etc/sysctl.conf  这个配置文件里面如下

 技术图片

#1写入

 技术图片

#2 生效

 技术图片

#查看

 技术图片

!成功

注:这是模拟实验,真实环境下是不允许client 端直接去访问 web 端主机的

三、试验 

1>NAT 功能  可以在PREROUTING(DNAT),OUTPUT,INPUT,POSTROUTING(SNAT) 这四个链上来实现,因server端开启了路由转发功能,所以实际上是只经过  PREROUTING(DNAT),POSTROUTING(SNAT) FORWARD  这三个链

 技术图片

@1  开始web 端的 httpd 服务

 技术图片

@2 测试下 client 能否访问 web 端的  网站

 技术图片

@3 用web 端 查看下http的访问日志

 技术图片

@4  有记录

 技术图片

注意此时是 client i端 ip 访问的 。

现在开始进行网络地址转换

2>.(server端)需要在 NAT 表上添加规则 ,注:网路地址转换,DNAT 访问的时候需要在  PREROUTING 链上 进行网络地址转换 ;SNAT 出去的时候需要在POSTROUTING 上 进行网络地址转换

命令:iptables -t NAT -A POSTROUTING -s 192.168.1.2 -d 172.16.100.222 -j SNAT --to-source 172.168.100.1

 技术图片

3>  查看下  NAT 表

 技术图片

4>client 端再访问一下 web端的网站 ; 命令 curl  http:// 172.16.100.222

 技术图片

 

5> 在web端 查看  httpd 的访问日志

 技术图片

 

client端 访问 web 端时 ip 被转换成了 172.16.100.1

注: 在真实环境下,一般都需要进行网络地址转换,毕竟  client 端不能直接 访问 web端的网站

$$2  DNAT

(实际是上访问server端,server端没有httpd服务,通过网络地址转换去找  client 端)

1>开启client 端的 httpd 服务

 技术图片

2>命令 :

 技术图片

3>查看

 技术图片

4>抓取

 技术图片

 

访问的server端 抓取的却是client端 (目标地址转换 DNT)

 

以上是关于firewalld 防火墙 nat 网络地址转换的主要内容,如果未能解决你的问题,请参考以下文章

firewalld防火墙详解

firewalld防火墙详解

Centos 7的firewalld防火墙地址伪装和端口转发原理

保证Linux系统安全之firewalld防火墙配置地址伪装和端口转发详解

firewalld防火墙-萌贝树母婴不存在骗子

Linux中netfilter火墙访问控制策略优化详解(下)—firewalld