linux iptables简介

表与链

iptables是4表五链

4表:filter表(过滤表) nat表 raw表 mangle表

五链:INPUT OUTPUT FORWARD PREROUTING POSTROUTING

(所有链的名字要大写)

pre…之前

post…之后

filter表

iptables默认操作就是这个表

实现防火墙的功能:屏蔽或准许端口ip

主要和主机自身相关,真正负责主机防火墙功能的(过滤流入流出主机的数据包)filter表iptables默认使用的表,这个表定义了三个链(chains)企业工作场景:主机防火墙
INPUT	负责过滤所有目标地址是本机地址的数据包,通俗来说:就是过滤进入主机的数据包(能否让数据包进入服务器
FORWARD	路过:负责转发流经主机的数据包,起转发的作用,和NAT关系很大
OUTPUT	处理所有源地址是本机地址的数据包
nat表

实现nat功能

​ 实现共享上网(内网服务器上外网)

​ 端口映射和ip映射

负责网络地址转发的,即来源与目的IP地址和post的转换
应用:和主机本身无关,一般用于局域网共享上网或者特殊的端口转换服务相关
工作场景:1.用于企业路由(zebra)或网关,共享上网(POSTROUTING)2.做内部外部IP地址一对一映射(DMZ),硬件防火墙映射IP到内部服务器,FTP服务器(PREROUTING)3.web,单个端口的映射,直接映射80端口(PREROUTING)这个表定义了3个链,nat功能相当于网络的acl控制,和网络交换机acl类似
OUTPUT	和主机放出去的数据包有关,改变主机发出数据包的目的地址
PREROUTING	在数据包到达防火墙时,进行路由判断之前执行的规则,作用是改变数据包的目的地址,目的端口等
POSTROUTING	在数据包离开防火墙时进行路由判断之后执行的规则,作用改变数据包的源地址,源端口等	

环境准备工作

yum -y install iptables-services   //安装iptables services
rpm -ql iptables-services   //查看iptables软件包的内容
#/etc/sysconfig/iptables   //一些规则lsmod 就是查看内核中加载了哪些模块systemctl disable firewalld   //禁用firewalldiptables -nL   //查看filter表规则
iptables -t nat -nL  //查看nat表的规则,-t指定表

iptables命令参数

参数
-L		//显示表中的所有规则
-n		//不要把端口或IP反向解析为名字
指定表
-t		//指定表,不指定默认filter表
指定连接(加入/追加/删除)
-A		//append追加 加入准许类规则适用-A,把规则放最下面
-I		//insert把规则加在链的第一条 拒绝类规则放在所有规则最上面 拒绝类-I
-D		//delete删除  -D INPUT 1  
iptables -F   //清空规则
iptables -X   //清空自定义的链
iptables -Z   //链的计算器清零
iptables -t filter -I INPUT -p tcp --dport 22 -j DROP  //拒绝用户访问22端口
//-t 指定表 
//-I 插入,把规则放在最上面 
//-p 指定协议 tcp,udp,icmp
//--dport   目标端口
//DROP 丢弃动作,前面要加-j 后面加动作iptables -t filter -D INPUT 1
//-t 指定表
//-D 删除
//1   行数iptables -nL --line-number   //以数字行数形式显示iptables list
参数
-p		//协议protocal tcp/udp/icmp/all 指定端口的时候需要指定协议
--dport		//目标端口 dest detination 指定端口 加上协议-p tcp
--sport		//源端口  source源
-s			//source 源IP
-d		//destination 目标IP
-m		//指定模块 multiport   可以一次指定多个端口
-i		//input 输入的时候  从哪个网卡进来
-o		//ouput输出的时候 从哪个网卡出去
参数
-j		//满足条件后的动作:DROP/ACCEPT/REJECT//DROP REJECT拒绝//DROP 把数据丢弃,不会返回信息给用户//REJECT 拒绝 返回拒绝信息

IPTABLES

添加必要的网络地址转换规则,使外部客户端能够访问到内部服务器 上的 dns、mail、web 和 ftp 服务

INPUT、OUTPUT 和 FOREARD 链默认拒绝(DROP)所有流量通行

配置源地址转换允许内部客户端能够访问互联网区域。

yum -y install iptables-services.x86_64  iptables
SNAT规则
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o ens34 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o ens34 -j MASQUERADE[root@RouterSrv ~]# iptables -t nat -nvL POSTROUTING 
Chain POSTROUTING (policy ACCEPT 395 packets, 28294 bytes)pkts bytes target     prot opt in     out     source               destination         2   114 MASQUERADE  all  --  *      ens34   192.168.0.0/24       0.0.0.0/0           719 50161 MASQUERADE  all  --  *      ens34   192.168.100.0/24     0.0.0.0/0   
DNAT规则
iptables -t nat -A PREROUTING -d 81.6.63.254 -p udp --dport 53 -j DNAT --to 192.168.100.100  //将192.168.100.100udp53dns映射到81.6.63.254相应端口
iptables -t nat -A PREROUTING -d 81.6.63.254 -p tcp -m multiport --dport 53,80,443,465,993 -j DNAT --to 192.168.100.100  //映射192.168.100.100的dns http https mail  到81.6.63.254相应端口
iptables -t nat -A PREROUTING -d 81.6.63.254 -p tcp -m multiport --dport 20,21,137,138,139,444,445,4500:5000 -j DNAT --to 192.168.100.200  //映射192.168.100.200 FTP,文件传输 到81.6.63.254相应端口[root@RouterSrv ~]# iptables -t nat -nvL PREROUTING 
Chain PREROUTING (policy ACCEPT 7014 packets, 426K bytes)pkts bytes target     prot opt in     out     source               destination         229 16310 DNAT       udp  --  *      *       0.0.0.0/0            81.6.63.254          udp dpt:53 to:192.168.100.1006   360 DNAT       tcp  --  *      *       0.0.0.0/0            81.6.63.254          multiport dports 53,80,443,465,993 to:192.168.100.1000     0 DNAT       tcp  --  *      *       0.0.0.0/0            81.6.63.254          multiport dports 20,21,137,138,139,444,445,4500:5000 to:192.168.100.200
默认拒绝和放行必要流量
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
iptables -A INPUT -p icmp -j ACCEPT
iptables -A FORWARD -p icmp -j ACCEPT
iptables -A OUTPUT -p icmp -j ACCEPT
iptables -A INPUT -p tcp -m multiport --dport 1194,2021 -j ACCEPT
iptables -A INPUT -p udp -m multiport --dport 67,68 -j ACCEPT
iptables -A FORWARD -p udp -m multiport --dport 53 -j ACCEPT
iptables -A FORWARD -p tcp -m multiport --dport 53,80,443,465,993,21,20,137,138,139,444,445,4500:5000  -j ACCEPT
iptables -A OUTPUT -p udp -m multiport --dport 67,68 -j ACCEPT  
//这里尽量满足要求,写多不会扣分
//截完图后我会全部放行,因为目的已经达到了,没必要之后的操作浪费时间iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT[root@RouterSrv ~]# iptables -nL
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            multiport dports 1194,2021
ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0            multiport dports 67,68Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0            multiport dports 53
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            multiport dports 53,80,443,465,993,20
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            multiport dports 21Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0            multiport dports 67,68
[root@routersrv ~]# iptables -t nat -L -n --line-numbers
Chain PREROUTING (policy ACCEPT)
num  target     prot opt source               destination         Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination         Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination         Chain POSTROUTING (policy ACCEPT)
num  target     prot opt source               destination         
1    MASQUERADE  all  --  192.168.0.0/24       0.0.0.0/0           
2    MASQUERADE  all  --  192.168.100.0/24     0.0.0.0/0   iptables -t nat -D POSTROUTING 1       //针对nat的表进行删除

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

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

相关文章

机器学习距离度量方法

1. 机器学习中为什么要度量距离? 机器学习算法中,经常需要 判断两个样本之间是否相似 ,比如KNN,K-means,推荐算法中的协同过滤等等,常用的套路是 将相似的判断转换成距离的计算 ,距离近的样本相…

K-means 聚类算法分析

算法简述 K-means 算法原理 我们假定给定数据样本 X ,包含了 n 个对象 ,其中每一个对象都具有 m 个维度的属性。而 K-means 算法的目标就是将 n 个对象依据对象间的相似性聚集到指定的 k 个类簇中,每个对象属于且仅属于一个其到类簇中心距离…

Jetson Orin安装riva以及llamaspeak,使用 Riva ASR/TTS 与 Llama 进行实时交谈,大语言模型成功运行笔记

NVIDIA 的综合语音 AI 工具包 RIVA 可以处理这种情况。此外,RIVA 可以构建应用程序,在本地设备(如 NVIDIA Jetson)上处理所有这些内容。 RIVA 是一个综合性库,包括: 自动语音识别 (ASR&#x…

Java创建线程执行任务的方法(一)

目录 1.继承Thread类 2.实现Runnab类 2.1实现Runnable类 2.2使用Lambda表达式 3.实现Callable类 3.1返回Integer类型数据 3.2返回String类型数据 3.3返回Object类型数据 4.匿名内部类 创建线程的方法:继承Thread类;实现Runnab类;匿名…

如何文件从电脑传到iPhone,这里提供几个方法

本文介绍了如何使用Finder应用程序、iTunes for Windows、iCloud和谷歌照片将照片从Mac或PC传输到iPhone。 如何将照片从Mac传输到iPhone 如果你有一台Mac电脑,里面装满了你想转移到iPhone的照片,这是一件非常简单的事情。只需遵循以下步骤&#xff1a…

Python中matplotlib库的使用1

1 matplotlib库简介 matplotlib是一个数学绘图库,可以将数据通过图形的方式显示出来,也就是数据可视化。 2 matplotlib库的安装 2.1 打开cmd窗口 点击键盘的“Win”“R”键,在弹出的“运行”对话框的“打开”栏中输入“cmd”,…

【UE5.1】程序化生成Nanite植被

目录 效果 步骤 一、下载Gaea软件和树林资产 二、使用Gaea生成贴图 三、 生成地形 四、生成草地 五、生成树林 六、生成湖泊 七、其它功能介绍 7.1 调整树林生成的面积 7.2 让植物随风飘动 7.3 玩家和植物互动 7.4 雪中树林 7.5 环境音效 效果 步骤 一、下载Ga…

什么是reactor模式

Reactor模式是一种事件驱动的设计模式,主要用于处理高并发的I/O操作。在该模式中,一个中心的“反应器”(Reactor)对象负责监听和分发来自多个客户端的事件请求到相应的处理器(Handler)。 以下是在Reactor模…

循环冗余效验码的计算方法

循环冗余效验码的计算方法 G(x): 在了解计算方法之前我们首先要明白G(x)表明的意思,这一步非常重要! 例如,G(x) x^3 x^2 1 ,该式子表明的编…

vue3 数据转换

只需要添加 const taskHeader JSON.parse(JSON.stringify(now))

基于huffman编解码的图像压缩算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1 Huffman编码算法步骤 4.2 Huffman编码的数学原理 4.3 基于Huffman编解码的图像压缩 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 ..…

【操作系统】不同操作系统内核架构分析

一、内核架构与操作系统性能之间的关系的分析 1. 适用性和专业化: 不同的内核架构往往会有不同的设计目标和优化点。例如,实时操作系统(RTOS)和通用操作系统(像Linux或Windows)在设计时就有不同的重点&am…

【Python基础011】Python中字符串的具体用法

1、创建 字符串的创建共有3种方式 1)单/双引号创建短字符串 s hello worlds “hello world” 2)三个单/双引号创建短字符串 三个单/双引号一般用于多行文本的注释,如果将这样的字符串用print打印,或者赋给一个变量,…

3D游戏角色建模纹理贴图处理

在线工具推荐: 3D数字孪生场景编辑器 - GLTF/GLB材质纹理编辑器 - 3D模型在线转换 - Three.js AI自动纹理开发包 - YOLO 虚幻合成数据生成器 - 三维模型预览图生成器 - 3D模型语义搜索引擎 在本文中,我们将介绍 3D 纹理的基础知识,并讨…

【C语言】数据结构——排序二(快排)

💗个人主页💗 ⭐个人专栏——数据结构学习⭐ 💫点击关注🤩一起学习C语言💯💫 目录 导读:数组打印与交换1. 交换排序1.1 基本思想:1.2 冒泡与快排的异同 2. 冒泡排序2.1 基本思想2.2 …

【Unity动画系统】Animator有限状态机参数详解

👨‍💻个人主页:元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏:Uni…

校园跑腿小程序源码系统:取快递+寄快递+食堂超市跑腿 带完整的搭建教程

现如今,越来越多的校园生活服务需求涌现出来。为了满足学生们的日常需求,校园跑腿小程序应运而生。这款小程序集成了取快递、寄快递、食堂超市跑腿等功能,为学生们提供了一个方便、快捷的生活服务平台。 以下是部分代码的示例: 系…

openpose+smplx

boss不知道从哪淘换来的pose_iter_440000.caffemodel和basicModel_f_lbs_10_207_0_v1.0.0.pkl让我搞2d图像3d蒙皮,人都麻了,最后还是从头过了一下openpose和smplx。这里记录一下 openpose 这个是用来得到骨架坐标的,可以理解为(x,y,置信度)…

如何使用工具查看机系统信息,应用管理、文件管理

摘要 克魔助手是一款功能丰富的手机助手软件,提供了诸多实用的功能模块,包括手机系统信息显示、应用管理、文件管理、描述文件安装与测试、崩溃日志、实时日志、截图、活跃程序、性能监控和网络抓包等。本文将对克魔助手的界面概览和各功能模块进行详细…

数据结构面试题目

什么是数据结构?计算机存储、组织数据的方式。数据结构包括逻辑结构、物理结构和对数据的一系列操作。其中逻辑结构包括了线性结构(线性表、栈和队列)和非线性结构(树、图);物理结构包括顺序存储结构和链式…