最近更新日期:2006/06/06
1. 前言
2. 基本搭建服务器流程 2.1 了解网络基础 2.2 了解搭建服务器的目的 2.3 Linux 安装硬碟规划 2.4 了解欲搭建的网站服务原理 2.5 服务的套件安装、漏洞修补、套件升级... 2.6 主机设定、启动、观察与除错 2.7 用户端设定、观察与除错 2.8 安全性设定 2.9 服务日志、登录档与备份管理 2.10 小结语 3. 自我评估是否已经具有搭建服务器的能力 4. 课后练习 5. 针对本文的建议:http://phorum.vbird.org/viewtopic.htm?t=23676 前言
如果有人问你:‘Linux 最强大的功能是什么’?
大概大家都会回答‘是网络功能啊!’,
接下来,如果对方再问:‘所以学 Linux 就是为了搭建服务器啰?’
呵呵!这个问题可就见仁见智啰!说穿了, Linux
其实就是一套非常稳定的作业系统,那么任何工作只要能在 Linux 这个作业系统上面跑,那他就是
Linux 可以达成的功能之一啰!所以 Linux 的作用实在不止于网络服务器的搭建呐。
举例来说,在 Linux 上面开发跨平台的程序 (program) 诸如大型的数值模式,由于 Linux 的稳定与完善的资源分配功能,使得在 Linux 上面开发出来的程序运作的又快又稳定。此外,诸如 KDE, GNOME 等漂亮的图形介面,搭配诸如 Open Office 等办公室软件,Linux 立刻摇身一变而成为优秀的的办公室桌面电脑了 (Desktop)。所以说,千万不要小看了 Linux 的多样功能呐。 不过,不管怎么说, Linux 的强大网络功能确实是造成 Linux 能够在服务器领域内占有一席之地的重要项目。 既然如此,我们就好好的来探索一下 Linux 的网络世界吧!首先, Linux 到底可以达成哪些网络功能呢?这可就多着咯!不论是 WWW, Mail, FTP, DNS, 或者是 DHCP, NAT 与 Router 等等,Linux 系统都可以达到,而且,只要一台 Linux 就能够达到上面所有的功能了!当然,那是在不考虑网络安全与效能的情况下,您可以使用一台 Linux 主机来达成所有的网络功能。 ‘哇!Linux 有那么多的功能啊!那么我可以轻轻松松的就搭建好一台以 Linux 为作业系统的服务器吗?!’呵呵!很可惜,答案是‘否’! 您无法轻松的就完成一台‘堪称完美’的服务器搭建,而是必需要很用心, 并且学习很多相关的概念与操作方法后,才能够搭建好一台完美的服务器。什么!要很用心啊!使用 Windows 作业系统随随便便就可以搭建好好几个服务器了,那么我干嘛要花时间去学习 Linux 来搭建服务器呢? 唉!这真是伤脑筋呐!‘谁说使用 Windows 搭建服务器就很简单’的? 就鸟哥的感觉来说,搭建 Windows 服务器一点也不轻松。为什么呢?
这么说的话,搭建服务器真的是挺难的喔!事实上,搭建服务器其实蛮简单的哩!咦!~怎么又说搭建服务器简单了? 不是说搭建服务器难吗?呵呵!其实‘搭建服务器很难’是由于朋友们学习的角度有点偏差的原因啦! 还记得当初进入理工学院的时候,天天在念的东西是基础物理、基础化学、工程数学与流体力学等基础科目, 这些科目花了我们一至两学期的时间,而且内容还很难呐~都是一大堆的理论背不完。 怪了?我们进理工学院是为了求取更高深的知识,那么这些基础知识学了有什么用呐? 呵呵!更高深的知识都是建构在这些基本科目的理论上面的,所以 万一您基础的科目没有读好,那么专业科目里面提到的基本理论怎么可能听的懂? 这样说应该就不难了解了吧!没错!认识作业系统与该作业系统的基本操作,还有那个重要的网络基础, 就是我们在搭建服务器前的‘基础科目’啦!所以说,在进入 Linux 的服务器世界之前,真的不能够略过网络基础的相关知识,同时, Linux 系统的基本技能也必需要能够理解呐! 好了,或许您还是对于 Linux 系统里面‘什么是很重要的知识’不甚了解, 果真如此的话,那么我们就举个简单的例子来说明一下啰!底下列出一般的搭建服务器流程, 我们由搭建服务器的流程当中,来看一看什么是重要的 Linux 相关技能吧! ^_^。
基本搭建服务器流程:
虽然不同的 Server 提供的服务并不相同,而且每种服务的原理也不见得都一样,
不过,每种服务器由规划、搭建到后续的安全维护,其实整个流程是大同小异的。
所以,底下我们就整个服务器的简易搭建流程当中来分析一下,
为什么了解作业系统的基础对于网站维护是相当重要的呢?
首先,先来分析一下,如果你要搭建一个网站时,搭建的基础流程是怎样的一回事。大致的流程有点像底下这样:
了解网络基础
既然是要搭建网站,那么网站最基本的知识,就是那个
OSI 七层协定,至少就需要了解一下啰!虽然只是一个
OSI 七层协定,但这里面包含了:
对于网络基础的问题当中,一个最常见的经典案例是: ‘192.168.1.0/24’是什么东西?呵呵!这东西代表的是一个‘网络’, 这个网络起始到结束的 IP 范围是多少您看得出来吗?这种表示方法在各种服务器的搭建中很常见到, 如果您不了解的话,呵呵!当然无法进行服务器的搭建啰 ( 注:各种作业系统均会出现这样的设定值喔 )。还有,如果您的主机明明就可以使用 ping 这个指令去接触远方的主机 (ping IP),但是就是无法使用 ping hostname 去接触远方的主机,请问,这个原因是什么呢?了解网络基础的朋友一看就知道几乎是 DNS 出问题了,不晓得的朋友就是想破头也得不到答案~ 其实这些概念说难不难,但是至少一定得需要学习过呐! 而且,这些知识在您学会之后,未来再接触到其他不同的作业系统时,可让您学习的过程‘顺畅无比’呐! 因为那是最最基本的理论,各个作业系统都是建构在这些网络基础上面,所以,当您换了另外一套作业系统后, 基本上只有指令的下达方式不一样而已,基本原理是一样的呐!所以说,学习的过程当然会顺畅到底啰! ^_^。 而且,网络基础会影响到您的网络设定是否正确,这真的很重要呐,因为,如果您的网络不通, 那么即使服务器搭建成功了,别人可以看的到吗?所以说,要搭建服务器,真的得对网络基础的部分下一些功夫才行的。 关于网络基础这部份的介绍我们会在下一章网络基础时再详加说明喔! 了解搭建服务器的目的
搭建服务器的目的与您的主机规划是一体两面的!因为我们必需要了解主机未来的用途与使用的用户端数目,
才能够开始选择硬体与分配网络频宽,并且规划我们的
Linux 系统啊!所以说,了解搭建服务器目的是很重要的!举几个例子来说好了:
在这个例子当中,您必需要了解邮件与
WWW 个人网页的资料所放置的目录在哪里?而由于主机有进行硬碟的容量限制,因此,
quota
的原理与设定的技巧就不能不知道啦!此外,既然是搭建服务器嘛!申请一个‘合法’的主机名称就显的相当的重要,另外,
DNS 里面的 MX 标志对于邮件主机的用途也需要特别去了解呢!
因为仅开放文件服务器,那么这部主机应该是在内部了,所以,当然就不是很需要一个合法的主机名称了!
不过,因为仍然有对区域网络提供文件服务器的功能,因此,硬碟的容量也不能太小,此外,
为避免未来使用者的抱怨,也需要预留空间来进行
quota 与增加硬碟等工作呢!
当然啦!这样的一个系统最主要的目的就在于‘稳定性’与‘速度’上面了!因此,您就需要了解
核心 (Kernel) 的编译技巧,
此外,由于不同的套件在设计最佳化的时候,通常都使用较为常见的
Linux distribution ,因此,对于 Linux distribution 的选择可又重要的多了呢!
由上面的例子来看,不同功能的主机在硬体配备与软件规划上面是不一样的!所以,在进行
Linux 主机的规划之前,建议一定要了解这个主机的功能,甚至最好还能预设一些未来可能加入的功能规划呢!
那我怎么知道我的主机要有什么样的功能?又什么样的功能可以满足我的需求呢?这当然是需要经验的!
呵呵!这又得要回到刚刚前一个主题啰!至少需要了解到网络的基础,
这样就能够知道您应该搭建什么样的网站啦!举个例子来说,如果您只是想要让 Linux 达成频宽分享而已,那么 Router 或者是 NAT 的设定即可满足你的需求, 万一您还需要了解每个使用者经常使用的网站,那么最好就是搭配 Proxy 以及分析软件来分析。然而 NAT 不需要很好的硬体配备即可达成,Proxy 如果要效能好一点,就必需要比较高档的硬体来搭配~咦!我怎么知道的? 这当然是鸟哥已经较为熟悉每种服务所使用的硬体状态与他的服务原理啊。 所以啰!在主机的规划之前,务必要先了解主机的搭建目的喔! 那么这部份与 Linux 基础有何关系?!关系大了!
Linux 安装硬碟规划
OK!了解了搭建服务器目的,也知道硬体应该是如何搭配之后,接下来,自然就是安装
Linux distribution 了!到底选择哪一套 distribution 好呢?是 Fedora/SuSE/Mandriva
还是.....这个时候您就需要清楚的了解到 Linux 其实就是一个‘Kernel’啰!而目前 (2007/01) 的
Kernel 最常用的就是 2.6 这个版本,如果您使用较旧的 Linux distribution 例如
Red Hat 9 时,那么 Kernel 版本是较为早期的 2.4 版,这个时候,在新版的
2.6 核心上面开发出来的各种类软件就无法在 Red Hat 9 的系统上面动作了,
而且,不同核心的函式库也不相同啊!
所以说,选择 Linux distribution 时,需要知道该 distribution 的核心版本才好。
一般来说,我们会建议大家不要使用太冷门的 distribution ,因为,支援度可能会比较不够好!所以,目前较为推荐的还是台湾地区比较多人使用的 Red Hat 系统 (Red Hat/Fedora/CentOS 均是 Red Hat 系统),以及操作介面良好的 SuSE , 还有 Mandriva 也不错啊! 选择了 distribution 后,当然要开始安装了!安装的第一个要件就是刚刚上个步骤的规划, 因为上面提过了,所以这里我们就不再谈规划的工作了。规划完成之后,再来就是整个安装的流程了。 安装流程最重要的大概有三个地方:
因为 make 与 gcc 是编译套件所必需要的软件,至于 kernel-devel 则是一些驱动程序在编译时会使用到的一些函式库或系统资料, 这些东西对于桌上型电脑并不很重要,因此在各大 distribution 的预设套件上面‘都没有安装’, 所以,您需要自行挑选啊!这些套件通常都会放在 Software develop 或者 Utility 的项目当中,请仔细的选择喔! 了解欲搭建的网站服务原理
事实上,了解每种服务的运作原理,对于您未来在进行除错 (debug)
是相当的有用的啊!而且,在主机的规划上面也会有一定程度的帮助。举例来说好了,在
Linux 上面很有名气的文件服务器 SAMBA ,他的运作原理主要是 NetBIOS over
TCP/IP ,而如果您了解最原始的 NetBIOS 是无法跨网络的,亦即无法跨路由器
(Router) 的,那么就比较容易了解为何 Windows
的网络上的芳邻显示的电脑数量只有区域网络内部这么多而已!
另外,如果您熟悉 FTP 的运作模式时,才有可能会了解‘被动式’与‘主动式’连线对于 FTP 主机的设定其实是‘大有关系’的!或许在这里您完全不晓得鸟哥在谈些什么 (因为这些基础知识在后续的章节才会陆续的提及啊!这里还没有讲到啦!) ,只不过,请大家先有个概念,理解服务 (Services) 的运作流程,将有助于您未来的搭建与维护喔!所以,这一台份也不要忽略了! 这还只是各个服务器的服务原理呢!如果是在 Linux 上面运作呢?那么您至少就得要了解‘什么是 daemon ?’而 daemons 的形式有所谓的 stand alone 以及 super daemon 的管理!这两种形式有什么差别?每种 daemon 管控的 port number 是否相同?如果需要更改 daemon 的 port number ,应该要改 /etc/services 这个文件,您是否了解如何去修改?还有还有,除了服务器才需要的 daemon 之外,其实我们 Linux 主机里面本来就有很多 daemon 存在,例如几乎一定要存在的 crond, syslogd, atd 等等,这都是需要了解的基本知识! 服务的套件安装、 漏洞修补、套件升级...
好了,假设您已经将网络硬体配置搞定了,主机也规划好了,并且也已经可以连上
Internet 了,此外,也已经知道了该服务器的服务原理,那么再来当然就是:‘
我的主机上面是否有我要搭建的服务器软件了?’举个例子,
如果我问你,你的 Linux 主机上面有没有 Apache 这个 WWW
服务器的软件呢?聪明的管理员大概已经想到了使用
RPM 来寻找,而如果不是使用 RPM
来管理软件的系统管理员,也会立刻想到
locate, find, which
等等的指令来搜寻相关的文件或指令,例如 Apache 的主要设定档是
httpd.conf ,那么只要找到该文件,就能够了解是否已经安装了这个套件~因此,立刻使用
locate httpd.conf 即可发现啦!
好了,假设您的主机并没有安装 Apache 这个套件,那么您要如何安装呢? 这个时候就需要考虑到‘套件管理员’这咚咚了!目前 Linux 上面的套件管理员大多使用 RPM 与 Tarball 这两个咚咚!使用 RPM 最大的优点是方便管理!因为所有的文件与资讯都有纪录,所以在搜寻、升级、反安装上面都相当的容易! 不过,却也因为相依属性的问题常常导致新手无法立刻进入状况!此外,RPM 有版本方面的问题,不同的 Linux distribution 上面的 RPM 还不能互相挪用呐!呵呵!真是苦恼~ 如果您对于 RPM 的相依属性有相当大的反感程度,那么使用原始码 (source code) 来进行编译则是一个不错的思考方向。在系统上面能够执行的文件属于 Binary (二进位档) ,那么这些 binary 是怎么来的呢?!我们以 Linux 常见的 binary 制作方法:使用 gcc 来编译的动作来说明好了。要制作 binary file 之前,首先就必须要撰写程序码,这些程序码大多是以文书编辑器编辑而成的 ASCII 格式文件,这就是通称的‘Source code’咯。然后这些程序码必需要经过编译器 (compiler) 编译成为我们的系统认识的 binary 可执行档才行!在编译的过程中,可能还会使用到很多的函式库 (library) 呢!需要注意的是,目前 linux 上常见的编译器就有 gcc, g77 等,您的原始码必须要针对这些编译器的语法进行撰写才行! 一般来说,当套件释出时,大多采用原始码的方式释出的,但是因为原始码所占用的文件空间比较大, 因此常常会加以压缩之后,才放上网站上供人下载,那就是所谓的 Tarball 了!因此,您必须要了解 tar, gzip, bzip, compress 等指令的用法才能够解开 Tarball 的文件!此外,由于 Tarball 是原始码,因此您还必须要有 compiler 以及相关的 make 与 Kernel 相关的函式库,才能够成功的将这个套件给他编译成为可以在您的系统上面跑的 binary file !使用 Tarball 的安装方式,最大的优点是具有弹性! 您可以将套件安装在任何您想安装的目录,还可以自行加入一些额外的参数来设定该套件呢! 不过,还是有缺点的啦!那就是当平台不一样时,可能由于某些函式库无法找到, 或者是使用者的基本知识不足,就无法成功的将 Tarball 编译成功!另外,用 Tarball 安装时,某些特殊的套件很难进行反安装的动作呐! 造成升级与移除上的困扰! 反正 RPM 与 Tarball 是各有优缺点啦,鸟哥个人比较偏向于使用系统预设的 RPM 来进行服务器的设定,不过,由于并非每个 Linux distributions 都适合某个套件的 RPM 参数,所以,这个时候我就会开始考虑使用 Tarball 了!无论如何, 既然您要搭建服务器,就必须要有该服务器的套件在您的系统上面,那么学习上面这两个套件管理员,是必要的动作!
很多的新手在搭建好了服务器之后,
就以为‘万事 OK ’了!
所以就不再继续的监视网络上面公布的套件漏洞资讯!事实上这是很危险的!因为目前由于
Internet 的发达,网络的危险性其实是越来越严重的!稍一不小心,您的主机可能就会立刻的‘中标’。
为了随时修补漏洞,您应该要熟悉如何进行套件的升级!一般来说,使用
RPM 安装的套件就以 RPM 的方式来升级,使用 Tarball 的话,比较麻烦,
需要先移除后再进行升级!无论如何,套件的升级是系统管理员经常要进行的工作!
目前各大版本的 Linux distributions 都有释出线上自动更新的机制,包括 Red Hat 的 up2date, CentOS/Fedora 的 yum, SuSE 的 YOU,以及 Debian 的 APT 等等,都值得您花时间去学习的, 因为可以让您的主机变的更加的安全喔!
主机设定、启动、观察与除错
在所有的前置作业都完成之后,终于可以来到‘主机设定’的地方了!
所以您看看,要设定一台堪称完美的主机,前置作业就得学会这么多的基础功夫呐!
并不简单喔!好好的用功学习吧!主机的设定大致的流程是这样的:
用户端设定、观察与除错
一般来说,目前的服务器大多只要针对 Server 设定好即可, Client
端我们不太需要去管理的。不过,某些特殊的套件,例如
SSH, Mail, SAMBA, NAT 等等,就必须要连同 client 的权限与设定一起包含进去设定呢!
如果您是一个系统管理员的话,那么‘教育
Client 端的使用者,正确的使用网络与主机提供的服务’就是一个相当重要的工作了!
最常发生的错误在于 Client 端搭建了‘个人防火墙’,这部份相当的恼人~那我怎么知道 Client 端的服务要求被防火墙给他中断呢?这当然可以由 Server 以 netstat 来简略的检查,当然,到 Client 端视查一下使用者的使用习性与作业系统,也是一个可行的方案。不过,总体来说, 教育您的 Client 使用者具有最最基础的 Linux 帐号、群组、文件权限等概念,才是一个彻底解决问题的方法说!尤其是 Client 端的使用者在使用类似 SAMBA (网络芳邻) 进行资料存取时,最容易发生权限观念这样的错误了! 总之,系统管理员对于 Client 端的使用者还是有一定程度的责任与义务的,至少我们要进行好教育的任务! 安全性设定
前面说过,网络的安全有越来越需要注意的趋势。所以,搭建一个相对安全的网站是很重要的!
那么如何搭建好一个相对安全的网站呢?您至少需要有这样的概念:
服务日志、登录档与备份管理
除了安全性之外,主机也可能因为硬体问题或者是人为使用不当而产生错误讯息等问题!这些讯息会放置在
/var/log 里面,不过,还是得视 syslogd 这个 daemon 的设定档 /etc/syslog.conf
的设定而定喔!这些登录档的资讯是相当重要的,他可以记录曾经发生过的事情,
如果再经由系统管理员自行写的分析软件,那么就可以很轻松的管理好主机了!
也可以在最短的时间内发现主机的可能漏洞呢!不可说不重要啊!
我们常常说主机的服务越单纯越好,原因是什么呢?如果哪一天我们发现主机的登录档有点问题, 要来进行入侵管道的查询,万一主机的服务过多,很难追查出到底是哪一个 daemon 造成主机的问题啊!如果主机的服务很单纯,分析登录档也会比较轻松呢! 此外,系统管理员最好有制作工作日志的习惯,可以让您未来管理主机比较容易快速的进入状况! 总之,要良好的管理主机,利用主机的工作排程(crontab)也是很重要的喔! 当然啦,主机随时的给他备份是一个很良好的行为,要怎么备份呢? 您必须要了解主机的相关资讯,例如邮件主机,您可能就得备份 /etc 与 /home 及 /var/spool/mail 等目录,而如果是 WWW 主机,就得找到 WWW 主页的目录,才能进行备份呐!要用什么工具呢?可以选择 tar 或者是 cpio 等工具,当然,您还得配合备份的媒体,例如抽取式硬碟啊、可烧录光碟啊等等的媒体说! 小结语
由上面的整个搭建服务器流程来看,由规划到安装、主机设定、帐号与文件权限管理、
后续安全性维护与管理以及重要的备份工作等等,必需要每个环节都很清楚,
才能够设定出一个较为稳定而可正常工作的服务器。而上面的每一个工作都涉及到相当多的
Linux 基础操作与相关的概念,所以说,
想要学搭建服务器,真的真的不能省略了 Linux 的基础学习,
这也是为什么我们一再强调 Linux
新手不要一头栽入想要单纯搭建服务器的迷思当中呐!
如果您对于上面谈到的几个基础概念不是很清楚的话,那么建议您由底下的两个网站学起:
在这一本书当中,鸟哥并没有再花篇幅再继续介绍一些 Linux 的基础指令以及相关的设定,
这一本书本来就定位在已经具有
Linux 知识的朋友的工具书,所以,对于尚未接触过 Linux
的朋友来说,这部份其实并不适合您!建议您还是得要重头学起呐!若想要一本
Linux 基础知识的工具书在手边,也可以考虑鸟哥前一本著作
‘鸟哥的 Linux 私房菜 -- 基础学习篇’喔!
(好像有点老王卖瓜了喔! ^_^ )大家加油的啦!
自我评估是否已经具有搭建服务器的能力
由前一节的内容介绍中,不难知道要搭建一个堪称完美的网站,
得事前花诺大的心力来培养您自己的‘能力’才行!说实在的,搭建服务器实在不能贪图‘便利’,
因为越是‘便利自己’就越是‘便利 Cracker 的入侵’啊!此外,上面谈到的都属于技术层面的部分喔!
要有搭建服务器的能力,不只有‘技术’就可以了喔!还需要其他心理层面的辅助呢!
@_@ 咦!搞什么~搭建服务器还需要心理层面的因素?我们是在玩心理战是吧?!
这里要请您特别注意的一点是,如果您架了一个网站,一般来说,您自然就是系统管理员 (root) 的身份了。而要晓得的是,在 Linux 系统当中, root 具有‘至高无上’的权力, 他可以进行任何系统的设定,也可以察看任何使用者的文件或邮件或什么机密文件等等的, 还可以让使用者寄出、寄入的邮件都送一份到自己的信箱去!所以,如果身为 root ,还拥有‘极高度的偷窥欲望’时,那么您的 user 岂不是毫无秘密可言?换个角度来想,如果您是一般的 user ,而您的 root 却拥有很高的偷窥欲,我想,您应该也不见得会有多快乐吧? 就好像在家里被人家装了针孔式摄影机一样,感觉绝对不可能太好!所以,要成为 root 之前,您必须做好心理建设,那就是拥有相当高水准的‘道德感’。 一般来说,网管人员需要什么能力呢?我想, 架几个站跟作一个称职的网管人员,相差是甚远的!搭建服务器,说真的,是一件很简单的事情, 看著书本一步一步的作上去,一定可以成功的!但是,很多人都只晓得 ‘如何搭建服务器’却不知到 ‘如何维护一个网站的安全’!基本上, 维护一个已经搭建好的网站的正常运作,真的要比搭建一个网站难的多了!您得要随时知道您的系统状况, 随时注意是否有新的套件漏洞而去修补他,随时要注意各种服务的登录文件(logfile)以了解系统的运作情况! 得知道发生问题的时候,到底问题点是在哪一个!比如说当机了,那么您知道当机的原因吗? 即使不知道,也可得需要约略猜得出来才行。而,如果安全出了问题,被入侵了,除了 format + 重装之外,可有办法在不移除系统的情况下修补漏洞? 这些都是网管人员需要学习的,而且,通常都是需要经验的累积才会知道问题的所在! 此外,保持身心的活力以随时注意线上公布的安全防备资讯等等!都需要具备的! 此外,最严重的问题是,网管人员其实最需要的是 ‘道德感与责任感’!您可要晓得您的机器上所有人的隐私都在您的监控之下, 如果您本身就已经有偷窥欲了,可知道这有多可怕吗?另外,如果没有责任感的人作为一个网管, 可能会疯掉,因为不论何时何地,只要是你监控的主机出了问题,嘿嘿嘿嘿,你一定是第一个被想到的人物, 所以,你得随时随地做好可能随时会被召唤回主机跟前的心理准备!更可笑的是,如果你服务的人群中, 有几个连开机的时候软碟机塞了一块不可开机的软碟,导致无法正常开机, 也都会跟你抱怨说‘唉呦!您经手的电脑怎么这么烂,动不动就不能开机’的时候, 您得要有容人的雅量,说说冷笑话解解闷吧!总之,网管人员并不是只要会搭建服务器就可以了, ‘道德感’‘责任感’还有‘耐心’呵呵!套一句现在人喜欢说的口头禅‘这是一定要的啦!’ 那么网管人员是什么? 前一阵子看到了报纸的一篇报导, 内容大概是说:台湾的网络管理人员对于‘网络安全性防护’的认知不够,或许是防火墙机制建立不完整, 或者是认为骇客不会入侵小型网站,所以在不甚了解的情况下,被所谓的‘中东骇客组织’所入侵, 然后以台湾被入侵的电脑为跳板,去攻击宾拉登的仇敌美国,然后引起美国高度的不满。由于台湾的立场有点得罪不得美国 ( 这边不提及政治因素,反正目前的情况是这样。 ) ,所以一接到美国来的抗议信函就很棘手。 这只是一个事件问题,不过这个事件问题也点出了一个重点,就是我们的网络资讯可能真的是蛮发达的, 不过,管理网络的人员可能在认知的程度上就有点参差不齐了!网络安全是蛮重要的,只是, 大家常常会忘记他!个人认为,网管是蛮重要的角色,应该不能等闲视之才对。 好了,如果您了解了上面小弟所想要表达的意念之后,来评估看看您是否适合当一个称职的网管人员吧!
课后练习:
由于配备相同,所以排除硬体的问题,不过,考虑到 IDE 排线与 partition 的代号,以及 /etc/fstab 的对应,所以应该是由于 IDE
插槽放置错误所致(Linux 系统下,每个 IDE 插槽对应的 partition 名称皆不相同喔!)。此外,
上次不正常关机也可能造成硬碟损害而无法开机成功!
在 /etc/default/useradd 这个文件里面会规范使用者的预设家目录以及预设家目录的内容,一般来说,使用者预设家目录在
/home ,至于家目录内的文件则复制来源在 /etc/skel 里面。
Quota 目前仅能针对整个 partition 进行限额配置,如果该特定目录是一个 partition 那就可以进行 quota
设定,否则无法针对特定目录!此外, Quota 除了特定目录以及需要 ext2, ext3 等磁碟格式才支援之外,也需要核心的支援喔!
如果是执行档可以使用 which command 来搜寻,如果是文件,就必须要使用 locate vbird.document 或 whereis vbird.document 或
find / -name vbird.document 。如果要找到一天内更动过的文件,可以使用 find 配合参数,如:‘ find / -ctime 1’。
RPM 套件管理员在安装套件的时候,会将该套件的文件名称、套件功能与讯息等等资讯记录于 /var/lib/rpm
目录内,由于有这些套件的资本资讯,因此在系统内很容易进行 RPM 的升级、安装、移除等动作。不过,由于 RPM
文件之间的相依性相当的强,因此常常会有版本不合或者是欠缺某样前驱套件的问题发生。
至于 Tarball 则是原始码,使用者可以自行设定套件的编译参数,以符合自己的 Linux 平台。此外,由于 Tarball 是原始码,因此需要在您的系统上面进行编译,编译的过程中需要 gcc, make, 以及 kernel-devel 等套件,还有您所想要安装的套件所需要的前驱套件也同时需要先安装后,才能进行 Tarball 的安装。注意,几乎每个 Tarball 以 tar 程序解开后,在新增的目录下均会有 README 以及 INSTALL 文件,请务必先查阅过后才进行编译工作。
由于附档名是 .tar.gz 或者是 .tgz 的文件,所以可以认定该文件为一个 Tarball 的文件。至于档名的配置方面,httpd
为套件名称,2.0.52 则通常为该套件的版本名称了!那如何安装?由于该文件为 httpd 这个套件,且格式为 Tarball ,所以您必须要:
如前面几个题目所说的,因为是原始码,所以还需要编译程序来将该原始码编译成为可以在您的 Linux 系统上面跑的 binary
文件,在 Linux 上头预设的编译程序就是 gcc 这个编译器(compiler)。如果您在安装 Linux 的时候,使用 Linux Installer
预设的套件选择,那通常会没有安装 gcc 以及 make 等套件,此时,请拿出您的原版光碟,以 mount 指令挂载后,使用 RPM
将一个一个相关的套件安装即可(过程会蛮复杂的!)^_^
如果要捉出程序(process)的话,可以使用 ps -aux 或者是直接输入 top 来查询 process 的 ID (PID),找到 PID 号码后,再以
kill -9 PID 来删除该程序即可。
无法编辑某个文件,可以先使用 file 这个指令来查询一下该文件的格式,例如想察看 /etc/shadow 的格式,可以下达:
‘file /etc/shadow’,如果是文字档,却还是无法编辑,那么最可能发生的原因就是‘权限’的问题了。可以使用
ls -l filename 察看文件权限,再以 chmod 或 chown 来修订该文件的权限。此外,该文件也可能含有隐藏属性,可以使用
lsattr filename 查阅,再以 chattr 来修订隐藏属性。
在 Linux 系统下,使用者与群组其实都是以‘ID(数字)’的格式来设定的,所以使用者与群组其实都是 UID 或 GID (User ID 与
Group ID),Linux 对于文件权限也都是使用 UID/GID 来分辨。不过人类习惯使用文字来记忆,所以才会有 /etc/passwd 与
/etc/group 来转译 ID 与 User 及 Group 之间,这也才会发生为何在 Internet 上面捉下来的 Tarball
解开之后,往往会有文件拥有人与群组为数字的型态,因为您 Linux 系统上面的 /etc/passwd 与 /etc/group
没有相关的对应文字说。至于 UID 的等级主要有两种,分别是超级管理员(root),其 UID 为 0,其他非为 0 的 UID
基本上身份是相同的!不过 Linux 通常会将小于 500 的 UID 保留给系统使用。
放置在 /etc/passwd 与 /etc/shadow 当中。当然还有 /etc/login.defs 喔!
能力需求相当高,如了(1)作业系统的基础知识(不论是 Linux/Unix/MAC/MS);(2)网络基础的知识;(3)个别 Internet Services
的运作知识之外,还需要(4)身心保持在备战状态,以及(5)具有相当高程度的道德感、责任感与使命感。
如果是 stand alone 的服务,可以经由 /etc/rc.d/init.d/* 里面的文件,如 /etc/rc.d/init.d/syslog start;
如果是 Super daemon 的服务,就必须(1)先到 /etc/xinetd.d 或者是 /etc/inetd.conf 修改相关文件或参数; (2)以 /etc/rc.d/init.d/xinetd restart 来启动。
因为 cron 是一个 stand alone 的服务,所以可以使用 /etc/rc.d/init.d/cron stop 来关闭;如果还是无法正常关闭,可以使用
ps -aux | grep cron 捉出该程序的 PID ,然后以 kill -9 PID 来关闭。
可以直接在 /etc/rc.d/rc[run-level].d 里面加入 S 开头的文件,不过,更简单的作法是直接将该程序写入 /etc/rc.d/rc.local
,不过,请注意该程序必须要具有可执行的权限,且 rc.local 也必须要是可执行喔!
2003/07/30:第一次完成日期! 2003/08/19:加入了课后练习,如果您无法回答上面的问题.....不要怀疑,赶紧回去参考 Linux 基础篇! 2003/09/06:加入课后练习的参考用解答 2006/02/07:将原本的旧文移到此处 2006/06/06:将 SATA 介面的硬碟代号再次做个修订!目前 SATA 的格式有分两种呢! 2007/01/02:将一些排版重整,将一些日期方面的资料重整,将课后练习补上来 |
||||||||||||||||