iptables之地址转换

1、自定义链

iptables -N hello #在filter表中创建一个自定义链,链名hello,自定义链名可以任意大小写

iptables -E hello happy #修改自定义的链名

iptables -t filter -I happy -s 192.168.206.30 -p icmp -j REJECT #禁止192.168.206.30ping本机

自定义没有策略(INPUT/OUTPUT/FORWARD/PREROUTING/POSTROUTING),无法直接使用

iptables -I INPUT -p icmp -j happy #把自定义规则引入到INPUT链中

删除INPUT引用的自定义链规则和自定义链

iptables -D INPUT/happy 1

iptables -X happy  #-X只能删除空白的自定义链

2、地址转换

  • 搭建环境

 

ubuntu1内网   ip地址192.168.206.20  网关192.168.206.254

ubuntu2网关服务器   ens33 192.168.206.254  ens37 12.0.0.254

ubuntu3外网  ip地址12.0.0.10   网关12.0.0.254

ubuntu2

vim  /etc/netplan/01-network-manager-all.yaml

修改ens33和ens37

netplan apply

vim /etc/sysctl.conf #linux系统内核的接口文件,修改配置内核的参数,使之永久生效

set nu---> 28行,去掉注释,net.ipv4.ip_forward=1#开启Linux服务器内核转发的功能

保存退出

sysctl -p#立即生效,或者重启生效

ubuntu1和ubuntu3一起安装nginx

apt  -y  install  nginx

systemctl  restart  nginx

vim  /etc/netplan/01-network-manager-all.yaml  #配置相应的ip地址和网关

netplan  apply

  • SNAT

ubuntu2:

iptables -t nat -A POSTROUTING -s 192.168.206.0/24 -o ens37 -j SNAT --to 10.0.0.10

#从ens37设备出去的数据包且网段属于192.168.233.0网段,把这个网段的地址统一转换成10.0.0.10

ubuntu3 tail -f /var/log/nginx/access.log

ubuntu1 访问12.0.0.10

  • DNAT

目的地址转换和服务映射

ubuntu2:

iptables -t nat -A PREROUTING -d 11.0.0.11 -i ens37 -p tcp --dport 80 -j DNAT --to 192.168.206.20:80

#所有从ens37进入本机的数据包统一转换成11.0.0.11,访问的端口是80,统一映射为访问192.168.206.20:80

Ubuntu1 tail -f /var/log/nginx/access.log

ubuntu3 访问11.0.0.11

3、在linux中抓包

tcpdump  #只是抓取数据包的内容,不能查看抓包的数据

tcpdump  tcp  -i  ens33  -t  -s0  -c  10  and  dst  port  80  and src  net  192.168.206.0/24  -w  /opt/target.cap   #静态抓取,抓完10个就会禁止

tcpdump 开头

tcp 协议 icmp dup

-i ens33 指定设备名 从哪个设备经过的数据包

-t 不显示时间

-s0 默认抓包的长度是68字节,s0就是抓取完整的数据包

-c 10 抓取多少个数据包

and dst port 目标端口80 和80端口相关的数据包

and src net 源ip是 192.168.206.0/24这个网段的ip地址

-w 抓包的结果保存到指定的文件当中去

.cap 是为了给抓包工具(wireshark)分析

sz target.cap #下载到电脑桌面

tcpdump  [-i  ens33]  [-s0] -w  /opt/1.cap   #动态,都抓取 []可不加

4、firewalld

firewalld是centos自带的,而且firewalld是默认的

ufw是ubuntu自带的,使用的就是iptables

firewalld是根据区域来进行配置不同的规则,和硬件防火墙很相似

区域名作用
trusted 信任区所有流量都可以进入
public 公共区域,默认区只允许系统默认的规则(ssh和icmp协议),其他的流量传入全部拒绝
external 外部区域只允许系统默认的规则(ssh和icmp协议),其他的流量传入全部拒绝,经过此区域的流量可以将ipv4的地址进行伪装
home 家庭区域只允许系统默认的规则(ssh和icmp协议,dhcpv6协议),其他的流量传入全部拒绝
internal 内部区域只允许系统默认的规则(ssh和icmp协议,dhcpv6协议),其他的流量传入全部拒绝
work 工作区域只允许系统默认的规则(ssh和icmp协议,dhcpv6协议),其他的流量传入全部拒绝
block 限制区拒绝所有流量的传入
drop 丢弃区域拒绝所有流量的传入,没有回显信息
DMZ 非军事区域只允许系统默认的规则(ssh),其他的流量传入全部拒绝

配置方法:

firewall-cmd   #命令行的开头

1、查看系统的默认区域

firewall-cmd --get-default-zone

2、查看默认区域内的规则

firewall-cmd --list-all

3、修改默认区域

firewall-cmd --set-default-zone=block

4、添加服务

firewall-cmd --add-service=http --zone=public #把80端口放行,添加到公共区域

5、添加多个服务

firewall-cmd --add-service={http,ftp} --zone=public

6、移除

firewall-cmd --remove-service=http --zone=public

7、永久生效

firewall-cmd --add-service={http,ftp} --zone=public --permanent #永久生效

firewall-cmd --reload #重新加载

8、添加/删除端口

firewall-cmd --zone=public --add-port=80/tcp

firewall-cmd --zone=public --remove-port=80/tcp

firewall-cmd --add-port=80-3306/tcp #添加80到3306范围之内的端口

 

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

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

相关文章

【GPT】主要影响代谢的因素

代谢的快慢受到多种因素的影响,包括遗传、生活习惯和健康状况等。以下是主要影响代谢的因素: 1. 年龄 影响:年龄增长会导致基础代谢率(BMR)逐渐降低,这是因为随着年龄增加,肌肉量减少&#xff…

[241129] Docker Desktop 4.36 发布:企业级管理功能、WSL 2 增强 | Smile v4.0.0 发布

目录 Docker Desktop 4.36 发布:企业级管理功能、WSL 2 和 ECI 增强Smile v4.0.0 发布!Java 机器学习库迎来重大升级 Docker Desktop 4.36 发布:企业级管理功能、WSL 2 和 ECI 增强 Docker Desktop 4.36 带来了强大的更新,简化了…

C语言标准的演进与应用:C89与C99的比较

C语言自20世纪70年代诞生以来,凭借其强大的灵活性和高效性,成为计算机领域中最重要的编程语言之一。在嵌入式开发、系统编程等领域,C语言更是不可或缺。随着技术的发展和需求的变化,C语言的标准也经历了多次迭代,其中C89和C99是两个经典且具有代表性的版本。 C语言标准历…

Linux信号集、信号的阻塞信号驱动

一、信号集 信号的三种方式,即使是忽略,也仍然打断了进程的进行(相当于是捕捉了信号,执行的了空函数什么都没做),可如果在访问重要资源时不希望被打断呢? 可以用阻塞,即产生了信号却…

什么是内网什么是外网?区别是什么

内网和外网是计算机网络中的两个基本概念,它们在定义、特点和使用场景上有显著的区别。‌虎观代理小二将带大家详细了解内网与外网的定义以及它们之间的主要差异,帮助读者更好地理解和应用这两种网络。 内网(局域网,LAN&#xff0…

如何在 Spring Cloud 集成 Micrometer Tracing?

1.什么是 Micrometer Tracing? Micrometer Tracing 是一个用于微服务架构的追踪库,它提供了一种简单而强大的方式来收集和报告分布式系统中的性能和调用链信息。它是 Micrometer 库的一部分,Micrometer 是一个用于应用程序监控的指标收集工具…

爬虫专栏第五篇:Python BeautifulSoup 库全解析:从解析器到网页数据爬取实战

简介:本文围绕 Python 的 BeautifulSoup 库展开,介绍了其安装方式,详细解析了各类解析器(如标准库、lxml 库、xml 库、html5lib 等)的特点与作用,并通过代码案例展示不同解析器在实际应用中的表现。同时&am…

架构06-分布式共识

零、文章目录 架构06-分布式共识 1、分布式共识 (1)基本概念 **分布式共识:**在分布式系统中,多个节点之间达成一致的过程。**复杂性来源:**网络的不可靠性和请求的并发性。**应用场景:**如何确保重要数…

linux基础病毒编写

linux目录介绍 /bin二进制可执行命令/etc系统管理和配置文件/etc/rc.d启动的配置文件和脚本 /home用户主目录的基点/lib标准程序设计库,又叫动态链接共享库 /sbin超级管理命令,这里存放的是系统管理员使用的管理程序 /tmp公共的临时文件存储点 /root系统…

使用Apache HttpClient上传文件

Apache HttpClient是一个强大且灵活的库,用于处理Java中的HTTP请求。 它支持多种HTTP方法,并能处理不同类型的请求体,包括文件上传。本 教程将演示如何使用Apache HttpClient来向服务器上传文件。 Maven依赖 要使用Apache HttpClient&…

uni-app写的微信小程序每次换账号登录时出现缓存上一个账号数据的问题

uni-app写的微信小程序每次更换另外账号登录时出现缓存上一个账号数据的问题? 1, 清除缓存数据:在 onShow 钩子中,我们将 powerStations、list 和 responseRoles 的值重置为初始状态,以清除之前的缓存数据。 2&…

初始Python篇(9)—— 函数

找往期文章包括但不限于本期文章中不懂的知识点: 个人主页:我要学编程(ಥ_ಥ)-CSDN博客 所属专栏: Python 目录 函数的定义及调用 函数的概念 函数的定义 函数的调用 水仙花数等自幂数的练习 函数相关参数的概念 函数的返回值 变…

【题解】—— LeetCode一周小结48

🌟欢迎来到 我的博客 —— 探索技术的无限可能! 🌟博客的简介(文章目录) 【题解】—— 每日一道题目栏 上接:【题解】—— LeetCode一周小结47 25.网络延迟时间 题目链接:743. 网络延迟时间 …

RK3568国产处理器 + TensorFlow框架的张量创建实验案例分享

一、实验目的 本节视频的目的是了解张量定义、了解张量的表示形式、并学习基于TensorFlow框架的张量创建方法。 二、实验原理. 张量定义 1、张量是多维数组,这个定义常见于各种人工智能软件。 2、张量是某种几何对象,不会随着坐标系的改变而改变。 3…

SpringMVC:SpringMVC的bean加载机制

问题分析 入门案例的内容已经做完了,在入门案例中我们创建过一个SpringMvcConfig的配置类,再回想前面咱们学习Spring的时候也创建过一个配置类SpringConfig。这两个配置类都需要加载资源,那么它们分别都需要加载哪些内容? 我们先来看下目前…

张伟楠动手学强化学习笔记|第一讲(上)

张伟楠动手学强化学习笔记|第一讲(上) 人工智能的两种任务类型 预测型任务 有监督学习无监督学习 决策型任务 强化学习 序贯决策(Sequential Decision Making) 智能体序贯地做出一个个决策,并接续看到新的观测,知道最终任务结…

Navicat连接SQL Server

Navicat连接SQL Server 安装自带的SQL Server客户端 去到Navicat安装目录,找到安装程序,安装即可。 安装对应版本的Microsoft ODBC Driver for SQL Server 打开Navicat输入对应的SQL Server相关信息 然后点测试连接,提示连接成功。

子模块、Fork、NPM 包与脚手架概述

子模块 在 Git 仓库中嵌套另一个仓库,通过引用的方式引入到主项目,版本管理依赖 Git 提交记录或分支,更新需手动拉取并提交,适用于共享代码并保持项目独立性。 优点:子模块支持直接查看和修改,保持子模块…

将一个数组逆序输出。-多语言

目录 C 语言实现 方法 1: 交换元素 方法 2: 使用辅助数组 方法 3: 使用递归 方法 4: 使用标准库函数(C99及以上) 总结 Python 实现 方法 1: 交换元素 方法 2: 使用切片 方法 3: 使用 reversed() 函数 方法 4: 使用 list.reverse() 方法 方法…

传智杯 A字符串拼接

链接:登录—专业IT笔试面试备考平台_牛客网 来源:牛客网 题目描述 键盘输入两个字符串,将这两个字符串进行拼接后输出。 输入描述: 键盘输入两个字符串 输出描述: 输出两个字符串拼接后的结果 示例1 输入 hello nihao 输出 helloni…