[ 上一页 ] [ 目录 ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ A ] [ B ] [ C ] [ D ] [ E ] [ F ] [ G ] [ H ] [ 下一页 ]


Debian 安全手册
第 12 章 - 常见问题解答 (FAQ)


本章介绍 Debian 安全邮件列表中的一些最常见问题。您应该在发布到那里之前阅读它们,否则人们可能会告诉您 RTFM(请阅读手册)。


12.1 Debian 操作系统中的安全性


12.1.1 Debian 比 X 更安全吗?

一个系统的安全程度取决于其管理员使其安全的能力。Debian 默认安装服务的目的是安全,但可能不像其他一些操作系统那样偏执,后者默认安装所有服务时禁用。在任何情况下,系统管理员都需要根据其本地安全策略调整系统的安全性。

有关许多操作系统的安全漏洞数据的集合,请参阅 US-CERT 统计数据 或使用 国家漏洞数据库(以前的 ICAT)生成统计数据。此数据有用吗?在解释数据时需要考虑几个因素,值得注意的是,该数据不能用于比较一个操作系统与另一个操作系统的漏洞。[77] 此外,请记住,一些关于 Debian 的已报告漏洞仅适用于不稳定(即未发布)分支。


12.1.1.1 Debian 比其他 Linux 发行版(如 Red Hat、SuSE...)更安全吗?

Linux 发行版之间实际上没有太多差异,除了基本安装和软件包管理系统。大多数发行版共享许多相同的应用程序,主要区别在于这些应用程序的版本与发行版的稳定版本一起发布。例如,内核、Bind、Apache、OpenSSH、Xorg、gcc、zlib 等在所有 Linux 发行版中都是通用的。

例如,Red Hat 不走运,在 foo 1.2.3 是当前版本时发布,后来发现该版本存在安全漏洞。另一方面,Debian 很幸运地发布了 foo 1.2.4,其中包含了错误修复。几年前的大的 rpc.statd 问题就是这种情况。

主要的 Linux 发行版的各个安全团队之间进行了大量合作。已知安全更新很少(如果有的话)会被发行版供应商忽略。安全漏洞的知识永远不会对另一个发行版供应商保密,因为修复通常由上游或 CERT 协调。因此,必要的安全更新通常同时发布,不同发行版的相对安全性非常相似。

Debian 在安全方面的主要优势之一是通过使用 apt 轻松进行系统更新。以下是 Debian 中需要考虑的其他安全方面


12.1.2 Bugtraq 中有很多 Debian 错误。这是否意味着它非常容易受到攻击?

Debian 发行版拥有大量且不断增长的软件包,可能比许多专有操作系统提供的软件包还要多。安装的软件包越多,任何给定系统中出现安全问题的可能性就越大。

越来越多的人正在检查源代码中的缺陷。有很多与 Debian 中包含的主要软件组件的源代码审计相关的公告。每当此类源代码审计发现安全缺陷时,都会修复它们,并将公告发送到 Bugtraq 等列表。

Debian 发行版中存在的错误通常也会影响其他供应商和发行版。查看每个公告 (DSA) 顶部的“Debian specific: yes/no”部分。


12.1.3 Debian 是否有与安全相关的任何认证?

简短回答:否。

详细回答:认证需要花钱(尤其是严肃的安全认证),没有人投入资源来将 Debian GNU/Linux 认证到任何级别的,例如,通用准则。如果您有兴趣获得安全认证的 GNU/Linux 发行版,请尝试提供使其成为可能所需的资源。

目前至少有两个 linux 发行版已通过不同 EAL 级别的认证。请注意,一些 CC 测试正在集成到 Linux 测试项目 中,该项目在 Debian 的 ltp 中可用。


12.1.4 Debian 是否有任何加固程序?

是的。Bastille Linux 最初面向其他 Linux 发行版(Red Hat 和 Mandrake),目前适用于 Debian。正在采取措施将对上游版本所做的更改集成到名为 bastille 的 Debian 软件包中。

然而,有些人认为,加固工具并不能消除良好管理的需求。


12.1.5 我想运行 XYZ 服务,我应该选择哪一个?

Debian 的一大优势是在提供相同功能的软件包(DNS 服务器、邮件服务器、ftp 服务器、Web 服务器等)之间提供了广泛的选择。当新手管理员试图确定哪个软件包适合您时,这可能会令人困惑。给定情况的最佳匹配取决于您的功能和安全需求的平衡。以下是在相似软件包之间做出决定时要问自己的一些问题


12.1.6 如何在 Debian 中使 XYZ 服务更安全?

您将在本文档中找到使 Debian GNU/Linux 中的某些服务(FTP、Bind)更安全的信息。对于此处未涵盖的服务,请查看程序的文档或常规 Linux 信息。大多数 Unix 系统的安全指南也适用于 Debian。在大多数情况下,在 Debian 中保护服务 X 就像在任何其他 Linux 发行版(或 Un*x,就此而言)中保护该服务一样。


12.1.7 如何删除所有服务的标语?

例如,如果您不喜欢用户连接到您的 POP3 守护进程并检索有关您系统的信息,您可能需要删除(或更改)服务向用户显示的标语。[79] 这样做取决于您为给定服务运行的软件。例如,在 postfix 中,您可以在 /etc/postfix/main.cf 中设置您的 SMTP 标语

      
       smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)

其他软件不容易更改。ssh 将需要重新编译才能更改其打印的版本。注意不要删除标语的第一部分 (SSH-2.0),客户端使用该部分来识别您的软件包支持哪些协议。


12.1.8 所有 Debian 软件包都安全吗?

Debian 安全团队不可能分析 Debian 中包含的所有软件包的潜在安全漏洞,因为没有足够的资源来对整个项目进行源代码审计。但是,Debian 确实受益于上游开发人员进行的源代码审计。

事实上,Debian 开发人员可以在软件包中分发特洛伊木马,并且无法检查出来。即使引入到 Debian 分支中,也不可能涵盖特洛伊木马会执行的所有可能情况。这就是 Debian 具有“不保证”许可证条款的原因。

但是,Debian 用户可以对稳定代码拥有广泛受众这一事实充满信心,并且大多数问题将在使用中被发现。不建议在关键系统中安装未经测试的软件(如果您无法提供必要的代码审计)。在任何情况下,如果发行版中引入了安全漏洞,则用于包含软件包的过程(使用数字签名)可确保最终可以将问题追溯到开发人员。Debian 项目并没有轻视这个问题。


12.1.9 为什么有些日志文件/配置文件是全局可读的,这不安全吗?

当然,您可以更改系统上的默认 Debian 权限。当前关于日志文件和配置文件的策略是,除非它们提供敏感信息,否则它们是全局可读的。

如果您进行更改,请小心,因为

FIXME:检查这是否写在策略中。某些软件包(即 ftp 守护进程)似乎强制执行不同的权限。


12.1.10 为什么 /root/(或 UserX)具有 755 权限?

事实上,任何其他用户也存在相同的问题。由于 Debian 的安装没有在该目录下放置任何文件,因此那里没有敏感信息需要保护。如果您觉得这些权限对您的系统来说太宽泛,请考虑将其收紧为 750。对于用户,请阅读 限制对其他用户信息访问,第 4.10.12.1 节

这个 Debian 安全邮件列表 线程 提供了关于此问题的更多信息。


12.1.11 安装 grsec/防火墙后,我开始收到许多控制台消息!如何删除它们?

如果您收到控制台消息,并且已配置 /etc/syslog.conf 将它们重定向到文件或特殊 TTY,您可能会看到直接发送到控制台的消息。

任何给定内核的默认控制台日志级别为 7,这意味着任何优先级较低的消息都将出现在控制台中。通常,防火墙(LOG 规则)和其他一些安全工具的日志优先级低于此优先级,因此,它们会直接发送到控制台。

要减少发送到控制台的消息,您可以使用 dmesg (-n 选项,请参阅 dmesg(8)),它检查并控制内核环形缓冲区。要在下次重启后修复此问题,请更改 /etc/init.d/klogd

       KLOGD=""

       KLOGD="-c 4"

如果您仍然看到它们,请为 -c 使用较低的数字。不同日志级别的描述可以在 /usr/include/sys/syslog.h 中找到

       #define LOG_EMERG       0       /* system is unusable */
       #define LOG_ALERT       1       /* action must be taken immediately */
       #define LOG_CRIT        2       /* critical conditions */
       #define LOG_ERR         3       /* error conditions */
       #define LOG_WARNING     4       /* warning conditions */
       #define LOG_NOTICE      5       /* normal but significant condition */
       #define LOG_INFO        6       /* informational */
       #define LOG_DEBUG       7       /* debug-level messages */

12.1.12 操作系统用户和组


12.1.12.1 所有系统用户都是必要的吗?

是也不是。Debian 附带了一些预定义的用户(用户 ID (UID) < 99,如 Debian 策略/usr/share/doc/base-passwd/README 中所述),以方便安装一些需要以适当的用户/UID 身份运行的服务。如果您不打算安装新服务,您可以安全地删除那些在您的系统中不拥有任何文件且不运行任何服务的用户。在任何情况下,默认行为是 Debian 中保留 UID 0 到 99,而 UID 100 到 999 由软件包在安装时创建(并在软件包被清除时删除)。

要轻松找到不拥有任何文件的用户,请执行以下命令[80](以 root 身份运行它,因为普通用户可能没有足够的权限来访问某些敏感目录)

       cut -f 1 -d : /etc/passwd | \
       while read i; do find / -user "$i" | grep -q . || echo "$i"; done

这些用户由 base-passwd 提供。请查看其文档以获取有关如何在 Debian 中处理这些用户的更多信息。默认用户列表(带有相应的组)如下

其他没有关联用户的组


12.1.12.2 我删除了一个系统用户!如何恢复?

如果您删除了一个系统用户并且没有备份您的 passwordgroup 文件,您可以尝试使用 update-passwd 从此问题中恢复(请参阅 update-passwd(8))。


12.1.12.3 adm 组和 staff 组之间有什么区别?

“adm”组通常是管理员,此组权限允许他们读取日志文件而无需 su。“staff”组通常是帮助台/初级系统管理员,允许他们在 /usr/local 中工作并在 /home 中创建目录。


12.1.13 为什么当我添加新用户时会有一个新组?(或者为什么 Debian 给每个用户一个组?)

Debian 中的默认行为是每个用户都有自己的私有组。传统的 UN*X 方案将所有用户分配给 users 组。创建了额外的组,并用于限制对与不同项目目录关联的共享文件的访问。当单个用户在多个项目上工作时,管理文件变得困难,因为当某人创建文件时,它与他们所属的主组(例如“users”)相关联。

Debian 的方案通过将每个用户分配到自己的组来解决此问题;因此,通过适当的 umask (0002) 并在给定的项目目录上设置 SETGID 位,正确的组会自动分配给在该目录中创建的文件。这使得在多个项目上工作的人员更容易,因为他们在处理共享文件时不必更改组或 umask。

但是,您可以通过修改 /etc/adduser.conf 来更改此行为。将 USERGROUPS 变量更改为“no”,以便在创建新用户时不会创建新组。此外,将 USERS_GID 设置为所有用户将属于的 users 组的 GID。


12.1.14 关于服务和开放端口的问题


12.1.14.1 为什么所有服务都在安装后激活?

这只是解决问题的一种方法,一方面要具有安全意识,另一方面要用户友好。与 OpenBSD 不同,后者禁用所有服务,除非管理员激活,否则 Debian GNU/Linux 将激活所有已安装的服务,除非被禁用(有关更多信息,请参阅 禁用守护进程服务,第 3.6.1 节)。毕竟您安装了该服务,不是吗?

关于哪种方法更适合标准安装,Debian 邮件列表(在 debian-devel 和 debian-security 上)上已经进行了很多讨论。但是,截至撰写本文时(2002 年 3 月),仍然没有达成共识。


12.1.14.2 我可以删除 inetd 吗?

Inetd 不容易删除,因为 netbase 依赖于提供它的软件包 (netkit-inetd)。如果您想删除它,您可以禁用它(请参阅 禁用守护进程服务,第 3.6.1 节)或使用 equivs 软件包删除该软件包。


12.1.14.3 为什么我的端口 111 是打开的?

端口 111 是 sunrpc 的 portmapper,默认情况下作为 Debian 基本安装的一部分安装,因为无需知道用户的程序何时可能需要 RPC 才能正常工作。在任何情况下,它主要用于 NFS。如果您不需要它,请按照 保护 RPC 服务,第 5.13 节 中所述将其删除。

portmap 软件包的 5-5 之后的版本中,您实际上可以安装 portmapper,但仅在 localhost 上监听(通过修改 /etc/default/portmap


12.1.14.4 identd(端口 113)有什么用?

Identd 服务是一种身份验证服务,用于识别特定 TCP/IP 连接的所有者到接受连接的远程服务器。通常,当用户连接到远程主机时,远程主机上的 inetd 会将查询发送回端口 113 以查找所有者信息。它通常由邮件、FTP 和 IRC 服务器使用,也可以用于跟踪本地系统中哪个用户正在攻击远程系统。

关于 identd 的安全性已经进行了广泛的讨论(请参阅 邮件列表存档)。一般来说,identd 在多用户系统上比在单用户工作站上更有帮助。如果您不需要它,请禁用它,这样您就不会将服务向外部世界开放。如果您决定防火墙 identd 端口,使用拒绝策略而不是拒绝策略,否则与利用 identd 的服务器的连接将挂起,直到超时过期(请参阅 拒绝或拒绝问题)。


12.1.14.5 我有服务使用端口 1 和 6,它们是什么,我如何删除它们?

如果您运行了命令 netstat -an 并收到

       Active Internet connections (servers and established)
       Proto Recv-Q Send-Q Local Address           Foreign Address         State
       PID/Program name
       raw        0      0 0.0.0.0:1               0.0.0.0:*               7
       -
       raw        0      0 0.0.0.0:6               0.0.0.0:*               7
       -

没有看到进程在 TCP/UDP 端口 1 和 6 上监听。实际上,您看到的是一个进程在原始套接字上监听协议 1 (ICMP) 和 6 (TCP)。这种行为在特洛伊木马和一些入侵检测系统(如 iploggerportsentry)中都很常见。如果您有这些软件包,只需删除它们即可。如果您没有,请尝试 netstat 的 -p(进程)选项,以查看哪个进程正在运行这些侦听器。


12.1.14.6 我发现端口 XYZ 打开,我可以关闭它吗?

是的,当然可以。您保持打开状态的端口应遵守您个人站点的关于可供其他网络使用的公共服务的策略。检查它们是否由 inetd 打开(请参阅 禁用 inetd 或其服务,第 3.6.2 节),或由其他已安装的软件包打开,并采取适当的措施(即,配置 inetd,删除软件包,避免在启动时运行它)。


12.1.14.7 从 /etc/services 中删除服务是否有助于保护我的机器?

/etc/services 仅提供虚拟名称和给定端口号之间的映射。从此文件中删除名称通常不会阻止服务启动。如果修改了 /etc/services,某些守护进程可能无法运行,但这并非正常情况。要正确禁用服务,请参阅 禁用守护进程服务,第 3.6.1 节


12.1.15 常见安全问题


12.1.15.1 我忘记了密码,无法访问系统!

您需要采取的恢复步骤取决于您是否应用了限制对 lilo 和系统 BIOS 访问的建议程序。

如果您同时限制了两者,则需要禁用 BIOS 设置,该设置仅允许从硬盘启动,然后再继续。如果您也忘记了 BIOS 密码,则必须打开系统并手动移除 BIOS 电池来重置 BIOS。

一旦您启用了从 CD-ROM 或软盘启动,请尝试以下操作

这将删除忘记的 root 密码,该密码包含在用户名后的第一个冒号分隔字段中。保存文件,重启系统,并使用空密码以 root 身份登录。记住重置密码。除非您更严格地配置了系统,否则这将起作用,即如果您不允许用户拥有空密码或不允许 root 从控制台登录。

如果您引入了这些功能,您将需要进入单用户模式。如果 LILO 受到限制,您需要在上面的 root 重置后重新运行 lilo。这非常棘手,因为您的 /etc/lilo.conf 需要进行调整,因为 root (/) 文件系统是 ramdisk 而不是真正的硬盘。

一旦 LILO 不受限制,请尝试以下操作


12.1.16 如何在不提供 shell 帐户的情况下为我的用户设置服务?

例如,如果您想设置 POP 服务,则无需为每个访问它的用户设置用户帐户。最好通过外部服务(如 Radius、LDAP 或 SQL 数据库)设置基于目录的身份验证。只需安装相应的 PAM 库 (libpam-radius-authlibpam-ldaplibpam-pgsqllibpam-mysql),阅读文档(对于初学者,请参阅用户身份验证:PAM,第 4.10.1 节)并配置启用 PAM 的服务以使用您选择的后端。这可以通过编辑您服务的 /etc/pam.d/ 下的文件并修改

      
       auth   required    pam_unix_auth.so shadow nullok use_first_pass

例如,ldap

       auth   required    pam_ldap.so

对于 LDAP 目录,某些服务提供 LDAP 模式以包含在您的目录中,这些模式是使用 LDAP 身份验证所必需的。如果您使用的是关系数据库,一个有用的技巧是在配置 PAM 模块时使用 where 子句。例如,如果您有一个具有以下表属性的数据库

       (user_id, user_name, realname, shell, password, UID, GID, homedir, sys, pop, imap, ftp)

通过将服务属性设为布尔字段,您可以使用它们来启用或禁用对不同服务的访问,只需在以下文件中插入相应的行即可


12.2 我的系统易受攻击!(你确定吗?)


12.2.1 漏洞评估扫描器 X 说我的 Debian 系统存在漏洞!

许多漏洞评估扫描器在 Debian 系统上使用时会给出误报,因为它们仅使用版本检查来确定给定的软件包是否存在漏洞,而没有真正测试安全漏洞本身。由于 Debian 在修复软件包时不会更改软件版本(通常为较新版本进行的修复会向后移植),因此某些工具倾向于认为更新后的 Debian 系统存在漏洞,但实际上并非如此。

如果您认为您的系统已安装最新的安全补丁,您可能需要使用与 DSA 一起发布的对安全漏洞数据库的交叉引用(请参阅Debian 安全公告,第 7.2 节)来排除误报,如果您使用的工具包含 CVE 参考。


12.2.2 我在系统的日志中看到了攻击痕迹。我的系统是否已遭入侵?

攻击痕迹并不总是意味着您的系统已遭入侵,您应该采取常用步骤来确定系统是否确实已遭入侵(请参阅入侵后(事件响应),第 11 章)。即使您的系统不易受记录的攻击影响,坚定的攻击者也可能使用了除您检测到的漏洞之外的其他漏洞。


12.2.3 我在日志中发现了奇怪的“MARK”行:我是否已遭入侵?

您可能会在系统日志中找到以下行

       Dec 30 07:33:36 debian -- MARK --
       Dec 30 07:53:36 debian -- MARK --
       Dec 30 08:13:36 debian -- MARK --

这并不表示任何类型的入侵,并且在 Debian 版本之间切换的用户可能会觉得很奇怪。如果您的系统没有高负载(或许多活动服务),这些行可能会在您的日志中通篇出现。这表明您的 syslogd 守护程序正在正常运行。来自 syslogd(8)

            -m interval
                   The syslogd logs a mark timestamp  regularly.   The
                   default interval between two -- MARK -- lines is 20
                   minutes.  This can be  changed  with  this  option.
                   Setting the interval to zero turns it off entirely.

12.2.4 我在日志中发现用户使用“su”:我是否已遭入侵?

您可能会在日志中找到类似以下的行

       Apr  1 09:25:01 server su[30315]: + ??? root-nobody
       Apr  1 09:25:01 server PAM_unix[30315]: (su) session opened for user nobody by (UID=0)

不要太担心。检查这些条目是否是由于 cron 作业引起的(通常是 /etc/cron.daily/findlogrotate

       $ grep 25 /etc/crontab
       25 9    * * *   root    test -e /usr/sbin/anacron || run-parts --report
       /etc/cron.daily
       $ grep nobody /etc/cron.daily/*
       find:cd / && updatedb --localuser=nobody 2>/dev/null

12.2.5 我在日志中发现了“possible SYN flooding”:我是否正在遭受攻击?

如果您在日志中看到如下条目

       May 1 12:35:25 linux kernel: possible SYN flooding on port X. Sending cookies.
       May 1 12:36:25 linux kernel: possible SYN flooding on port X. Sending cookies.
       May 1 12:37:25 linux kernel: possible SYN flooding on port X. Sending cookies.
       May 1 13:43:11 linux kernel: possible SYN flooding on port X. Sending cookies.

请检查是否有很多连接到服务器,例如使用 netstat

       linux:~# netstat -ant | grep SYN_RECV | wc -l
          9000

这表明您的系统的 X 端口正在遭受拒绝服务 (DoS) 攻击(最有可能针对公共服务,例如 Web 服务器或邮件服务器)。您应该在内核中激活 TCP 同步 Cookie,请参阅配置同步 Cookie,第 4.17.2 节。但是请注意,即使您可以阻止 DoS 攻击使您的系统崩溃(由于文件描述符耗尽,系统可能会变得无响应,直到 TCP 连接超时),DoS 攻击也可能使您的网络拥塞。阻止此攻击的唯一有效方法是联系您的网络提供商。


12.2.6 我在日志中发现了奇怪的 root 会话:我是否已遭入侵?

您可能会在 /var/log/auth.log 文件中看到以下类型的条目

       May 2 11:55:02 linux PAM_unix[1477]: (cron) session closed for user root
       May 2 11:55:02 linux PAM_unix[1476]: (cron) session closed for user root
       May 2 12:00:01 linux PAM_unix[1536]: (cron) session opened for user root by
       (UID=0)
       May 2 12:00:02 linux PAM_unix[1536]: (cron) session closed for user root

这些是由于正在执行的 cron 作业引起的(在本例中,每五分钟执行一次)。要确定哪个程序负责这些作业,请检查以下目录下的条目:/etc/crontab/etc/cron.d/etc/crond.daily 和 root 的 crontab,位于 /var/spool/cron/crontabs 下。


12.2.7 我遭受了入侵,我该怎么办?

如果发生入侵,您可能需要采取以下几个步骤


12.2.8 如何追踪攻击?

通过监视日志(如果它们没有被篡改),使用入侵检测系统(请参阅设置入侵检测,第 10.3 节)、traceroutewhois 和类似工具(包括取证分析),您可能能够将攻击追溯到源头。您应该如何对此信息做出反应完全取决于您的安全策略,以及 认为什么是攻击。远程扫描是攻击吗?漏洞探测是攻击吗?


12.2.9 Debian 中的程序 X 存在漏洞,我该怎么办?

首先,花点时间查看该漏洞是否已在公共安全邮件列表(如 Bugtraq)或其他论坛中发布。Debian 安全团队会及时关注这些列表,因此他们也可能意识到该问题。如果您在 http://security.debian.org 上看到公告,请勿采取任何进一步措施。

如果似乎没有发布任何信息,请发送电子邮件至 team@security.debian.org,告知受影响的软件包,以及漏洞的详细描述(概念验证代码也可以)。这将使您与 Debian 的安全团队取得联系。


12.2.10 软件包的版本号表明我仍在运行易受攻击的版本!

Debian 没有升级到新版本,而是将安全修复程序向后移植到稳定版本中发布的版本。这样做的原因是确保稳定版本尽可能少地更改,以便安全修复不会意外更改或破坏任何内容。您可以通过查看软件包的变更日志,或将其确切的(上游版本 - 斜杠 - Debian 版本)版本号与 Debian 安全公告中指示的版本进行比较,来检查您是否正在运行软件包的安全版本。


12.2.11 特定软件


12.2.11.1 proftpd 易受拒绝服务攻击。

DenyFilter \*.*/ 添加到您的配置文件中,有关更多信息,请参阅 http://www.proftpd.org/bugs.html


12.2.11.2 安装 portsentry 后,有很多端口处于打开状态。

这只是 portsentry 的工作方式。它打开大约二十个未使用的端口,以尝试检测端口扫描。


12.3 关于 Debian 安全团队的问题

此信息来源于 Debian 安全常见问题解答。它包括截至 2006 年 1 月的信息,并提供了 debian-security 邮件列表中提出的一些其他常见问题的答案。


12.3.1 什么是 Debian 安全公告 (DSA)?

它是 Debian 安全团队(见下文)发送的关于在 Debian GNU/Linux 中提供的软件包中发现并修复安全相关漏洞的信息。已签名的 DSA 会发送到公共邮件列表 (debian-security-announce) 并在 Debian 的网站上发布(首页和 安全区域)。

DSA 包括有关受影响的软件包、发现的安全漏洞以及在哪里检索更新的软件包(及其 MD5 校验和)的信息。


12.3.2 Debian 公告上的签名验证不正确!

这很可能是您方面的问题。debian-security-announce 列表有一个过滤器,仅允许发布带有安全团队成员之一的正确签名的消息。

很可能是您端的一些邮件软件稍微更改了消息,从而破坏了签名。确保您的软件不执行任何 MIME 编码或解码,或者制表符/空格转换。

已知的罪魁祸首是 fetchmail(启用了 mimedecode 选项)、formail(仅来自 procmail 3.14)和 evolution。


12.3.3 Debian 中如何处理安全性?

一旦安全团队收到事件通知,一名或多名成员会对其进行审查并考虑其对 Debian 稳定版本的影响(即它是否易受攻击)。如果我们的系统易受攻击,我们将致力于解决该问题。如果软件包维护者尚未联系安全团队,也会联系他们。最后,修复程序经过测试,并准备了新的软件包,然后在所有稳定架构上编译,然后上传。完成所有这些操作后,将发布公告。


12.3.4 为什么你们要摆弄该软件包的旧版本?

在制作修复安全问题的新软件包时,最重要的指导原则是尽可能少地进行更改。我们的用户和开发人员都依赖于发布后的版本的确切行为,因此我们进行的任何更改都可能破坏某些人的系统。对于库而言尤其如此:确保您永远不要更改应用程序编程接口 (API) 或应用程序二进制接口 (ABI),无论更改多么小。

这意味着迁移到新的上游版本不是一个好的解决方案,相反,应该向后移植相关的更改。通常,如果需要,上游维护者愿意提供帮助,否则 Debian 安全团队可能会提供帮助。

在某些情况下,不可能向后移植安全修复程序,例如,当需要修改或重写大量源代码时。如果发生这种情况,可能有必要迁移到新的上游版本,但这必须事先与安全团队协调。


12.3.5 固定软件包出现在 security.debian.org 上的策略是什么?

稳定发行版中的安全漏洞保证 security.debian.org 上有一个软件包。其他任何情况都不保证。漏洞的大小不是这里真正的问题。通常,安全团队将与软件包维护者一起准备软件包。只要有人(受信任)跟踪该问题并获取所有需要的已编译软件包并将其提交给安全团队,即使是非常小的安全问题修复程序也会进入 security.debian.org。请参阅下文。

安全更新仅服务于一个目的:为安全漏洞提供修复程序。它们不是在不经过正常点版本发布程序的情况下将其他更改偷偷摸摸地引入稳定版本的方法。


12.3.6 “本地(远程)”是什么意思?

一些公告涵盖了无法使用本地和远程可利用性的经典方案来识别的漏洞。某些漏洞无法从远程利用,即不对应于侦听网络端口的守护程序。如果可以通过可能通过网络提供的特殊文件来利用它们,而易受攻击的服务未永久连接到网络,我们在这种情况下会写“本地(远程)”。

此类漏洞介于本地漏洞和远程漏洞之间,通常涵盖可以通过网络提供的存档,例如作为邮件附件或从下载页面下载。


12.3.7 软件包的版本号表明我仍在运行易受攻击的版本!

请参阅软件包的版本号表明我仍在运行易受攻击的版本!,第 12.2.10 节


12.3.8 如何处理 testingunstable 的安全性?

简短的答案是:不处理。testingunstable 是快速移动的目标,安全团队没有适当支持它们所需的资源。如果您想要一个安全(且稳定)的服务器,我们强烈建议您坚持使用稳定版本。但是,正在努力改变这种情况,成立了一个 testing 安全团队,该团队已开始为 testing 提供安全支持,并在某种程度上为 unstable 提供安全支持。有关更多信息,请参阅testing 分支的安全支持,第 10.1.4 节

但是,在某些情况下,unstable 分支通常会很快获得安全修复程序,因为这些修复程序通常在上游更快可用(其他版本,如稳定分支中的版本,通常需要向后移植)。

您可以在 安全漏洞跟踪器 中查看影响 testingunstable 版本的公共漏洞。


12.3.9 我使用的是旧版本的 Debian,Debian 安全团队是否支持它?

否。不幸的是,Debian 安全团队无法同时处理稳定版本(非官方地,也包括 unstable)和其他旧版本。但是,您可以期望在新 Debian 发行版发布后有限的时间内(通常是几个月)获得安全更新。


12.3.10 testing 如何获得安全更新?

安全更新将通过 unstable 迁移到 testing 发行版。它们通常会以上设置为高的优先级上传,这将隔离时间缩短为两天。在此期间之后,软件包将自动迁移到 testing,前提是它们是为所有架构构建的,并且它们的依赖项在 testing 中得到满足。

当正常迁移过程不够快时,testing 安全团队 还在其存储库中提供安全修复程序。


12.3.11 如何处理 contrib 和 non-free 的安全性?

简短的答案是:不处理。Contrib 和 non-free 不是 Debian 发行版的官方部分,未发布,因此不受安全团队的支持。某些 non-free 软件包在没有源代码或没有允许分发修改版本的许可证的情况下分发。在这些情况下,根本无法进行安全修复。如果可以解决问题,并且软件包维护者或其他人员提供了正确的更新软件包,则安全团队通常会处理它们并发布公告。


12.3.12 为什么 security.debian.org 没有官方镜像?

实际上,是有的。有几个官方镜像,通过 DNS 别名实现。security.debian.org 的目的是使安全更新尽可能快速和轻松地可用。

鼓励使用非官方镜像会增加通常不需要的额外复杂性,并且如果这些镜像没有及时更新,可能会导致挫败感。


12.3.13 我看到了 DSA 100 和 DSA 102,现在 DSA 101 在哪里?

几家供应商(主要是 GNU/Linux 供应商,但也包括 BSD 衍生产品)针对某些事件协调安全公告,并就特定时间表达成一致,以便所有供应商都能够在同一时间发布公告。这样做是为了不歧视某些需要更多时间的供应商(例如,当供应商必须通过漫长的 QA 测试或必须支持多种架构或二进制发行版时)。我们自己的安全团队也会提前准备公告。偶尔,在可以发布已停放的公告之前,必须处理其他安全问题,因此暂时遗漏了一个或多个编号的公告。


12.3.14 我尝试下载安全公告中列出的软件包,但我收到了“file not found”错误。

每当较新的错误修复程序取代 security.debian.org 上的旧软件包时,旧软件包很可能会在新软件包安装时被删除。因此,您将收到此“file not found”错误。我们不想分发已知存在安全漏洞的软件包,超过绝对必要的时间。

请使用最新安全公告中的软件包,这些公告通过 debian-security-announce 邮件列表 分发。最好在升级软件包之前简单地运行 apt-get update


12.3.15 如何联系安全团队?

安全信息可以发送到 security@debian.org,所有 Debian 开发人员都可以阅读该邮件。如果您有敏感信息,请使用 team@security.debian.org,只有团队成员才能阅读该邮件。如果需要,可以使用 Debian 安全联系密钥(密钥 ID 0x363CCD95)对电子邮件进行加密。另请参阅 安全团队的 PGP/GPG 密钥


12.3.16 security@debian.org 和 debian-security@lists.debian.org 之间有什么区别?

当您向 security@debian.org 发送消息时,它们会被发送到开发人员的邮件列表 (debian-private)。所有 Debian 开发人员都订阅了此列表,并且帖子是保密的 [81](即,未在公共网站上存档)。公共邮件列表 debian-security@lists.debian.org 对任何想要 订阅 的人开放,并且有可搜索的存档,请点击 此处


12.3.17 我猜我发现了一个安全问题,我应该怎么办?

如果您了解到安全问题,无论是在您自己的软件包中还是在其他人的软件包中,请务必联系安全团队。如果 Debian 安全团队确认了该漏洞,并且其他供应商也可能容易受到攻击,他们通常也会联系其他供应商。如果该漏洞尚未公开,他们将尝试与其他供应商协调安全公告,以便所有主要发行版保持同步。

如果该漏洞已公开,请务必在 Debian BTS 中提交错误报告,并将其标记为 security


12.3.18 我如何为 Debian 安全团队做出贡献?

在所有情况下,请在向 security@debian.org 报告之前查看每个问题。如果您能够提供补丁,那将加快流程。不要只是转发 Bugtraq 邮件,因为他们已经收到了。但是,提供其他信息始终是一个好主意。


12.3.19 安全团队由谁组成?

Debian 安全团队由 几名官员和秘书 组成。安全团队本身任命人员加入团队。


12.3.20 Debian 安全团队是否检查 Debian 中的每个新软件包?

否,Debian 安全团队不检查每个新软件包,也没有自动 (lintian) 检查来检测包含恶意代码的新软件包,因为这些检查相当不可能自动执行。但是,维护人员对他们引入 Debian 的软件包负全部责任,并且所有软件包首先由授权开发人员签名。开发人员负责分析他们维护的所有软件包的安全性。


12.3.21 Debian 需要多长时间才能修复漏洞 XXXX?

一旦发现漏洞,Debian 安全团队会迅速发送公告并为稳定分支生成修复后的软件包。debian-security 邮件列表中发布的报告 显示,在 2001 年,Debian 安全团队平均花费 35 天来修复与安全相关的漏洞。但是,超过 50% 的漏洞在 10 天内修复,超过 15% 的漏洞在公告发布当天修复。

但是,当提出这个问题时,人们往往会忘记

如果您想更深入地分析安全团队处理漏洞所需的时间,您应该考虑到在 安全网站 上发布的新 DSA(请参阅Debian 安全公告,第 7.2 节)以及用于生成它们的元数据,包括指向漏洞数据库的链接。您可以从 Web 服务器 (从 CVS) 下载源文件,或使用 HTML 页面来确定 Debian 修复漏洞所需的时间,并将此数据与公共数据库关联起来。


12.3.22 安全更新将提供多长时间?

安全团队尝试在下一个稳定发行版发布后大约一年内支持稳定发行版,除非在这一年内发布了另一个稳定发行版。不可能同时支持三个发行版;同时支持两个已经足够困难了。


12.3.23 如何检查软件包的完整性?

此过程包括根据存档的公钥(可在 http://ftp-master.debian.org/ziyi_key_2006.asc 获取,将 2006 替换为当前年份)检查 Release 文件签名。Release 文件包含 Packages 和 Sources 文件的 MD5 校验和,Packages 和 Sources 文件包含二进制和源软件包的 MD5 校验和。有关如何检查软件包完整性的详细说明,请参见Debian 中的软件包签名,第 7.5 节


12.3.24 如果在安全更新后随机软件包崩溃怎么办?

首先,您应该弄清楚软件包崩溃的原因以及它与安全更新的联系,然后如果情况严重,请联系安全团队,如果情况不太严重,请联系稳定版本管理器。我们正在谈论的是在不同软件包的安全更新后崩溃的随机软件包。如果您无法弄清楚出了什么问题但有更正,也请与安全团队联系。您可能会被重定向到稳定版本管理器。


[ 上一页 ] [ 目录 ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ A ] [ B ] [ C ] [ D ] [ E ] [ F ] [ G ] [ H ] [ 下一页 ]


Debian 安全手册

版本:3.13,星期日,2012 年 4 月 8 日 02:48:09 +0000

Javier Fernández-Sanguino Peña jfs@debian.org
作者,第 1.1 节