最近更新日期: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:將一些排版重整,將一些日期方面的資料重整,將課後練習補上來 2003/07/30以來統計人數 |
||||||||||||||||