8.防火墙-SNAT和DNAT

文章目录

  • 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)分析

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

学系统集成项目管理工程师(中项)系列24a_信息系统集成专业技术知识(上)

1. 信息系统的生命周期 1.1. 【19下选10】 1.2. 立项 1.2.1. 形成《需求规格说明书》并确定立项 1.2.1.1. 【21上选11】 1.3. 开发 1.3.1. 【22下选10】 1.3.2. 以立项阶段所做的需求分析为基础,进行总体规划。之后,通过系统分析、系统设计、系统…

若依框架在未登录的情况下访问swagger3.0页面,出现弹窗的解决方法

若依框架在未登录的情况下访问swagger3.0页面,出现弹窗的解决方法 效果展示: 解决方法:在ShiorConfig.java类中找到shiroFilterFactoryBean方法,然后在filterChainDefinitionMap里面put你要过滤的地址,如下&#xff…

【机器学习】集成学习(理论)

集成学习(理论) 目录 一、何为集成学习二、集成学习最简单的模型:投票策略三、弱学习器的组合算法:自助聚合(Bagging模型)1、数据划分方法:自助法(Bootstrap Method)2、B…

浅谈人工智能

人工智能的概念和现状 人工智能(Artificial Intelligence,简称AI)是指通过计算机程序和算法来模拟人类智能,包括学习、推理、感知、语言理解、图像识别等方面。自20世纪50年代以来,人工智能领域的研究取得了巨大的进展…

C语言递归算法实现经典例题

一.递归 1.什么是递归 递归是一种编程技术,它通过在函数内部反复调用自身来解决问题。当一个程序调用自己时,这就称为递归调用。递归可以有助于简化某些算法的实现和理解。在递归过程中,每个调用都会将一些数据保存在栈上,直到递…

《Java并发编程实战》课程笔记(一)

并发领域的全景图 并发编程的三个核心问题 并发编程可以总结为三个核心问题:分工、同步、互斥。 分工指的是如何高效地拆解任务并分配给线程; Java SDK 并发包里的 Executor、Fork/Join、Future 本质上都是⼀种分工方法。除此之外,并发编程…

rsync远程同步

rsync介绍 rsync简介 rsync(Remote Sync,远程同步) 是一个开源的快速备份工具,可以在不同主机之间镜像同步整个目录树,支持增量备份,并保持链接和权限,且采用优化的同步算法,传输前…

阿里拆了中台,中台还有未来吗?

hi,我是熵减,见字如面。 近日,阿里在继年初3月份的16N的战略变革的基础上,对持续建设和运营8年的中台的调整终于落地了。 阿里对中台的这一举措,引发了外界对于中台战略是否还有意义的大量质疑和讨论。 甚至有人将中台…

ov2640子设备视频操作详细分析

ov2640子设备视频操作详细分析 文章目录 ov2640子设备视频操作详细分析ov2640_subdev_video_ops视频操作ov2640_s_stream开始流ov2640_g_fmt 获取格式ov2640_s_fmt设置格式ov2640_try_fmt尝试格式ov2640_cropcap裁剪能力ov2640_g_crop获取裁剪ov2640_enum_fmt枚举格式ov2640_g_…

六级备考26天|CET-6|仔细阅读|考研英语2023年英语(一)|8:20~10:00

text1 4/5 text2 3/5 text3 2/5 text4 3/5 12/20 目录 text 1 1. 重点词汇 2. 原文 3. 题目 text 1 1. 重点词汇 sympathise / ˈsɪmpəθaɪz / vi.同情;吊唁;共鸣 (等于 sympathize) ener…

黑客入门教程从零基础入门到精通,看完这一篇就够了

学前感言: 1.这是一条坚持的道路,三分钟的热情可以放弃往下看了. 2.多练多想,不要离开了教程什么都不会了.最好看完教程自己独立完成技术方面的开发. 3.有时多google,baidu,我们往往都遇不到好心的大神,谁会无聊天天给你做解答. 4.遇到实在搞不懂的,可以先放放,以后再来解决…

Scrum的执行过程及产品Backlog梳理的目的、时间、内容

Scrum的迭代运行过程 产品Backlog梳理 目的: •对下个Sprint的需求进行需求细节梳理和精化,识别技术风险和依赖,完成估算和优先级排序。 时间: •本Sprint开始后第6天,2小时以内 。 内容: •理解需求…

手把手教你用Python调用彩云机器翻译API

一、引言 彩云这个小而美的机器翻译一直很低调,它让人眼前一亮的是之前我们分享的网页翻译插件,可以把外文网站翻译成英中对照的样式,便于我们学习。之前我们也写过文章介绍过: PythonFan:如何用Google翻译英文网页成…

PyTorch RNN的原理及其手写复现。

PyTorch RNN的原理及其手写复现。 0、前言代码实现记忆单元(考虑过去的信息)分类包括:1.RNN 2.GRU 3.LSTM模型类别:1.单向循环(左到右) 2.双向循环(考虑未来信息) 3.多层单向或双向循环优缺点应用场景具体公式 0、前言 先给出代码…

单位、家庭建筑物电气、电子设备防雷举措

前 言 在现实的学习、工作、生活中,有时会面对自然灾害、重特大事故、环境公害及人为破坏等突发事件,为了控制事故的发展,就不得不需要事先制定应急预案。那要怎么制定科学的应急预案呢﹖下面是小编为大家整理的单位、住宅建筑物、电子电气防…

如何搭建一个高效、可靠的积分商城系统?

互联网购物的普及,积分商城系统已经成为商家和消费者之间互动的一种常见方式。它不仅可以帮助商家增加品牌影响力,还可以提高顾客体验,从而增加销售额。下面就如何搭建一个高效、可靠的积分商城系统作一些简单介绍。 第一步:确定需…

DHTMLX Suite JS PRO 8.1.1 Crack

适用于现代 Web 应用程序的强大 JavaScript 小部件库 - DHTMLX 套件 用于创建现代用户界面的轻量级、快速且通用的 JavaScript/HTML5 UI 小部件库。 DHTMLX Suite 有助于推进 Web 开发和构建具有丰富功能的数据密集型应用程序。 DHTMLX Suite 是一个 UI 小部件库,用…

Spring Boot中使用Spring Batch处理批量任务

Spring Boot中使用Spring Batch处理批量任务 Spring Batch是Spring框架的一个模块,它提供了一组API和工具,用于处理批量任务。在本文中,我们将会介绍如何在Spring Boot中使用Spring Batch来处理批量任务。我们将会使用一个简单的示例来说明如…

Install Prometheus Monitoring On Kubernetes Cluster

目录 Node & Software & Docker Images Lists ​Prometheus introduction Download Kubernetes Prometheus Manifest Files Install Prometheus Monitoring Kubernetes Create a Namespace Create a Cluster Role And Binding It Create a Config Map Create…

二、CNNs网络架构-卷积分离网络架构

《A review of convolutional neural network architectures and their optimizations》论文指出AlexNet的优异性能证明了可以通过增加网络深度提高网络性能。随着网络层数的不断增加,不断增加的计算负担和不显著的性能提升使得更先进的网络架构成为另一个主要的研究…