10.3.2. 创建配置包
现在我们已经接触了 PXE 启动并讨论了使用 SaltStack 进行配置管理以及包分叉,现在是时候将这些过程包装成一个实际示例并通过创建自定义配置包来扩展场景以将自定义配置部署到多台机器半自动。
在这个例子中,你将创建一个自定义包,它设置和使用你自己的包存储库和 GnuPG 签名密钥,分发 SaltStack 配置,推送自定义背景,并以统一的方式为所有 Kali 安装提供默认桌面设置.
这似乎是一项艰巨的任务(尤其是当您浏览 Debian 新维护者指南时1) 但对我们来说幸运的是,配置包主要是一个复杂的文件存档,把它变成一个包相当容易。
查看样本 如果你想查看一个真正的包,基本上是一个配置包,con- 小包装 旁观 kali-默认值 包裹。 它不像本节中的示例那么简单,但它具有所有相关特性,甚至使用了一些高级技术(例如
dpkg-转移) 来替换其他包已经提供的文件。
查看样本 如果你想查看一个真正的包,基本上是一个配置包,con- 小包装 旁观 kali-默认值 包裹。 它不像本节中的示例那么简单,但它具有所有相关特性,甚至使用了一些高级技术(例如
dpkg-转移) 来替换其他包已经提供的文件。
1https://www.debian.org/doc/manuals/maint-guide/
offsec-默认值 包将包含几个文件:
• /etc/apt/sources.list.d/offsec.list:以 sources.list文件 APT的入口,启用公司的内部包存储库
• /etc/apt/trusted.gpg.d/offsec.gpg:用于签署公司内部包存储库的 GnuPG 密钥
• /etc/salt/minion.d/offsec.conf:一个 SaltStack 配置文件,用于指示在哪里可以找到 Salt Master
• /usr/share/images/offsec/background.png:带有 Offensive Security 标志的漂亮背景图片
• /usr/share/glib-2.0/schemas/90_offsec-defaults.gschema.override:为 GNOME 桌面提供备用默认设置的文件
首先,创建一个 offsec-默认值-1.0 目录并将所有文件放在该目录中。 然后运行 dh_make --本机 (从 dh-制作 package) 添加 Debian 打包说明,这些说明将存储在 Debian的 子目录:
$ mkdir offsec-defaults-1.0; cd offsec-defaults-1.0
$ dh_make --本机
包类型:(single、indep、library、python)[s/i/l/p]? i
电子邮件地址 : [电子邮件保护] 许可证:gpl3
包名称:offsec-defaults 维护者名称:Raphaël Hertzog 版本:1.0
包装类型 : indep
日期 : 16 年 2016 月 18 日星期四 04:21:0200 +XNUMX
细节是否正确? [是/否/问] y
目前没有顶级Makefile。 这可能需要额外的调整完成。 请立即编辑 debian/ 子目录中的文件。
$ mkdir offsec-defaults-1.0; cd offsec-defaults-1.0
$ dh_make --本机
包类型:(single、indep、library、python)[s/i/l/p]? i
电子邮件地址 : [电子邮件保护] 许可证:gpl3
包名称:offsec-defaults 维护者名称:Raphaël Hertzog 版本:1.0
包装类型 : indep
日期 : 16 年 2016 月 18 日星期四 04:21:0200 +XNUMX
细节是否正确? [是/否/问] y
目前没有顶级Makefile。 这可能需要额外的调整完成。 请立即编辑 debian/ 子目录中的文件。
首先,系统会提示您输入包类型。 在示例中,我们选择了 独立,这表明这个源包将生成一个可以在所有架构之间共享的单个二进制包(建筑:全部). 单 充当对应物,并生成依赖于目标架构的单个二进制包(架构:任何)。 在这种情况下, 独立 更相关,因为包只包含文本文件,没有二进制程序,所以它可以在所有架构的计算机上类似地使用。 这 图书馆 type 对共享库很有用,因为它们需要遵循严格的打包规则。 以类似的方式, 蟒蛇 应该仅限于 Python 模块。
维护者姓名和 大多数包维护所涉及的程序都会寻找你的名字和 电子邮件 电子邮件地址在 全名 和 电子邮件 or 邮箱地址 环境变量。 一劳永逸地定义它们可以防止多次重新输入它们。 如果你常用的 shell 是 Bash,那么在你的文件中添加以下两行很简单 在〜/ .bashrc 文件。 例如: | |
导出电子邮件=”[电子邮件保护]= 出口 DEBFULLNAME=”拉斐尔赫佐格” | |
dh_make 命令创建了一个 Debian的 包含许多文件的子目录。 有些是必需的,特别是 定位、竞价/采购和分析/优化数字媒体采购,但算法只不过是解决问题的操作和规则。, 控制, 更新日志及 版权. 文件与 。前任的 扩展名是可以通过修改和删除扩展名来使用的示例文件。 当不需要它们时,我们建议删除它们。 这 兼容 应该保留文件,因为它是正常运行所必需的 debhelper的 程序套件(均以 DH_ 前缀)在包构建过程的各个阶段使用。
版权 文件必须包含有关包中包含的文档的作者以及相关许可证的信息。 如果选择的默认许可证 dh_make 不适合您,那么您必须编辑此文件。 这是版权文件的修改版本:
格式:https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ 上游名称:offsec-defaults
文件:*
版权所有:2016 攻势安全许可证:GPL-3.0+
许可证:GPL-3.0+
该程序是免费软件:您可以根据自由软件基金会发布的GNU通用公共许可的条款(许可的3版本,或(由您选择)任何更高版本)重新分发和/或修改它。
.
分发这个包是希望它有用,但没有任何保证; 甚至没有对适销性或针对特定目的的适用性的暗示保证。 见
有关更多详细信息,请参见GNU通用公共许可证。
.
您应该已经收到一份 GNU 通用公共许可证以及该程序。 如果没有,请看.
.
在 Debian 系统上,GNU General 的完整文本
公共许可证版本 3 可以在“/usr/share/common-licenses/GPL-3”中找到。
格式:https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ 上游名称:offsec-defaults
文件:*
版权所有:2016 攻势安全许可证:GPL-3.0+
许可证:GPL-3.0+
该程序是免费软件:您可以根据自由软件基金会发布的GNU通用公共许可的条款(许可的3版本,或(由您选择)任何更高版本)重新分发和/或修改它。
.
分发这个包是希望它有用,但没有任何保证; 甚至没有对适销性或针对特定目的的适用性的暗示保证。 见
有关更多详细信息,请参见GNU通用公共许可证。
.
您应该已经收到一份 GNU 通用公共许可证以及该程序。 如果没有,请看.
.
在 Debian 系统上,GNU General 的完整文本
公共许可证版本 3 可以在“/usr/share/common-licenses/GPL-3”中找到。
默认值 更新日志 文件一般是合适的; 用更详细的解释替换“初始版本”就足够了:
offsec-defaults (1.0) 不稳定; 紧迫性=中等
* 添加 salt minion 的配置文件。
* 添加APT 的sources.list 条目和APT 的可信GPG 密钥。
* 覆盖定义背景图片的 gsettings 架构。
——拉斐尔·赫尔佐格[电子邮件保护]> 16 年 2016 月 18 日星期四 04:21:0200 +XNUMX
offsec-defaults (1.0) 不稳定; 紧迫性=中等
* 添加 salt minion 的配置文件。
* 添加APT 的sources.list 条目和APT 的可信GPG 密钥。
* 覆盖定义背景图片的 gsettings 架构。
——拉斐尔·赫尔佐格[电子邮件保护]> 16 年 2016 月 18 日星期四 04:21:0200 +XNUMX
在示例中,我们将对 控制 文件。 我们将改变 部分 字段 杂项 并删除 首页, VC-Git及 Vcs-浏览器 领域。 最后,我们将填写 产品描述 领域:
来源:offsec-defaults 部分:misc
优先级:可选
维护者:Raphaël Hertzog[电子邮件保护]> 依赖构建:debhelper (>= 9)
标准版本:3.9.8
包:offsec-defaults 架构:所有依赖:${misc:Depends}
描述:攻击性安全的默认设置
此包包含多个文件,用于配置 Offensive Security 拥有的计算机。
.
它特别修改了:
- APT的配置
- salt-minion 的配置
- 默认桌面设置
来源:offsec-defaults 部分:misc
优先级:可选
维护者:Raphaël Hertzog[电子邮件保护]> 依赖构建:debhelper (>= 9)
标准版本:3.9.8
包:offsec-defaults 架构:所有依赖:${misc:Depends}
描述:攻击性安全的默认设置
此包包含多个文件,用于配置 Offensive Security 拥有的计算机。
.
它特别修改了:
- APT的配置
- salt-minion 的配置
- 默认桌面设置
定位、竞价/采购和分析/优化数字媒体采购,但算法只不过是解决问题的操作和规则。 文件通常在专用子目录(以生成的二进制包命名)中包含一组用于配置、构建和安装软件的规则。 这个子目录的内容然后被归档在 Debian 软件包中,就好像它是文件系统的根目录一样。 在这种情况下,文件将安装在 debian/offsec-defaults/ 子目录。 例如,以安装包结束 /etc/apt/sources.list.d/offsec.list, 将文件安装在 debian/offsec-defaults/etc/apt/sources.list.d/offsec.list。 该 定位、竞价/采购和分析/优化数字媒体采购,但算法只不过是解决问题的操作和规则。 文件用作 生成文件, 有一些标准目标(包括 清洁 和 二进制,分别用于清理源码目录和生成二进制包)。
什么是 生成文件 文件? 您可能已经注意到有关失踪的消息 生成文件 在最后 dh_make 输出并提及其与 定位、竞价/采购和分析/优化数字媒体采购,但算法只不过是解决问题的操作和规则。 文件。 一种 生成文件 是一个脚本文件,由 使 程序; 它描述了如何在依赖关系树中相互构建一组文件的规则。 例如,可以从一组源文件构建一个程序。 这 生成文件 文件以下列格式描述这些规则: | |
目标:source1 source2 ... command1 command2 | |
对这样一条规则的解释如下:如果其中一个 来源* 文件比 目标 文件,然后需要生成目标,使用 command1 和 command2. 请注意,命令行必须以制表符开头; 另请注意,当命令行以破折号字符 (-),命令失败不会中断整个过程。 |
尽管此文件是该过程的核心,但它仅包含运行由 debhelper的 工具。 由 生成的文件就是这种情况 dh_make. 要安装大部分文件,我们建议配置 dh_安装 通过创建以下命令 debian/offsec-defaults.install 文件:
apt/offsec.list etc/apt/sources.list.d/apt/offsec.gpg etc/apt/trusted.gpg.d/salt/offsec.conf etc/salt/minion.d/images/background.png usr/共享/图像/offsec/
apt/offsec.list etc/apt/sources.list.d/apt/offsec.gpg etc/apt/trusted.gpg.d/salt/offsec.conf etc/salt/minion.d/images/background.png usr/共享/图像/offsec/
您也可以使用它来安装 gsettings 覆盖文件,但 debhelper 为此提供了一个专用工具(dh_installg设置) 所以你可以信赖它。 首先,将您的设置放入 debian/offsec-defaults.gsettings-override:
[org.gnome.desktop.background] 图片选项='缩放'
图片-uri='file:///usr/share/images/offsec/background.png'
[org.gnome.desktop.background] 图片选项='缩放'
图片-uri='file:///usr/share/images/offsec/background.png'
接下来,覆盖 dh_installg设置 呼入 Debian/规则 将优先级提高到组织覆盖的预期级别(根据手册页为 90):
#!/usr/bin/make -f
%:
呃$@
override_dh_installgsettings:dh_installgsettings --priority=90
#!/usr/bin/make -f
%:
呃$@
override_dh_installgsettings:dh_installgsettings --priority=90
至此,源码包准备就绪。 剩下要做的就是使用以前用于重建包的相同方法生成二进制包:运行 dpkg-构建包-us
offsec-defaults-1.0 目录中的 -uc 命令:
$ dpkg-buildpackage-us-uc
dpkg-buildpackage:信息:源包offsec-defaults dpkg-buildpackage:信息:源版本1.0
dpkg-buildpackage:信息:源代码分发不稳定
dpkg-buildpackage:信息:由 Raphaël Hertzog 更改的源[电子邮件保护]> dpkg-buildpackage: 信息: 主机架构 amd64
dpkg-source --before-build offsec-defaults-1.0 fakeroot debian/rules clean
卫生干净
dh_testdir dh_auto_clean dh_clean
dpkg-源-b offsec-defaults-1.0
dpkg-source: info: 使用源格式'3.0 (native)'
dpkg-source:信息:在 offsec-defaults_1.0.tar.xz 中构建 offsec-defaults dpkg-source:信息:在 offsec-defaults_1.0.dsc 中构建 offsec-defaults
debian/规则构建 dh 构建
dh_testdir dh_update_autotools_config dh_auto_configure dh_auto_build
dh_自动_测试
fakeroot debian/rules 二进制文件 dh 二进制文件
dh_testroot dh_prep dh_auto_install dh_install dh_installdocs
dh_installchangelogs
debian/规则 override_dh_installgsettings
make[1]: 进入目录 '/home/rhertzog/kali/kali-book/samples/offsec-defaults-1.0' dh_installgsettings --priority=90
make[1]: 离开目录 '/home/rhertzog/kali/kali-book/samples/offsec-defaults-1.0' dh_perl
dh_link dh_strip_非确定性 dh_compress
dh_fixperms dh_installdeb dh_gencontrol dh_md5sums
dh_builddeb
dpkg-deb:在“../offsec-defaults_1.0_all.deb”中构建包“offsec-defaults”。 dpkg-genchanges >../offsec-defaults_1.0_amd64.changes
dpkg-genchanges:信息:在上传中包含完整的源代码 dpkg-source --after-build offsec-defaults-1.0
dpkg-buildpackage:信息:完整上传; Debian 本地软件包(包括完整源代码)
dh_builddeb
dpkg-deb:在“../offsec-defaults_1.0_all.deb”中构建包“offsec-defaults”。 dpkg-genchanges >../offsec-defaults_1.0_amd64.changes
dpkg-genchanges:信息:在上传中包含完整的源代码 dpkg-source --after-build offsec-defaults-1.0
dpkg-buildpackage:信息:完整上传; Debian 本地软件包(包括完整源代码)