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渲染给眼睛添加材质,设置为自发光添加背景灯光 建模 身子: 眼睛: 头饰: 肩膀 手臂 腿 调整细节 渲染 导出…...
Vue记事本应用实现教程
文章目录 1. 项目介绍2. 开发环境准备3. 设计应用界面4. 创建Vue实例和数据模型5. 实现记事本功能5.1 添加新记事项5.2 删除记事项5.3 清空所有记事 6. 添加样式7. 功能扩展:显示创建时间8. 功能扩展:记事项搜索9. 完整代码10. Vue知识点解析10.1 数据绑…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)
HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...

智能在线客服平台:数字化时代企业连接用户的 AI 中枢
随着互联网技术的飞速发展,消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁,不仅优化了客户体验,还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用,并…...
如何为服务器生成TLS证书
TLS(Transport Layer Security)证书是确保网络通信安全的重要手段,它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书,可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...

【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)
🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...

【VLNs篇】07:NavRL—在动态环境中学习安全飞行
项目内容论文标题NavRL: 在动态环境中学习安全飞行 (NavRL: Learning Safe Flight in Dynamic Environments)核心问题解决无人机在包含静态和动态障碍物的复杂环境中进行安全、高效自主导航的挑战,克服传统方法和现有强化学习方法的局限性。核心算法基于近端策略优化…...

处理vxe-table 表尾数据是单独一个接口,表格tableData数据更新后,需要点击两下,表尾才是正确的
修改bug思路: 分别把 tabledata 和 表尾相关数据 console.log() 发现 更新数据先后顺序不对 settimeout延迟查询表格接口 ——测试可行 升级↑:async await 等接口返回后再开始下一个接口查询 ________________________________________________________…...
OD 算法题 B卷【正整数到Excel编号之间的转换】
文章目录 正整数到Excel编号之间的转换 正整数到Excel编号之间的转换 excel的列编号是这样的:a b c … z aa ab ac… az ba bb bc…yz za zb zc …zz aaa aab aac…; 分别代表以下的编号1 2 3 … 26 27 28 29… 52 53 54 55… 676 677 678 679 … 702 703 704 705;…...
【Kafka】Kafka从入门到实战:构建高吞吐量分布式消息系统
Kafka从入门到实战:构建高吞吐量分布式消息系统 一、Kafka概述 Apache Kafka是一个分布式流处理平台,最初由LinkedIn开发,后成为Apache顶级项目。它被设计用于高吞吐量、低延迟的消息处理,能够处理来自多个生产者的海量数据,并将这些数据实时传递给消费者。 Kafka核心特…...
加密通信 + 行为分析:运营商行业安全防御体系重构
在数字经济蓬勃发展的时代,运营商作为信息通信网络的核心枢纽,承载着海量用户数据与关键业务传输,其安全防御体系的可靠性直接关乎国家安全、社会稳定与企业发展。随着网络攻击手段的不断升级,传统安全防护体系逐渐暴露出局限性&a…...