Linux防火墙之iptables(二)

news2024/11/19 9:31:03

一.SNAT策略概述

1.SNAT 策略的典型应用环境

局域网主机共享单个公网IP地址接入Internet(私有IP不能在Internet中正常路由)

局域共享上网

2.SNAT 策略的原理

源地址转换,Source Network Address Translation

修改数据包的源地址

未作SNAT转换时的情况

进行SNAT转换后的情况

3.SNAT转换前提条件

局域网各主机已正确设置IP地址、子网掩码

局域网各主机正确设置默认网关地址
Linux网关支持IP路由转发

 修改内核参数为1

临时打开的方法:
echo 1 > /proc/sys/net/ipv4/ip_forward
或
sysctl -w net.ipv4.ip_forward=1
       #只能临时生效,重启服务器之后会返回为0

永久打开的方法:

vim /etc/sysctl.conf
net.ipv4.ip_forward = 1 		#将此行写入配置文件

sysctl -p 						#读取修改后的配置

4.配置SNAT 内网连接外网实现源地址转换

第一步:准备虚拟机

准备三台虚拟机;一台当作网关服务器;一台当作外网web服务器;一台当作内网客户机;为了区分内网和外网的区别,设置两个VMnet;VMnet1作为内网;VMnet2作为外网;

第二步:为网关服务器添加配置

(1)多添加一个网络适配器

(2)修改网卡和新网卡配置

记得把复制过来的名字也要修改,之后重启网卡即可;

(3)网关服务器设置同意路由转发

#永久启用
vim /etc/sysctl.conf
 net.ipv4.ip_forward=1 
 
sysctl -p 
  #若 net.ipv4.ip_forward=0 即无法连通外网地址

第三步:配置客户机

第四步:配置外网web服务器

(1)配置网卡

(2)安装并启动httpd软件

yum install -y httpd 
 
systemctl restart httpd

netstat -lntp | grep :80   #查看软件是否开启

第五步:关闭防火墙和syslinux

systemctl stop firewalld

setenforce 0

第六步:配置SNAT源地址转换

iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o ens36 -j SNAT --to 12.0.0.10

拓展:tcpdump Linux系统抓包工具

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

tcp 协议  port 端口 [src/dst]  net 网段     -i 网卡  -s 0  -w XXX.cap

                                                host 主机IP

(1)tcp: ip icmp arp rarp 和 tcp、udp、icmp这些协议选项等都要放到第一个参数的位置,用来过滤数据包的类型;

(2)-i ens33 : 只抓经过接口ens33的包

(3)-t : 不显示时间戳

(4)-s 0 : 抓取数据包时默认抓取长度为68字节。加上-s 0 后可以抓到完整的数据包

(5)-c 100 : 只抓取100个数据包

(6)port ! 22 : 不抓取端口是22的数据包

(7)net 192.168.1.0/24 : 数据包的网络地址为192.168.1.0/24

(8)-w ./target.cap : 保存成cap文件,方便用ethereal(即wireshark)分析

第七步:在内网ping外网服务器,并用tcpdump抓包工具查看信息;

内网:  
 ping -c 10 12.0.0.20            #先ping

外网:
tcpdump -i ens33 -s 0 -w ./test2.cap   #再tcpdump抓包;内网ping完后

sz test1.cap 到真机文件中,使用 winsharp 进行查看抓包

之后,就可以了;配置完成。

SNAT    内网 --> 外网   转换源地址
iptables  -t nat  -A POSTROUTING  -s 内网的源地址/网段  -o 出站网卡  -j SNAT  --to 要转换的公网源地址

5.共享动态IP地址上网

MASQUERADE--地址伪装

适用于外网IP地址非固定的情况

对于ADSL拨号连接,接口通常为 ppp0、ppp1

将SNAT规则改为MASQUERADE即可

二.DNAT策略概述

1.DNAT策略的典型应用环境

在Internet中发布位于局域网内的服务器

2.DNAT策略的原理

目标地址转换,Destination Network Address Translation

修改数据包的目的地址

3.DNAT转换的前提条件

局域网的Web服务器能够访问Internet

网关的外网IP地址有正确的DNS解析记录

Linux网关支持IP路由转发

4.配置DNAT

拓扑图

第一步:准备虚拟机设置IP地址和网关

将一台主机放在内网,作为Web服务器,两台作为客户端放在外网,一台作为网关务器

与DNAT实验时相反,这次的web服务器在内网环境,服务机在公网环境

第二步:准备DNS服务器给外网客户端使用

yum install -y bind

要保证镜像已挂载

vim /etc/named.conf

vim /etc/named.rfc1912.zones

cd /var/named/
cp -p named.localhost xy101.com.zone

vim xy101.com.zone

systemctl start named
systemctl enable named

去客户机验证;要在 /etc/resolv.conf 文件总提前添加配置

vim /etc/resolv.conf
nameserver 12.0.0.30

nsloookup www.xy101.com

第二步:配置内核配置文件,添加ip_forward 实现路由转发功能的开启

vim /etc/sysctl.conf

net.ipv4.ip_forward = 1

保存退出之后 
sysctl -p

客户机验证;能 ping 通就是成功

ping 192.168.80.30
ping 12.0.0.30
ping 12.0.0.100
ping 12.0.0.200

第三步:作DNAT转换

用客户机做网页查询;没有任何反应

添加这条配置即可实现访问网址 ; 记得关闭防火墙

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

实现远程登录Web服务器

添加这条配置

iptables -t nat -A PREROUTING -i ens33 -d 12.0.0.30 -p tcp --dport 2345 -j DNAT --to 192.168.80.15:22

域名和IP地址都可以实现

DNAT   外网 -->  内网   转换目的地址:端口
iptables  -t nat  -A PREROUTING   -i 入站网卡  -d 原公网目的地址  -p 协议 --dport 原目的端口  -j DNAT  --to 要转换的内网目的地址:端口

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

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

相关文章

搭建Harbor镜像仓库

前言 1、系统版本:CentOS9 2、harbor版本:v2.9.4 3、提前安装好docker和docker-compose,参考地址。我这里安装的版本是docker:26.1.3 docker-compose:v2.27.1 安装步骤 下载安装包 1、下载地址:ha…

基于yolov5和desnet的猫咪识别模型

前言 前段时间给学校的猫咪小程序搭建了识猫模型,可以通过猫咪的照片辨别出是那只猫猫,这里分享下具体的方案,先看效果图: 源代码在文末 模型训练 在训练服务器(或你的个人PC)上拉取本仓库代码。 图片数据…

moviepy入门

1. 简介 由于恶心的工作和没有规划的部门安排,我被排到了算法部门,从事和算法没有半毛钱关系的业务上,也就是。。。搞视频。咋说呢?视频这东西我没有一点基础,还好有前人写好的代码,用的是moviepy和ffmpeg…

网络攻防概述(基础概念)

文章目录 APTAPT概念APT攻击过程 网络空间与网络空间安全网络空间(Cyberspace)网络空间安全(Cyberspace Security) 网络安全属性机密性(Confidentiality或Security)完整性(Integrity)可用性(Availability)不可否认性(Non-repudiation&#xf…

通过unsplash引入图片素材

如果您还没听说过——当您需要无版权费的照片用于项目时,无论是否用于商业目的,Unsplash 都是您的不二之选。我自己也经常用它来获取大型背景图像。 虽然他们为开发者提供了出色的 API,但他们还为您提供了通过 URL 直接访问随机图片的选项。…

开源博客项目Blog .NET Core源码学习(27:App.Hosting项目结构分析-15)

本文学习并分析App.Hosting项目中后台管理页面的角色管理页面。   角色管理页面用于显示、检索、新建、编辑、删除角色数据同时支持按角色分配菜单权限,以便按角色控制后台管理页面的菜单访问权限。角色管理页面附带一新建及编辑页面,以支撑新建和编辑…

本地连接github仓库

【1】新建github仓库 【2】本地克隆并提交 $ git clone https://github.com/TomJourney/soil.git Cloning into soil... warning: You appear to have cloned an empty repository.pacosonDESKTOP-E4IASRJ MINGW64 /d/github/TomJourney/soil (master) $ git add readme.txtpa…

Android HAL到Framework

一、为什么需要Framwork? Framework实际上是⼀个应⽤程序的框架,提供了很多服务: 1、丰富⽽⼜可扩展的视图(Views), 可以⽤来构建应⽤程序,它包括列表(lists),⽹格&am…

指针(6)

1. sizeof和strlen的对比 1.1 sizeof 在学习操作符的时候,我们学习了 sizeof , sizeof 计算变量所占内存内存空间大小的,单位是字节,如果操作数是类型的话,计算的是使⽤类型创建的变量所占内存空间的大小。 sizeof 只…

精品丨快速申请免费https证书

https域名证书对提高网站排名有一定的好处,所以当今很多企业为了给网站一个好的安全防护,就会去申请该证书。如今很多企业虽然重视网站的安全防护,但是也重视成本,所以为了节约成本会考虑申请免费的https证书。 第一个好处 企业不…

力扣496. 下一个更大元素 I

Problem: 496. 下一个更大元素 I 文章目录 题目描述思路复杂度Code 题目描述 思路 因为题目说nums1是nums2的子集,那么我们先把nums2中每个元素的下一个更大元素算出来存到一个映射里,然后再让nums1中的元素去查表即可 复杂度 时间复杂度: O ( n 1 n 2…

吉林大学计科21级《软件工程》期末考试真题

文章目录 21级期末考试题一、单选题(2分一个,十个题,一共20分)二、问答题(5分一个,六个题,一共30分)三、分析题(一个10分,一共2个,共20分&#xf…

正点原子[第二期]Linux之ARM(MX6U)裸机篇学习笔记-22讲 RTC 时钟设置

前言: 本文是根据哔哩哔哩网站上“正点原子[第二期]Linux之ARM(MX6U)裸机篇”视频的学习笔记,在这里会记录下正点原子 I.MX6ULL 开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了正点原子教学视频和链接中的内容。…

十四天学会Vue——Vue核心(理论+实战)(第一天)上篇

!!!声明必看:由于本篇开始就写了Vue,内容过多,本篇部分内容还有待完善,小编先去将连续更新的js高阶第四天完成~本篇部分待完善内容明日更新 一、Vue核心(上篇) 热身top…

mysql - 索引原理

mysql索引原理 文中的查询, 以该表结构为例 CREATE TABLE user (id int NOT NULL COMMENT id,name varchar(255) COLLATE utf8mb4_bin NOT NULL COMMENT 姓名,age int NOT NULL COMMENT 年龄,sex tinyint(1) NOT NULL COMMENT 性别,phone varchar(255) CHARACTER SET utf8mb4…

06中间件RTOS/CP

Autosar CP 操作系统详解-CSDN博客 1. 什么是RTOS ? RTOS,英文全称是 Real-time Operation System,中文就是 实时操作系统,又称及时操作系统。 实时操作系统,是指当外界事件或数据产生时,能够接受并以足…

GEC210编译环境搭建

一、下载编译工具链 下载:点击跳转 二、解压到 /usr/local/arm 目录 sudo mv gec210.zip /usr/local/arm cd /usr/local/arm sudo unzip gec210.zip 三、添加到环境变量 PATH/usr/local/arm/arm-cortex_a8-linux-gnueabi-4.7.3/bin:$PATH 四、测试验证 在终端…

微信小程序如何跳转微信公众号

1. 微信小程序如何跳转微信公众号 1.2. 微信公众号配置 登录微信公众号,点击【小程序管理】:   点击【添加】:   点击【关联小程序】:   输入小程序进行关联: 1.2. 微信小程序配置 登录微信小程序&#xf…

力扣刷题---LCS 02. 完成一半题目【简单】

题目描述 有 N 位扣友参加了微软与力扣举办了「以扣会友」线下活动。主办方提供了 2*N 道题目,整型数组 questions 中每个数字对应了每道题目所涉及的知识点类型。 若每位扣友选择不同的一题,请返回被选的 N 道题目至少包含多少种知识点类型。 示例 1&…

【NumPy】关于numpy.sum()函数,看这一篇文章就够了

🧑 博主简介:阿里巴巴嵌入式技术专家,深耕嵌入式人工智能领域,具备多年的嵌入式硬件产品研发管理经验。 📒 博客介绍:分享嵌入式开发领域的相关知识、经验、思考和感悟,欢迎关注。提供嵌入式方向…