你需要考虑的第一层安全是你计算机系统的物理安全。谁可以直接物理访问你的机器?他们应该吗?你能保护你的机器免受他们的篡改吗?你应该吗?
你需要对你的系统采取多少物理安全措施很大程度上取决于你的情况和/或预算。
如果你是家庭用户,你可能不需要太多(尽管你可能需要保护你的机器免受儿童或烦人的亲戚的篡改)。如果你在实验室中,你需要更多,但用户仍然需要能够在机器上完成工作。以下许多章节将有所帮助。如果你在办公室,你可能需要也可能不需要在非工作时间或你离开时保护你的机器安全。在一些公司,让你的控制台处于不安全状态是一种解雇行为。
显而易见的物理安全方法,例如门锁、电缆锁、锁着的机柜和视频监控都是好主意,但超出了本文档的范围。 :)
许多现代 PC 机箱都包含“锁定”功能。通常,这会在机箱正面有一个插座,允许你转动随附的钥匙到锁定或解锁位置。机箱锁可以帮助防止有人偷走你的 PC,或打开机箱并直接操作/偷走你的硬件。它们有时还可以防止有人从他们自己的软盘或其他硬件重启你的计算机。
这些机箱锁根据主板中的支持以及机箱的构造方式执行不同的操作。在许多 PC 上,它们使你必须破坏机箱才能打开机箱。在另一些上,它们会阻止你插入新的键盘或鼠标。查看你的主板或机箱说明以获取更多信息。这有时可能是一个非常有用的功能,即使锁的质量通常很低,并且很容易被掌握开锁技术的攻击者击败。
一些机器(最著名的是 SPARC 和 Mac)在背面有一个锁扣,如果将电缆穿过,攻击者将不得不剪断电缆或破坏机箱才能进入。仅通过这些锁扣放置挂锁或密码锁就可以很好地阻止某人偷走你的机器。
BIOS 是配置或操作你的基于 x86 的硬件的最低级别软件。LILO 和其他 Linux 启动方法访问 BIOS 以确定如何启动你的 Linux 机器。Linux 运行的其他硬件具有类似的软件(Mac 和新的 Suns 上的 Open Firmware,Sun boot PROM 等...)。你可以使用 BIOS 来防止攻击者重启你的机器并篡改你的 Linux 系统。
许多 PC BIOS 允许你设置启动密码。这并没有提供太多的安全性(如果有人可以进入机箱,BIOS 可以被重置或移除),但这可能是一个很好的威慑(即,这将花费时间并留下篡改痕迹)。类似地,在 S/Linux(用于 SPARC(tm) 处理器机器的 Linux)上,你的 EEPROM 可以设置为需要启动密码。这可能会减慢攻击者的速度。
信任 BIOS 密码来保护你的系统的另一个风险是默认密码问题。大多数 BIOS 制造商不期望人们打开他们的计算机并在忘记密码时断开电池连接,并且他们的 BIOS 配备了默认密码,无论你选择的密码是什么,这些密码都有效。一些更常见的密码包括
j262 AWARD_SW AWARD_PW lkwpeter Biostar AMI Award bios BIOS setup cmos AMI!SW1 AMI?SW1 password hewittrand shift + s y x z
我测试了一个 Award BIOS,AWARD_PW 可以工作。这些密码很容易从制造商的网站和 http://astalavista.box.sk 获得,因此 BIOS 密码不能被认为是针对知识渊博的攻击者的充分保护。
许多 x86 BIOS 还允许你指定各种其他良好的安全设置。查看你的 BIOS 手册或在下次启动时查看它。例如,一些 BIOS 禁止从软盘驱动器启动,而另一些则需要密码才能访问某些 BIOS 功能。
注意:如果你有一台服务器机器,并且你设置了启动密码,你的机器将不会无人值守地启动。请记住,如果发生电源故障,你将需要进来并提供密码。 ;-(
各种 Linux 引导加载程序也可以设置启动密码。例如,LILO 有password和restricted设置;password在启动时需要密码,而restricted仅当你指定选项(例如single)在LILO提示符下时才需要启动时密码。
>摘自 lilo.conf 手册页
password=password The per-image option `password=...' (see below) applies to all images. restricted The per-image option `restricted' (see below) applies to all images. password=password Protect the image by a password. restricted A password is only required to boot the image if parameters are specified on the command line (e.g. single). |
在设置所有这些密码时,请记住你需要记住它们。:) 还要记住,这些密码只会减慢有决心的攻击者的速度。它们不会阻止某人从软盘启动并挂载你的根分区。如果你正在结合引导加载程序使用安全性,你最好在计算机的 BIOS 中禁用从软盘启动,并为 BIOS 设置密码保护。
还要记住,/etc/lilo.conf 需要设置为“600”模式(仅 root 用户可读写),否则其他人将能够读取你的密码!
>摘自 GRUB 信息页:GRUB 提供了“password”功能,以便只有管理员才能启动交互式操作(即,编辑菜单项和进入命令行界面)。要使用此功能,你需要在你的配置文件中运行命令“password”(*note password::),如下所示
password --md5 PASSWORD
如果指定了此项,GRUB 将禁止任何交互式控制,直到你按下键 <p> 并输入正确的密码。选项“--md5”告诉 GRUB “PASSWORD”是 MD5 格式。如果省略,GRUB 假定“PASSWORD”是明文。
你可以使用命令“md5crypt”加密你的密码 (*note md5crypt::)。例如,运行 grub shell (*note Invoking the grub shell::),并输入你的密码
grub> md5crypt Password: ********** Encrypted: $1$U$JK7xFegdxWH6VuppCUSIb.
然后,剪切并粘贴加密的密码到你的配置文件。
Grub 还有一个 'lock' 命令,如果你不提供正确的密码,它将允许你锁定分区。只需添加 'lock',分区将不可访问,直到用户提供密码。
如果任何人有来自不同引导加载程序的安全相关信息,我们很乐意听到。(grub, silo, milo, linload等等)。
注意:如果你有一台服务器机器,并且你设置了启动密码,你的机器将不会无人值守地启动。请记住,如果发生电源故障,你将需要进来并提供密码。 ;-(
如果你不时地离开你的机器,能够“锁定”你的控制台以便没有人可以篡改或查看你的工作会很好。执行此操作的两个程序是xlock和vlock.
xlock是一个 X 显示锁定器。它应该包含在任何支持 X 的 Linux 发行版中。查看它的手册页以获取更多选项,但通常你可以从控制台上的任何 xterm 运行xlock,它将锁定显示并需要你的密码才能解锁。
vlock是一个简单的小程序,允许你锁定 Linux 框上的一些或所有虚拟控制台。你可以只锁定你正在工作的那个或全部锁定。如果你只锁定一个,其他人可以进来并使用控制台;他们只是无法使用你的虚拟控制台,直到你解锁它。vlock随 RedHat Linux 一起提供,但你的情况可能会有所不同。
当然,锁定你的控制台将防止有人篡改你的工作,但不会阻止他们重启你的机器或以其他方式中断你的工作。它也不能阻止他们从网络上的另一台机器访问你的机器并引起问题。
更重要的是,它不能阻止某人完全退出 X Window 系统,并转到正常的虚拟控制台登录提示符,或转到启动 X11 的 VC,并挂起它,从而获得你的特权。因此,你可能会考虑仅在 xdm 控制下使用它。
如果你的系统连接了网络摄像头或麦克风,你应该考虑攻击者是否有可能访问这些设备。在不使用时,拔下或移除此类设备可能是一种选择。否则,你应该仔细阅读和查看任何提供对此类设备访问权限的软件。
首先要始终注意的是你的机器何时重启。由于 Linux 是一个强大而稳定的操作系统,因此你的机器应该重启的唯一时间是当你为了操作系统升级、硬件更换或类似操作而关闭它时。如果你的机器在没有你操作的情况下重启,这可能是入侵者已入侵它的迹象。你的机器被入侵的许多方式都需要入侵者重启或关闭你的机器。
检查机箱和计算机区域是否有篡改迹象。尽管许多入侵者会清除日志中存在的痕迹,但最好检查所有日志并注意任何差异。
将日志数据存储在安全位置也是一个好主意,例如在你良好保护的网络内的专用日志服务器。一旦机器被入侵,日志数据就几乎没有用处了,因为它很可能也被入侵者修改了。
syslog 守护程序可以配置为自动将日志数据发送到中央 syslog 服务器,但这通常以未加密的方式发送,允许入侵者查看正在传输的数据。这可能会泄露有关你的网络的不打算公开的信息。有一些 syslog 守护程序可用,可以在发送数据时对其进行加密。
还要注意伪造 syslog 消息很容易——因为已经发布了利用程序。Syslog 甚至接受声称来自本地主机的网络日志条目,而没有指示它们的真实来源。
你的日志中要检查的一些事项
日志过短或不完整。
包含奇怪时间戳的日志。
权限或所有权不正确的日志。
重启或重新启动服务的记录。
日志丢失。
su来自陌生地方的条目或登录。
我们将在 HOWTO 的 第 9.5 节 中讨论系统日志数据。