8.防火墙-SNAT和DNAT

news2024/11/18 8:44:04

文章目录

  • SNAT-内网客户访问外网服务
    • 原理
    • 操作实验
  • DNAT-外网客户访问内网服务
    • 原理
    • 操作实验
  • tcpdump

SNAT-内网客户访问外网服务

原理

在这里插入图片描述
由内网到外网:从内网发到外网的数据包的源IP由私网IP转换成公网IP

由外网到内网:从外网发到内网的数据包的目的IP由公网IP转换成私网IP

  • SNAT步骤:

    • 内网的网关对应的是网关服务器上的相对应的内网网卡IP
    • 打开网关服务器路由转发功能 /etc/sysctl.conf 内核配置文件
    • 转换内网源IP为网关服务器上的外网网卡IP,设置SNAT
##永久修改

vim/etc/sysctl.conf    ##修改内核配置文件

##添加配置
net.ipv4.ip_forward=1

##修改后,读取配置
sysctl -p
##SNAT转换指定固定公网IP
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o ens33 -j SNAT --to 218.29.30.31

##SNAT转换为公网地址池
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o ens33 -j SNAT --to 218.29.30.1-218.29.30.35

##SNAT转换为共享动态IP
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o ens33 -j MASQUERADE

操作实验

##内网客户端

systemctl stop firewalld             ##关闭防火墙
setenforce 0

###修改网卡为内网IP和内网网关IP
vim /etc/sysconfig/network-script/ifcfg-ens32

IPADDR=192.168.242.66     ##内网IP
NETMASK=255.255.255.0
GATEWAY=192.168.242.30    ##网关服务器上的内网网卡IP



systemctl restart network  ##重启网卡

在这里插入图片描述

##外网服务端

systemctl stop firewalld             ##关闭防火墙
setenforce 0


###修改网卡为外网IP和网关IP
vim /etc/sysconfig/network-script/ifcfg-ens32

IPADDR=12.0.0.200    ##外网IP
NETMASK=255.255.255.0
GATEWAY=12.0.0.30    ##网关服务器上的外网网卡IP

systemctl restart network  ##重启网卡

###安装网络服务
yum -y install httpd

cd /var/www/html                    ##创建首页显示
echo 'hello world' > test.html
systemctl start httpd                ##开启网络服务

在这里插入图片描述
在这里插入图片描述

##网关服务器


###添加网卡,并修改对应网卡的IP

vim /etc/sysconfig/network-script/ifcfg-ens32    ##修改内网网卡

IPADDR=192.168.242.30    ##内网IP
NETMASK=255.255.255.0


vim /etc/sysconfig/network-script/ifcfg-ens33    ##修改外网网卡

IPADDR=12.0.0.30         ##外网IP
NETMASK=255.255.255.0


systemctl restart network   ##重启网卡


##防火墙配置

iptables -F && iptables -t nat -F    ##清空防火墙配置
systemctl stop firewalld             ##关闭防火墙
setenforce 0


##打开服务器的路由转发功能
vim /etc/sysctl.conf     ##修改内核配置文件
net.ipv4.ip_forward=1
sysctl -p                ##加载配置



##添加数据转发
iptables -t filter -A FORWARD -s 192.168.242.0/24 -j ACCEPT

##SNAT转换指定固定公网IP
iptables -t nat -A POSTROUTING -s 192.168.242.0/24 -o ens33 -j SNAT --to 12.0.0.30

在这里插入图片描述

DNAT-外网客户访问内网服务

原理

在这里插入图片描述
由外网到内网:从外网发来的数据包的目标IP由公网IP转换成私网IP,网关服务器在根据私网IP转发到内网服务器

由内网到外网:内网服务器响应数据包的源IP从内网IP转换为外网IP

操作实验

##内网服务器

systemctl stop firewalld
setenforce 0

###修改网卡为内网IP和内网网关IP
vim /etc/sysconfig/network-script/ifcfg-ens32

IPADDR=192.168.242.66     ##内网IP
NETMASK=255.255.255.0
GATEWAY=192.168.242.30    ##网关服务器上的内网网卡IP



systemctl restart network  ##重启网卡



###安装网络服务
yum -y install httpd

cd /var/www/html                    ##创建首页显示
echo 'hello world' > test.html
systemctl start httpd                ##开启网络服务

##外网客户端

systemctl stop firewalld
setenforce 0

###修改网卡为外网IP和网关IP
vim /etc/sysconfig/network-script/ifcfg-ens32

IPADDR=12.0.0.200    ##外网IP
NETMASK=255.255.255.0
GATEWAY=12.0.0.30    ##网关服务器上的外网网卡IP

systemctl restart network  ##重启网卡
##网关服务器


##添加网卡

vim /etc/sysconfig/network-script/ifcfg-ens32    ##修改内网网卡

IPADDR=192.168.242.30    ##内网IP
NETMASK=255.255.255.0


cp ifg-en32 ifcfg-ens33
vim /etc/sysconfig/network-script/ifcfg-ens33    ##修改外网网卡

IPADDR=12.0.0.30         ##外网IP
NETMASK=255.255.255.0


systemctl restart network   ##重启网卡



##防火墙配置

iptables -F && iptables -t nat -F    ##清空防火墙配置
systemctl stop firewalld             ##关闭防火墙
setenforce 0


##打开服务器的路由转发功能
vim /etc/sysctl.conf     ##修改内核配置文件
net.ipv4.ip_forword=1
sysctl -p                ##加载配置





iptables -t nat -A PREROUTING -i ens33 -d 12.0.0.30 -p tcp --dport 8080 -j DNAT --to 192.168.242.66:80

iptables -t nat -A POSTROUTING -s 192.168.242.0/24 -o ens33 -j SNAT --to 12.0.0.30

iptables -t filter -A FORWORD -s 192.168.242.0/24 -j ACCEPT
iptables -t filter -A FORWORD -s 12.0.0.0/24 -j ACCEPT

tcpdump

tcpdump tcp -i ens33 -t -s 0 -c 100 and dst port ! 22 and src net 192.168.1.0/24 -w ./target.cap



(1)tcp: ip icmp arp rarp 和 tcp、udp、icmp这些选项等都要放到第一个参数的位置,用来过滤数据报的类型
(2)-i eth1 : 只抓经过接口eth1的包
(3)-t : 不显示时间戳
(4)-s 0 : 抓取数据包时默认抓取长度为68字节。加上-S 0 后可以抓到完整的数据包
(5)-c 100 : 只抓取100个数据包
(6)dst port ! 22 : 不抓取目标端口是22的数据包
(7)src net 192.168.1.0/24 : 数据包的源网络地址为192.168.1.0/24
(8)-w ./target.cap : 保存成cap文件,方便用ethereal(即wireshark)分析

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/554655.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

自动驾驶成为汽车产业未来趋势,连接器行业迎来进一步发展

连接器的应用范围越来越广泛,从汽车、工业、医疗、消费电子、通信、计算机到航空航天,几乎所有的领域都使用连接器。 以汽车行业为例,一辆燃油汽车通常需要几百到上千个连接器,而电动汽车则需要更多,因为需要连接电池…

iptables防火墙(二)

iptables防火墙(二) 一、SNAT策略1、SNAT策略简述2、配置实验 二、DNAT策略1、DNAT策略简述2、配置实验 三、Linux抓包工具tcpdump四、防火墙规则保存 一、SNAT策略 1、SNAT策略简述 SNAT策略就是将从内网传给外网的数据包的源IP由私网IP转换成公网IP&…

软考——邻接矩阵

数组(邻接矩阵)表示法 建立一个顶点表(记录各个顶点信息)和一个邻接矩阵(表示各个顶点之间关系)。 设图A=(V,E)有n个顶点,则图的邻接矩阵是一个二位数组A.arcs[n][n],定义为:

【现场问题】oracle,schema = metaData.getConnection().getSchema()报错

oracle获取Schema报错 问题描述折磨我的地方版本的问题 jar冲突 问题描述 折磨我的地方 版本的问题 ojdbc8,问题是我一直都是这个版本,我换了大小版本都不可以!!!! jar冲突 我怎么找得到这个jar的冲突呢…

06 Android开机启动之Bootanimation

Android开机启动之Bootanimation 前言 手机或其他Android智能终端开机都会先显示一个动画,然后才进入桌面,接下来看看这个bootanimation程序是怎么跑的 一、bootanimation框图 从上面的启动框图中可以看出: bootanimation也是init进程启动的,在init.rc中启动bootanim进程启…

Win10系统电脑开机黑屏一直转圈无法进入桌面怎么办?

Win10系统电脑开机黑屏一直转圈无法进入桌面怎么办?有用户电脑开机了之后无法进入到桌面中,开机了之后,电脑桌面只有显示一个黑屏和转圈的图标,一直都无法进入到桌面中。强制重启电脑之后依然是这样,那么这个情况怎么去…

USB摄像头描述符参数获取和来源分析

USB摄像头描述符参数获取和来源分析 文章目录 USB摄像头描述符参数获取和来源分析描述符USB设备描述符描述符 USB摄像头参数获取myuvc.c结果device descriptor设备描述符configuration descriptor配置描述符interface association接口关联inteface desciptor atsettingvideocon…

详解创建共享邮箱的步骤和方法

共享邮箱是一个类似于分发列表 (DL) 的组,它具有由组织内的一组用户共享的公共电子邮件地址。与 DL 不同,外部成员不能添加到共享邮箱,并且不支持流。发送到共享邮箱的电子邮件不会出现在个人用户的邮箱中,从而减少电子邮件重复。…

【设计模式】我终于读懂了观察者模式。。。

文章目录 🔆天气预报项目需求,具体要求如下🔆天气预报设计方案 - 普通方案🔆问题分析 🔆观察者模式🔆debug下去看一下🔆观察者模式的好处🔆观察者模式在Jdk 应用的源码分析 🔆天气预…

凭借这个笔记,拿下8家大厂offer....

如何拿到多家大厂的offer,没有过硬的实力,就需要不断的学习。 我是如何拿到,阿里,腾讯,百度等八家大厂的offer的,今天我就给大家来分享我的秘密武器,阿里大神整理的包括,测试基础&am…

【MySQL联合查询】轻松实现数据关联

1、联合查询 联合查询又称为多表查询,它的基本执行过程就是笛卡尔积 1.1 认识笛卡尔积 那么什么是笛卡尔积呢? 答:笛卡尔积就是将两张表放在一起进行计算,把第一张表的每一行分别取出来和第二张表的每一行进行连接,得到…

springboot导出excel 多个sheet导出

1.pom.xml <!--文件导出--><dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>3.9</version></dependency><dependency><groupId>org.apache.poi</groupId><ar…

使用Win10自带的PowerShell命令校验文件和镜像文件的Hash值(MD5、SHA1/256等)正确性

通常为了保证我们从网上下载的文件的完整性和可靠性&#xff0c;我们把文件下载下来以后都会校验一下MD5值或SHA1值&#xff08;例如验证下载的Win10 ISO镜像是否为原始文件&#xff09;&#xff0c;这一般都需要借助专门的MD5检验工具来完成。但其实使用Windows系统自带的Wind…

HTML+CSS(练习)实现棋盘电话拨号盘红绿灯

目录 棋盘HTMLCSS版本HTMLCSSJavaScript版本 电话拨号盘红绿灯 棋盘 HTMLCSS版本 <!DOCTYPE html> <html><head><meta charset"utf-8"><title>作业2591实现棋盘效果</title><style>.container {width: 600px;height: 60…

8.FireWalld防火墙

文章目录 FireWalld防火墙概述firewalld和iptables区别firewalld区域firewalld配置查增删改 FireWalld防火墙 概述 firewalld防火墙是Centos7系统默认的防火墙管理工具&#xff0c;取代了之前的iptables防火墙&#xff0c;也 是工作在网络层&#xff0c;属于包过滤防火墙。 …

vue3 新特性详解(2)

文章目录 自定义Hook函数roRef 其它 Composition APIshallowReactive 与 shallowRefreadonly 与 shallowReadonlytoRaw 与 markRawcustomRefprovide 与 inject响应式数据的判断 Composition Api 的优势。 新的组件.FragmentTeleportSuspensevue3 一些api的转移 自定义Hook函数 …

Flink Hudi DataStream API代码示例

前言 总结Flink通过DataStream API读写Hudi Demo示例&#xff0c;主要是自己备忘用。 最开始学习Flink时都是使用Flink SQL,所以对于Flink SQL读写Hudi比较熟悉。但是对于写代码实现并不熟悉&#xff0c;而有些需求是基于Flink代码实现的&#xff0c;所以需要学习总结一下。仅…

ZYNQ无SD卡配置Linux系统到QSPI Flash和eMMC

硬件&#xff1a;黑金AX7450开发板、zynq7100、QSPI Flash、eMMC Flash 软件&#xff1a;Vivado 2017.4、Petalinux 我用了一台Windows主机&#xff0c;用于设计Vivado和烧写QSPI Flash&#xff0c;一台Ubuntu主机&#xff0c;用于运行Petalinux配置Linux系统。 硬件设计 新建…

10 工具Bootchart的使用(windows)

Bootchart的使用方法&#xff08;windows&#xff09; 下载bootchart.jar并拷贝到windows, 然后保证windows也安装了open jdk 1.8; 下载地址&#xff1a;https://download.csdn.net/download/Johnny2004/87807973 打开设备开机启动bootchart的开关: adb shell touch /data/boo…

生成VLC 及其模块的全面帮助

使用vlc.exe -H命令生成VLC帮助文件vlc-help.txt -h, --help, --no-help 打印 VLC 帮助 (可以和 --advanced 和 --help-verbose 一起使用) (默认禁用) -H, --full-help, --no-full-help VLC 及…