当前位置: 首页 > news >正文

iptables防火墙

文章目录

  • 一.linux防火墙基础
    • 1.linux 包过滤防火墙概述
      • 1.1netfilter
      • 1.2 iptables
    • 2.包过滤的工作层次
      • 2.1 通信的五元素和四元素
    • 3.iptables 的表、链结构
      • 3.1 规则链
      • 3.2 默认包括5种规则链
      • 3.3 规则表
      • 3.4 默认包括4个规则表
  • 二.数据包过滤的匹配流程
    • 1.规则表之间的顺序
    • 2.规则链之间的顺序
    • 3.规则链内的匹配顺序
    • 4.匹配流程示意图
    • 5.转换
  • 三.编写防火墙规则
    • 1.基本语法
      • 1.1 总结
      • 1.2 管理选项
    • 2.数据包的常见控制类型
    • 3.管理选项
    • 4.匹配的条件
  • 四.添加、查看、删除规则
    • 1.查看规则
    • 2.添加规则
    • 3.删除规则
    • 4.通用匹配
    • 5.隐藏扩展模块
    • 6.显示匹配
    • 7.IP范围匹配
    • 8.MAC匹配

一.linux防火墙基础

1.linux 包过滤防火墙概述

1.1netfilter

(1)位于Linux内核中的包过滤功能体系

(2)称为Linux防火墙的“内核态”

1.2 iptables

(1)位于/sbin/iptables,用来管理防火墙规则的工具

(2)称为Linux防火墙的“用户态”

2.包过滤的工作层次

(1)主要是网络层,针对IP数据包

(2)体现在对包内的IP地址、端口等信息的处理上

2.1 通信的五元素和四元素

五元素:源IP、目标IP、源端口、目标端口、协议

四元素:源IP、目标IP、源端口、目标端口

3.iptables 的表、链结构

3.1 规则链

(1)规则的作用:对数据包进行过滤或处理

(2)链的作用:容纳各种防火墙规则

(3)链的分类依据:处理数据包的不同时机

3.2 默认包括5种规则链

(1)INPUT:处理入站数据包

(2)OUTPUT:处理出站数据包

(3)FORWARD:处理转发数据包

(4)POSTROUTING链:在进行路由选择后处理数据包

(5)PREROUTING链:在进行路由选择前处理数据包

3.3 规则表

(1)表的作用:容纳各种规则链

(2)表的划分依据:防火墙规则的作用相似

3.4 默认包括4个规则表

(1)raw表:确定是否对该数据包进行状态跟踪

(2)mangle表:为数据包设置标记

(3)nat表:修改数据包中的源、目标IP地址或端口

(4)filter表:确定是否放行该数据包(过滤)

二.数据包过滤的匹配流程

1.规则表之间的顺序

raw——mangle——nat——filter

按照表的顺序,依次查当前表中的链,看链中是否有匹配规则,匹配到立即停止,若找不到匹配规则,则会使用链的默认策略处理。

表里面有链,链里面匹配规则

2.规则链之间的顺序

(1)入站: PREROUTING——INPUT

(2)出站: OUTPUT——POSTROUTING

(3)转发: PREROUTING——FORWARD——POSTROUTING

3.规则链内的匹配顺序

(1)按顺序依次检查,匹配即停止 (LOG策略例外)

(2)若找不到相匹配的规则,则按该链的默认策略处理

4.匹配流程示意图

按照顺序查从raw表开始到mangle——nat表——(如没有策略到)filter表(input 让不让数据进来)——路由转发——一般不会对出数据进行限制——raw——mangle——nat——filter看是否有策略——nat(对数据进行地址转换)——出去,送达(不转换也送达)

5.转换

(1)nat PREROUTING:目的地址转换。要把别人的公网ip换成你们内部的ip
(2)nat POSTROUTING:源地址转换,要把你的内网地址转换成公网地址才能上网,一般用于对外发布内网的服务(内网访问外网)

三.编写防火墙规则

1.基本语法

1.1 总结

四表五链

规则表的作用:容纳各种规则链

规则链的作用: 容纳各种防火墙规则

总:表里有链,链里有规则

1.2 管理选项

表示iptables规则的操作方式,如插入、增加、删除、查看等;匹配条件:用来指定要处理的数据包的特征,不符合指定条件的数据包将不会处理:控制类型指的是数据包的处理方式,如允许、拒绝、丢弃等。

注:

不指定表名时,默认指filter表不指定链名时,默认指表内的所有链,一般不这么操作除非设置链的默认策略,否则必须指定匹配条件选项、链名、控制类型使用大写字母,其余均为小写

2.数据包的常见控制类型

(1)ACCEPT:允许数据包通过。

(2)DROP:直接丢弃数据包,不给出任何回 应信息

(3)REJECT:拒绝数据包通过,必要时会给数据发送端一个响应信息。

(4)SNAT:修改数据包的源地址

(5)DNAT:修改数据包的目的地址

3.管理选项

选项注释示例
-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 (操作)
-L查看iptables -t nat -L (查看)
-n所有字段以数字形式显示(比如任意ip地址是0.0.0.0而不是anywhere,比如显示协议端口号而不是服务名)
-v查看时显示更详细信息,常跟-L一起使用 (查看)
–line-numbers规则带编号iptables -t nat -L -n --line-number iptables -t nat -L --line-number
选项注释示例
-F清除链中所有规则iptables -F (操作)
-X清空自定义链的规则,不影响其他链iptables -X
-Z清空链的计数器(匹配到的数据包的大小和总和)iptables -Z
-S看链的所有规则或者某个链的规则/某个具体规则后面跟编号

4.匹配的条件

条件作用
-p指定要匹配的数据包的协议类型
-s指定要匹配的数据包的源IP地址
-d指定要匹配的数据包的目的IP地址
-i指定数据包进入本机的网络接口
-o指定数据包离开本机做使用的网络接口
–sport指定源端口号
–dport指定目的端口号

四.添加、查看、删除规则

1.查看规则

粗略查看默认规则:

iptables   -L

数字化的形式查看规则:

iptables   -nL

指定表查看:

iptables -t filter  -vnL

查看指定表中的指定链

iptables -t filter  -vnL  INPUT ——————不指定表,默认就是filter

2.添加规则

添加规则的两个常用选项:
-A,在末尾追加规则。
-I,在指定位置前插入规则。如果不指定,则在首行插入
添加新的防火墙规则时,使用管理选项“-A”、“-I”,前者用来追加规则,后者用来插入规则。

iptables -F————————清空规则(如果不写表名和链名,默认清空filter表中所有链里的所有规则)
 iptables -t filter -A INPUT -p icmp -j REJECT  ——————————禁止所有主机ping本机
 iptables -t filter -A INPUT -p icmp -j ACCEPT————————————允许ping通,-A在前一条规则后添加

#匹配到了就不在匹配后面的规则

iptables -t filter -I INPUT 1 -p icmp -j ACCEPT ——————————指定序号插入,插入到第一条

#即时生效

 iptables -t filter -A INPUT -p tcp -j REJECT ——————————禁止任何主机tcp
iptables -I INPUT 1 -p udp -j ACCEPT——————允许任何主机udp
 iptables  -nL  --line-number  #查看行规则的位置

拒绝某一台主机,其他的可以:

iptables -t filter -A INPUT -s 192.168.198.12 -p icmp -j REJECT

拒绝多台主机:

iptables -t filter -A INPUT -s 192.168.198.12,192.168.198.13 -p icmp -j REJECT

不允许11的数据包出去,其他的就都ping不通了

 iptables -t filter -A OUTPUT -s 192.168.198.11 -p icmp -j REJECT

指定端口:

iptables -t filter -A INPUT -p tcp --dport 22 -j REJECT
注:协议在前,指定端口号在后,否则识别不了端口,无法匹配就会报错!
iptables -t filter -A INPUT -s 192.168.198.12 -p tcp --dport 80 -j REJECT
指定IP地址的服务端口拒绝

3.删除规则

D删除 :

根据序号删除内容

iptables -D INPUT 1——————————删除指定的INPUT链中的第一条规则

内容匹配删除(有两个相同的则作用为去重) 如果有两个重复的规则,则删除序号较小的

 iptables -D INPUT -p icmp  -j REJECT——————删除序号小的

4.通用匹配

网络协议、IP地址、网络接口等条件。
协议匹配: -p协议名
地址匹配: -s 源地址、-d目的地址
#可以是IP、网段、域名、空(任何地址)
接口匹配: -i入站网卡、-o出站网卡
感叹号”!”表示取反

网络协议

iptables -P INPUT DROP ————其他的服务不受影响,这个时候,把策略清空,所有的协议都将被DROP
iptables -F ————这时只能进虚拟机重启

IP地址

iptables -A INPUT -s 192.168.198.12 -j DROP——————————禁止22的数据进入

网络接口:

iptables -I INPUT 1 -i ens33 -s 192.168.198.0/24 -j DROP————————禁止指定的网络设备名称ens33的所

怎么使整个网段不能用指定的端口

 iptables -t filter -A INPUT -s 192.168.198.0/24 -p tcp --dport 80 -j REJECT——————————禁止整个网段访问80端口

5.隐藏扩展模块

iptables在使用-p 指定协议时,若指明特定协议后就无须再使用-m指明扩展模块的扩展机制。
例如若已经指明是 -p tcp协议则使用–dport及–sport等tcp模块内容时即可省略-m tcp。

多端口隐藏扩展匹配

 iptables -A INPUT -p tcp --dport 22:80 -j REJECT ——————————禁止整个网段访问22和80端口注:小的数字写在前面,大的写在后面

6.显示匹配

多端口显示扩展匹配

 iptables -A INPUT -p tcp -m multiport --dport 80,22,21,20,53 -j REJECT
多端口匹配,一次性禁止多个tcp网络协议的端口匹配规则

7.IP范围匹配

-m iprange --src-range 源IP范围
-m iprange --dst-range 目的IP范围

iptables -A INPUT -p icmp -m iprange --src-range 192.168.198.20-192.168.198.30 -j REJECT——————禁止网段内的ip地址ping主机

8.MAC匹配

 iptables -A INPUT -m mac --mac-source 00:0c:29:23:65:98 -j DROP

相关文章:

iptables防火墙

文章目录 一.linux防火墙基础1.linux 包过滤防火墙概述1.1netfilter1.2 iptables 2.包过滤的工作层次2.1 通信的五元素和四元素 3.iptables 的表、链结构3.1 规则链3.2 默认包括5种规则链3.3 规则表3.4 默认包括4个规则表 二.数据包过滤的匹配流程1.规则表之间的顺序2.规则链之…...

properties、yaml作为配置文件的特点

说明:在软件开发中,经常需要把一些配置写在文件中,如数据库配置、MyBatis配置等。这样,后续如果数据库参数有改动,就可以避免直接对代码做修改,只要修改配置文件中关于数据库的配置。关于配置文件的选择&am…...

JavaSE-03 【流程控制语句】

文章目录 JavaSE-03 【流程控制语句】第一章 流程控制1.1 流程概述1.2 顺序结构 第二章 判断语句2.1 判断语句---if2.2 判断语句---if...else2.3 判断语句---if...else if ... else 第三章 选择语句3.1 选择语句--switch3.2 case的穿透性 第四章 循环语句4.1 循环概述4.2 循环语…...

笔记本电脑的BIOS是怎么保护安全的?

随着攻防技术的不断演进,像BIOS攻击、高级网络代码攻击等手段层出不穷,“受害者”也不仅限于企业级服务器、存储,很多魔爪也开始伸向了拥有商业机密数据的PC。 BIOS是Basic Input/Output System(基本输入/输出系统)的…...

Xubuntu之将rm删除内容移至回收站(一百七十七)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生…...

STM32F407实现1588v2(ptpd)

硬件: STM32F407ZGT6开发板 软件: VSCode arm-none-eabi-gcc openOCD st-link 在github搜到一个在NUCLEO-F429ZI开发板上移植ptpd的example,因为和F407差别很小,所以就打算用这个demo移植到手头的开发板上。因为目前只需要…...

架构师如何找到自己的商业模式

作为一个架构师,必须要在有限的资源下最大化架构活动所带来的商业价值。对于任何一个架构活动而言,架构师的可用资源,包括商业成本、研发成本、时间成本、迁移成本等等,都是非常有限的。但架构活动就是要在这些限制条件之下&#…...

SQLServer2022安装(Windows),已验证

一、SQLServer2022下载 1、官网下载地址 SQL Server 下载 | Microsoft 2、下载安装包 2.1、选择Developer版本,立即下载。 2.2、打开下载文件夹,双击运行SQL2022-SSEI-Dev.exe 尝试运行SQL2022-SSEI-Dev.exe,会收到以下信息:“…...

facenet, dlib人脸识别,人体检测,云数据库mysql,QQ邮箱,手机验证码,语音播报

目录 部分代码展示: 录入部分 识别部分​编辑 活体检测部分​编辑 同步到云数据库MySQL 其他操作 部分图片展示: 完整代码加ui链接: 涉及到的一些知识点的文章 部分代码展示: 录入部分 识别部分 活体检测部分 同步到云数…...

Spring Boot 面试题——定时任务

目录 1.什么是 cron 表达式?如何使用?2.Scheduled 注解有什么作用?3.介绍一下 spring-boot-starter-quartz。4.在 Spring Boot 中如何实现定时任务?4.1.使用 Schedule 注解4.2.Quartz 框架 1.什么是 cron 表达式?如何使…...

总建面64万平,配3所幼儿园+54班九年制学校,坪山江岭竹元规划

近日,坪山区城市更新和土地整备局发布,关于《坪山区马峦街道江岭竹元片区城市更新单元规划》已通过深圳市城市规划委员会法定图则委员会审批。现予以公告。 项目位于坪山区马峦街道,南邻南坪快速路,北邻比亚迪路,东西两…...

python3 爬虫相关学习7:使用 BeautifulSoup下载网页图片到本地文件夹

目录 1 一个爬图片pic的代码的例子 1.1 学习的原文章 1.2 原始代码的问题总结 问题1 问题2 问题3 其他问题 1.3 原始代码 2 直接在cmd里 python运行报错 和 处理 2.1 运行报错 2.2 报错原因: 没有提前安装这个bs4 模块 2.3 如何提前知道我的python环境…...

windows平台python脚本执行环境搭建笔记

1.python脚本环境下载 这里是原始发布源: https://www.python.org/downloads/release/python-3114/https://www.python.org/downloads/release/python-3114/安装时记得添加进系统path,这样你可以随时调用python环境。 2.扩展模块的安装 step1.找到py…...

MyBatis的动态SQL之OGNL(Object-Graph Navigation Language)表达式以及各种标签的用法

MyBatis的动态SQL 1、if标签的用法2、choose标签的用法3、where标签4、set标签5、trim的用法6、foreach标签7、bind标签 使用过JDBC或者是其他的ORM框架的开发者都知道,在很多操作中都需要去根据具体的条件进行SQL语句的拼接,并且在有些时候一些标点符号…...

基于Java+Springboot+Vue的二次元商城网站设计与实现

博主介绍:✌擅长Java、微信小程序、Python、Android等,专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇🏻 不然下次找不到哟 Java项目精品实战案…...

MyBatis操作数据库实现

说明:MyBatis是作用于三层架构开发,数据访问层(Data Access Object)的框架,用于访问数据库,对数据进行操作。 一、环境搭建 首先,创建一个SpringBoot模块,然后把MyBatis的环境搭建…...

Git GitLab 使用及规范

Git 基本操作 Git安装配置及基本使用 从官网下载安装包,手动完成安装。打开Git Bash命令行工具,执行命令ssh-keygen -t rsa -C Email-Addresss生成一个密钥对。登录到GitLab,点击右上角你的用户头像,点击Edit Profile settings&…...

【SpringCloud——Sentinel】

一、什么是雪崩? 微服务调用链路中的某个服务发生故障,引起整个链路中的所有微服务都不可用,这就是雪崩。 二、解决雪崩问题的常见措施 1、超时处理 设定超时时间,请求超过一定时间没有响应就返回错误信息,不会无休…...

面试专题:计算机网络常见面试点总结

socket、tcp、udp、http 的认识及区别 socket、tcp、udp、http 的认识及区别​ 一、先来一个讲TCP、UDP和HTTP关系的 1、TCP/IP是个协议组,可分为三个层次:网络层、传输层和应用层。 在网络层有IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议。 在传…...

PageHelper失效问题

问题出现记录: 修改代码后,出现分页失效问题,原本的代码再设置了 PageHelper.startPage(pageNum, pageSize);后只有一个mysql查询,我在原本的业务查询前,新增了其他的Mysql查询,导致原需要分页的查询失效 …...

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明:假设每台服务器已…...

使用VSCode开发Django指南

使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架,专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用,其中包含三个使用通用基本模板的页面。在此…...

.Net框架,除了EF还有很多很多......

文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...

遍历 Map 类型集合的方法汇总

1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...

家政维修平台实战20:权限设计

目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系,主要是分成几个表,用户表我们是记录用户的基础信息,包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题,不同的角色&#xf…...

Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器

第一章 引言:语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域,文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量,支撑着搜索引擎、推荐系统、…...

【开发技术】.Net使用FFmpeg视频特定帧上绘制内容

目录 一、目的 二、解决方案 2.1 什么是FFmpeg 2.2 FFmpeg主要功能 2.3 使用Xabe.FFmpeg调用FFmpeg功能 2.4 使用 FFmpeg 的 drawbox 滤镜来绘制 ROI 三、总结 一、目的 当前市场上有很多目标检测智能识别的相关算法,当前调用一个医疗行业的AI识别算法后返回…...

dify打造数据可视化图表

一、概述 在日常工作和学习中,我们经常需要和数据打交道。无论是分析报告、项目展示,还是简单的数据洞察,一个清晰直观的图表,往往能胜过千言万语。 一款能让数据可视化变得超级简单的 MCP Server,由蚂蚁集团 AntV 团队…...

技术栈RabbitMq的介绍和使用

目录 1. 什么是消息队列?2. 消息队列的优点3. RabbitMQ 消息队列概述4. RabbitMQ 安装5. Exchange 四种类型5.1 direct 精准匹配5.2 fanout 广播5.3 topic 正则匹配 6. RabbitMQ 队列模式6.1 简单队列模式6.2 工作队列模式6.3 发布/订阅模式6.4 路由模式6.5 主题模式…...

通过 Ansible 在 Windows 2022 上安装 IIS Web 服务器

拓扑结构 这是一个用于通过 Ansible 部署 IIS Web 服务器的实验室拓扑。 前提条件: 在被管理的节点上安装WinRm 准备一张自签名的证书 开放防火墙入站tcp 5985 5986端口 准备自签名证书 PS C:\Users\azureuser> $cert New-SelfSignedCertificate -DnsName &…...