当前位置:Linux教程 - Linux - 随时随地上网

随时随地上网



        
    Chinabyte Linux专区授权转载

    作者:Albert


      一些大公司在市场上经常使用的宣传语是:“想象一下随时随地上网吗?”,他们的意思其实就是你带上一台膝上机加上一个无线调制解调器,或者是一台带有上网功能的移动电话,这种只有1.5 英寸大小的黑白玩意儿,或许可以让你为能接收到股市行情激动一阵子。想象过在每一个角落,只要有一台付费电话,就能看到毫不起眼的能让你上网的终端么?趁加油站加油的空隙想看一看最近有什么新片,只要摘下电话,查阅最近的影院的网页,一切尽收眼底,怎么样?是否很酷?是否还可以想象出其他上千种从任何地方上网的办法么?

      Linux 是实现这种场景的理想候选人,不仅有可能而且价格便宜。 只需要 $200 元以下就可以搞起来一个运行Linux 的上网设备。维护费用也 很低,特别是采用CD-ROM 启动和可靠的远程管理工具之后。

      设计这样的系统是一场很严肃的挑战,这样的Internet 终端必须容易使 用,稳定,容易维护(理想的情况是免维护),安全。在以上这些特性里,Linux 和Windows 相比具有明显的优点。Windows 很难保证安全而且并不十分稳定。

      另外一个重要的需求是容易实施,例如,使用特别的修改过的内核用来防治执行指定进程以外的进程听起来很安全,但是对于这个个案来说,却不合 适。实际上,应该对Red Hat 的发行版本作很小的修改并且采用安全的解 决方案实施在一些公共场合,像小卖部或者加油站,而无需过多干预。

      以前的解决方案要么是采用无键盘的信息台,但是就没有办法连上网了,要么是采用过时的软件。要在带有键盘的系统上加密是极具挑战性的。 甚至,一个轨迹球就能给攻击者可乘之机。(想象一下“拷贝粘贴”)

      下面列出几个设计系统时技术上需要考虑的要点:

      1、绝对要把安装的软件最小化,Red Hat 缺省安装的RPM 列表应该清除,许多缺省安装的软件有很多Bug,能导致本地进入root ,有些甚至能破获远程 root。那些和浏览器功能无关的软件包,应该删除。

      2、简化 X Window 设置:很重要的一点是,去掉窗口管理器,像 GNOME, KDE 或者 fvwm,这样就去除了很不稳定的软件,简化了系统安全。

      3、一些次要的但是还是重要的功能,例如 Magic SysRQ keys 以及 LILO 配置还是应该保留的。

      4、使用 ssh 作为系统远程管理工具以方便升级和监视。不要运行其他远程服务。因为防火墙系统不很实际,需要依靠自己的防卫。

      5、一些可执行文件作为必须保留的软件包(像XFree)中的一部分必须删除。特别是xterm 以及rxvt 终端仿真工具。删除这些工具将使攻击者的日子十分不好过。但是,仍然会有漏洞的程序,像glibc 和 Xlib 在一些版本上都发现有缓冲溢出漏洞。

      6、当然,还有其他很多的问题围绕着系统的实施。必须提到的是物理安全,系统本身要安全,那些软驱,CD-ROM,外置硬盘也要防止被偷。复位键最好不能让用户接触,Linux 很稳定不需要重新启动,基本上不需要复位键。

      我们来概要说明一下建立这种系统的步骤:(详细叙述可以参考HOWTO文档

      1、首先需要安装 Red Hat Linux,安装时使用定制或者工作站模式, 采用后面的这个模式时,你或许会被手工删除将近300个RPM 包而搞成一团糟。如果采用定制安装模式,只要选择基本系统,网络工作站,mail/WWW 服务以及X相关的软件包就可以了,即使在这种情况下,你也 要做一些RPM 删除工作。

      第一件要做的事情是分区,至少需要 / ,/home,/var 以及 /tmp (当然 还需要 swap)分区。下面是一个 3GB 驱动器上的例子:

    Filesystem 1k-blocks Used Available Use% Mounted on
    /dev/hda1 1571528 184184 1307512 12% /
    /dev/hda7 300603 309 284773 0% /home
    /dev/hda6 300603 20 285062 0% /tmp
    /dev/hda5 809556 4640 763792 1% /var

      独立的 /tmp,/home 以及 /var 分区对于安全的需要而言,是绝对必要的,这样就能限制文件执行权限。

      2、现在可以删除一些没有必要的RPM 包了,(使用 rpm -e 命令)。具体的例子可以参考HOWTO文档。这一步也非常重要,因为任何一个有漏洞 的软件包就能导致普通用户获得特权操作。

      3、安装 ssh 服务( Red Hat 7.0 以后有这个包)。

      4、建立启动软盘,以备万一。

      5、现在修改合适的配置文件。

      在 /etc/inittab 中增加为X 下面的Netscape 浏览器而准备的新的运行级 4 ,改变的那一行是:

      id:4:initdefault:

      同时,禁止使用 Ctrl-Alt-Del 重新启动机器。 并限制 gettys 为一个,只留下:

      1:2345:respawn:/sbin/mingetty tty1

      其余的全部注释掉。

      在 /etc/fstab 中,限制文件建立和执行权限,为/home,/tmp以及 /var 分区设置 nodev,noexec,nosuid 标志,这样就分别防止建立 设备文件,SUID 文件以及执行这些分区上任何文件。仔细的读者会说 noexec 和 nosuid 是冗余的,但是为了明了起见,我们还是这样设置了。 / 分区应该mount 为只读。一个 /etc/fstab 的例子是:

    /dev/hda1 / ext2 defaults,ro 1 1
    /dev/hda7 /home ext2 defaults,nodev,noexec,nosuid 1 2
    /dev/hda6 /tmp ext2 defaults,nodev,noexec,nosuid 1 2
    /dev/hda5 /var ext2 defaults,nodev,noexec,nosuid 1 2
    none /proc proc defaults 0 0
    none /dev/pts devpts gid=5,mode=620 0 0
    /dev/hda8 swap swap defaults 0 0

      这里没有软驱和 CD-ROM 驱动器的定义,因为他们在设置以后会被拿走。

      现在开始建立主要的脚本运行浏览器和 X,到/etc/rc.d/init.d 目录, 建立 xbrowser 脚本,这个脚本的主要功能是用root 用户激活X,建立一个 死循环,这样一旦X 瘫痪,又会通过 /usr/X11R6/bin/xinit /root/.xinitrc 和 /usr/X11R6/bin/X 重新启动。系统重新启动后自动 进入 X ,没有口令提示,xbrowser 脚本还用来清除过期的Netscape加锁文件,以及在系统日志里通过logger 命令加上X 重启的信息。

      让我们到 /root/.xinitrc 看看,这个文件主要的命令是:

      su netscape -c \"netscape -no-about-splash -geometry 1024x768+0+0\"

      在这之前,我们必须使用:

      xhost +thisboxname

      命令允许非root 的Netscape来运行root 权限的 X 服务。(Netscape作为没有特权的用户运行)

      现在建立用户,设置 Netscape 限制的权限,需要禁止Java,JavaScript, 页面缓存,cookies以及所有非标准的应用。去Netscape->Edit->Preferences->Navigator->Applications 设置历史长度为 0,这样后面的用户 就不知道前一个用户的操作。不安全的是URL 加密的口令,现在把新的 Netscape 用户的主目录属主设置为 root ,使他们不能写入东西。

      现在配置LILO,任何人不能改变运行级,这可以通过在/etc/lilo.conf 文件增加 \"restricted\" 行而达到。

      记住不要激活 Magic SysRQ keys ,它会让命令直接发送到内核。可以修改 /etc/sysctl.conf 设置 kernel.sysrq = 0,虽然缺省是禁止的,但是明智一点还是检查一下为好。

      最后一步是删除那些不需要的二进制文件,像 xterm 和 rxvt ,使用:

      /bin/rm /usr/X11R6/bin/xterm

      就可以搞定。

      为了让系统更加完善,应该安装一些写得比较好的远程日志管理工具以及基于主机的侵入探测系统(IDS)像 Tripwire 或他的一些克隆。

      如果需要更多技术性的信息,请自己阅读HOWTO 文档。参考文章那一节里有几个到其他网站的连接,以及你可以购买到的类似的系统。

    参考文章:

    Linux ISP HOWTO: www.chuvakin.org/ispdoc
    Linux Web浏览器工作站: www.chuvakin.org/kiodoc

    发布人:netbull 来自:Linux专区