Linux:iptables防火墙
目录
绪论
1、防火墙
1.1 保护范围
1.2 网络协议划分
1.3 协议:tcp
1.4 四表
1.5 五链
1.6 iptables的规则
1.7 匹配顺序
流入本机:prerouting ------->iuput---------->用户进程(httpd服务)------请求--------响应--------->数据要返回用户流出本机:httpd----------->响应--------->output--------------->postrouting-(地址转换)------------>用户转发:数据包进来,肯定不是同一网段,路由转发-------->forward--------->数据包出去,不允许转发,数据包直接丢弃。1.8 命令格式及管理选项
1.9 匹配条件以及控制类型
1.10 修改规则
1.11 隐藏拓展模块
1.12 iptables的备份和还原
1.13 自定义链
1.13.1 创建自定义链
1.13.2 自定义链改名
1.13.3 给链添加规则
1.13.4 添加到默认链
1.13.5 删除
1.14 SNAT和DNAT
1.15 linux怎么抓包
绪论
防火墙:隔离功能
部署在网络边缘或者主机边缘。在工作找那个防火墙的主要作用是决定那些数据可以被外网访问以及那些数据可以进入内网访问。在网络层。分为软件防火墙和硬件防火墙
1、防火墙
1.1 保护范围
· 主机防火墙:服务范围就是当前自己的主机
· 网络防火墙:必经之路
实现方式:
· 硬件防火墙:既有专业的硬件来实现防火墙功能,又有软件来进行配给
· 软软件防火墙:代码实现判断
1.2 网络协议划分
网络层:包过滤防火墙
应用层(代理服务器):设置数据的进出
linux防火墙:
firewalld centos7:自带的
iptables:包过滤防火墙
selinux:自带的安全工具
集成在一个内核中:netfilter
iptables:包过滤防火墙,针对数据包进行过滤和限制,属于用户态
过滤数据包:ip地址端口、协议都可在iptables进行配置,可以限制,也可以放行
1.3 协议:tcp
iptables的构成和工作机制
iptables的组成部分:
四表五链组成,(selinux也是一个表,不在讨论范围内)
1.4 四表
· raw表:链接跟踪机制,加快封包速度和穿过防火墙的速度。主要是数据包跟踪
·mangle表:数据标记
· nat:地址转换表
· filter(默认表):过滤规划表,根据规则来定义或者过滤符合条件的数据包
四表的优先级 security----->raw----->mangle---->nat----->filter
表用来存放链,链用来存放规则
1.5 五链
INPUT:处理数据包进入本机的规则
OUTPOT:处理数据包发出的规则,一般不作处理
PREROUTING 处理数据包进入的规则
POSTROUTING 处理数据包离开本机之后的规则 结合地址转换使用
FORWARD 处理数据转发的规则
1.6 iptables的规则
表里面由链,链里面有规则,规则就是自定义的对于数据包的控制命令
1.7 匹配顺序
· 根据表的优先级匹配,在表中从上到下进行检查,找到匹配规则立即停止,不在表中向下继续查找,如果匹配不到规则,按照链的默认规则进行处理
· 报文流向
流入本机:prerouting ------->iuput---------->用户进程(httpd服务)------请求--------响应--------->数据要返回用户
流出本机:httpd----------->响应--------->output--------------->postrouting-(地址转换)------------>用户
转发:数据包进来,肯定不是同一网段,路由转发-------->forward--------->数据包出去,不允许转发,数据包直接丢弃。
1.8 命令格式及管理选项
rpm -q iptables
yum -y install iptables iptables-services
关防火墙安全机制
格式:iptables [ -t 表明](不指定表名,默认是filter)管理选项 [链名] [匹配条件] [-j 控制类型]
管理选项:
-A 在链的末尾追加一条,添加
-I 在链中插入一条新的规则,可以指定序号(后面跟上数字,表示序号)
-P 修改链的默认策略
-D 删除
-R 修改替换规则
-L 查看链中的规则
-vnL
v:显示详细信息 n:把规则以数字形式进行展示
-F 清空链中的所有规则,慎用
1.9 匹配条件以及控制类型
匹配条件:
-p 指定匹配的数据包协议类型
s 指定匹配的数据包源ip地址
-d 指定匹配数据包目的ip地址
-i 指定数据包进入本机的网络接口
-o 指定数据包离开本机使用的网络接口
--sport 指定源端口号
--dport 指定目的端口号
控制类型:
ACCEPT:允许数据包通过
DROP: 拒绝,直接丢弃,不给出任何信息回应
REJECT:拒绝,会给个响应信息
SNAT: 修改数据包的源ip地址
DNAT: 修改数据包的目的地址
iptables -vnl 详细查看链中的规则,默认filter
iptables -t nat -vnl 查看nat表
iptables -F 清空filter的所有链的规则
eg:iptables -t filter -A INPUT -p icmp -j REJECT
往filter表中的INPUT链添加icmp的拒绝
eg:
1.10 修改规则
iptables -A INPUT -p icmp -j ACCEPT
iptables -R INPUT 1 -p icmp -j REJECT
在生产中,iptables所有的链的默认规则都是DROP:iptables -P input DROR 此时shell也会挂掉,只能进虚拟机进行恢复
iptables -vnl --line-number
iptables -D INPUT 1
iptables -A INPUT -p tcp --dport 22 -j ACCEPT:临时策略,禁止22端口传输,重启失效
iptables -A INPUT -s 192.168.233.0/24 -p tcp --dport 80 -j REJECT:整个网段禁止80端口的服务
1.11 隐藏拓展模块
既拒绝22又拒绝80:
iptables -A INPUT -p tcp --dport 22:80 -j REJECT
-p:指定协议时,tcp和udp指明了什么是协议,就不需要再用-m指明扩展模块了,指定多端口可以用冒号的形式,也可以-m隐藏模块来实现
-m:可以用明确的形式指出类型:多端口,mac地址,ip地址数据包的状态
-m multiport指定多端口,使用多端口,多个端口用,隔开
eg:iptables -A INPUT -p tcp -m multiport --dp ort 22,20,443,80 -j REJECT
-m multiport --dport :指定多端口,多个端口号逗号分开
-m multiport --sport
ip范围:
-m iprange --src-range 源ip地址的范围
-m iprange --dst-range 目的ip地址的范围
eg:
mac地址:
-m mac --mac-source
1.12 iptables的备份和还原
· 写在命令行当中的都是临时配置
· 把规则,配置在服务的文件当中形成永久生效
iptables-save > /opt/ky30.bak:把当前iptables的全部配置保存到ky30.bak中
默认配置文件:cat /etc/sysconfig/iptables
systemctl restart iptables 重启之后还在
1.13 自定义链
1.13.1 创建自定义链
没有-t指定表,默认在filer表中添加一个自定义链
iptables -N custom
1.13.2 自定义链改名
iptables -E custom ky30 custom为原链名,ky30为新名
1.13.3 给链添加规则
iptables -I ky30 -p icmp -j ACCEPT
1.13.4 添加到默认链
iptables -I INPUT -p icmp -j ky30:把ky30添加到系统的input链中
1.13.5 删除
iptables -D INPUT 1
然后还要在自定义链中删除
iptables -x ky30
1.14 SNAT和DNAT
SNAT :源ip地址转换(内网到外网)
DNAT:目标地址转换(外网到内网)
内网到外网转换的是源,从外网到内网转换的是目的
客户端发起请求---> 网关服务器(地址转换)---->网关服务器----->web服务器
web服务器响应请求---->网关服务器----->网关服务器----->客户端
/etc/sysctl.conf中可以修改配置,内核参数永久生效
iptables -t nat -A PREROUTING -d 11.0.0.11 -i ens33 -p --dport 80 -j 10 NAT --to 192.168.233.10:80
解释:
-t nat :指定表名
-d :指定目的ip
-p :指定tcp协议
--dport 80 :指定端口号
-j:控制条件
-j DNAT :控制条件做的目标地址转换
--to 192.168.233.10:80 :所有外部来的访问IP地址都变成11.0.0.11来访问内网,目标端口为80,协议是tcp,协议的流量转发到192.168.233.10:80的端口
1.15 linux怎么抓包
tcpdump来实现linux抓包,自带的
sz target.cap
不指定抓包动态处理:
tcpdump tcp -i ens33 -s0 -w ./ens33.cap ./表示保存到当前位置
相关文章:

Linux:iptables防火墙
目录 绪论 1、防火墙 1.1 保护范围 1.2 网络协议划分 1.3 协议:tcp 1.4 四表 1.5 五链 1.6 iptables的规则 1.7 匹配顺序 流入本机:prerouting ------->iuput---------->用户进程(httpd服务)------请求--------响应--------->数据要返…...
MongoDB文档-进阶使用-spring-boot整合使用MongoDB---MongoTemplate完成增删改查
传送门: MongoDB文档--基本概念_一单成的博客-CSDN博客 MongoDB文档--基本安装-linux安装(mongodb环境搭建)-docker安装(挂载数据卷)-以及详细版本对比_一单成的博客-CSDN博客 MongoDB文档--基本安装-linux安装&…...
设计模式十四:责任链模式(Chain of Responsibility Pattern)
责任链模式(Chain of Responsibility Pattern)是一种行为设计模式,它允许你将请求沿着处理者链进行传递,直到有一个处理者能够处理该请求。 在责任链模式中,多个处理者对象被连接成一个链。当接收到一个请求时…...
将商城项目放到docker-centos7中
1、docker pull centos:7 2、docker run -d -it --privileged 仓库名称/shopcentos:1.1 /usr/sbin/init 注意: /usr/sbin/init 必须加,否则没法使用systemctl启动mysql 3、安装mysql教程 安装msyql教程:https://blog.csdn.net/davice_li…...
C# Winform 自动获取 软件版本号
C# Winform如何自动获取版本号 方案一 缺点是不适配,clickones发布的版本 public static string GetVersion() {try {return System.Deployment.Application.ApplicationDeployment.CurrentDeployment.CurrentVersion.ToString();}catch{return System.Ref…...

基于C++实现了最小反馈弧集问题的三种近似算法(GreedyFAS、SortFAS、PageRankFAS)
该项目是一个基于链式前向星存图、boost(boost::hash、asio线程池)以及emhash7/8的非官方实现,实现了最小反馈弧集问题的三种近似算法。该问题是在有向图中找到最小的反馈弧集,其中反馈弧集是指一组弧,使得从这些反馈弧…...
奶牛用餐 优先队列 java
👨🏫 奶牛用餐 约翰的农场有 n n n 头奶牛,编号 1 s i m n 1 \\sim n 1simn。 每天奶牛们都要去食堂用餐。 食堂一共有 k k k 个座位,也就是说同一时间最多可以容纳 k k k 头奶牛同时用餐。 已知,第 i i i …...
包管理机制pip3
pip3 安装pip3 安装pip3 apt install python3-pip yum install python3-pip从仓库出发的命令 查询仓库信息 // 获取默认pip3源 pip3 config get global.index-url查询所有软件包 查询已经安装的所有软件包 pip3 list从软件包出发的命令 从软件包名出发查询其他信息 查询…...
liunx在线安装tomcat
1、在线安装 https://dlcdn.apache.org/tomcat/tomcat-8/v8.5.91/bin/apache-tomcat-8.5.91.tar.gz 执行:wget --no-check-certificate https://dlcdn.apache.org/tomcat/tomcat-8/v8.5.91/bin/apache-tomcat-8.5.91.tar.gz ps:或者直接把tar.gz扔服务器 2、 编…...

导入示例工程出现error: failed to start ability. Error while Launching activity错误的解决办法
导入华为健康生活应用(ArkTS),使用DevEco Studio打开,运行报错: error: failed to start ability. Error while Launching activity解决办法:修改module.json5里面exported的值,由false改为tr…...
【深入了解PyTorch】PyTorch分布式训练:多GPU、数据并行与模型并行
【深入了解PyTorch】PyTorch分布式训练:多GPU、数据并行与模型并行 PyTorch分布式训练:多GPU、数据并行与模型并行1. 分布式训练简介2. 多GPU训练3. 数据并行4. 模型并行5. 总结PyTorch分布式训练:多GPU、数据并行与模型并行 在深度学习领域,模型的复杂性和数据集的巨大规…...

linux 下 网卡命名改名
Linux 操作系统的网卡设备的传统命名方式是 eth0、eth1、eth2等,而 CentOS7 提供了不同的命名规则,默认是网卡命名会根据网卡的硬件信息,插槽位置等有关;来分配。这样做的优点是命名全自动的、可预知的,缺点是比 eth0、…...

6.2.0在线编辑:GrapeCity Documents for Word (GcWord) Crack
GrapeCity Word 文档 (GcWord) 支持 Office Math 函数以及转换为 MathML GcWord 现在支持在 Word 文档中创建和编辑 Office Math 内容。GcWord 中的 OMath 支持包括完整的 API,可处理科学、数学和通用 Word 文档中广泛使用的数学符号、公式和方程。以下是通过 OMa…...

为什么需要智能指针?
为什么需要智能指针? 解决忘记释放内存导致内存泄漏的问题。解决异常安全问题。 #include<iostream> using namespace std;int div() {int a, b;cin >> a >> b;if (b 0)throw invalid_argument("除0错误");return a / b; } void Func(…...

《华为认证》L2TP VPN配置
配置接口ip地址,并且将防火墙的接口加入对应的安全区域 。 LNS的G1/0/0 IP为202.1.1.1 1、配置LNS的缺省路由: ip route-static 0.0.0.0 0.0.0.0 202.1.1.2 2、通过WEB 界面配置防火墙的 L2TP VPN 浏览器输入: https://202.1.1.1:8443/def…...

【JVM】JVM垃圾收集器
文章目录 什么是JVM垃圾收集器四种垃圾收集器(按类型分)1.串行垃圾收集器(效率低)2.并行垃圾收集器(JDK8默认使用此垃圾回收器)3.CMS(并发)垃圾收集器(只针对老年代垃圾回收的) 什么是JVM垃圾收…...

StarGANv2: Diverse Image Synthesis for Multiple Domains论文解读及实现(一)
StarGAN v2: Diverse Image Synthesis for Multiple Domainsp github:https://github.com/clovaai/stargan-v2 1 模型架构 模型主要架构由四部分组成 ①Generator、②Mapping network、③Style encoder、④Discriminator Generator:G网络 生成模型G将输入图片x转换…...

Go Gin 中使用 JWT
一、JWT JWT全称JSON Web Token是一种跨域认证解决方案,属于一个开放的标准,它规定了一种Token实现方式,目前多用于前后端分离项目和OAuth2.0业务场景下。 二、为什么要用在你的Gin中使用JWT 传统的Cookie-Sesson模式占用服务器内存, 拓展性…...

AWS中Lambda集成SNS
1.创建Lambda 在Lambda中,创建名为AWSSNSDemo的函数 use strict console.log(loading function); var aws require(aws-sdk); var docClient new aws.DynamoDB.DocumentClient(); aws.config.regionap-southeast-1;exports.handler function(event,context,cal…...

Mac下⬇️Git如何下载/上传远程仓库
使用终端检查电脑是否安装Git git --version 通过此文章安装Git ➡️ 传送门🌐 方式1⃣️使用终端操作 1.下载——克隆远程仓库到本地 git clone [远程地址] 例:git clone https://gitee.com/lcannal/movie.git 2.编…...
谷歌浏览器插件
项目中有时候会用到插件 sync-cookie-extension1.0.0:开发环境同步测试 cookie 至 localhost,便于本地请求服务携带 cookie 参考地址:https://juejin.cn/post/7139354571712757767 里面有源码下载下来,加在到扩展即可使用FeHelp…...
Java 语言特性(面试系列1)
一、面向对象编程 1. 封装(Encapsulation) 定义:将数据(属性)和操作数据的方法绑定在一起,通过访问控制符(private、protected、public)隐藏内部实现细节。示例: public …...

css实现圆环展示百分比,根据值动态展示所占比例
代码如下 <view class""><view class"circle-chart"><view v-if"!!num" class"pie-item" :style"{background: conic-gradient(var(--one-color) 0%,#E9E6F1 ${num}%),}"></view><view v-else …...
FastAPI 教程:从入门到实践
FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建 API,支持 Python 3.6。它基于标准 Python 类型提示,易于学习且功能强大。以下是一个完整的 FastAPI 入门教程,涵盖从环境搭建到创建并运行一个简单的…...

376. Wiggle Subsequence
376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...

el-switch文字内置
el-switch文字内置 效果 vue <div style"color:#ffffff;font-size:14px;float:left;margin-bottom:5px;margin-right:5px;">自动加载</div> <el-switch v-model"value" active-color"#3E99FB" inactive-color"#DCDFE6"…...

Mac软件卸载指南,简单易懂!
刚和Adobe分手,它却总在Library里给你写"回忆录"?卸载的Final Cut Pro像电子幽灵般阴魂不散?总是会有残留文件,别慌!这份Mac软件卸载指南,将用最硬核的方式教你"数字分手术"࿰…...

vue3+vite项目中使用.env文件环境变量方法
vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量,这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...

AI书签管理工具开发全记录(十九):嵌入资源处理
1.前言 📝 在上一篇文章中,我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源,方便后续将资源打包到一个可执行文件中。 2.embed介绍 🎯 Go 1.16 引入了革命性的 embed 包,彻底改变了静态资源管理的…...

10-Oracle 23 ai Vector Search 概述和参数
一、Oracle AI Vector Search 概述 企业和个人都在尝试各种AI,使用客户端或是内部自己搭建集成大模型的终端,加速与大型语言模型(LLM)的结合,同时使用检索增强生成(Retrieval Augmented Generation &#…...