57、深入探究 Linux 系统安全技术

深入探究 Linux 系统安全技术

在当今数字化时代,Linux 系统的安全性至关重要。它广泛应用于各种服务器和网络环境中,保护着大量的敏感信息。因此,掌握 Linux 系统的安全技术,对于保障系统的稳定运行和数据安全至关重要。本文将详细介绍 Linux 系统安全的多个方面,包括用户账户监控、文件系统监测、病毒和根kit检测以及入侵检测等。

1. 查看启动消息

若要查看启动消息,可先列出所有系统启动的启动 ID,再启动你感兴趣的特定启动实例。以下是查看启动 ID 并显示所选启动 ID 启动消息的示例:

$ journalctl –list-boots

示例输出如下:

 -11 24f2850c6b4a42d1ae44945d6c088393 Fri 2020-03-27 07:48:51 EDT–Fri 2020-03-27 17:46:47 EDT
 -10 e26956a6a4ac4bacbd1c35fdf373facf Sat 2020-03-28 20:53:35 EDT–Sun 2020-03-29 00:09:42 EDT
  -9 05c00d086c1b49ccab24ba118c7f1e38 Sun 2020-03-29 07:46:35 EDT–Mon 2020-03-30 00:12:54 EDT
  -8 7eb56eef2bb242c4b0d347bb30fe9d53 Mon 2020-03-30 07:49:14 EDT–Tue 2020-03-31 00:21:25 EDT
  -7 7ea9b4f75ad849e8929bb5ec6a58d760 Tue 2020-03-31 07:47:07 EDT–Wed 2020-04-01 00:16:47 EDT
  -6 82b2d7e9067e45198e53076fda8fa9a4 Wed 2020-04-01 07:49:09 EDT–Thu 2020-04-02 00:19:14 EDT
  -5 0e3cc11227364c5c9cf9322aa87064c4 Thu 2020-04-02 07:49:08 EDT–Fri 2020-04-03 00:13:10 EDT
  -4 7f432f43ee6d427d91a79b200543bd69 Fri 2020-04-03 07:48:35 EDT–Fri 2020-04-03 18:07:30 EDT
  -3 246bbe00e58740138636b5386f12a4fb Sat 2020-04-04 21:02:22 EDT–Sat 2020-04-04 23:25:21 EDT
  -2 3ffc709d76884c8bbcc26e239c570744 Sun 2020-04-05 07:47:44 EDT–Mon 2020-04-06 00:04:48 EDT
  -1 0b2c500ca05549d09e2083c343abea66 Mon 2020-04-06 07:49:37 EDT–Tue 2020-04-07 00:11:23 EDT
   0 02d1fc2469794ebc83026d47e02b97fa Tue 2020-04-07 07:49:08 EDT–Tue 2020-04-07 12:39:58 EDT
2. 监控用户账户

用户账户常被用于对系统的恶意攻击,攻击者可能会未经授权访问现有账户、创建新的虚假账户,或者留下一个账户以便日后访问。为避免此类安全问题,监控用户账户至关重要。
- 检测假冒账户和权限提升 :未经适当授权创建的账户应被视为假冒账户。此外,以任何方式修改账户,使其拥有不同的未经授权的用户标识(UID)号码或添加未经授权的组成员身份,都属于权限提升的一种形式。监控 /etc/passwd /etc/group 文件可以帮助我们发现这些潜在的违规行为。
为了监控 /etc/passwd /etc/group 文件,我们可以使用审计守护进程。审计守护进程是一个功能强大的审计工具,它允许我们选择要跟踪的系统事件并记录它们,还具备报告功能。
启动对 /etc/passwd /etc/group 文件的审计,需要使用 auditctl 命令(首先使用 apt install auditd 安装)。启动此过程至少需要两个选项:
- -w filename :对指定的文件名设置监控。审计守护进程通过文件的 inode 号码来跟踪文件。inode 号码是一个包含文件相关信息(包括其位置)的数据结构。
- -p trigger(s) :如果对指定文件发生了以下任何一种访问类型(r=读取,w=写入,x=执行,a=属性更改),则触发审计记录。
以下是使用 auditctl 命令对 /etc/passwd 文件设置监控的示例:

# auditctl -w /etc/passwd -p rwa

启动文件审计后,你可能需要在某个时候停止审计。停止审计可以使用以下命令:

auditctl -W filename -p trigger(s)

若要查看当前审计的文件列表及其监控设置,可在命令行输入:

auditctl -l

要查看审计日志,可使用审计守护进程的 ausearch 命令。这里只需要 -f 选项,它指定了你要从审计日志中查看的记录。以下是 /etc/passwd 审计信息的示例:

# ausearch -f /etc/passwd
time->Fri Feb  7 04:27:01 2020
type=PATH msg=audit(1328261221.365:572):
item=0 name="/etc/passwd" inode=170549
dev=fd:01 mode=0100644 ouid=0 ogid=0
rdev=00:00 obj=system_u:object_r:etc_t:s0
type=CWD msg=audit(1328261221.365:572):  cwd="/"
...
time->Fri Feb  7 04:27:14 2020
type=PATH msg=audit(1328261234.558:574):
item=0 name="/etc/passwd" inode=170549
dev=fd:01 mode=0100644 ouid=0 ogid=0
rdev=00:00 obj=system_u:object_r:etc_t:s0
type=CWD msg=audit(1328261234.558:574):
cwd="/home/johndoe"
type=SYSCALL msg=audit(1328261234.558:574):
arch=40000003 syscall=5 success=yes exit=3
a0=3b22d9 a1=80000 a2=1b6 a3=0 items=1 ppid=3891
pid=21696 auid=1000 uid=1000 gid=1000 euid=1000
suid=1000 fsuid=1000 egid=1000 sgid=1000 fsgid=1000
tty=pts1 ses=2 comm="vi" exe="/bin/vi"
 subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023"

通过以下几个关键信息,我们可以了解触发审计记录的事件:
- time :活动的时间戳。
- name :被监控的文件名,这里是 /etc/passwd
- inode /etc/passwd 文件在该文件系统上的 inode 号码。
- uid :运行程序的用户的用户 ID,这里是 1000。
- exe :用于操作 /etc/passwd 文件的程序,这里是 /bin/vi
要确定 UID 为 1000 的用户账户是谁,可以查看 /etc/passwd 文件。在这个例子中,UID 为 1000 的用户是 johndoe 。因此,从刚刚显示的审计事件记录中,我们可以确定 johndoe 账户试图使用 vi 编辑器操作 /etc/passwd 文件。这种行为很可能并非善意的,需要进一步调查。
审计守护进程及其相关工具功能丰富。若要了解更多信息,可以查看以下审计守护进程实用程序和配置文件的手册页:
- auditd :审计守护进程
- /etc/audit/auditd.conf :审计守护进程配置文件
- auditctl :控制审计系统
- /etc/audit/audit.rules :启动时加载的配置规则
- ausearch :在审计日志中搜索指定项
- aureport :生成审计日志报告
- audispd :将审计信息发送到其他程序
审计守护进程是监控重要文件的一种方法。此外,你还应该定期人工检查账户和组文件,以查看是否有异常情况。
- 检测弱账户密码 :即使我们尽力确保用户密码的安全性,弱密码仍可能会出现。因此,我们需要监控用户账户密码,以确保它们足够强大,能够抵御攻击。
我们可以使用 John the Ripper 来检测弱密码。John the Ripper 是一个免费的开源工具,可以在 Linux 命令行使用。它默认未安装,可以使用 apt install john 进行安装。
使用 John the Ripper 测试用户密码,首先需要使用 unshadow 命令提取账户名和密码,并将这些信息重定向到一个文件中供 john 使用:

# unshadow /etc/passwd /etc/shadow > password.file

然后,使用你喜欢的文本编辑器编辑 password.file ,删除任何没有密码的账户。由于 John the Ripper 非常消耗 CPU 资源,建议一次只测试几个账户,因此可以删除目前不想测试的账户名。
使用 john 命令尝试破解密码。运行 john 针对创建的密码文件,使用命令 john filename 。以下是一个示例:

# john password.file
Loaded 1 password hash (generic crypt(3) [?/32])
password         (Samantha)
guesses: 1  time: 0:00:00:44 100% (2)  c/s: 20.87
 trying: 12345 - missy
Use the "--show" option to display all of the
 cracked passwords reliably

为了说明强密码的重要性,我们将 Samantha 账户的密码从 password 更改为 Password1234 。即使 Password1234 仍然是一个弱密码,但破解它却需要超过 7 天的 CPU 时间。以下是尝试破解时的代码:

# passwd Samantha
Changing password for user Samantha.
...
# john password.file
Loaded 1 password hash (generic crypt(3) [?/32])
...
time: 0:07:21:55 (3)  c/s: 119  trying: tth675 - tth787
Session aborted

密码破解尝试完成后,应从系统中删除 password.file 。要了解更多关于 John the Ripper 的信息,可以访问 openwall.com/john

3. 监控文件系统

恶意程序常常会修改文件,并且可能会伪装成普通文件和程序来掩盖其踪迹。不过,我们可以通过以下几种监控策略来发现它们。
- 验证软件包 :通常情况下,从标准软件源安装软件包或从可靠网站下载软件包不会有问题。但为了确保安全,最好对已安装的软件包进行双重检查,看它们是否被篡改。 dpkg -V package_name 命令可以检查软件包的有效 md5sum 哈希值。你还可以运行 dpkg --audit package_name 命令来检查软件包的配置问题、控制数据或文件是否存在问题。以下是一个示例, dpkg 正确发现了 auditd 软件包的配置问题:

# dpkg --audit auditd
The following packages are only half configured, probably due 
to problems
configuring them the first time.  The configuration should be 
retried using
dpkg --configure <package> or the configure menu option in dselect:
 auditd               User space tools for security auditing

验证软件时,会将已安装软件包文件的信息与 APT 数据库中的软件包元数据(见相关章节)进行比较。如果没有发现问题,命令将不会返回任何信息。但如果存在差异,会返回一个编码列表。
- 扫描文件系统 :除非你最近更新了系统,否则二进制文件不应因任何原因被修改。像 find 这样的命令可以帮助我们确定二进制文件是否被篡改。
为了检查二进制文件是否被修改, find 命令可以使用文件的修改时间(mtime)。mtime 是文件内容最后一次被修改的时间。此外, find 还可以监控文件的创建/更改时间(ctime)。
如果你怀疑存在恶意活动,可以快速扫描文件系统,查看是否有二进制文件在今天(或昨天,具体取决于你认为入侵发生的时间)被修改或更改。以下是一个扫描 /sbin 目录的示例,使用 find /sbin -mtime -1 命令查看是否有二进制文件在过去 24 小时内被修改:

# find /sbin -mtime -1
/sbin
/sbin/init
/sbin/reboot
/sbin/halt

在这个示例中,显示了几个文件,表明它们最近被修改过。这可能意味着系统上存在恶意活动。为了进一步调查,可以使用 stat filename 命令查看每个文件的详细时间信息:

# stat /sbin/init
  File: '/sbin/init' -> '../bin/systemd'
  Size: 14    Blocks: 0      IO Block: 4096   symbolic link
Device: fd01h/64769d    Inode: 9551        Links: 1
Access: (0777/lrwxrwxrwx)
Uid: (    0/    root)   Gid: (    0/    root)
Context: system_u:object_r:bin_t:s0
Access: 2016-02-03 03:34:57.276589176 -0500
Modify: 2016-02-02 23:40:39.139872288 -0500
Change: 2016-02-02 23:40:39.140872415 -0500
 Birth: -

我们可以创建一个包含所有二进制文件原始 mtime 和 ctime 的数据库,然后运行一个脚本,查找当前的 mtime 和 ctime,并将它们与数据库进行比较,记录任何差异。不过,已经有这样的程序,并且运行效果很好,它就是入侵检测系统(IDS),后续会详细介绍。
除了上述扫描,我们还需要定期进行其他文件系统扫描。以下是一些恶意攻击者常用的文件或文件设置,以及相应的扫描命令和潜在问题:
| 文件或设置 | 扫描命令 | 文件或设置的问题 |
| — | — | — |
| SUID 权限 | find / -perm -4000 | 允许任何人在文件在内存中执行时临时成为文件的所有者。 |
| SGID 权限 | find / -perm -2000 | 允许任何人在文件在内存中执行时临时成为文件所属组的成员。 |
| rhost 文件 | find /home -name .rhosts | 允许一个系统完全信任另一个系统。不应该出现在 /home 目录中。 |
| 无所有者文件 | find / -nouser | 表示这些文件与任何用户名都没有关联。 |
| 无组文件 | find / -nogroup | 表示这些文件与任何组名都没有关联。 |

这些文件系统扫描有助于我们监控系统的运行情况,检测恶意攻击。然而,还有其他类型的攻击可能会威胁到我们的文件,例如病毒和根kit。

4. 检测病毒和根kit

病毒和根kit是两种常见的恶意攻击工具,它们在执行恶意活动时会隐藏自己。因此,Linux 系统需要对这两种入侵进行监控。
- 监控病毒 :计算机病毒是一种恶意软件,它可以附着在已安装的系统软件上,并通过媒体或网络传播。认为 Linux 系统没有病毒是一种误解。虽然病毒的恶意创造者通常更关注更流行的桌面操作系统(如 Windows),但这并不意味着不会为 Linux 系统创建病毒。
更重要的是,Linux 系统经常用于为 Windows 桌面系统提供服务,如邮件服务器。因此,用于此类目的的 Linux 系统也需要扫描 Windows 病毒。
杀毒软件使用病毒签名来扫描文件。病毒签名是从病毒的二进制代码生成的哈希值,它可以准确识别该病毒。杀毒程序有一个病毒签名数据库,用于与文件进行比较,以查看是否有签名匹配。根据新威胁的数量,病毒签名数据库可以经常更新,以提供对这些新威胁的保护。
对于 Linux 系统,一个不错的开源免费杀毒软件选择是 ClamAV。要安装 ClamAV 和病毒数据库,可以使用以下命令:

# apt install clamav clamav-freshclam

要了解更多关于 ClamAV 的信息,可以访问 clamav.net ,那里有关于如何设置和运行该杀毒软件的文档。
- 监控根kit :根kit比病毒更隐蔽。根kit是一种恶意程序,它具有以下特点:
- 隐藏自己,通常通过替换系统命令或程序来实现。
- 保持对系统的高级访问权限。
- 能够绕过用于检测它的软件。
根kit的目的是获取并保持对系统的根级访问权限。“根kit” 这个术语是由 “root”(表示必须具有管理员访问权限)和 “kit”(表示通常是几个协同工作的程序)组合而成的。
在 Linux 系统上,可以使用 chkrootkit 来检测根kit。使用以下命令安装 chkrootkit

# apt install chkrootkit

使用 chkrootkit 检测根kit很简单。安装软件包或启动 Live CD 后,在命令行输入 chkrootkit 命令,它会搜索整个文件结构,标记出任何受感染的文件。以下是在受感染系统上运行 chkrootkit 的示例,使用 grep 命令搜索关键字 INFECTED

# chkrootkit | grep INFECTED
Checking 'du'... INFECTED
Checking 'find'... INFECTED
Checking 'ls'... INFECTED
Checking 'lsof'... INFECTED
Checking 'pstree'... INFECTED
Searching for Suckit rootkit... Warning: /sbin/init INFECTED

在上面的 chkrootkit 代码的最后一行,显示系统被 Suckit 根kit感染。但实际上,系统并没有被这个根kit感染。在运行杀毒和根kit检测软件等实用程序时,经常会出现许多误报。误报是指显示存在病毒、根kit或其他恶意活动,但实际上并不存在的情况。在这个特定的例子中,这个误报是由一个已知的 bug 引起的。
chkrootkit 实用程序应该定期运行,当然,当怀疑系统被根kit感染时,也应该立即运行。要了解更多关于 chkrootkit 的信息,可以访问 www.chkrootkit.org

5. 检测入侵

入侵检测系统(IDS)软件可以帮助我们监控系统的活动(或其网络),检测潜在的恶意活动并报告这些活动。与入侵检测系统软件密切相关的是入侵预防系统软件,它可以防止入侵。有些软件包将两者结合在一起,提供入侵检测和预防功能。
以下是一些适用于 Linux 系统的流行入侵检测系统软件包:
| IDS 名称 | 安装命令 | 网站 |
| — | — | — |
| aide | apt install aide | aide.sourceforge.net |
| Snort | apt install snort | www.snort.org |
| tripwire | apt install tripwire | www.tripwire.org |

Advanced Intrusion Detection Environment(aide) IDS 使用比较的方法来检测入侵。就像我们小时候玩的比较两张图片并找出差异的游戏一样, aide 实用程序使用类似的方法。它会创建一个 “第一张图片” 数据库,在一段时间后,再创建另一个 “第二张图片” 数据库,然后比较这两个数据库并报告差异。
要开始使用 aide ,我们需要创建 “第一张图片”。创建这个数据库的最佳时间是系统刚安装好的时候。使用以下命令创建初始数据库:

# aide.wrapper -i
Start timestamp: 2020-04-07 19:19:33 +0000 (AIDE 0.16)
AIDE initialized database at /var/lib/aide/aide.db.new
Verbose level: 6

Number of entries:    183088

---------------------------------------------------
The attributes of the (uncompressed) database(s):
---------------------------------------------------

/var/lib/aide/aide.db.new
  RMD160   : CPYeo30jdCLFv5K982ikAF9tpoo=
  TIGER    : 3faY0oxurQbvrljl7IWWXGHX2fx+EHPN
  SHA256   : 6diJ2c8p6elfCkiRSxUJ5LV7icCUOmC5
             NO+z4iZ9suM=
  SHA512   : hDtBFYWmDGAFQUxL4PlgSKiSRRJRiQBV
             rUXrRUuLSgAiQCnQ9EWnLtBjNQxmDt9h
             tiN4IoON+LWWk0xXUK5AHw==
  CRC32    : KVke8Q==
  HAVAL    : SMq9Po82Dg1SOod3vHtgG6D/Xqd0X91/
             wkKX9aTbx4w=
  GOST     : L0JMMPR9WoMJpa1Bgj9C4Z4p2Aila5UC
             9ruHH/RC47I=

End timestamp: 2020-04-07 19:23:41 +0000 (run time: 4m 8s)

通过以上介绍的各种方法和工具,我们可以全面地保护 Linux 系统的安全。但需要注意的是,系统安全是一个持续的过程,我们需要定期检查和更新,以应对不断变化的安全威胁。

深入探究 Linux 系统安全技术(续)

6. 入侵检测系统总结与使用建议

在前面我们介绍了几种流行的 Linux 入侵检测系统(IDS),如 aide、Snort 和 tripwire。这些工具各自有其特点和适用场景,下面为大家总结一下使用建议。

  • aide :适用于对系统文件完整性进行长期监控。它通过创建数据库并定期比较来发现文件的变化,适合在系统刚安装好时就开始使用。使用步骤如下:

    1. 安装: apt install aide
    2. 创建初始数据库: aide.wrapper -i
    3. 定期运行比较:在合适的时间间隔(如每天或每周)再次运行 aide.wrapper -C 来比较数据库,查看是否有文件被修改。
  • Snort :主要用于网络入侵检测。它可以实时监控网络流量,检测并阻止潜在的网络攻击。使用步骤如下:

    1. 安装: apt install snort
    2. 配置规则:编辑 /etc/snort/snort.conf 文件,根据需求添加或修改规则。
    3. 启动服务: systemctl start snort
  • tripwire :提供了强大的文件完整性检查和策略管理功能。使用步骤如下:

    1. 安装: apt install tripwire
    2. 初始化数据库: tripwire --init
    3. 定期检查: tripwire --check
7. 安全策略制定与实施

为了保障 Linux 系统的安全,制定并实施合理的安全策略至关重要。以下是一些建议:
- 账户管理策略
- 定期审查用户账户,删除不必要的账户。
- 为所有账户设置强密码,并定期更换。
- 限制用户的权限,遵循最小权限原则。
- 文件系统策略
- 定期进行文件系统扫描,包括前面提到的各种扫描命令。
- 对重要文件设置适当的权限,如 /etc/passwd /etc/group 文件。
- 网络策略
- 配置防火墙,限制外部访问。
- 定期更新系统和软件包,以修复已知的安全漏洞。

8. 应急响应流程

即使采取了各种安全措施,系统仍可能受到攻击。因此,建立应急响应流程非常重要。以下是一个简单的应急响应流程:

graph LR
    A[发现安全事件] --> B[评估事件严重程度]
    B --> C{是否需要立即响应}
    C -- 是 --> D[隔离受影响系统]
    C -- 否 --> E[继续监控]
    D --> F[收集证据]
    F --> G[分析攻击来源和方式]
    G --> H[制定修复方案]
    H --> I[实施修复]
    I --> J[恢复系统正常运行]
    J --> K[总结经验教训,更新安全策略]
    E --> A
9. 安全培训与意识提升

系统安全不仅仅依赖于技术手段,用户的安全意识也起着关键作用。因此,对系统管理员和普通用户进行安全培训是必要的。培训内容可以包括:
- 常见的安全威胁和攻击方式
- 如何识别和避免钓鱼邮件
- 正确的密码设置和管理方法
- 安全策略的遵守和执行

10. 未来安全趋势与挑战

随着技术的不断发展,Linux 系统面临的安全威胁也在不断变化。以下是一些未来可能面临的安全趋势和挑战:
- 人工智能与机器学习攻击 :攻击者可能会利用人工智能和机器学习技术来生成更复杂的攻击方式。
- 物联网(IoT)安全 :随着物联网设备的普及,Linux 系统可能会与更多的物联网设备交互,带来新的安全风险。
- 云计算安全 :越来越多的企业将业务迁移到云计算环境中,Linux 系统在云计算中的安全管理面临新的挑战。

为了应对这些未来的安全趋势和挑战,我们需要不断学习和更新知识,采用新的安全技术和方法。

11. 总结

保障 Linux 系统的安全是一个复杂而长期的过程。通过监控用户账户、文件系统,检测病毒和根kit,以及使用入侵检测系统等多种手段,我们可以有效地降低系统受到攻击的风险。同时,制定合理的安全策略,建立应急响应流程,提升用户的安全意识,也是确保系统安全的重要环节。面对未来不断变化的安全威胁,我们需要保持警惕,持续改进安全措施。希望本文介绍的内容能够帮助大家更好地保护 Linux 系统的安全。

需求响应动态冰蓄冷系统与需求响应策略的优化研究(Matlab代码实现)内容概要:本文围绕“需求响应动态冰蓄冷系统与需求响应策略的优化研究”展开,基于Matlab代码实现,重点探讨了冰蓄冷系统在电力需求响应背景下的动态建模与优化调度策略。研究结合实际电力负荷与电价信号,构建系统能耗模型,利用优化算法对冰蓄冷系统的运行策略进行求解,旨在降低用电成本、平衡电网负荷,并提升能源利用效率。文中还提及该研究为博士论文复现,涉及系统建模、优化算法应用与仿真验证等关键技术环节,配套提供了完整的Matlab代码资源。; 适合人群:具备一定电力系统、能源管理或优化算法基础,从事科研或工程应用的研究生、高校教师及企业研发人员,尤其适合开展需求响应、综合能源系统优化等相关课题研究的人员。; 使用场景及目标:①复现博士论文中的冰蓄冷系统需求响应优化模型;②学习Matlab在能源系统建模与优化中的具体实现方法;③掌握需求响应策略的设计思路与仿真验证流程,服务于科研项目、论文写作或实际工程方案设计。; 阅读建议:建议结合提供的Matlab代码逐模块分析,重点关注系统建模逻辑与优化算法的实现细节,按文档目录顺序系统学习,并尝试调整参数进行仿真对比,以深入理解不同需求响应策略的效果差异。
综合能源系统零碳优化调度研究(Matlab代码实现)内容概要:本文围绕“综合能源系统零碳优化调度研究”,提供了基于Matlab代码实现的完整解决方案,重点探讨了在高比例可再生能源接入背景下,如何通过优化调度实现零碳排放目标。文中涉及多种先进优化算法(如改进遗传算法、粒子群优化、ADMM等)在综合能源系统中的应用,涵盖风光场景生成、储能配置、需求响应、微电网协同调度等多个关键技术环节,并结合具体案例(如压缩空气储能、光热电站、P2G技术等)进行建模与仿真分析,展示了从问题建模、算法设计到结果验证的全流程实现过程。; 适合人群:具备一定电力系统、能源系统或优化理论基础,熟悉Matlab/Simulink编程,从事新能源、智能电网、综合能源系统等相关领域研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①开展综合能源系统低碳/零碳调度的科研建模与算法开发;②复现高水平期刊(如SCI/EI)论文中的优化模型与仿真结果;③学习如何将智能优化算法(如遗传算法、灰狼优化、ADMM等)应用于实际能源系统调度问题;④掌握Matlab在能源系统仿真与优化中的典型应用方法。; 阅读建议:建议结合文中提供的Matlab代码与网盘资源,边学习理论模型边动手调试程序,重点关注不同优化算法在调度模型中的实现细节与参数设置,同时可扩展应用于自身研究课题中,提升科研效率与模型精度。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值