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.编…...
web vue 项目 Docker化部署
Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段: 构建阶段(Build Stage):…...
golang循环变量捕获问题
在 Go 语言中,当在循环中启动协程(goroutine)时,如果在协程闭包中直接引用循环变量,可能会遇到一个常见的陷阱 - 循环变量捕获问题。让我详细解释一下: 问题背景 看这个代码片段: fo…...
Docker 运行 Kafka 带 SASL 认证教程
Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明:server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...
Frozen-Flask :将 Flask 应用“冻结”为静态文件
Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是:将一个 Flask Web 应用生成成纯静态 HTML 文件,从而可以部署到静态网站托管服务上,如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...
大学生职业发展与就业创业指导教学评价
这里是引用 作为软工2203/2204班的学生,我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要,而您认真负责的教学态度,让课程的每一部分都充满了实用价值。 尤其让我…...
CSS设置元素的宽度根据其内容自动调整
width: fit-content 是 CSS 中的一个属性值,用于设置元素的宽度根据其内容自动调整,确保宽度刚好容纳内容而不会超出。 效果对比 默认情况(width: auto): 块级元素(如 <div>)会占满父容器…...
AirSim/Cosys-AirSim 游戏开发(四)外部固定位置监控相机
这个博客介绍了如何通过 settings.json 文件添加一个无人机外的 固定位置监控相机,因为在使用过程中发现 Airsim 对外部监控相机的描述模糊,而 Cosys-Airsim 在官方文档中没有提供外部监控相机设置,最后在源码示例中找到了,所以感…...
【从零开始学习JVM | 第四篇】类加载器和双亲委派机制(高频面试题)
前言: 双亲委派机制对于面试这块来说非常重要,在实际开发中也是经常遇见需要打破双亲委派的需求,今天我们一起来探索一下什么是双亲委派机制,在此之前我们先介绍一下类的加载器。 目录 编辑 前言: 类加载器 1. …...
Kafka主题运维全指南:从基础配置到故障处理
#作者:张桐瑞 文章目录 主题日常管理1. 修改主题分区。2. 修改主题级别参数。3. 变更副本数。4. 修改主题限速。5.主题分区迁移。6. 常见主题错误处理常见错误1:主题删除失败。常见错误2:__consumer_offsets占用太多的磁盘。 主题日常管理 …...
通过MicroSip配置自己的freeswitch服务器进行调试记录
之前用docker安装的freeswitch的,启动是正常的, 但用下面的Microsip连接不上 主要原因有可能一下几个 1、通过下面命令可以看 [rootlocalhost default]# docker exec -it freeswitch fs_cli -x "sofia status profile internal"Name …...
