安全技术和防火墙(iptables)

news2025/6/26 20:13:29

安全技术

入侵检测系统:特点是不阻断网络访问,主要是提供报警和事后监督,不主动介入,类似于监控。

入侵防御系统:透明模式工作,对数据包,网络监控,服务攻击,木马,蠕虫,系统漏洞等等进行准确的分析和判断,在判定攻击行为后会立即阻断。它是主动防御(所有的数据在进入本机之前必须要通过的设备或者是软件)

防火墙

作用就是隔离,工作在网络或者主机的边缘。对网络或者主机的数据包基于一定的规则进行检查,匹配到的规则放行,匹配不到的规则拒绝,数据包将会被丢弃。只开放允许访问的策略(白名单机制,拒绝所有,允许个别)

防水墙:是一种防止内部信息泄露的产品,对外有防火墙的功能,对内是透明模式工作。类似于监控

应用层防火墙

在应用层对数据进行检查

优点:更安全,精准定位问题

缺点:所有数据都会检查,增加防火墙的负荷

包过滤防火墙(对数据包进行控制)

特点:网络层对数据包进行选择,选择的依据是防火墙设置的策略

策略:包含ip地址、端口、协议

优点:处理速度快,易于维护

缺点:无法检查应用层数据,就是病毒无法进行处理

iptables这个是Linux自带的防火墙,一般用于内部配置,对外一般不使用(对外使用专业的)

firewalld 这个是Linux自带的防火墙,它是centos7版本以后默认的防火墙

iptables

需要安装iptables 和 iptables-services

iptables:工作在网络层,针对数据包实施过滤和限制(包过滤防火墙)

面试题

通信的要素:五大要素和四大要素

五大要素:源ip、目的ip、源端口、目的端口、协议(TCP、UPD)

四大要素:源ip、目的ip、源端口、目的端口

内核态和用户态:

内核态:涉及到软件的底层代码或者系统的基层逻辑,以及一些硬件的编码,如果数据是内核态处理,速度相对较快

iptables的过滤规则就是由内核来进行控制的

用户态

应用层软件层面,人为控制的一系列操作,使用功能

数据只通过用户态处理,速度是比较慢的

面试题

iptables的配置和策略:四表五链

iptables四表:1.raw表:用于控制数据包的状态,跟踪数据包的状态

                       2.mangle表:修改数据包的头部信息

                       3.NAT表:网络地址转换,可以改变数据包的源地址和目的地址

                       4.filter表:也是iptables的默认表,不做声明,默认就是filter表,它的作用就是过滤                            数据包,控制数据包的进出,以及接受和拒绝数据包

iptables五链:1.PREROUTING链:处理数据包进入本机之前的规则(NAT表)

                        2.INPUT链:处理数据包进入本机的规则(filter表,即是否允许数据包进入)

                        3.OUTPUT链:处理本机发出的数据包的规则,或者是数据包离开的本机的规则                                   (filter表,一般不做设置)

                        4.FORWADR链:处理数据包转发到其他主机的规则,或者是否允许本机进行数据                             包转发

                        5.POSTROUTING链:处理数据包离开本机之后的规则(NAT表)

表里有链,链里有规则

管理选项:在表的链中插入,增加,删除,查看规则

匹配条件:数据包的ip地址、端口、协议

控制类型:允许,拒绝,丢弃

注意事项:1.不指定表名,默认就是filter表

                  2.不指定链名,默认就是所有链(必须要指定链名)

                  3.除非设置了链的默认策略,否则必须执行匹配条件(一般都是指定匹配条件)

                  4.选项,链名和控制类型都是大写,其余的都是小写

控制类型

ACCEPT:允许数据包通过

DROP:直接丢弃数据包,没有任何回应信息

REJECT:拒绝数据包通过,数据包也会被丢弃,但是会有一个响应的信息

SNAT:修改数据包的源地址  

DNAT:修改数据包的目的地址

管理选项(都是大写)

-A  在链中添加一条规则,是在链尾添加

-I( i 的大写) 指定位置插入一条规则

-P  指定默认规则,链的规则一般都是设置成拒绝(默认是允许)

-D 删除规则

-R 修改规则(一般不用)

-vnL  查看规则     v是显示详细信息  n是以数字形式展示内容   L是查看

--line-numbers:显示规则的编号,和查看一起使用  -vnL --line-numbers

-F  清空链中所有规则

-X  清除自定义链中的规则

匹配条件

-p  指定协议类型

-s  指定匹配的源ip地址

-d  指定匹配的目的ip地址

-i 指定数据包进入本机的网络设备(ens33)

-o  指定数据包离开本机的网络设备

--sport  指定源端口

--dport  指定目的端口

iptables的命令格式

iptables -t  表名  管理选项  链名(大写)   匹配条件   -j   控制类型

所有的控制类型前面都是-j

iptables 基于的是本机策略 ,谁来访问本机 

匹配原则:每个链中规则都是从上到下的顺序匹配,匹配到之后就不再向下匹配

如果链中没有规则,则执行链的默认策略进行处理

查看规则 

iptables -vnL --line-numbers

添加规则 
指定ip

iptables -A INPUT -p icmp -j REJECT 拒绝其他所有主机ping本机

iptables  -I INPUT   1  -p  icmp -j  ACCEPT  插入规则到第一条 

iptables -A INPUT -s 192.168.233.20 -p icmp -j REJECT 指定20的主机拒绝ping本机

iptables -A INPUT -s  192.168.233.20,192.168.233.30 -p icmp -j DROP 指定多个主机拒绝ping本机

指定端口

iptables -A INPUT -p tcp --dport 22  -j REJECT  拒绝端口22的主机访问本机

iptables -AINPUT -s 192.168.233.20 -p tcp --dport 22 -j REJECT  拒绝ip20主机访问端口22的本机

删除规则

iptables -D INPUT 1

修改规则

iptables -R INPUT 1 -s 192.168.233.30 -p tcp --dport 80 -j REJECT 拒绝30的主机访问端口80的本机

修改链的策略

网络设备

iptables -A INPUT -i ens33 -s 192.168.233.20 -p tcp --dport 80 -j ACCEPT 允许网卡是ens33的20主机访问端口是80的本机

iptables -A INPUT -s 192.168.233.0/24 -p tcp --dport 80 -j REJECT 拒绝整个网段访问本机

一次性对多个端口进行操作

iptables -A INPUT -p tcp --dport 22:80 -j REJECT

-m拓展模块

一次禁止多端口或ip范围或mac地址

iptables -A INPUT -p tcp -m multiport --dport 80,22,21,23,3306 -j REJECT 禁止多端口

iptables -A INPUT -p tcp -m iprange --src-range 192.168.233.20-192.168.233.30  --dport 80 -j REJECT 拒绝20-30的IP访问本机的80端口

--src-range  源地址池

--dst-range 目的地址池

-m multiport --sport 源端口池

-m multiport --dport  目的端口池

-m iprange --src-range  源地址池

-m iprange --dst-range 目的地址池

匹配mac地址

iptables -A INPUT -m mac --mac-source 00:0c:29:94:6d:dd0 -j DROP

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

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

相关文章

实时显示用户输入PySide6实例

如何用 PySide6 实现QLabel 实时显示用户在 QLineEdit 内输入的内容? 示例代码: # QLineEdit 用户输入内容,QLabel 即时显示用户输入训练from PySide6.QtWidgets import (QApplication, QWidget,QLabel, QLineEdit, QVBoxLayout)class MyWi…

Python | Leetcode Python题解之第200题岛屿数量

题目&#xff1a; 题解&#xff1a; class Solution:def dfs(self, grid, r, c):grid[r][c] 0nr, nc len(grid), len(grid[0])for x, y in [(r - 1, c), (r 1, c), (r, c - 1), (r, c 1)]:if 0 < x < nr and 0 < y < nc and grid[x][y] "1":self.d…

喂饭级AI神器!免代码一键绘制图表,文本数据秒变惊艳视觉盛宴!

由于目前的AI生成图表工具存在以下几个方面的问题&#xff1a; 大多AI图表平台是纯英文&#xff0c;对国内用户来说不够友好&#xff1b;部分平台在生成图表前仍需选择图表类型、配置项&#xff0c;操作繁琐&#xff1b;他们仍需一份规整的数据表格&#xff0c;需要人为对数据…

Qt Quick Effect Maker 工具使用介绍

一、介绍 随着 Qt 版本的不断升级,越来越多的功能被加入 Qt,一些新的工具也随之应运而生,Qt Quick Effect Maker 工具是 Qt 6.5 之后才新添加的工具,之前的名字应该是叫做 Qt shader tool 这个模块。 以下是官方的释义:Qt Quick Effect Maker是一个用于为Qt Quick创建自定…

3.PyQt6常用基本控件

目录 常用控件 1.文本类控件 1.QLable标签控件 1.设置标签文本 2.设置标签文本和对齐方式 3.换行显示 4.添加超链接 5.为标签设置图片 6.获取标签文本 2.QLineEdit单行文本控件 3.QTextEdit多行富文本控件 4.QPlainTextEdit纯文本控件 5.QSpinBox整数数字选择控件 …

C++ | Leetcode C++题解之第200题岛屿数量

题目&#xff1a; 题解&#xff1a; class Solution { private:void dfs(vector<vector<char>>& grid, int r, int c) {int nr grid.size();int nc grid[0].size();grid[r][c] 0;if (r - 1 > 0 && grid[r-1][c] 1) dfs(grid, r - 1, c);if (r …

小白上手AIGC-基于PAI-DSW部署Stable Diffusion文生图Lora模型

小白上手AIGC-基于PAI-DSW部署Stable Diffusion文生图Lora模型 前言资源准备开启体验服务创建工作空间 部署服务创建DSW实例安装Diffusers启动WebUI 写在最后 前言 在上一篇博文小白上手AIGC-基于FC部署stable-diffusion 中&#xff0c;说到基于函数计算应用模板部署AIGC文生图…

Java之线程相关应用实现

后台线程 一个进程中只有后台进程运行&#xff0c;该进程将会结束。 新创建的线程默认为前台线程&#xff0c;Java中只要有一个前台线程运行&#xff0c;就不会结束程序&#xff0c;如果只有后台线程运行&#xff0c;程序就会结束&#xff0c;可以在线程对象启动前执行setDae…

工业AIoT竞赛流程

不要点到重置&#xff01;&#xff01;&#xff01;要刷新虚拟机就点重启 xshell连接虚拟机&#xff1a;ssh rootPublic IP 环境构建 vim /etc/hosts 按 i 进入插入模式&#xff0c;加内网ip和主机名&#xff0c;按esc&#xff0c;按 : &#xff0c;按wq 三个虚拟机都这样配 …

HQChart使用教程30-K线图如何对接第3方数据41-分钟K线叠加股票增量更新

HQChart使用教程30-K线图如何对接第3方数据40-日K叠加股票增量更新 叠加股票叠加分钟K线更新Request 字段说明Data.symbol 协议截图返回json数据结构overlaydata HQChart代码地址交流 叠加股票 示例地址:https://jones2000.github.io/HQChart/webhqchart.demo/samples/kline_i…

controller不同的后端路径对应vue前端传递数据发送请求的方式

目录 案例一&#xff1a; 为什么使用post发送请求&#xff0c;参数依旧会被拼接带url上呢&#xff1f;这应该就是param 与data传参的区别。即param传参数参数会被拼接到url后&#xff0c;data会以请求体传递 补充&#xff1a;后端controller 参数上如果没写任何注解&#xff0c…

半夜被慢查询告警吵醒,limit深度分页的坑

分享是最有效的学习方式。 博客&#xff1a;https://blog.ktdaddy.com/ 故事 梅雨季&#xff0c;闷热的夜&#xff0c;令人窒息&#xff0c;窗外一道道闪电划破漆黑的夜幕&#xff0c;小猫塞着耳机听着恐怖小说&#xff0c;辗转反侧&#xff0c;终于睡意来了&#xff0c;然而挨…

50、基于NARX神经网络的磁悬浮建模(matlab)

1、NARX神经网络简介 NARX&#xff08;非线性自回归外部输入&#xff09;神经网络是一种用于非线性建模和预测的神经网络结构。与传统的自回归模型不同&#xff0c;NARX网络可以接收外部输入来影响输出结果&#xff0c;从而更好地捕捉系统的复杂性和非线性特征。 NARX神经网络…

正版软件 | DeskScapes:将您的桌面变成生动的画布

您是否厌倦了静态的桌面背景&#xff1f;Stardock 的 DeskScapes 软件赋予您将任何图片或视频动画化的能力&#xff0c;让您的 Windows 桌面焕发活力。 动画桌面&#xff0c;艺术生活 使用 DeskScapes 您可以将任何静态图片或视频转化为桌面背景。不仅如此&#xff0c;通过 60 …

项目1111

中文显示姓名列和手机号 SELECT contact_name AS 姓名, contact_phone AS 手机号 FROM 2_公司id; 使用explain测试给出的查询语句&#xff0c;显示走了索引查询 EXPLAIN SELECT * FROM 7_订单数量 WHERE countid LIKE e%; 统计用户订单信息&#xff0c;查询所有用户的下单数量…

基于 GD32F450 的Zephyr 的基本测试-编译工程

一、cmake 编译 hello world 测试 打开示例工程 hello world cd ~/zephyrproject/zephyr/samples/hello_world新建 build 目前&#xff0c;用于存放临时文件目录&#xff0c;并进入该目录 mkdir -p build && cd build通过 cmake 指令 生成 gd32f450z 工程的 makefil…

Shell 编程入门

优质博文&#xff1a;IT-BLOG-CN 【1】x.sh文件内容编写&#xff1a; 固定开头&#xff1a;#&#xff01;/bin/sh&#xff1b; 【2】学习的第一个命令就是echo输出的意思&#xff1b; 【3】其实shell脚本也就是在文件中写命令&#xff0c;但是我们要写的是绝对路径&#xff1a…

k8s token加新节点

在 master 节点执行 kubeadm token create --print-join-command得到token和cert&#xff0c;这两个参数在2个小时内可以重复使用&#xff0c;超过以后就得再次生成 kubeadm join apiserver.k8s.com --token mpfjma.4vjjg8flqihor4vt --discovery-token-ca-cert-hash sha…

C++ | Leetcode C++题解之第199题二叉树的右视图

题目&#xff1a; 题解&#xff1a; class Solution { public:vector<int> rightSideView(TreeNode* root) {unordered_map<int, int> rightmostValueAtDepth;int max_depth -1;stack<TreeNode*> nodeStack;stack<int> depthStack;nodeStack.push(ro…

测试开发工程师需要掌握什么技能?

测试开发工程师是软件开发中至关重要的角色之一。他们负责编写、维护和执行自动化测试脚本、开发测试工具和框架&#xff0c;以确保软件的质量和稳定性。为了成为一名优秀的测试开发工程师&#xff0c;你需要掌握以下技能&#xff1a; 1. 编程技能&#xff1a; 作为测试开发工…