[ 上一页 ] [ 目录 ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ A ] [ B ] [ C ] [ D ] [ E ] [ F ] [ G ] [ H ] [ 下一页 ]
本章介绍 Debian 安全邮件列表中的一些最常见问题。您应该在发布到那里之前阅读它们,否则人们可能会告诉您 RTFM(请阅读手册)。
一个系统的安全程度取决于其管理员使其安全的能力。Debian 默认安装服务的目的是安全,但可能不像其他一些操作系统那样偏执,后者默认安装所有服务时禁用。在任何情况下,系统管理员都需要根据其本地安全策略调整系统的安全性。
有关许多操作系统的安全漏洞数据的集合,请参阅 US-CERT 统计数据
或使用 国家漏洞数据库
(以前的 ICAT)生成统计数据。此数据有用吗?在解释数据时需要考虑几个因素,值得注意的是,该数据不能用于比较一个操作系统与另一个操作系统的漏洞。[77] 此外,请记住,一些关于 Debian 的已报告漏洞仅适用于不稳定(即未发布)分支。
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 中需要考虑的其他安全方面
Debian 提供了比其他发行版更多的安全工具,请参阅 Debian 中的安全工具,第 8 章。
Debian 的标准安装更小(功能更少),因此更安全。其他发行版,以可用性为名,倾向于默认安装许多服务,有时它们配置不当(记住 Lion
Ramen
)。Debian 的安装不像 OpenBSD 那样受限(默认情况下没有守护进程处于活动状态),但这是一个很好的折衷方案。[78]
Debian 在像本文档这样的文档中记录了最佳安全实践。
Debian 发行版拥有大量且不断增长的软件包,可能比许多专有操作系统提供的软件包还要多。安装的软件包越多,任何给定系统中出现安全问题的可能性就越大。
越来越多的人正在检查源代码中的缺陷。有很多与 Debian 中包含的主要软件组件的源代码审计相关的公告。每当此类源代码审计发现安全缺陷时,都会修复它们,并将公告发送到 Bugtraq 等列表。
Debian 发行版中存在的错误通常也会影响其他供应商和发行版。查看每个公告 (DSA) 顶部的“Debian specific: yes/no”部分。
简短回答:否。
详细回答:认证需要花钱(尤其是严肃的安全认证),没有人投入资源来将 Debian GNU/Linux 认证到任何级别的,例如,通用准则
。如果您有兴趣获得安全认证的 GNU/Linux 发行版,请尝试提供使其成为可能所需的资源。
目前至少有两个 linux 发行版已通过不同 EAL
级别的认证。请注意,一些 CC 测试正在集成到 Linux 测试项目
中,该项目在 Debian 的 ltp
中可用。
是的。Bastille Linux
最初面向其他 Linux 发行版(Red Hat 和 Mandrake),目前适用于 Debian。正在采取措施将对上游版本所做的更改集成到名为 bastille
的 Debian 软件包中。
然而,有些人认为,加固工具并不能消除良好管理的需求。
Debian 的一大优势是在提供相同功能的软件包(DNS 服务器、邮件服务器、ftp 服务器、Web 服务器等)之间提供了广泛的选择。当新手管理员试图确定哪个软件包适合您时,这可能会令人困惑。给定情况的最佳匹配取决于您的功能和安全需求的平衡。以下是在相似软件包之间做出决定时要问自己的一些问题
该软件是否在上游维护?上次发布是什么时候?
该软件包是否成熟?版本号实际上并不告诉您它的成熟度。尝试追溯软件的历史。
该软件是否错误百出?是否有与其相关的安全公告?
该软件是否提供您需要的所有功能?它是否提供超出您实际需要的更多功能?
您将在本文档中找到使 Debian GNU/Linux 中的某些服务(FTP、Bind)更安全的信息。对于此处未涵盖的服务,请查看程序的文档或常规 Linux 信息。大多数 Unix 系统的安全指南也适用于 Debian。在大多数情况下,在 Debian 中保护服务 X 就像在任何其他 Linux 发行版(或 Un*x,就此而言)中保护该服务一样。
例如,如果您不喜欢用户连接到您的 POP3 守护进程并检索有关您系统的信息,您可能需要删除(或更改)服务向用户显示的标语。[79] 这样做取决于您为给定服务运行的软件。例如,在 postfix
中,您可以在 /etc/postfix/main.cf
中设置您的 SMTP 标语
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
其他软件不容易更改。ssh
将需要重新编译才能更改其打印的版本。注意不要删除标语的第一部分 (SSH-2.0),客户端使用该部分来识别您的软件包支持哪些协议。
Debian 安全团队不可能分析 Debian 中包含的所有软件包的潜在安全漏洞,因为没有足够的资源来对整个项目进行源代码审计。但是,Debian 确实受益于上游开发人员进行的源代码审计。
事实上,Debian 开发人员可以在软件包中分发特洛伊木马,并且无法检查出来。即使引入到 Debian 分支中,也不可能涵盖特洛伊木马会执行的所有可能情况。这就是 Debian 具有“不保证”许可证条款的原因。
但是,Debian 用户可以对稳定代码拥有广泛受众这一事实充满信心,并且大多数问题将在使用中被发现。不建议在关键系统中安装未经测试的软件(如果您无法提供必要的代码审计)。在任何情况下,如果发行版中引入了安全漏洞,则用于包含软件包的过程(使用数字签名)可确保最终可以将问题追溯到开发人员。Debian 项目并没有轻视这个问题。
当然,您可以更改系统上的默认 Debian 权限。当前关于日志文件和配置文件的策略是,除非它们提供敏感信息,否则它们是全局可读的。
如果您进行更改,请小心,因为
如果您限制进程的权限,进程可能无法写入日志文件。
如果无法读取某些应用程序所依赖的配置文件,则这些应用程序可能无法工作。例如,如果您从 /etc/samba/smb.conf
中删除全局可读权限,则普通用户运行时 smbclient
程序将无法工作。
FIXME:检查这是否写在策略中。某些软件包(即 ftp 守护进程)似乎强制执行不同的权限。
事实上,任何其他用户也存在相同的问题。由于 Debian 的安装没有在该目录下放置任何文件,因此那里没有敏感信息需要保护。如果您觉得这些权限对您的系统来说太宽泛,请考虑将其收紧为 750。对于用户,请阅读 限制对其他用户信息访问,第 4.10.12.1 节。
这个 Debian 安全邮件列表 线程
提供了关于此问题的更多信息。
如果您收到控制台消息,并且已配置 /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 */
是也不是。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 中处理这些用户的更多信息。默认用户列表(带有相应的组)如下
root:Root(通常)是超级用户。
daemon:一些需要写入磁盘文件的非特权守护进程以 daemon.daemon 身份运行(例如,portmap
、atd
,可能还有其他)。不需要拥有任何文件的守护进程可以改为以 nobody.nogroup 身份运行,而更复杂或具有安全意识的守护进程以专用用户身份运行。daemon 用户也方便本地安装的守护进程。
bin:为历史原因而维护。
sys:与 bin 相同。但是,/dev/vcs* 和 /var/spool/cups
归组 sys 所有。
sync:用户 sync 的 shell 是 /bin/sync
。因此,如果其密码设置为容易猜测的内容(例如“""”),即使他们没有帐户,任何人也可以在控制台上同步系统。
games:许多游戏都 SETGID 到 games,以便它们可以写入其高分文件。这在策略中进行了解释。
man:man 程序(有时)以用户 man 身份运行,因此它可以将 cat 页面写入 /var/cache/man
lp:由打印机守护进程使用。
mail:/var/mail
中的邮箱归组 mail 所有,如策略中所述。用户和组也被各种 MTA 用于其他目的。
news:各种新闻服务器和其他相关程序(如 suck
)以各种方式使用用户和组 news。新闻假脱机目录中的文件通常归用户和组 news 所有。可以用于发布新闻的程序(如 inews
)通常是 SETGID news。
uucp:uucp 用户和组由 UUCP 子系统使用。它拥有假脱机和配置文件。uucp 组中的用户可以运行 uucico。
proxy:与 daemon 类似,此用户和组由某些守护进程(特别是代理守护进程)使用,这些守护进程没有专用的用户 ID 并且需要拥有文件。例如,组 proxy 由 pdnsd
使用,squid
以用户 proxy 身份运行。
majordom:Majordomo
在 Debian 系统上为历史原因静态分配了 UID。它未安装在新系统上。
postgres:Postgresql
数据库归此用户和组所有。/var/lib/postgresql
中的所有文件都归此用户所有,以强制执行适当的安全性。
www-data:某些 Web 服务器以 www-data 身份运行。Web 内容不应归此用户所有,否则受损的 Web 服务器将能够重写网站。Web 服务器写出的数据(包括日志文件)将归 www-data 所有。
backup:以便可以将备份/恢复职责本地委派给某人,而无需完全 root 权限。
operator:operator 在历史上(实际上)是唯一可以远程登录的“用户”帐户,并且不依赖于 NIS/NFS。
list:邮件列表存档和数据归此用户和组所有。一些邮件列表程序也可能以此用户身份运行。
irc:由 irc 守护进程使用。仅由于 ircd
中的错误才需要静态分配用户,该错误在启动时将其自身 SETUID() 到给定的 UID。
gnats。
nobody, nogroup:不需要拥有任何文件的守护进程以用户 nobody 和组 nogroup 身份运行。因此,系统上的任何文件都不应归此用户或组所有。
其他没有关联用户的组
adm:组 adm 用于系统监控任务。此组的成员可以读取 /var/log
中的许多日志文件,并且可以使用 xconsole。历史上,/var/log
是 /usr/adm
(后来是 /var/adm
),因此组名由此而来。
tty:TTY 设备归此组所有。write 和 wall 使用它来使它们能够写入其他人的 TTY。
disk:对磁盘的原始访问。在很大程度上等同于 root 访问。
kmem:/dev/kmem 和类似的文件可由此组读取。这在很大程度上是 BSD 的遗物,但是任何需要直接读取系统内存的程序都可以被 SETGID kmem。
dialout:对串行端口的完全和直接访问。此组的成员可以重新配置调制解调器,拨打任何地方等。
dip:组名代表“拨号 IP”,dip 组的成员资格允许您使用 ppp
、dip
、wvdial
等工具拨号连接。此组中的用户无法配置调制解调器,但可以运行使用调制解调器的程序。
fax:允许成员使用传真软件发送/接收传真。
voice:语音邮件,对于将调制解调器用作答录机的系统很有用。
cdrom:此组可以在本地使用,以向一组用户授予对 CDROM 驱动器的访问权限。
floppy:此组可以在本地使用,以向一组用户授予对软盘驱动器的访问权限。
tape:此组可以在本地使用,以向一组用户授予对磁带驱动器的访问权限。
sudo:此组的成员在使用 sudo
时无需键入密码。请参阅 /usr/share/doc/sudo/OPTIONS
。
audio:此组可以在本地使用,以向一组用户授予对音频设备的访问权限。
src:此组拥有源代码,包括 /usr/src
中的文件。它可以在本地使用,以使用户能够管理系统源代码。
shadow:/etc/shadow
可由此组读取。一些需要能够访问该文件的程序是 SETGID shadow。
utmp:此组可以写入 /var/run/utmp
和类似的文件。需要能够写入它的程序是 SETGID utmp。
video:此组可以在本地使用,以向一组用户授予对视频设备的访问权限。
staff:允许用户向系统 (/usr/local
, /home
) 添加本地修改,而无需 root 权限。与组“adm”进行比较,后者更与监视/安全相关。
users:虽然 Debian 系统默认使用私有用户组系统(每个用户都有自己的组),但有些人更喜欢使用更传统的组系统,其中每个用户都是此组的成员。
如果您删除了一个系统用户并且没有备份您的 password
和 group
文件,您可以尝试使用 update-passwd
从此问题中恢复(请参阅 update-passwd(8)
)。
“adm”组通常是管理员,此组权限允许他们读取日志文件而无需 su
。“staff”组通常是帮助台/初级系统管理员,允许他们在 /usr/local
中工作并在 /home
中创建目录。
Debian 中的默认行为是每个用户都有自己的私有组。传统的 UN*X 方案将所有用户分配给 users 组。创建了额外的组,并用于限制对与不同项目目录关联的共享文件的访问。当单个用户在多个项目上工作时,管理文件变得困难,因为当某人创建文件时,它与他们所属的主组(例如“users”)相关联。
Debian 的方案通过将每个用户分配到自己的组来解决此问题;因此,通过适当的 umask (0002) 并在给定的项目目录上设置 SETGID 位,正确的组会自动分配给在该目录中创建的文件。这使得在多个项目上工作的人员更容易,因为他们在处理共享文件时不必更改组或 umask。
但是,您可以通过修改 /etc/adduser.conf
来更改此行为。将 USERGROUPS 变量更改为“no”,以便在创建新用户时不会创建新组。此外,将 USERS_GID 设置为所有用户将属于的 users 组的 GID。
这只是解决问题的一种方法,一方面要具有安全意识,另一方面要用户友好。与 OpenBSD 不同,后者禁用所有服务,除非管理员激活,否则 Debian GNU/Linux 将激活所有已安装的服务,除非被禁用(有关更多信息,请参阅 禁用守护进程服务,第 3.6.1 节)。毕竟您安装了该服务,不是吗?
关于哪种方法更适合标准安装,Debian 邮件列表(在 debian-devel 和 debian-security 上)上已经进行了很多讨论。但是,截至撰写本文时(2002 年 3 月),仍然没有达成共识。
inetd
吗?
Inetd
不容易删除,因为 netbase
依赖于提供它的软件包 (netkit-inetd
)。如果您想删除它,您可以禁用它(请参阅 禁用守护进程服务,第 3.6.1 节)或使用 equivs
软件包删除该软件包。
端口 111 是 sunrpc 的 portmapper,默认情况下作为 Debian 基本安装的一部分安装,因为无需知道用户的程序何时可能需要 RPC 才能正常工作。在任何情况下,它主要用于 NFS。如果您不需要它,请按照 保护 RPC 服务,第 5.13 节 中所述将其删除。
在 portmap
软件包的 5-5 之后的版本中,您实际上可以安装 portmapper,但仅在 localhost 上监听(通过修改 /etc/default/portmap
)
identd
(端口 113)有什么用?Identd 服务是一种身份验证服务,用于识别特定 TCP/IP 连接的所有者到接受连接的远程服务器。通常,当用户连接到远程主机时,远程主机上的 inetd
会将查询发送回端口 113 以查找所有者信息。它通常由邮件、FTP 和 IRC 服务器使用,也可以用于跟踪本地系统中哪个用户正在攻击远程系统。
关于 identd
的安全性已经进行了广泛的讨论(请参阅 邮件列表存档
)。一般来说,identd
在多用户系统上比在单用户工作站上更有帮助。如果您不需要它,请禁用它,这样您就不会将服务向外部世界开放。如果您决定防火墙 identd 端口,请使用拒绝策略而不是拒绝策略,否则与利用 identd
的服务器的连接将挂起,直到超时过期(请参阅 拒绝或拒绝问题
)。
如果您运行了命令 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)。这种行为在特洛伊木马和一些入侵检测系统(如 iplogger
和 portsentry
)中都很常见。如果您有这些软件包,只需删除它们即可。如果您没有,请尝试 netstat 的 -p(进程)选项,以查看哪个进程正在运行这些侦听器。
是的,当然可以。您保持打开状态的端口应遵守您个人站点的关于可供其他网络使用的公共服务的策略。检查它们是否由 inetd
打开(请参阅 禁用 inetd
或其服务,第 3.6.2 节),或由其他已安装的软件包打开,并采取适当的措施(即,配置 inetd,删除软件包,避免在启动时运行它)。
/etc/services
中删除服务是否有助于保护我的机器?
否,/etc/services
仅提供虚拟名称和给定端口号之间的映射。从此文件中删除名称通常不会阻止服务启动。如果修改了 /etc/services
,某些守护进程可能无法运行,但这并非正常情况。要正确禁用服务,请参阅 禁用守护进程服务,第 3.6.1 节。
您需要采取的恢复步骤取决于您是否应用了限制对 lilo
和系统 BIOS 访问的建议程序。
如果您同时限制了两者,则需要禁用 BIOS 设置,该设置仅允许从硬盘启动,然后再继续。如果您也忘记了 BIOS 密码,则必须打开系统并手动移除 BIOS 电池来重置 BIOS。
一旦您启用了从 CD-ROM 或软盘启动,请尝试以下操作
从救援磁盘启动并启动内核
转到虚拟控制台 (Alt+F2)
挂载您的 /root 所在的硬盘
编辑(Debian 2.2 救援磁盘附带编辑器 ae
,Debian 3.0 附带 nano-tiny
,它类似于 vi
)/etc/shadow
并更改行
root:asdfjl290341274075:XXXX:X:XXXX:X::: (X=any number)
到
root::XXXX:X:XXXX:X:::
这将删除忘记的 root 密码,该密码包含在用户名后的第一个冒号分隔字段中。保存文件,重启系统,并使用空密码以 root 身份登录。记住重置密码。除非您更严格地配置了系统,否则这将起作用,即如果您不允许用户拥有空密码或不允许 root 从控制台登录。
如果您引入了这些功能,您将需要进入单用户模式。如果 LILO 受到限制,您需要在上面的 root 重置后重新运行 lilo
。这非常棘手,因为您的 /etc/lilo.conf
需要进行调整,因为 root (/) 文件系统是 ramdisk 而不是真正的硬盘。
一旦 LILO 不受限制,请尝试以下操作
在系统 BIOS 完成之前按 Alt、shift 或 Control 键,您应该会得到 LILO 提示符。
在提示符下键入 linux single、linux init=/bin/sh 或 linux 1。
这将为您提供单用户模式下的 shell 提示符(它会要求输入密码,但您已经知道了)
使用 mount 命令重新挂载读/写根 (/) 分区。
# mount -o remount,rw /
使用 passwd
更改超级用户密码(由于您是超级用户,因此它不会要求输入之前的密码)。
例如,如果您想设置 POP 服务,则无需为每个访问它的用户设置用户帐户。最好通过外部服务(如 Radius、LDAP 或 SQL 数据库)设置基于目录的身份验证。只需安装相应的 PAM 库 (libpam-radius-auth
、libpam-ldap
、libpam-pgsql
或 libpam-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)
通过将服务属性设为布尔字段,您可以使用它们来启用或禁用对不同服务的访问,只需在以下文件中插入相应的行即可
/etc/pam.d/imap
:where=imap=1。
/etc/pam.d/qpopper
:where=pop=1。
/etc/nss-mysql*.conf
:users.where_clause = user.sys = 1;。
/etc/proftpd.conf
:SQLWhereClause "ftp=1"。
许多漏洞评估扫描器在 Debian 系统上使用时会给出误报,因为它们仅使用版本检查来确定给定的软件包是否存在漏洞,而没有真正测试安全漏洞本身。由于 Debian 在修复软件包时不会更改软件版本(通常为较新版本进行的修复会向后移植),因此某些工具倾向于认为更新后的 Debian 系统存在漏洞,但实际上并非如此。
如果您认为您的系统已安装最新的安全补丁,您可能需要使用与 DSA 一起发布的对安全漏洞数据库的交叉引用(请参阅Debian 安全公告,第 7.2 节)来排除误报,如果您使用的工具包含 CVE 参考。
攻击痕迹并不总是意味着您的系统已遭入侵,您应该采取常用步骤来确定系统是否确实已遭入侵(请参阅入侵后(事件响应),第 11 章)。即使您的系统不易受记录的攻击影响,坚定的攻击者也可能使用了除您检测到的漏洞之外的其他漏洞。
您可能会在系统日志中找到以下行
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.
您可能会在日志中找到类似以下的行
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/find
或 logrotate
)
$ 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
如果您在日志中看到如下条目
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 攻击也可能使您的网络拥塞。阻止此攻击的唯一有效方法是联系您的网络提供商。
您可能会在 /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
下。
如果发生入侵,您可能需要采取以下几个步骤
检查您的系统是否已安装已发布漏洞的安全补丁。如果您的系统存在漏洞,则系统确实已遭入侵的可能性会增加。如果漏洞已为人所知一段时间,则可能性会进一步增加,因为通常与较旧的漏洞相关的活动更多。这是 SANS Top 20 安全漏洞
的链接。
阅读本文档,特别是入侵后(事件响应),第 11 章部分。
寻求帮助。您可以使用 debian-security 邮件列表,并询问有关如何恢复/修补系统的建议。
通知您当地的 CERT
(如果存在,否则您可能需要考虑直接联系 CERT)。这可能会也可能不会对您有所帮助,但至少,它会将正在进行的攻击告知 CERT。此信息对于确定 黑客 社区正在使用的工具和攻击非常有价值。
通过监视日志(如果它们没有被篡改),使用入侵检测系统(请参阅设置入侵检测,第 10.3 节)、traceroute
、whois
和类似工具(包括取证分析),您可能能够将攻击追溯到源头。您应该如何对此信息做出反应完全取决于您的安全策略,以及 您 认为什么是攻击。远程扫描是攻击吗?漏洞探测是攻击吗?
首先,花点时间查看该漏洞是否已在公共安全邮件列表(如 Bugtraq)或其他论坛中发布。Debian 安全团队会及时关注这些列表,因此他们也可能意识到该问题。如果您在 http://security.debian.org
上看到公告,请勿采取任何进一步措施。
如果似乎没有发布任何信息,请发送电子邮件至 team@security.debian.org
,告知受影响的软件包,以及漏洞的详细描述(概念验证代码也可以)。这将使您与 Debian 的安全团队取得联系。
Debian 没有升级到新版本,而是将安全修复程序向后移植到稳定版本中发布的版本。这样做的原因是确保稳定版本尽可能少地更改,以便安全修复不会意外更改或破坏任何内容。您可以通过查看软件包的变更日志,或将其确切的(上游版本 - 斜杠 - Debian 版本)版本号与 Debian 安全公告中指示的版本进行比较,来检查您是否正在运行软件包的安全版本。
proftpd
易受拒绝服务攻击。将 DenyFilter \*.*/ 添加到您的配置文件中,有关更多信息,请参阅 http://www.proftpd.org/bugs.html
。
portsentry
后,有很多端口处于打开状态。这只是 portsentry
的工作方式。它打开大约二十个未使用的端口,以尝试检测端口扫描。
此信息来源于 Debian 安全常见问题解答
。它包括截至 2006 年 1 月的信息,并提供了 debian-security 邮件列表中提出的一些其他常见问题的答案。
它是 Debian 安全团队(见下文)发送的关于在 Debian GNU/Linux 中提供的软件包中发现并修复安全相关漏洞的信息。已签名的 DSA 会发送到公共邮件列表 (debian-security-announce) 并在 Debian 的网站上发布(首页和 安全区域
)。
DSA 包括有关受影响的软件包、发现的安全漏洞以及在哪里检索更新的软件包(及其 MD5 校验和)的信息。
这很可能是您方面的问题。debian-security-announce
列表有一个过滤器,仅允许发布带有安全团队成员之一的正确签名的消息。
很可能是您端的一些邮件软件稍微更改了消息,从而破坏了签名。确保您的软件不执行任何 MIME 编码或解码,或者制表符/空格转换。
已知的罪魁祸首是 fetchmail(启用了 mimedecode 选项)、formail(仅来自 procmail 3.14)和 evolution。
一旦安全团队收到事件通知,一名或多名成员会对其进行审查并考虑其对 Debian 稳定版本的影响(即它是否易受攻击)。如果我们的系统易受攻击,我们将致力于解决该问题。如果软件包维护者尚未联系安全团队,也会联系他们。最后,修复程序经过测试,并准备了新的软件包,然后在所有稳定架构上编译,然后上传。完成所有这些操作后,将发布公告。
在制作修复安全问题的新软件包时,最重要的指导原则是尽可能少地进行更改。我们的用户和开发人员都依赖于发布后的版本的确切行为,因此我们进行的任何更改都可能破坏某些人的系统。对于库而言尤其如此:确保您永远不要更改应用程序编程接口 (API) 或应用程序二进制接口 (ABI),无论更改多么小。
这意味着迁移到新的上游版本不是一个好的解决方案,相反,应该向后移植相关的更改。通常,如果需要,上游维护者愿意提供帮助,否则 Debian 安全团队可能会提供帮助。
在某些情况下,不可能向后移植安全修复程序,例如,当需要修改或重写大量源代码时。如果发生这种情况,可能有必要迁移到新的上游版本,但这必须事先与安全团队协调。
稳定发行版中的安全漏洞保证 security.debian.org 上有一个软件包。其他任何情况都不保证。漏洞的大小不是这里真正的问题。通常,安全团队将与软件包维护者一起准备软件包。只要有人(受信任)跟踪该问题并获取所有需要的已编译软件包并将其提交给安全团队,即使是非常小的安全问题修复程序也会进入 security.debian.org。请参阅下文。
安全更新仅服务于一个目的:为安全漏洞提供修复程序。它们不是在不经过正常点版本发布程序的情况下将其他更改偷偷摸摸地引入稳定版本的方法。
一些公告涵盖了无法使用本地和远程可利用性的经典方案来识别的漏洞。某些漏洞无法从远程利用,即不对应于侦听网络端口的守护程序。如果可以通过可能通过网络提供的特殊文件来利用它们,而易受攻击的服务未永久连接到网络,我们在这种情况下会写“本地(远程)”。
此类漏洞介于本地漏洞和远程漏洞之间,通常涵盖可以通过网络提供的存档,例如作为邮件附件或从下载页面下载。
请参阅软件包的版本号表明我仍在运行易受攻击的版本!,第 12.2.10 节。
简短的答案是:不处理。testing 和 unstable 是快速移动的目标,安全团队没有适当支持它们所需的资源。如果您想要一个安全(且稳定)的服务器,我们强烈建议您坚持使用稳定版本。但是,正在努力改变这种情况,成立了一个 testing 安全团队
,该团队已开始为 testing 提供安全支持,并在某种程度上为 unstable 提供安全支持。有关更多信息,请参阅testing 分支的安全支持,第 10.1.4 节
但是,在某些情况下,unstable 分支通常会很快获得安全修复程序,因为这些修复程序通常在上游更快可用(其他版本,如稳定分支中的版本,通常需要向后移植)。
您可以在 安全漏洞跟踪器
中查看影响 testing 和 unstable 版本的公共漏洞。
否。不幸的是,Debian 安全团队无法同时处理稳定版本(非官方地,也包括 unstable)和其他旧版本。但是,您可以期望在新 Debian 发行版发布后有限的时间内(通常是几个月)获得安全更新。
安全更新将通过 unstable 迁移到 testing 发行版。它们通常会以上设置为高的优先级上传,这将隔离时间缩短为两天。在此期间之后,软件包将自动迁移到 testing,前提是它们是为所有架构构建的,并且它们的依赖项在 testing 中得到满足。
当正常迁移过程不够快时,testing 安全团队
还在其存储库中提供安全修复程序。
简短的答案是:不处理。Contrib 和 non-free 不是 Debian 发行版的官方部分,未发布,因此不受安全团队的支持。某些 non-free 软件包在没有源代码或没有允许分发修改版本的许可证的情况下分发。在这些情况下,根本无法进行安全修复。如果可以解决问题,并且软件包维护者或其他人员提供了正确的更新软件包,则安全团队通常会处理它们并发布公告。
实际上,是有的。有几个官方镜像,通过 DNS 别名实现。security.debian.org 的目的是使安全更新尽可能快速和轻松地可用。
鼓励使用非官方镜像会增加通常不需要的额外复杂性,并且如果这些镜像没有及时更新,可能会导致挫败感。
几家供应商(主要是 GNU/Linux 供应商,但也包括 BSD 衍生产品)针对某些事件协调安全公告,并就特定时间表达成一致,以便所有供应商都能够在同一时间发布公告。这样做是为了不歧视某些需要更多时间的供应商(例如,当供应商必须通过漫长的 QA 测试或必须支持多种架构或二进制发行版时)。我们自己的安全团队也会提前准备公告。偶尔,在可以发布已停放的公告之前,必须处理其他安全问题,因此暂时遗漏了一个或多个编号的公告。
每当较新的错误修复程序取代 security.debian.org 上的旧软件包时,旧软件包很可能会在新软件包安装时被删除。因此,您将收到此“file not found”错误。我们不想分发已知存在安全漏洞的软件包,超过绝对必要的时间。
请使用最新安全公告中的软件包,这些公告通过 debian-security-announce 邮件列表
分发。最好在升级软件包之前简单地运行 apt-get update。
安全信息可以发送到 security@debian.org
,所有 Debian 开发人员都可以阅读该邮件。如果您有敏感信息,请使用 team@security.debian.org
,只有团队成员才能阅读该邮件。如果需要,可以使用 Debian 安全联系密钥(密钥 ID 0x363CCD95
)对电子邮件进行加密。另请参阅 安全团队的 PGP/GPG 密钥
。
当您向 security@debian.org 发送消息时,它们会被发送到开发人员的邮件列表 (debian-private)。所有 Debian 开发人员都订阅了此列表,并且帖子是保密的 [81](即,未在公共网站上存档)。公共邮件列表 debian-security@lists.debian.org 对任何想要 订阅
的人开放,并且有可搜索的存档,请点击 此处
。
如果您了解到安全问题,无论是在您自己的软件包中还是在其他人的软件包中,请务必联系安全团队。如果 Debian 安全团队确认了该漏洞,并且其他供应商也可能容易受到攻击,他们通常也会联系其他供应商。如果该漏洞尚未公开,他们将尝试与其他供应商协调安全公告,以便所有主要发行版保持同步。
如果该漏洞已公开,请务必在 Debian BTS 中提交错误报告,并将其标记为 security。
通过为本文档做出贡献,修复 FIXME 或提供新内容。文档很重要,可以减少回答常见问题的开销。将本文档翻译成其他语言也很有帮助。
通过打包对检查或增强 Debian GNU/Linux 系统安全性有用的应用程序。如果您不是开发人员,请提交 WNPP 错误
并请求您认为有用但当前未提供的软件。
审核 Debian 中的应用程序或帮助解决安全错误并将问题报告给 security@debian.org。
在所有情况下,请在向 security@debian.org 报告之前查看每个问题。如果您能够提供补丁,那将加快流程。不要只是转发 Bugtraq 邮件,因为他们已经收到了。但是,提供其他信息始终是一个好主意。
Debian 安全团队由 几名官员和秘书
组成。安全团队本身任命人员加入团队。
否,Debian 安全团队不检查每个新软件包,也没有自动 (lintian) 检查来检测包含恶意代码的新软件包,因为这些检查相当不可能自动执行。但是,维护人员对他们引入 Debian 的软件包负全部责任,并且所有软件包首先由授权开发人员签名。开发人员负责分析他们维护的所有软件包的安全性。
一旦发现漏洞,Debian 安全团队会迅速发送公告并为稳定分支生成修复后的软件包。debian-security 邮件列表中发布的报告
显示,在 2001 年,Debian 安全团队平均花费 35 天来修复与安全相关的漏洞。但是,超过 50% 的漏洞在 10 天内修复,超过 15% 的漏洞在公告发布当天修复。
但是,当提出这个问题时,人们往往会忘记
DSA 直到以下情况才会发送
适用于 Debian 支持的所有架构的软件包均可用(对于属于系统核心的软件包,这需要一些时间,特别是考虑到稳定版本中支持的架构数量)。
新的软件包经过全面测试,以确保不会引入新的错误
软件包可能在 DSA 发送之前可用(在 incoming 队列或镜像上)。
Debian 是一个基于志愿者的项目。
Debian 获得了“不保证”条款的许可。
如果您想更深入地分析安全团队处理漏洞所需的时间,您应该考虑到在 安全网站
上发布的新 DSA(请参阅Debian 安全公告,第 7.2 节)以及用于生成它们的元数据,包括指向漏洞数据库的链接。您可以从 Web 服务器 (从 CVS
) 下载源文件,或使用 HTML 页面来确定 Debian 修复漏洞所需的时间,并将此数据与公共数据库关联起来。
安全团队尝试在下一个稳定发行版发布后大约一年内支持稳定发行版,除非在这一年内发布了另一个稳定发行版。不可能同时支持三个发行版;同时支持两个已经足够困难了。
此过程包括根据存档的公钥(可在 http://ftp-master.debian.org/ziyi_key_2006.asc
获取,将 2006 替换为当前年份)检查 Release 文件签名。Release 文件包含 Packages 和 Sources 文件的 MD5 校验和,Packages 和 Sources 文件包含二进制和源软件包的 MD5 校验和。有关如何检查软件包完整性的详细说明,请参见Debian 中的软件包签名,第 7.5 节。
首先,您应该弄清楚软件包崩溃的原因以及它与安全更新的联系,然后如果情况严重,请联系安全团队,如果情况不太严重,请联系稳定版本管理器。我们正在谈论的是在不同软件包的安全更新后崩溃的随机软件包。如果您无法弄清楚出了什么问题但有更正,也请与安全团队联系。您可能会被重定向到稳定版本管理器。
[ 上一页 ] [ 目录 ] [ 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 +0000jfs@debian.org