最佳技术支持

作者:多人
病毒

我想知道关于 Linux 系统中病毒的说法,该系统与 Win95 安装在同一硬盘上。 例如,如果病毒感染了 MBR 扇区(LILO 所在位置)或者我挂载了受感染的 MS-DOS 格式软盘,会发生什么?

—Troha Donato

撇开关于 Unix 系统对标准病毒攻击免疫的通常说法不谈,这是一个大多数人应该考虑的重要问题,因为许多在个人计算机(而不是服务器)上运行 Linux 的人也运行 Win95 或其他操作系统。 挂载软盘应该是安全的,但请注意,读取此类磁盘可能会产生非常奇怪的效果,例如奇怪的目录条目。

有几种情况,从引导扇区感染到某些病毒已知会采取的随机攻击。 与将其布局信息集中在一个或两个密集表中的 DOS 文件系统不同,Linux 将这些信息分散在整个磁盘上。 随机攻击更有可能擦除 Linux 磁盘上的重要结构,而不是 DOS 磁盘上的重要结构(假设病毒是从启动的 DOS 系统运行的)。

安全第一,始终如此。 在 Unix 中,除非需要,否则不要使用 root 用户帐户。 创建一个普通用户帐户来完成您的工作。 在 DOS 中,扫描——扫描——扫描。

—Chad Robinson,BRT Technologies 高级系统分析师 chadr@brt.com

如果您的系统感染了引导扇区病毒,LILO 很可能将不再工作。 针对这种情况的最佳防御措施是手头保留一张紧急启动软盘。 我通常使用命令 dd if=/vmlinuz of=/dev/fd0 创建它们。 当然,您需要写保护它。 从软盘启动后,只需重新运行 LILO。 假设您已将 LILO 配置为使用系统 MBR,它将覆盖病毒。

Linux 操作系统本身不易受到 MS-DOS 风格病毒的攻击。 所有常见的病毒都依赖于 DOS/Windows 环境。 它们不知道如何应对 Linux,并且无法运行。

—Keith Stevenson k.stevenson@louisville.edu

内存分配

我已经使用 Linux 系统近两年了。 我的问题是内存分配。 在执行 X 会话等操作后,内核 (2.xx) 不会回收内存。 我不断重启机器 (shutdown -r now) 以获得足够的内存用于多项操作。 是否有可以运行的可执行文件,可以释放当前内核进程未使用的所有可能内存?

如果答案是否定的,那么如何将 Linux 用作每天接受大量点击的 httpd 服务器? 系统几乎总是内存不足,无法快速服务、多个 httpd 服务器和其他进程。 简而言之,我对 Linux 处理内存回收的方式感到有些失望。 是 X Server 和应用程序只是“编写不良”并且在退出时不释放内存吗?

—George R. Boyko

Linux 2.0 中没有内存泄漏; 2.1 内核系列中可能存在一些,但这些版本仅是专门针对开发人员的 beta 版本。 另一方面,确实,运行的 Linux 系统报告的可用内存量总是很小。 这是一项功能而不是错误; 可用内存只是浪费,Linux 试图通过在其他空闲内存中保留磁盘缓冲区和页面缓存来避免任何浪费。

是内核在退出时释放任何进程资源。 您不希望您的学生因不调用 free 而锁定内存,对吗? 事实上,许多一次性程序都是“编写不良”的,并且依赖系统来关闭文件和释放内存。

—Alessandro Rubini rubini@linux.it

内存管理是我真正喜欢 Linux 的原因之一。 我发现它比某个流行的商业操作系统更有效。

我有几个 Linux 系统,都安装了 64MB 的 RAM。 我使用 xosview 来监控 CPU 活动和内存利用率等信息。 这些机器充当 ftp 服务器、Web 服务器和多用户工作站。 根据 xosview,即使机器负载很轻,内存利用率也始终在 90% 以上。 这不是问题。 这仅仅意味着内存中缓存了很多东西。 系统中是否有足够 RAM 的真正指标是交换空间利用率。 可以使用 xosview 或命令 vmstat 监控这一点。 如果您经常交换到磁盘,则可能需要向系统添加更多 RAM。 如果没有,那么情况可能还可以。 我的 64MB 系统几乎从不交换到磁盘,并且尽管 90% 或更多的 RAM 被标记为“正在使用”,但它们具有出色的响应时间。

—Keith Stevenson k.stevenson@louisville.edu

几何结构不匹配错误

我的 LILO 遇到问题。 它在字母“LI”后挂起。 我阅读了 MINI-HOWTO,它说第一个引导加载程序能够加载第二个引导加载程序,但未能执行它。 然后它继续说原因是“几何结构不匹配”。 有什么建议吗?

—Jim Mendoza Red Hat 4.2

LILO 通过访问磁盘块的磁盘位置(CHS:柱面、磁头、扇区)来加载其第二阶段加载程序,然后加载内核。 “几何结构不匹配”是指当 LILO 的映射使用与 BIOS 使用的 CHS 值不同的 CHS 值时发生的情况; 这发生在现代 BIOS 中,这些 BIOS 在磁盘几何结构上玩肮脏的游戏,以克服 Microsoft 程序中内置的限制。 将 “disk =” 部分添加到您的 /etc/lilo.conf 以指定 Linux 看到的磁盘几何结构。

—Alessandro Rubini rubini@linux.it

未检测到的调制解调器

Linux 未检测到我的 com4 (/dev/cua3,地址为 0x02e8) 上的调制解调器,该调制解调器在 Win95 中工作正常。 每次我重新启动系统时,它都会自动检测到串行端口号 1 (/dev/cua0,地址为 0x03f8) 和端口号 2 (/dev/cua1,地址为 0x02f8)。 我的调制解调器是内置的、非即插即用的、33.6Kbps 的,由 PC tel 制造。

—Jianzhong Ding Red Hat 4.2

使用 setserial 告诉串行驱动程序您的端口位置。 “即插即用”是一个糟糕的规范,而且大多数时候它会产生问题。 要查找您的 PnP 设备并配置它们,请运行 isapnp 软件包。

—Alessandro Rubini rubini@linux.it

Sendmail 暂停

在启动期间,当 sendmail 启动时,会出现长时间的暂停。 我只能假设在尝试联系网络上的某些内容时请求超时(当然,网络尚未启动)。

有没有办法缩短 sendmail 的超时时间或以其他方式纠正这种情况?

—David Moulton Red Hat 4.0

这可能是您的机器名称在 /etc/hosts 文件中存在问题。 最新版本的 sendmail 需要您的名称是 FQDN(包括域名)

192.168.1.1 foo foo.bar.com

如果您的名称不完全合格,sendmail 将休眠约一分钟。

—Pierre Ficheux, Lectra Systèmes pierre@rd.lectra.fr

暂停很可能是名称服务器查找超时。 查看您的 maillog(可能是 /var/log/maillog)并搜索看起来像这两行的行

Dec 21 18:33:46 keiko sendmail[4547]:
 gethostbyaddr() failed for 192.168.0.1
Dec 21 18:33:47 keiko sendmail[4553]:
 starting daemon (8.8.5): SMTP+queueing@00:05:00

正在发生的事情是 sendmail 正在尝试解析它正在运行的机器的 IP 地址。 名称服务器调用需要相对较长的时间才能超时,因此您会遇到延迟。 快速的解决方案是将此 IP 地址的条目添加到 /etc/hosts 或您的名称服务器配置中。 sendmail 在您完成此操作后会非常快速地启动。

—Keith Stevenson k.stevenson@louisville.edu

加载 Disqus 评论