iptables安全技术和防火墙
防火墙:隔离功能
位置:部署在网络边缘或主机边缘,在工作中,防火墙的主要作用是决定哪些数据可以被外网访问以及哪些数据可以进入内网访问,主要在网络层工作
其他类型的安全技术:1、入侵检测系统 2、入侵防御系统 (了解即可)
防火墙有软件防火墙:360,iptables,firewalld
还有硬件防火墙:路由器,交换机,三层交换机
保护范围:1、主机防火墙,服务范围就是当前的主机
2、网络防火墙:服务范围为防火墙一侧的局域网,必经之路
实现方式:1、硬件防火墙,既有专业的硬件来实现防火墙功能,又有软件来进行配合
2、软件防火墙:代码实现判断
网络协议划分:
网络层:包过滤防火墙
应用层(代理服务器):设置数据的进出
linux防火墙:firewalld centos7自带的防火墙
iptables:包过滤防火墙 selinux自带的安全工具
集成在一个内核中:netfilter组件
总结:iptables工作在网络层,针对ip数据包进行过滤和限制,属于用户态
属于典型的包过滤防火墙,体现在对包内的IP地址、端口等信息的处理
面试题:
通信五元素:1,源端口 2,目的端口 3,源IP 4,目的 IP 5, 协议:tcp/udp
SCTP:在网络连接两端之间同时传输多个数据流的协议。SCTP提供的服务与UDP和TCP类似
通信四元素:源/目的 端口 源/目的 IP
iptables的构成和工作机制:根据规则进行匹配,能进就进,不能进则丢弃,对出不做限制
iptables的组成部分:四表五链组成(面试会问)
四表:
raw:连接跟踪机制,可以加快封包穿过防火墙的速度,数据包跟踪
mangle:数据标记
nat:地址转换表
filter:过滤规则表,根据规则来定义或者过滤符合条件的数据包,默认表
#security也算一个表
优先级:security(不再讨论范围之内)→raw→mangle→nat→filter
五链:
INPUT:处理数据包进入本机的规则
OUTPUT:处理数据包发出的规则,一般不作处理,因为基本都在INPUT处理了
prerouting:处理数据包进入本机之前的规则
postrouting:处理数据包离开本机之后的规则 (prerouting postrouting要结合地址转换)
FORWARD:处理数据包转发到其他主机的规则
总结:iptables的规则:表里有链,链里面有规则,规则就是我们自定义的对于数据包的控制命令
四表五链
规则表的作用:容纳各种规则链
规则链的作用:容纳各种防火墙规则
总结:表里有链,链里有规则
管理选项:表示iptables规则的操作方式,如插入、增加、删除、查看等; 增删改查
匹配条件:用来指定要处理的数据包的特征,不符合指定条件的数据包将不会处理; IP地址,端口。协议
控制类型指的是数据包的处理方式,如允许、拒绝、丢弃等。 ACCEP REJECT DROP
注意事项:
不指定表名时,默认指filter表
不指定链名时,默认指表内的所有链,一般不这么操作
除非设置链的默认策略,否则必须指定匹配条件
选项、链名、控制类型使用大写字母,其余均为小写
匹配数据:
1、根据表的优先级匹配,在表中从上到下进行检查,找到匹配规则后立即停止,不再表中向下继续查找,如果匹配不到规则,按照链的规则进行处理
2、报文流向(数据走向):
流入本机:prerouting(看需不需要把外网地址转换成内部可以访问的地址,必须要直接到input链)→input链(让不让数据包进入本机,让它进就直接访问用户进程httpd服务)→用户进程(httpd服务)......请求访问......响应(响应就是输入要返回)→数据要返回用户
流出本机:httpd(服务先发出响应)→响应报文(往用户发)→output(直接出,一般不会对出进行限制)→postrouting(看要不要做地址转换,不需要则直接带用户)→用户
转发:数据包进来,肯定不是同一网段,路由转发→forward→数据出去,不允许转发,数据包丢弃
iptables的命令格式:iptables [-t 表名] 管理选项 [链名] [匹配条件] [-j 控制类型]
[-t 表名] 也可以不写,不写就是指定filter表
管理选项:(除了v,n都是大写)
-A 在指定链末尾追加一条 例:iptables -A INPUT
-I 在指定链中插入一条新的,未指定序号默认作为第一条 例:iptables -I INPUT
-P 指定默认策略 例:iptables -P OUTPUT ACCEPT
-D 删除(慎用) 例:iptables -t nat -D INPUT 2
-R 修改、替换某一条规则 例:iptables -t nat -R INPUT
-F 清除链中所有规则 例:iptables -F
-L 查看链中的规则 例:iptables -t nat -L
-n 所有字段以数字形式显示
-v 查看时显示更详细信息,常跟-L一起使用 (v,n,L经常结合在一起使用例:vnL)
--line-numbers 规则带编号 例 iptables -t nat -L -n --line-number iptables -t nat -L --line-number
(不常用的)
-X 清空自定义链的规则,不影响其他链 iptables -X
-Z 清空链的计数器(匹配到的数据包的大小和总和)iptables -Z
-S 看链的所有规则或者某个链的规则/某个具体规则后面跟编号
链名:
PREROUTING链:处理数据包进入本机之前的规则。
INPUT链:处理数据包进入本机的规则。
FORWARD链:处理数据包转发到其他主机的规则。
OUTPUT链:处理本机发出的数据包的规则,一般不做处理。
POSTROUTING链:处理数据包离开本机之后的规则。
匹配的条件(都是小写)
-p 指定要匹配的数据包的协议类型
-s 指定要匹配的数据包的源IP地址
-d 指定要匹配的数据包的目的IP地址
-i 指定数据包进入本机的网络接口
-o 指定数据包离开本机做使用的网络接口
--sport 指定源端口号
--dport 指定目的端口号
控制类型:(全部大写)
ACCEPT:允许数据包通过
DROP: 拒绝,直接丢弃数据包,不给出任何回应信息
REJECT:拒绝数据包通过,会给一个响应信息
SNAT: 修改数据包的源ip地址
DNAT: 修改数据包的目的地址
iptables的命令格式:iptables [-t 表名] 管理选项 [链名] [匹配条件] [-j 控制类型]
[-t 表名] 也可以不写,不写就是指定filter表
iptables的前置操作:
rpm -q iptables-services 检查是否安装iptables
yum -y install iptables-services 安装iptables
systemctl stop firewalld.service 关闭防火墙
例:查看规则

不用-t指定表名,默认是浏览filter表
-vnL:以数字化详细的显示链中的规则
表中有三个链INPUT(数据包进入),FORWARD(数据包转发),OUTPUT(发出数据包)
且都是允许ACCEPT
例:指定查看nat表规则

也都是允许ACCEPT
例:清空表中所有规则,慎用且用的较少
iptables -F
例:禁止所有主机来ping10地址
![]()

-f filter:指定filter表(不指定表名默认指向filter表)
-A INPUT:在INPUT链插入
-p icmp:指定协议,icmp网际控制报文协议
-j REJECT:指定控制类型为拒绝且会给回应
查看一下

新增规则,让所有主机允许来ping10地址:用-I来进行插入,通过指定序号来往INPUT链插,让所有主机允许来ping10地址
查看一下,第一条的控制类型变为ACCEPT
插入的特点:即配即生效,从上到下匹配,匹配到了就不匹配了,此处第一条控制类型为ACCEPT匹配到了第一条就不往下继续匹配了
补充:在查看 -vnL后加 --line-number 可以为规则前面加上编号,查看更直观

例:指定ip地址,让20地址不能ping通10地址
![]()
是有顺序的,ip地址要写在协议的前面
-A INPUT:在INPUT链添加
-s 192.168.88.20:因为是在20地址ping10地址,20地址是作为源ip地址,所以用-s

当要拒绝多个ip地址进行访问时
![]()
指定多个ip地址要用逗号隔开
例:指定端口拒绝访问
指定端口也有顺序要求,端口要写在协议的后面
![]()
因为要在别的段楼访问22端口,所以22端口是作为目的端口,所以要用--dport
指定只有20地址才能访问80网段
![]()
例:把不想要的规则删除,根据编号来删除

例:修改规则(一般不用,要么直接添加,要么直接删除)
![]()
先设置所以主机都可以和10地址ping通(这条命令本身没有任何意义,因为本身就是允许的)

-R INPUT:修改规则 1:通过序号进行修改
重点:修改链的默认规则 在生产中,iptables所有的链的默认规则都是DROP
在生产中都是按照白名单的形式来进行设置,默认的策略都是拒绝
例:拒绝所有主机来访问10地址
![]()
-P:修改链的规则 不用加控制状态-j,直接加控制类型DROP
这时发现虚拟机卡死了,因为所有都被拒绝访问了,只能进虚拟机进行操作

因为本身就是拒绝所以REJECT没有意义 iptables -D INPUT 1 把它删除
iptables -A INPUT -p tcp --dport 22 -j ACCEPT 把22端口打开
端口要写在协议后面此处sport dport都可以
通用匹配:网络协议、端口、ip地址
整个192.168.88网段禁止访问80端口的服务
![]()

隐藏扩展模块:即拒绝80端口又拒绝20端口,根据端口来进行匹配
![]()
22:80 小的要写在前面,大的在后面,一定要这样写,否则会报错
隐藏模块:-p指定协议时(tcp或udp),指明了是什么协议,就不需要再使用-m来指明扩展模块。
指定多端口可以用冒号的形式,也可以用-m隐藏模块来实现。
-m的作用:可以用明确的形式指出类型:多端口、mac地址、ip地址数据包的状态
用-m的形式指定多端口(用的最多的)
例:![]()
-m multiport:指定多端口,多个端口之间用逗号隔开
ip范围:-m iprange --src-range 源ip地址范围
-m iprange --dst-range 目的ip地址范围
例:![]()
iptables -A INPUT -p icmp -m iprange --src-range 192.168.88.20-192.168.88.30 -j REJECT
拒绝从20地址到30地址来访问10地址(本机地址)
总结:iptables要会1、四表五列,2、会增会删即可,3、指定多端口,范围
相关文章:
iptables安全技术和防火墙
防火墙:隔离功能 位置:部署在网络边缘或主机边缘,在工作中,防火墙的主要作用是决定哪些数据可以被外网访问以及哪些数据可以进入内网访问,主要在网络层工作 其他类型的安全技术:1、入侵检测系统 2、入侵…...
微信小程序开发5
一、自定义组件-插槽 1.1、什么是插槽 在自定义组件的wxml结构中,可以提供一个<slot>节点(插槽),用于承载组件使用者提供的wxml结构 1.2、单个插槽 在小程序中,默认每个自定义组件中允许使用一个<slot>进行占位,这种…...
【算法题】2681. 英雄的力量
题目: 给你一个下标从 0 开始的整数数组 nums ,它表示英雄的能力值。如果我们选出一部分英雄,这组英雄的 力量 定义为: i0 ,i1 ,… ik 表示这组英雄在数组中的下标。那么这组英雄的力量为 max(nums[i0],n…...
fastutil简单测试下性能
前言 简单测试一下fastutil的实现和Java类库实现的速率。 使用jmh进行测试。 简单解释一下,每轮测试预热2次,每次1s;实测2次,每次1秒。 进行5轮测试。数组大小3种。 package fastutil;import it.unimi.dsi.fastutil.ints.IntArr…...
【FAQ】关于无法判断和区分用户与地图交互手势类型的解决办法
一. 问题描述 当用户通过缩放手势、平移手势、倾斜手势和旋转手势与地图交互,控制地图移动改变其可见区域时,华为地图SDK没有提供直接获取用户手势类型的API。 二. 解决方案 华为地图SDK的地图相机有提供CameraPosition类&…...
腾讯云裸金属服务器CPU型号处理器主频说明
腾讯云裸金属服务器CPU型号是什么?标准型BMSA2裸金属服务器CPU采用AMD EPYC ROME处理器,BMS5实例CPU采用Intel Xeon Cooper Lake处理器,腾讯云服务器网分享落进书房武器CPU型号、处理器主频说明: 裸金属服务器CPU处理器说明 腾讯…...
工程安全监测无线振弦采集仪在建筑物中的应用
工程安全监测无线振弦采集仪在建筑物中的应用 工程安全监测无线振弦采集仪是一种用于建筑物结构安全监测的设备,它采用了无线传输技术,具有实时性强、数据精度高等优点,被广泛应用于建筑物结构的实时监测和预警。下面将从设备的特点、应用场…...
【iOS】isKindOfClass和isMemberOfClass方法
前言 这个归根结底还是在考察我们对isa走向图和类的继承的理解,也就是苹果官方这幅图: 接下来的函数调用流程请参考这张图。 1 isKindOfClass方法 1.1 objc_opt_isKindOfClass C函数 查看源码可发现,无论是谁调用isKindOfClass方法都会…...
李飞飞「具身智能」VoxPoser:0预训练完成复杂指令
机器人接入大模型听懂人话 论文地址: https://voxposer.github.io/voxposer.pdf 项目主页: https://voxposer.github.io/ 参考链接: [1]https://twitter.com/wenlong_huang/status/1677375515811016704 [1]https://www.amacad.org/publicatio…...
前端八股文
info 毕业设计(课题、方向 本科毕业设计:家庭医生签约管理系统后台开发(微信小程序) 硕士课题:医学图像分割(婴儿脑分割) 51062319991129351X 邮编 重庆市南岸区 400000 13183849783 // 18728097929 // 13158442955 中国广电四川网络股份有限公司中江…...
前端年度工作述职报告优秀
前端年度工作述职报告优秀篇1 尊敬的各位领导、各位同仁: 大家好!按照20__年度我公司就职人员工作评估的安排和要求,我认真剖析、总结了自己的工作情况,现将本人工作开展情况向各位领导、同仁做以汇报,有不妥之处,希…...
【MyBatis 学习一】认识MyBatis 第一个MyBatis查询
目录 一、认识MyBatis 1、MyBatis是什么? 2、为什么要学习MyBatis? 二、配置MyBatis环境 1、建库与建表 2、创建新项目 3、xml文件配置 (1)配置数据库连接 (2)配置 MyBatis 中的 XML 路径 三、测试&#x…...
TCP 和 UDP
TCP(Transmission Control Protocol,传输控制协议) 是面向连接的协议,即在收发数据前,必须和对方建立可靠的连接,TCP的头部为20个字节。 UDP(User Datagram Protocol,用户数据报协…...
springboot配置自定义数据源(Druid德鲁伊)的步骤。
今天和大家分享下在Springboot中配置自定义数据源Druid的两种方法及步骤。 方法一: 1.在pom.xml配置依赖(注释里面的内容) 2.配置自己的数据源设置,我是在yaml文件中配置的,顺便提醒一下,在配置yaml文件的时候缩进问题一定要注意…...
K8S:容器日志收集与管理
Kubernetes 里面对容器日志的处理方式,都叫作 cluster-level-logging,即:这个日志处理系统,与容器、Pod 以及 Node 的生命周期都是完全无关的。这种设计当然是为了保证,无论是容器挂了、Pod 被删除,甚至节点…...
Flutter系列文章-Flutter进阶
在前两篇文章中,我们已经了解了Flutter的基础知识,包括Flutter的设计理念、框架结构、Widget系统、基础Widgets以及布局。在本文中,我们将进一步探讨Flutter的高级主题,包括处理用户交互、创建动画、访问网络数据等等。为了更好地…...
【C++】C++11右值引用|新增默认成员函数|可变参数模版|lambda表达式
文章目录 1. 右值引用和移动语义1.1 左值引用和右值引用1.2 左值引用和右值引用的比较1.3右值引用的使用场景和意义1.4 左值引用和右值引用的深入使用场景分析1.5 完美转发1.5.1 万能引用1.5.2 完美转发 2. 新的类功能2.1 默认成员函数2.2 类成员变量初始化2.3 强制生成默认函数…...
rust学习-线程
Rust 标准库只提供了 1:1 线程模型 Rust 是较为底层的语言,如果愿意牺牲性能来换取抽象,以获得对线程运行更精细的控制及更低的上下文切换成本,使用实现了 M:N 线程模型的 crate 示例 use std::thread; use std::time::Duration;fn main() …...
题目:2180.统计各位数字之和为偶数的整数个数
题目来源: leetcode题目,网址:2180. 统计各位数字之和为偶数的整数个数 - 力扣(LeetCode) 解题思路: 暴力遍历即可。 解题代码: class Solution {public int countEven(int num) {int re…...
3dsmax制作一个机器人
文章目录 建模身子:眼睛:头饰:肩膀手臂腿调整细节 渲染导出objMarmoset Toolbag 3.08渲染给眼睛添加材质,设置为自发光添加背景灯光 建模 身子: 眼睛: 头饰: 肩膀 手臂 腿 调整细节 渲染 导出…...
超短脉冲激光自聚焦效应
前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应,这是一种非线性光学现象,主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场,对材料产生非线性响应,可能…...
汽车生产虚拟实训中的技能提升与生产优化
在制造业蓬勃发展的大背景下,虚拟教学实训宛如一颗璀璨的新星,正发挥着不可或缺且日益凸显的关键作用,源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例,汽车生产线上各类…...
多种风格导航菜单 HTML 实现(附源码)
下面我将为您展示 6 种不同风格的导航菜单实现,每种都包含完整 HTML、CSS 和 JavaScript 代码。 1. 简约水平导航栏 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&qu…...
AI,如何重构理解、匹配与决策?
AI 时代,我们如何理解消费? 作者|王彬 封面|Unplash 人们通过信息理解世界。 曾几何时,PC 与移动互联网重塑了人们的购物路径:信息变得唾手可得,商品决策变得高度依赖内容。 但 AI 时代的来…...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现企业微信功能
1. 开发环境准备 安装DevEco Studio 3.1: 从华为开发者官网下载最新版DevEco Studio安装HarmonyOS 5.0 SDK 项目配置: // module.json5 {"module": {"requestPermissions": [{"name": "ohos.permis…...
CVPR2025重磅突破:AnomalyAny框架实现单样本生成逼真异常数据,破解视觉检测瓶颈!
本文介绍了一种名为AnomalyAny的创新框架,该方法利用Stable Diffusion的强大生成能力,仅需单个正常样本和文本描述,即可生成逼真且多样化的异常样本,有效解决了视觉异常检测中异常样本稀缺的难题,为工业质检、医疗影像…...
CppCon 2015 学习:Time Programming Fundamentals
Civil Time 公历时间 特点: 共 6 个字段: Year(年)Month(月)Day(日)Hour(小时)Minute(分钟)Second(秒) 表示…...
ArcPy扩展模块的使用(3)
管理工程项目 arcpy.mp模块允许用户管理布局、地图、报表、文件夹连接、视图等工程项目。例如,可以更新、修复或替换图层数据源,修改图层的符号系统,甚至自动在线执行共享要托管在组织中的工程项。 以下代码展示了如何更新图层的数据源&…...
边缘计算网关提升水产养殖尾水处理的远程运维效率
一、项目背景 随着水产养殖行业的快速发展,养殖尾水的处理成为了一个亟待解决的环保问题。传统的尾水处理方式不仅效率低下,而且难以实现精准监控和管理。为了提升尾水处理的效果和效率,同时降低人力成本,某大型水产养殖企业决定…...
【笔记】AI Agent 项目 SUNA 部署 之 Docker 构建记录
#工作记录 构建过程记录 Microsoft Windows [Version 10.0.27871.1000] (c) Microsoft Corporation. All rights reserved.(suna-py3.12) F:\PythonProjects\suna>python setup.py --admin███████╗██╗ ██╗███╗ ██╗ █████╗ ██╔════╝…...
