使用 Webmin 进行图形化管理
当您开始管理 Linux 系统时,最大的挑战之一是准确了解该做什么以及如何去做。工具有太多,设置、参数、配置文件、守护进程等等,需要考虑的方面也太多了。 显然,如果您想成为一名成熟的系统管理员,您必须学习所有内容。 但是,在您达到那个程度之前,您仍然需要完成工作,最好安装和使用 Webmin,这是一个基于 Web 的综合 Linux 系统管理工具。
Webmin 在您的服务器上运行并提供基于 Web 的界面,允许您执行各种系统管理任务——从非常简单的到非常复杂的任务——而无需接触配置文件或自行重启任何进程或守护进程。 顺便说一句,它不仅仅是一个普通的工具。 如果您在 Linux 用户组聚会上提到 Webmin,它肯定会引发激烈的争论——很像论坛和聊天频道上关于“使用闭源图形驱动程序”或“从发行版中禁止所有非开源软件”的讨论。
对于某些人来说,使用命令行以外的任何工具来管理服务器几乎是异端邪说,他们认为如果您计划使用此类工具,甚至不应该考虑使用 Linux。(我认识的一位 Linux 用户曾经不屑一顾地说:“如果你想使用图形工具,那就用 Windows。”)然而,对于另一些人来说,任何可以帮助他们避免错误或记住大量参数的工具都是他们工具集的受欢迎的补充。
然而,Webmin 不会让您避免实际学习 Linux。 您不能仅仅开始使用它,然后在不完全清楚自己在做什么的情况下更改配置设置。 如果您知道需要做什么以及如何去做,Webmin 可以帮助您避免记住参数列表或配置文件,并帮助您快速安全地完成工作。 另一方面,永远不要将 Webmin 用作实验工具。 您很可能会把事情搞砸。
Webmin 不仅可以在 Linux 上运行,还可以在 UNIX 和 FreeBSD 上运行。 以下是支持的系统和发行版的 部分列表:Asianux、Caldera、Debian、FreeBSD、Gentoo(和 Sabayon)、HP-UX、IBM AIX、LinuxPPC、Lycoris、Mac OS X、Mandriva(和 Mandrake 以及 Conectiva)、MEPIS、NetBSD、OpenBSD、PCLinuxOS、PlayStation Linux、Red Hat(和 CentOS 以及 Fedora)、Scientific Linux、SCO OpenServer 和 UnixWare、Slackware、Sun Java Desktop System、Sun Solaris、SUSE 和 OpenSUSE Linux、Turbolinux、Ubuntu(及其衍生版本,如 Kubuntu 或 Xubuntu)、Xandros、Yellow Dog Linux 和 Yoper Linux。
如果您喜欢的发行版未包含在内,某些 Webmin 模块可能无法工作,因此请小心。 如果您使用的是从列表中的发行版派生的发行版,那么您很可能不会遇到任何问题,但别说我没警告过您。
顺便问一下,为什么会出现这种情况? 问题在于缺乏标准化。 发行版为各种配置文件使用不同的位置,如果 Webmin 找不到它们,它将无法正常工作。 随着时间的推移,当(如果)所有发行版完全接受 Linux 标准库 (LSB) 并遵守与文件放置相关的标准时,这种情况可能会变得更好。 但是,这种情况肯定尚未发生。 举一个简单的例子,我目前正在使用 OpenSUSE,它使用 /srv/www/htdocs 作为网站的根目录。 大多数其他发行版使用 /var/www/html。 因此,您可以看到,如果配置模块不知道这种差异,则可能在查找 Web 文件时遇到严重问题。
运行 Webmin 需要什么? 只需一个浏览器、Perl、用于某些功能的 Java 运行时环境 (JRE) 和 root 密码。 在您熟悉 Webmin 之后,您将能够忘记编辑配置文件(如 /etc 目录中的所有文件)或启动、停止和重新加载服务。 如果您正确设置了 Webmin,您甚至可以从远程计算机管理您的服务器。
Webmin 在 GPL 下可用,因此您可以毫无问题地获取它。 最新版本(截至撰写本文时)为 1.380,并且正在积极开发中。 安装 Webmin 的最简单方法是使用您喜欢的软件包管理器。 即使我是 OpenSUSE 用户,我也更喜欢 Smart 而不是 YaST,所以一个简单的smart install webmin命令为我完成了这项工作。 如果您没有以这种方式获得最新版本,请不要担心。 您只需使用 Webmin 本身即可解决此问题;请继续阅读。
另一种安装方法是转到下载站点,下载适合您系统的版本,然后按照页面左侧的说明进行操作。 这里有两个选项。 您可以获取完整软件包(包含所有可用模块),也可以获取最小版本,然后使用 Webmin 自己的更新功能添加您需要的模块。
安装 Webmin 后,您需要启动服务。 以 root 用户身份工作(使用su),执行chkconfig webmin on(以确保 Webmin 在您每次打开计算机时启动。然后执行/etc/init.d/webmin start立即启动它。 您已全部设置完毕。
使用 Webmin 很简单。 打开您喜欢的浏览器,导航到 http://localhost:10000 (或等效地址 http://127.0.0.1:10000),您将看到 Webmin 的登录页面。 接下来,输入系统管理员的用户名和密码(在许多发行版中,这将是 root,但 Ubuntu 和其他发行版将系统管理权限授予特定用户),然后单击“登录”按钮。 您可以选中“永久记住登录信息”框,但这存在安全风险,因此我建议不要这样做。
如果您想节省一些打字时间,请将该地址保存为书签。 例如,在 Firefox 中,按 Ctrl-D 或转到“书签”→“创建新书签”。 或者,为了减少打字,创建一个桌面图标。 如果您使用 KDE,请右键单击桌面,选择“创建新内容”→“链接到位置(URL)”,输入上面的 URL,然后单击“确定”。 (如果您使用 GNOME,则过程类似。) 您可以通过右键单击新创建的图标并将其图像更改为 /usr/libexec/webmin/images/webmin.xpm (此路径对于 OpenSUSE 以外的发行版可能有所不同)来使其更漂亮。
正确安装 Webmin 后,升级它或添加更多模块非常容易。 在左侧菜单中,选择“Webmin”→“Webmin 配置”,您将看到一个充满图标的屏幕。 如果您单击“升级 Webmin”(向上指向的蓝色箭头),您可以从 Internet 升级 Webmin 本身。 请注意,您可以单击“计划更新”来设置 cron 任务,该任务将连接到 Web 并自行下载所有需要的更新。 这是一个安全的选择(因为您肯定会尽快获得所有更新和错误修复),但它也是一个不安全的选择(如果 Webmin 网站本身被黑客入侵)。 因此,是否要这样做由您决定。
在同一个“Webmin 配置”页面上,如果您单击“Webmin 模块”图标(带有小框的图标),您可以浏览 Webmin 站点上的所有可用模块,甚至从其他站点下载第三方模块。 选择“标准模块”选项会提供一个弹出窗口,其中包含数十个模块(我还没有弄清楚列表中是否有组织方法)。 如果您单击模块名称,然后单击“安装模块”,Webmin 将下载它并为您设置它。
在继续之前,让我们谈谈安全性和用户。 Webmin 有自己的用户,这些用户与操作系统用户不同。 您第一次登录时,它会自动创建一个 root 用户。 您不应让每个用户都使用此帐户。 如果您创建特定帐户并将每个帐户限制为所需的功能,则会更安全。 为此,请单击左侧菜单上的“Webmin”,然后单击“Webmin 用户”。
添加用户时,您可以选择为他们提供特定的 Webmin 密码或使用“Unix 身份验证”。 前者通常更安全(但前提是用户选择的密码与他们的标准密码不同),而后者则更友好。 “密码限制”屏幕允许您设置特定控件,以便用户不能使用太短、太简单或容易猜到的密码。
您可以创建组,而不是为每个用户分配权限。 转到“Webmin”→“Webmin 用户”,然后单击“创建新的 Webmin 组”。 选择应允许该组成员使用的功能,然后单击“创建”完成。 从现在开始,当您创建新用户时,您可以指定他们所属的组,他们的权限将自动分配。
您还应该查看“Unix 用户同步”选项,该选项允许 Linux 用户和 Webmin 用户自动同步。 您可以将其设置为每次创建/删除 Linux 用户时,也会创建/删除相应的 Webmin 用户。“Unix 用户身份验证”选项对于拥有许多应允许访问 Webmin 的用户也可能很有用。 此外,您可以使用“查看登录会话”来检查用户可能执行的任何操作。
使用 Webmin 非常简单,正如您可能已经从上面的示例中猜到的那样。 从屏幕左侧的菜单中选择一个类别,它会展开,显示可用模块的列表。 每个模块的主页通常在其左上角包含一个“模块配置”链接,您可以使用该链接进行一些配置,以及一个“帮助”链接,其中提供了有关模块功能的文档。 以下是类别
Webmin:提供通用配置,包括语言和主题选择(您可以使用 40 多种语言的 Webmin)、升级、模块安装、日志记录选项、日志浏览等。 如果您想使您的安装更安全,请检查“身份验证”选项(除其他外,允许防止暴力破解密码攻击),并检查“IP 访问控制”和“阻止的主机和用户”。 如果您安装了“服务器”模块,您可以使用它来扫描其他 Webmin 服务器并远程管理它们——尽管速度不会那么快。
系统:涵盖许多不同的功能。 您可以使用 Bacula 备份系统的第三方选项或更简单的文件系统备份来控制备份,后者使用 tar 或 dump-and-restore 命令系列将目录保存到磁带或另一个文件系统上的文件中。 “启动和关机”允许您指定哪些服务将在哪些级别运行,以及(显然)重新启动或关闭系统。 对于用户管理,请检查“用户和组”(允许您创建、编辑或删除用户和组)和“更改密码”,其功能显而易见。“磁盘和网络文件系统”模块允许您挂载或卸载设备和文件系统,“磁盘配额”如果您已为用户分配了文件空间配额,则会感兴趣。 您可以安排命令运行一次(想想 atd)或定期作业(想想 cron)。 您可以使用“正在运行的进程”选项获得类似 top 的进程显示(但它不会自行刷新),并且您可以通过单击进程 ID 找到大量信息。 最后,为了缩短列表,“软件包”选项允许您远程在服务器上安装或删除软件包。
服务器:此类别与您可能正在运行的所有可能的服务器有关,包括与 Web 相关的功能,例如 Apache 或 FTP; 邮件功能(Fetchmail、Postfix、Qmail、Sendmail)和过滤器(ProcMail、SpamAssassin); 文件共享(Samba); 数据库(MySQL、PostgreSQL); 网络功能(DHCP、SSH、DNS、SLP); 代理(Squid); 以及几个类似的功能。 这些模块中的每一个都有多个选项,因此您需要单击它们中的每一个以查看可用功能。
网络:涵盖更具体的网络相关选项,包括配置(接口、路由、网关、DNS 客户端、主机地址); 服务; 连接(ADSL 客户端、带宽监控、PPP、SSL 隧道、VPN); 安全(Kerberos5、IPsec); 防火墙(Linux 防火墙提供基于 iptables 的配置,并且还有 Shoreline shorewall 防火墙的选项); 以及更多,包括 NFS 和 NIS。
硬件:允许您控制磁盘和卷(包括 LVM、RAID 和磁盘分区;您还可以使用 Smart 检查磁盘单元的状态); 打印机; CD 刻录; 和系统时钟。 如果您正在使用 GRUB,您也可以从此处编辑其选项。
集群:包括几个只有在您运行两台或多台机器形成集群时才会使用的选项,以及 Heartbeat 监视器——这是一个相当专业的设置,再次证明您需要在开始使用 Webmin 之前了解自己在做什么。
其他:几个选项的统称,包括用于完全控制台访问的命令 shell(通过 Java 小程序实现),或“自定义命令”,允许您设置和执行常用命令,并可选择参数替换——如果您需要向经验不足的用户提供某些命令,这是一个很好的工具。 还有一个文件管理器(另一个 Java 小程序)、SSH/Telnet 远程登录、用于访问网页的 HTTP 隧道、数据文件上传和下载等等。
您能从 Webmin 中受益吗? 谁应该使用它? Webmin 的创建者 Jamie Cameron 说,这个程序“可能更适合不太熟悉配置文件格式的经验较少的用户,而不是已经详细了解 UNIX 的企业系统管理员”。 我完全同意这一观点,尽管我想补充一点,即使您非常熟悉配置文件等等,您也可能会欢迎一种更简单(有时也更快)的方式来做事。
Webmin 包含数量惊人且不断增长的功能,但它允许您仅通过清晰的菜单和表单使用您需要的功能,并且它可以检测到可能的错误,然后才能造成任何损害。 您至少应该考虑它的学习价值,因为您可以在每次更改前后检查配置文件,从而了解某件事是如何(或应该如何)完成的。 您无法避免在深入研究之前了解每个功能,但 Webmin 至少提供了一条更轻松的道路,可以成为更熟练的系统管理员。
Usermin:面向最终用户的工具
Usermin 是 Webmin 的近亲,旨在允许最终用户自行管理多项管理功能,例如更改密码和用户详细信息、管理邮件(尽管标准的电子邮件客户端是更好的解决方案)等等。 安装 Webmin 时,Usermin 默认可用。 您可以通过导航到 http://127.0.0.1:20000 来访问它,您将在那里看到一个与 Webmin 非常相似的界面,但功能少得多。 实际上,您可以配置哪些功能将与 Webmin 一起显示。 启动该程序,转到“Webmin”→“Usermin 配置”→“可用模块”,然后选择应通过 Usermin 提供的模块。 您无需登录即可使用 Usermin; 它将假定当前用户的权限。
资源
Webmin 和 Usermin:www.webmin.com
Webmin 下载站点:www.webmin.com/download.html
Linux 标准库:www.linux-foundation.org/en/LSB
Smart:labix.org/smart
Federico Kereki 是一位乌拉圭系统工程师,在大学教学、开发和咨询工作以及撰写文章和课程材料方面拥有 20 多年的经验。 他使用 Linux 多年,并在多家不同的公司安装了 Linux。 他对 Linux 系统的更好安全性和性能特别感兴趣。