小阿轩yx-iptables 防火墙

小阿轩yx-iptables 防火墙

Linux 防火墙基础

体系主要工作在

  • 网络层
  • 针对TCP/IP 数据包实施过滤和限制

属于典型的包过滤防火墙(或者称为网络层防火墙)

体系基于内核编码实现

好处

  • 具有非常稳定的性能
  • 高效率

防火墙两个表示

  • netfilter
  • iptables

区别

  • netfilter:指的是 Linux 内核中实现包过滤防火墙的内部结构,不以程序或文件的形式存在,属于内核态Kernel Space,又称为内核空间)的防火墙功能体系
  • iptables:指的是用来管理 Linux 防火墙的命令程序,通常位于/sbin/iptables 目录下,属于用户态User Space,又称为用户空间)的防火墙管理体系

iptables 的表、链结构

  • 每个规则相当于内核空间的一个容器,根据规则集的不同用途划分为默认的四个表
  • 在每个“容器内包括不同的规则,根据处理数据包的不同时机划分为五种链
  • 而决定是否过滤或处理数据包的各种规则,则是按先后顺序存放在各规则链中
作用
  • 为包过滤机制的实现提供规则(或称为策略)
  • 通过不同的规则告诉 netfilter 对来自某些源、前往某些目的或具有某些协议特征的数据包应该如何处理
规则表

四个不同规则表的名称、包含的链以及用途

  • filter 表:filter 表用来对数据包进行过滤,根据具体的规则要求决定如何处理一个数据包。
  • filter 表对应的内核模块为 iptable_filter,表内包含三个链,即 INPUTFORWARDOUTPUT
  • nat 表:natNetwork Address Translation,网络地址转换)表主要用来修改数据包的 IP 地址、端口号等信息。nat 表对应的内核模块为 iptable_nat,表内包含三个链,即 PREROUTINGPOSTROUTINGOUTPUT
  • mangle 表:mangle 表用来修改数据包的 TOSType Of Service,服务类型)、TTLTime To Live,生存周期),或者为数据包设置 Mark 标记,以实现流量整形、策略路由等高级应用 。mangle 表 对 应 的 内 核 模 块 为 iptable_mangle , 表 内 包 含 五 个 链 , 即 PREROUTINGPOSTROUTINGINPUTOUTPUTFORWARD
  • raw 表:raw 表是自 1.2.9 以后版本的 iptables 新增的表,主要用来决定是否对数据包进行状态跟踪。raw 表对应的内核模块为 iptable_raw,表内包含两个链,即 OUTPUTPREROUTING

(注:mangle表和raw表应用较少)

规则链

五种不同的规则链名称、各自的介入时机

  • INPUT 链:当收到访问防火墙本机地址的数据包(入站)时,应用此链中的规则
  • OUTPUT 链:当防火墙本机向外发送数据包(出站)时,应用此链中的规则
  • FORWARD 链:当接收到需要通过防火墙中转发送给其他地址的数据包(转发)时,应用此链中的规则
  • PREROUTING 链:在对数据包做路由选择之前,应用此链中的规则
  • POSTROUTING 链:在对数据包做路由选择之后,应用此链中的规则

(注:“主机型防火墙”要用的链

  • INPUT
  • FORWARD

针对服务器本机进行保护

“网络型防火墙”要用的链

  • FORWARD
  • PREROUTING
  • POSTROUTING

如使用 Linux 防火墙作为网关服务器,在公司内网与 Internet 之间进行安全控制)

数据包过滤的匹配流程

iptables 管理着四个默认表和五种链,各种防火墙规则依次存放在链中

规则表之间的顺序

raw表→mangle表→nat表→filter表

规则链之间的顺序

  • 入站数据流向:来自外界的数据包到达防火墙后,首先被 PREROUTING 链处理(是否修改数据包地址等),然后进行路由选择(判断该数据包应发往何处);如果数据包的目标地址是防火墙本机(如 Internet 用户访问网关的 Web 服务端口),那么内核将其传递给 INPUT 链进行处理(决定是否允许通过等),通过以后再交给系统上层的应用程序(如 httpd 服务器)进行响应。
  • 转发数据流向:来自外界的数据包到达防火墙后,首先被 PREROUTING 链处理,然后再进行路由选择;如果数据包的目标地址是其他外部地址(如局域网用户通过网关访QQ 服务器),则内核将其传递给 FORWARD 链进行处理(允许转发或拦截、丢弃),最后交给 POSTROUTING 链(是否修改数据包的地址等)进行处理。
  • 出站数据流向:防火墙本机向外部地址发送的数据包(如在防火墙主机中测试公网 DNS 服务时),首先进行路由选择,确定了输出路径后,再经由 OUTPUT 链处理,最后再交给 POSTROUTING 链(是否修改数据包的地址等)进行处理
规则链内部各条防火墙规则之间的顺序

数据包经过每条规则链时依次按以下顺序进行匹配和处理

  • 第一条规则
  • 第二条规则
  • ……

过滤遵循的原则

  • 匹配即停止

编写防火墙规则

iptables 的安装

CentOS 7.3 默认使用 firewalld 防火墙,使用 iptables 防火墙,必须先关闭firewalld 防火墙

[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl disable firewalld

yum 安装 iptables 

[root@localhost ~]# yum -y install iptables

启动 iptables 防火墙并设置开机启动 

[root@localhost ~]# systemctl start iptables
[root@localhost ~]# systemctl enable iptables

在filter表的input链中插入一条规则,拒绝发给本机的使用ICMP协议的数据包 

(注:-I:插入一条规则,要指定在哪一行插入,不指定默认第一行REJECT:拒绝) 

[root@localhost ~]# iptables -t filter -I INPUT -p icmp -j REJECT

 删除此规则

# -D:删除
iptables -t filter -D INPUT -p icmp -j REJECT

添加、查看、删除规则等基本操作

添加新的规则

在filter表INPUT链的末尾添加一条防火墙规则

\\允许tcp的数据包通过
[root@localhost ~]# iptables -t filter -I INPUT -p tcp -j ACCEPT

(注:

  • -A:在末尾追加
  • -I:在开头添加
  • ACCEPT:允许

在filter表INPUT链的添加两条规则,分别位于第一条和第二条(指定位置:-I,大写i)

\\允许udp数据包通过,放到第一条
[root@localhost ~]# iptables -I INPUT -p udp -j ACCEPT
\\允许icmp数据包通过,放到第二条
[root@localhost ~]# iptables -I INPUT 2 -p icmp -j ACCEPT
 查看规则列表

查看filter表INPUT链中的所有规则,并显示规则序号(列出所有规则:-L)

[root@localhost ~]# iptables -L INPUT --line-numbers
或
[root@localhost ~]# iptables -L INPUT --line    # --line:显示行号

以数字形式查看filter表INPUT链中的所有规则(数字形式显示:-n))

[root@localhost ~]# iptables -n -L INPUT
或
[root@localhost ~]# iptables -nL INPUT
[root@localhost ~]# iptables -nL INPUT -t filter --line
删除、清空规则

删除filter表INPUT链中的第三条规则

[root@localhost ~]# iptables -D INPUT 3
[root@localhost ~]# iptables -nL INPUT --line

清空指定链或表中的所有防火墙规则,使用管理选项“-F”

清空filter表INPUT链中所有的规则

[root@localhost ~]# iptables -F INPUT
[root@localhost ~]# iptables -nL INPUT --line

分别清空filter表,nat表,mangle表中所有链的规则

\\等同iptables -t filter -F
[root@localhost ~]# iptables -F
[root@localhost ~]# iptables -t nat -F
[root@localhost ~]# iptables -t mangle -F 
设置默认策略

(找不到匹配项时,就是用该默认规则)

\\找不到转发规则,丢弃
[root@localhost ~]# iptables -t filter -P FORWARD DROP
\\出站数据包找不到规则,允许通过
[root@localhost ~]# iptables -t filter -P OUTPUT ACCEPT

规则的匹配条件

通用匹配

常规匹配(包括协议、地址、网络接口)可独立使用

协议匹配

\\丢弃icmp包
[root@localhost ~]# iptables -I INPUT -p icmp -j DROP
\\允许转发除icmp之外的其他包
[root@localhost ~]# iptables -A FORWARD ! -p icmp -j ACCEPT

地址匹配

[root@localhost ~]# iptables -A FORWARD -s 192.168.10.202 -j REJECT
[root@localhost ~]# iptables -A FORWARD -s 192.168.10.0 -j ACCEPT

 当遇到小规模的网络攻击或扫描时,应封锁IP地址

[root@localhost ~]# iptables -I INPUT -s 10.20.30.0/24 -j DROP
[root@localhost ~]# iptables -I FORWARD -s 10.20.30.0/24 -j DROP

网络接口匹配 

要丢弃从外网卡接口(eth1)访问防火墙本机且源地址为私有地址的数据包

[root@localhost ~]# iptables -A INPUT -i eth1 -s 10.0.0.0/8 -j DROP
[root@localhost ~]# iptables -A INPUT -i eth1 -s 172.16.0.0/12 -j DROP
[root@localhost ~]# iptables -A INPUT -i eth1 -s 192.168.0.0/16 -j DROP

隐含匹配

要以协议匹配作为前提条件,不可独立使用(带有子条件)

端口匹配

允许为网段192.168.4.0/24转发DNS查询数据包

[root@localhost ~]# iptables -A FORWARD -s 192.168.4.0/24 -p udp --dport 53 -j ACCEPT
[root@localhost ~]# iptables -A FORWARD -d 192.168.4.0/24 -p udp --dport 53 -j ACCEPT

(注:隐含匹配需要有一个匹配的前提条件,这个前提条件就是隐含要匹配的内容。上面案例中“ -p udp --dport”就是隐含的子条件,意思是,只匹配一个端口号还不行,还要指定这个端口号是UDP的端口号,并且是目标端口号)

搭建vsftpd服务时需要开放20、21端口,以及用于被动模式的端口范围为24500-24600

[root@localhost ~]# iptables -A INPUT -p tcp --dport 20:21 -j ACCEPT
[root@localhost ~]# iptables -A INPUT -p tcp --dport 24500:24600 -j ACCEPT

ICMP 类型匹配

若要禁止从其他主机ping本机,但是允许本机ping其他主机 iptables -F

[root@localhost ~]# iptables -A INPUT -p icmp --icmp-type 8 -j DROP
[root@localhost ~]# iptables -A INPUT -p icmp --icmp-type 0 -j ACCEPT
[root@localhost ~]# iptables -A INPUT -p icmp --icmp-type 3 -j ACCEPT
[root@localhost ~]# iptables -A INPUT -p icmp -j DROP

查看icmp协议类型的帮助信息

[root@localhost ~]# iptables -p icmp -h

 显式匹配

多端口匹配(multiport用于多端口)

# 允许本机开放25、80、110、143端口,以提供电子邮件服务
[root@localhost ~]# iptables -A INPUT -p tcp -m multiport --dport 25,80,110,143 -j ACCEPT

IP范围匹配(iprange用于ip范围)

# 禁止转发源IP地址位于192.168.4.21-192.168.4.28之间的TCP数据包
[root@localhost ~]# iptables -A FORWARD -p tcp -m iprange --src-range 192.168.4.21-192.168.4.28 -j ACCEPT

MAC地址匹配

# 根据MAC地址封锁主机,禁止其访问本机的任何应用
[root@localhost ~]# iptables -A INPUT -m mac --mac-source 00:0C:29:C9:3D:F7 -j DROP

状态匹配

# 要禁止转发与正常TCP连接无关的非"--syn"请求的数据包,如伪造的网络攻击数据包
[root@localhost ~]# iptables -A FORWARD -m state --state NEW -p tcp ! --syn -j DROP

 只开放本机的WEB服务(80端口),但对发给本机的TCP应答数据包予以放行,其他入站数据包均丢弃,对应的入站规则为(ESTABLISHED:已建立的)

[root@localhost ~]# iptables -I INPUT -p tcp -m multiport --dport 80 -j ACCEPT
[root@localhost ~]# iptables -I INPUT -p tcp -m state --state ESTABLISHED -j ACCEPT
[root@localhost ~]# iptables -P INPUT DROP

基本语法、数据包控制类型 

使用 iptables 命令管理、编写防火墙规则时,基本的命令格式

iptables [-t 表名] 管理选项 [链名] [匹配条件] [-j 控制类型]

 (注:表名、链名用来指定 iptables 命令所操作的表和链,未指定表名时将默认使用 filter 表;管理选项表示 iptables 规则的操作方式)

iptables 防火墙体系中常用的几种控制类型
  • ACCEPT:允许数据包通过
  • DROP:直接丢弃数据包,不给出任何回应信息
  • REJECT:拒绝数据包通过,必要时会给数据发送端一个响应信息
  • LOG:在/var/log/messages 文件中记录日志信息,然后将数据包传递给下一条规则

(注:防火墙规则的“匹配即停止”对于 LOG 操作来说是一个特例,因为 LOG 只是一种辅助动作,并没有真正处理数据包)

规则的匹配条件设置

(注:有决定性作用,避免防火墙误杀)

  • 清晰
  • 准确

同一条防火墙规则

  • 可指定多个匹配条件
  • 条件必须都满足规则才会生效

匹配条件设置包括三大类

  • 通用匹配
  • 隐含匹配
  • 显式匹配

通用匹配

也称为常规匹配

好处

  • 可以独立使用
  • 不依赖于其它条件或扩展模块

常见的通用匹配包括

  • 协议匹配
  • 地址匹配
  • 网络接口

协议匹配

  • 使用 -p 协议名形式指定,用来检查数据包所使用的网路协议(--protocol)

地址匹配

使用 -s 源地址或 -d 目标地址形式指定,用来检查数据包的源地址(--source)或目标地址(--destination)

可以接受的有

(注:不建议使用主机名、域名地址(解析过程会硬性效率))

  • IP地址
  • 网段地址

网路接口匹配

使用 -i 接口和 -o 接口的形式,用来检查数据包从防火墙的哪一个接口进入或发出

分别对应

  • 入站网卡(--in-interface)
  • 出站网卡(--out-interface)

隐含匹配

  • 要以指定的协议匹配作为前提条件,相当于子条件,因此无法独立使用
  • 其对应的功能由 iptables 在需要时自动(隐含)载入内核

常见的隐含匹配包括

  • 端口匹配
  • TCP 标记匹配
  • ICMP 类型匹配

端口匹配

使用

  • --sport 源端口
  • --dport 目标端口形式

协议

  • TCP或UDP,用来检查数据包的源端口(--source-port)或目标端口(--destination-port)
  • 单个端口号或者以冒号“:”分隔的端口范围都是可以接受的

(注:不连续的多个端口不能采用这种方式)

ICMP类型匹配

  • 0 响应应答(ECHO-REPLY)应答报文
  • 3 不可到达 (目标主机不可达)
  • 4 源抑制
  • 5 重定向
  • 8 响应请求(ECHO-REQUEST)请求报文
  • 11 超时
  • 12 参数失灵
  • 13 时间戳请求
  • 14 时间戳应答
  • 15 信息请求(*已作废)
  • 16 信息应答(*已作废)
  • 17 地址掩码请求
  • 18 地址掩码应答

使用 --icmp-type ICMP 类型的形式

针对协议为

  • ICMP用来检查 ICMP 数据包的类型(--icmp-type

ICMP 类型表示使用

  • 字符串
  • 数字代码

显式匹配

  • 要求有额外的内核模块提供支持
  • 必须手动以“-m 模块名称的形式调用相应的模块方可设置匹配条件

添加带显式匹配条件的规则以后查看相关的内核扩展模块

lsmod | grep xt_
常见的显式匹配包括
  • 多端口匹配
  • IP 范围匹配
  • MAC 地址匹配
  • 状态匹配

多端口匹配

(注:多个端口之间以逗号进行分隔)

使用形式
  • “-m multiport --dports 端口列表
  • “-m multiport --sports 端口列表”
用来检查数据包的
  • 源端口
  • 目标端口

IP 范围匹配

(注:其中 IP 范围采用“起始地址-结束地址” 的形式表示)

使用表示
  • “-m iprange --src-range IP 范围
  • “-m iprange --dst-range IP 范围”
用来检查数据包的
  • 源地址
  • 目标地址

MAC 地址匹配

(注:由于 MAC 地址本身的局限性,此类匹配条件一般只适用于内部网络)

使用形式
  • “-m mac --mac-source MAC 地址”
用来检查数据包的
  • MAC 地址

状态匹配

使用形式
  • “-m state --state 连接状态

基于 iptables 的状态跟踪机制用来检查数据包的连接状态(State

常见的连接状态包括

  • NEW(与任何连接无关的)
  • ESTABLISHED(响应请求或者已建立连接的)
  • RELATED(与已有连接有相关性的
小阿轩yx-iptables 防火墙

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

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

相关文章

优化扩散模型中的采样计划

在生成模型领域,扩散模型(Diffusion Models, DMs)因其卓越的生成质量而成为最新的技术趋势。但这些模型的一个关键缺点是它们的采样速度较慢,需要通过大型神经网络进行多次顺序函数评估。扩散模型通过一个称为采样计划的离散噪声水…

Golang | Leetcode Golang题解之第130题被围绕的区域

题目&#xff1a; 题解&#xff1a; var (dx [4]int{1, -1, 0, 0}dy [4]int{0, 0, 1, -1} ) func solve(board [][]byte) {if len(board) 0 || len(board[0]) 0 {return}n, m : len(board), len(board[0])queue : [][]int{}for i : 0; i < n; i {if board[i][0] O {q…

实验八、地址解析协议《计算机网络》

水逆退散&#xff0c;学业进步&#xff0c;祝我们都好&#xff0c;不止在夏天。 目录 一、实验目的 二、实验内容 &#xff08;1&#xff09;预备知识 &#xff08;2&#xff09;实验步骤 三、实验小结 一、实验目的 完成本练习之后&#xff0c;您应该能够确定给定 IP 地…

【python】python商业客户流失数据模型训练分析可视化(源码+数据集+课程论文)【独一无二】

&#x1f449;博__主&#x1f448;&#xff1a;米码收割机 &#x1f449;技__能&#x1f448;&#xff1a;C/Python语言 &#x1f449;公众号&#x1f448;&#xff1a;测试开发自动化【获取源码商业合作】 &#x1f449;荣__誉&#x1f448;&#xff1a;阿里云博客专家博主、5…

论文复现:Track to Detect and Segment: An Online Multi-Object Tracker

论文下载链接&#xff1a;链接 简单介绍&#xff1a;大多数在线多目标跟踪器在神经网络中独立执行目标检测&#xff0c;无需任何跟踪输入。在本文中提出了一种新的在线联合检测和跟踪模型TraDeS&#xff08;TRAck to DEtect and Segment&#xff09;&#xff0c;利用跟踪线索…

基于协调过滤算法商品推荐系统的设计#计算机毕业设计

基于协调过滤算法商品推荐系统的设计#计算机毕业设计 管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;商品管理&#xff0c;论坛管理&#xff0c;商品资讯管理 前台账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;论坛&#xf…

MySQL-二进制部署-配置systemctl管理脚本(一)

一 二进制部署MySQL 参考二进制部署mysql 二 MySQL启动&关闭命令 mysqld_sqfe 是 mysqld 父进程&#xff0c;用那个启动都可以 ##启动命令 /usr/local/mysql/bin/mysqld_safe --defaults-file/data/mysql/conf/my.cnf & /usr/local/mysql/bin/mysqld --defaults-fil…

数字校园的优势有哪些

数字化时代下&#xff0c;数字校园已成为教育领域一股显著趋势。数字校园旨在借助信息技术工具对传统校园进行改造&#xff0c;提供全新的教学、管理和服务方式。那么&#xff0c;数字校园究竟具备何种优势&#xff1f;现从三个方面为您详细介绍。 首先&#xff0c;数字校园为教…

STM32项目分享:智能家居(机智云)系统

目录 一、前言 二、项目简介 1.功能详解 2.主要器件 三、原理图设计 四、PCB硬件设计 1.PCB图 2.PCB板及元器件图 五、程序设计 六、实验效果 七、资料内容 项目分享 一、前言 项目成品图片&#xff1a; 哔哩哔哩视频链接&#xff1a; https://www.bilibili.c…

如何使用ERC-20与Sui Coin标准创建Token

区块链使用tokens作为传递价值的基本手段。它们可以是区块链的原生交换单位&#xff0c;也可以是应用中的交换单位&#xff0c;甚至可以在游戏世界中用作货币。tokens还支持Sui和其他区块链上的强大DeFi活动。 以太坊使用ERC-20标准来创建tokens&#xff0c;借用智能合约&…

算法训练营day04

一、24. 两两交换链表中的节点 题目链接&#xff1a;https://leetcode.cn/problems/swap-nodes-in-pairs/description/ 文章讲解&#xff1a;https://programmercarl.com/0024.%E4%B8%A4%E4%B8%A4%E4%BA%A4%E6%8D%A2%E9%93%BE%E8%A1%A8%E4%B8%AD%E7%9A%84%E8%8A%82%E7%82%B9.h…

国产操作系统上Vim的详解03--使用Vundle插件管理器来安装和使用插件 _ 统信 _ 麒麟 _ 中科方德

原文链接&#xff1a;国产操作系统上Vim的详解03–使用Vundle插件管理器来安装和使用插件 | 统信 | 麒麟 | 中科方德 Hello&#xff0c;大家好啊&#xff01;今天给大家带来一篇在国产操作系统上使用Vundle插件管理器来安装和使用Vim插件的详解文章。Vundle是Vim的一款强大的插…

【数据可视化系列】使用Python和Seaborn绘制相关性热力图

热力图&#xff08;Heatmap&#xff09;是一种数据可视化工具&#xff0c;它通过使用颜色的深浅来展示数据矩阵中数值的大小或密度。在热力图中&#xff0c;每种颜色的深浅代表数据的一个特定值或值的范围&#xff0c;通常使用红色、黄色和绿色等颜色渐变来表示数据的热度&…

【TB作品】MSP430F5529 单片机,数字时钟设计与实现,整点时通过蜂鸣器播放音乐进行报时

基于单片机的数字时钟设计与实现 作品名称 基于MSP430单片机的OLED显示数字时钟 作品功能 本作品实现了一个具有时间显示和整点报时功能的数字时钟。通过OLED屏幕显示当前时间&#xff0c;用户可以通过按键设置时间&#xff0c;并在整点时通过蜂鸣器播放音乐进行报时。 作…

MySQL JDBC编程

前言&#x1f440;~ 上一章我们介绍了数据库的索引与事务&#xff0c;本章节我们介绍JDBC编程&#xff0c;使用java代码和数据库打交道 如果各位对文章的内容感兴趣的话&#xff0c;请点点小赞&#xff0c;关注一手不迷路&#xff0c;如果内容有什么问题的话&#xff0c;欢迎各…

双指针算法题笔记

1、移动零 class Solution {public void moveZeroes(int[] nums) {int left0;int right0;for(right0;right<nums.length;right){if(nums[right]!0){if(nums[left]0){int tempnums[left];nums[left]nums[right];nums[right]temp;}left;}}} } 两个指针将一个数组划分三个部分&…

使用OpenPCDet训练与测试多传感器融合模型BEVFusion,OPenPCdet代码架构介绍

引言 在自动驾驶领域&#xff0c;多传感器融合技术是一种常见的方法&#xff0c;用于提高感知系统的准确性和鲁棒性。其中&#xff0c;BevFusion是一种流行的融合方法&#xff0c;可以将来自不同传感器的数据进行融合&#xff0c;生成具有丰富信息的鸟瞰图&#xff08;BEV&…

探索800G数据中心的高速布线解决方案

随着技术的快速进步&#xff0c;数据中心正以前所未有的速度迅速发展。虽然100G和400G数据中心已经普及&#xff0c;但800G数据中心正逐渐流行并展现出增长趋势。由于对高速数据传输的需求呈指数级增长&#xff0c;因此需要高效、可靠的线缆连接解决方案。本文将介绍800G数据中…

Cell-在十字花科植物中年生和多次开花多年生开花行为的互相转化-文献精读21

Reciprocal conversion between annual and polycarpic perennial flowering behavior in the Brassicaceae 在十字花科植物中年生和多次开花多年生开花行为的互相转化 亮点 喜马拉雅须弥芥 和 内华达糖芥 是两个多年生植物模型 MADS-box 基因的剂量效应决定了一年生、二年生…

[图解]企业应用架构模式2024新译本讲解11-领域模型4

1 00:00:00,160 --> 00:00:01,870 好&#xff0c;到这里的话 2 00:00:02,620 --> 00:00:05,060 文字处理器的产品对象就生成了 3 00:00:06,880 --> 00:00:09,180 同样下面就是电子表格 4 00:00:10,490 --> 00:00:11,480 电子表格也同样的 5 00:00:11,490 -->…