Product SiteDocumentation Site

Debian 12

Debian 管理员手册

Debian Bookworm from Discovery to Mastery

版 1

Raphaël Hertzog

Daniel Leidert

法律通告

ISBN: 979-10-91414-23-4 (English paperback)
ISBN: 979-10-91414-24-1 (English ebook)
本书遵照两种与 Debian 自由软件指引相兼容的许可证来提供。
创作共用许可公告:
本书以创作共用-署名-相同方式共享未本地化许可证授权。
GNU 通用公共许可公告:
本书是自由文档,你可以遵照自由软件基金会出版的GNU通用公共许可证条款来修改和重新发布本书。或者用许可证的第二版,或者(根据你的选择)用任何更新的版本。
发布本书的目的是希望它有用,但没有任何担保。甚至没有适合特定目的的隐含的担保。更详细的情况请参阅GNU通用公共许可证。
您应该已经和程序一起收到一份 GNU 通用公共许可证的副本。如果还没有,请见 https://www.gnu.org/licenses/

表达你的谢意

本书是以自由的许可证发布的,因为我们希望任何人都能从中受益。维护它花费了大量的时间和精力,所以我们愿意为此得到感谢。如果你觉得本书物有所值,请考虑为持续的维护贡献你的力量:购买本书的纸质版,或者通过本书的官方网站捐助我们:

摘要

一本介绍 Debian 发行版的书,从初始的安装过程到配置各种服务。
前言
1. 为什么写这本书?
2. 本书为谁而写?
3. 一般方法
4. 本书结构
5. 贡献
6. 致谢
6.1. 小历史
6.2. 对贡献者的特别致谢
6.3. 对翻译者的感谢
6.4. Raphaël 的个人致谢
6.5. Roland 的个人致谢
1. Debian 项目
1.1. 什么是 Debian?
1.1.1. 一个多平台操作系统
1.1.2. 自由软件的质量
1.1.3. 法律框架:非营利组织
1.2. 基金会文档
1.2.1. 对用户的承诺
1.2.2. Debian 自由软件指导方针
1.3. Debian 项目的内部工作
1.3.1. Debian 开发者
1.3.2. 用户的积极角色
1.3.3. Teams, Blends, and Sub-Projects
1.4. 跟踪 Debian 最新消息
1.5. 发行版的角色
1.5.1. 安装器:debian-installer
1.5.2. 软件库
1.6. 发布周期
1.6.1. 实验状态
1.6.2. 不稳定状态
1.6.3. 迁移至测试
1.6.4. 从测试版稳定版
1.6.5. 旧稳定版老旧稳定版状态
2. 案例呈现
2.1. 高速增长的IT需求
2.2. 总体规划
2.3. 为什么选择 GNU/Linux 发行版?
2.4. 为什么选择 Debian 发行版?
2.4.1. 商业及社区驱动发行版
2.5. Why Debian Bookworm?
3. 分析当前设置与迁移
3.1. 在异构环境中共存
3.1.1. 和Windows机器整合
3.1.2. 和 macOS 机器整合
3.1.3. 与其他 Linux/Unix 设备集成
3.2. 如何迁移
3.2.1. 流行度调查和身份识别服务
3.2.2. 备份配置
3.2.3. 接手现有的 Debian 服务器
3.2.4. 安装 Debian
3.2.5. 安装与配置选定的服务
4. 安装
4.1. 安装方式
4.1.1. 从CD-ROM/DVD-ROM安装
4.1.2. 从U盘引导
4.1.3. 从网络引导安装
4.1.4. 其他安装方式
4.2. 安装,一步一步来
4.2.1. 引导和开始安装
4.2.2. 选择语言
4.2.3. 选择国家
4.2.4. 选择键盘布局
4.2.5. 检测硬件
4.2.6. 加载组件
4.2.7. 检测网络硬件
4.2.8. 配置网络
4.2.9. 管理员密码
4.2.10. 创建第一个用户
4.2.11. 配置时钟
4.2.12. 检测磁盘和其他设备
4.2.13. 开始分区的工具
4.2.14. 安装基本系统
4.2.15. 配置包管理器 (apt)
4.2.16. Debian 软件包流行度排行
4.2.17. 选择安装软件包
4.2.18. 安装 GRUB 引导程序
4.2.19. 完成安装并重启
4.3. 在首次启动之后
4.3.1. 安装附加软件
4.3.2. 升级系统
5. 包管理系统:工具和基本原则
5.1. 二进制包的结构
5.2. 软件包元信息
5.2.1. 描述:control 文件
5.2.2. 配置脚本
5.2.3. Checksums, List of Configuration Files, et al.
5.3. 源码包的结构
5.3.1. 格式
5.3.2. Debian 中的使用
5.4. 通过dpkg来操作软件包
5.4.1. 安装软件包
5.4.2. 软件包移除
5.4.3. 查询 dpkg 的数据库,并检查 .deb 文件
5.4.4. dpkg的日志文件
5.4.5. 多架构支持
5.5. 与其它软件包共存
6. 维护和更新:APT 工具
6.1. 编写 sources.list 文件
6.1.1. 语法
6.1.2. 给稳定版使用者的仓库
6.1.3. 给测试版不稳定版用户的仓库
6.1.4. 使用其他镜像
6.1.5. 非官方来源:mentors.debian.net
6.1.6. Debian 软件包缓存代理
6.2. aptitudeapt-getapt 命令
6.2.1. 初始化
6.2.2. 安装和卸载
6.2.3. 系统升级
6.2.4. 配置选项
6.2.5. 软件包优先级管理
6.2.6. 在多个发行版中工作
6.2.7. 自动追踪已安装的软件包
6.2.8. APT Patterns
6.3. The apt-cache 命令
6.3.1. The apt-cache policy Command
6.4. apt-file 命令
6.5. 前端:aptitudesynaptic
6.5.1. aptitude
6.5.2. synaptic
6.6. 检查软件包真实性
6.7. 升级至下个稳定发行版
6.7.1. 推荐的程序
6.7.2. 处理升级后的问题
6.7.3. 升级后的清理
6.8. 保持系统在最新状态
6.9. 自动升级
6.9.1. 配置 dpkg
6.9.2. 配置 APT
6.9.3. 配置 debconf
6.9.4. 处理命令行接口
6.9.5. 神奇的组合
6.10. 搜索软件包
7. 问题的解决与相关信息的检索
7.1. 文档资源
7.1.1. 手册页面
7.1.2. info文档
7.1.3. 特定的文档
7.1.4. 网站
7.1.5. 教程(HOWTO文档
7.2. 通常步骤
7.2.1. 配置一个程序
7.2.2. 监控守护进程在做什么
7.2.3. 通过邮件列表寻求帮助
7.2.4. 报告棘手的问题所存在的Bug
8. 基础配置:网络,账户,打印……
8.1. 用其他语言进行配置
8.1.1. 设置默认语言
8.1.2. 键盘配置
8.1.3. 迁移到 UTF-8
8.2. 配置网络
8.2.1. 以太网接口
8.2.2. 无线网络接口
8.2.3. 经由 PSTN 调制解调器的 PPP 链接
8.2.4. 以 ADSL 调制解调器链接
8.2.5. 漫游用户的网络自动配置
8.3. 设置主机名称与配置名称服务
8.3.1. 名称解析
8.4. 用户与群组数据库
8.4.1. 用户清单:/etc/passwd
8.4.2. 隐藏与加密的密码档:/etc/shadow
8.4.3. 修改既有的帐号或密码
8.4.4. 帐号禁用
8.4.5. 群组清单:/etc/group
8.5. 添加帐号
8.6. Shell 环境
8.7. 打印机配置
8.8. 配置引导加载器(Bootloader)
8.8.1. 辨识磁盘
8.8.2. GRUB 2 配置
8.8.3. Using GRUB with EFI and Secure Boot
8.9. 其他配置:时间同步、日志记录、共享访问…
8.9.1. 时区
8.9.2. 时间同步
8.9.3. 轮转日志文件
8.9.4. 共享管理员权限
8.9.5. 挂载点清单
8.9.6. locateupdatedb
8.10. 编译内核
8.10.1. 简介和先决条件
8.10.2. 获取源代码
8.10.3. 配置内核
8.10.4. 编译与创建软件包
8.10.5. 编译外部模块
8.10.6. 选择内核补丁
8.11. 安装内核
8.11.1. Debian 内核包特性
8.11.2. 使用 dpkg 安装
9. Unix 服务
9.1. 系统启动
9.1.1. Systemd 启动系统
9.1.2. System V 初始系统
9.2. 远程登录
9.2.1. 安全远程登录:SSH
9.2.2. 使用远程图形桌面
9.3. 管理权限
9.3.1. Owners and Permissions
9.3.2. ACLs - Access Control Lists
9.4. 管理员界面
9.4.1. Browser-based Administration: cockpit
9.4.2. 通过网页接口管理:webmin
9.4.3. 用于管理配置的软件包: debconf
9.5. syslog 系统事件
9.5.1. 原则与机制
9.5.2. 配置文件
9.6. inetd 超级服务器
9.7. 使用 cronatd运行计划任务
9.7.1. crontab 文件的格式
9.7.2. 使用 at 命令
9.8. 异步调度任务:anacron
9.9. 配额
9.10. 备份
9.10.1. 使用 rsync备份
9.10.2. 不使用备份恢复系统
9.11. 热插拔: hotplug
9.11.1. 介绍
9.11.2. 命名问题
9.11.3. udev 如何工作
9.11.4. 一个具体例子
9.12. 电源管理:高级配置与电源接口 (ACPI)
10. 基本网络设置
10.1. 网关
10.2. X.509 认证
10.2.1. 创建免费的受信任证书
10.2.2. 公钥基础设施:easy-rsa
10.3. 虚拟专用网络
10.3.1. OpenVPN
10.3.2. SSH 下的虚拟专属网络
10.3.3. 互联网安全协议
10.3.4. PPTP
10.4. 品质服务
10.4.1. 原则与机制
10.4.2. 配置与应用
10.5. Dynamic Routing
10.6. IPV6
10.6.1. Tunneling
10.7. Domain Name Servers (DNS)
10.7.1. DNS software
10.7.2. Configuring bind
10.8. DHCP
10.8.1. 配置
10.8.2. DHCP and DNS
10.9. 网络诊断工具
10.9.1. 本地诊断:netstat
10.9.2. Remote Diagnosis: nmap
10.9.3. Sniffers: tcpdump and wireshark
11. 网络服务:Postfix、Apache、NFS、Samba、Squid、LDAP、SIP、XMPP、TURN
11.1. 邮件服务器
11.1.1. 安装 Postfix
11.1.2. 配置虚拟域
11.1.3. 接收邮件和发送邮件的限制
11.1.4. 设置 灰名单
11.1.5. 根据收件人定制筛选程序
11.1.6. Integrating an Antivirus Filter
11.1.7. 用 SPF、DKIM 和 DMARC 应对垃圾邮件
11.1.8. 认证的 SMTP
11.2. Web 服务器(HTTP)
11.2.1. 安装 Apache
11.2.2. 为 SSL 添加支持
11.2.3. 配置虚拟主机
11.2.4. 常用指令
11.2.5. 日志分析程序
11.3. FTP文件服务器
11.4. NFS 文件服务器
11.4.1. 使 NFS 安全
11.4.2. NFS 服务器
11.4.3. NFS 客户端
11.5. 用 Samba 设置 Windows 共享
11.5.1. Samba 服务器
11.5.2. Samba 客户端
11.6. HTTP/FTP 代理
11.6.1. 安装
11.6.2. 配置缓存
11.6.3. 配置筛选程序
11.7. LDAP 目录
11.7.1. 安装
11.7.2. 填入目录
11.7.3. 使用 LDAP 管理账户
11.8. 实时通信服务
11.8.1. RTC 服务的 DNS 设置
11.8.2. TURN 服务器
11.8.3. SIP 代理服务器
11.8.4. XMPP 服务器
11.8.5. 在端口 443 运行服务
11.8.6. 添加 WebRTC
12. 高级管理
12.1. RAID 和 LVM
12.1.1. 软 RAID
12.1.2. LVM(逻辑卷管理)
12.1.3. RAID 还是 LVM?
12.2. 虚拟化
12.2.1. Xen
12.2.2. LXC
12.2.3. KVM 虚拟化
12.3. 自动安装
12.3.1. 全自动安装器 (FAI)
12.3.2. 预设值 Debian 安装
12.3.3. Simple-CDD: The All-In-One Solution
12.4. 监控
12.4.1. 搭建 Munin
12.4.2. 搭建 Nagios
13. 工作站
13.1. 配置 X11 服务
13.2. 定制图形界面
13.2.1. 选择显示管理器
13.2.2. 选择窗口管理器
13.2.3. 菜单管理
13.3. 图形桌面
13.3.1. GNOME
13.3.2. KDE 和 Plasma
13.3.3. Xfce 和其他
13.3.4. 其他桌面环境
13.4. 邮件
13.4.1. Evolution
13.4.2. KMail
13.4.3. Thunderbird
13.5. 网页浏览器
13.6. 开发
13.6.1. GNOME中 GTK+ 工具
13.6.2. Qt 工具
13.7. 办公软件包
13.8. 模拟 Windows:Wine
13.9. 即时通讯软件
14. 安全
14.1. 定义安全策略
14.2. 防火墙或者包过滤
14.2.1. nftables 行为
14.2.2. 从 iptable 移动到 nftables
14.2.3. nft 的语法
14.2.4. 每次启动时加载规则
14.3. 监督:预防,检测,威慑
14.3.1. 使用 logcheck 监视日志
14.3.2. 监视行为
14.3.3. 避免入侵
14.3.4. 侦测变化
14.3.5. 侦测入侵(IDS/NIDS)
14.4. AppArmor 简介
14.4.1. 原理
14.4.2. 启用 AppArmor 和管理 AppArmor 配置文件
14.4.3. 创建新的配置文件
14.5. SELinux 简介
14.5.1. 原理
14.5.2. 设置 SELinux
14.5.3. 管理 SELinux 系统
14.5.4. 适应规则
14.6. 其他安全相关事项
14.6.1. 网页应用程序的内在风险
14.6.2. 知道预期什么
14.6.3. 明智地选择软件
14.6.4. 将机器作为整体管理
14.6.5. 用户是参与者
14.6.6. 物理安全
14.6.7. 法律责任
14.7. 处理被攻陷的机器
14.7.1. 探测并观察黑客入侵
14.7.2. 把服务器下线
14.7.3. 保留所有可以作为证据的东西
14.7.4. 重新安装
14.7.5. 法医分析
14.7.6. 重构攻击场景
15. 创建 Debian 软件包
15.1. 从源码重新构建安装包
15.1.1. 获取源代码
15.1.2. 修改源码
15.1.3. 开始重新构建
15.2. 构建您的第一个软件包
15.2.1. 元软件包或伪装软件包
15.2.2. 简单文件档案
15.3. 创建用于 APT 的软件包仓库
15.4. 成为软件包的维护者
15.4.1. 学习制作软件包
15.4.2. 接受过程
16. 结论:Debian的未来
16.1. 即将来临的新开发阶段
16.2. Debian的未来
16.3. 这本书的未来
A. 衍生发行版
A.1. 调查和合作
A.2. Ubuntu
A.3. Linux Mint
A.4. Knoppix
A.5. Aptosid 和 Siduction
A.6. Grml
A.7. Tails
A.8. Kali Linux
A.9. Devuan
A.10. DoudouLinux
A.11. Raspbian
A.12. PureOS
A.13. SteamOS
A.14. 其它更多
B. 简短辅导课程
B.1. Shell 和基本命令
B.1.1. 浏览目录与管理文件
B.1.2. 显示和修改文本文件
B.1.3. 搜索文件和在文件中搜索
B.1.4. 管理进程
B.1.5. 系统信息:内存、磁盘空间、身份信息
B.2. 文件系统层次结构的组织
B.2.1. 根目录
B.2.2. 用户主目录
B.3. Inner Workings of a Computer: the Different Layers Involved
B.3.1. The Deepest Layer: the Hardware
B.3.2. 启动器:BIOS 或 UEFI
B.3.3. 内核
B.3.4. 用户空间
B.4. 由内核处理的一些任务
B.4.1. 驱动硬件
B.4.2. 文件系统
B.4.3. 共享功能
B.4.4. 管理进程
B.4.5. 管理权限
B.5. 用户空间
B.5.1. 进程
B.5.2. 后台守护进程(daemon)
B.5.3. 进程间通信
B.5.4. 库