370 likes | 594 Views
Linux 基礎應用. Tainan Linux User Group 鳥哥 ( VBird ) 2002/12/21. 為何學習 Linux ( 心態). 因為 Linux 網路功能強大 因為 Linux 作業系統上面的軟體幾乎都免費 因為 Linux 圖形介面可以隨時改成各人喜好 因為我沒錢且不喜歡 MS 的 Windows 但是 ….. 上面都是騙人的!都不是重點!重點是 ... Linux 可以用來架站!. 今日重點 ( 講題要變喔! ). 天吶!誰來教教我如何架站哪! 註:不玩架站的也幫忙捧捧場!.
E N D
Linux 基礎應用 Tainan Linux User Group 鳥哥 ( VBird ) 2002/12/21
為何學習 Linux (心態) • 因為 Linux 網路功能強大 • 因為 Linux 作業系統上面的軟體幾乎都免費 • 因為 Linux 圖形介面可以隨時改成各人喜好 • 因為我沒錢且不喜歡 MS 的 Windows • 但是….. • 上面都是騙人的!都不是重點!重點是... • Linux 可以用來架站!
今日重點 (講題要變喔!) • 天吶!誰來教教我如何架站哪! • 註:不玩架站的也幫忙捧捧場!
用什麼方式架站--方法 • 簡單的 Web 介面:Webmin • 簡單、立即可架設; • 因為簡單,所以不知道自己幹了什麼好事! • 詳細的設定與理解不易 • 繁雜的文字介面: • 麻煩!很難上手,基礎功夫花很多時間,但總是看不到成效! • 一旦學成、終生受用!
用什麼方式架站--建議 • 建議用文字模式的原因: • 可以理解為什麼要這樣做? • 問題發生了,會知道哪裡可能出錯? • 整個流程的檢驗程序清晰! • 底下來談談怎麼架站吧!
基本架站流程(按圖索驥?) • 架什麼站?主機未來用途與規劃軟硬體 • Linux 的最佳安裝技巧 • 瞭解想要架設的網站之原理 • 尋找合適的套件軟體、並加以安裝 • 設定 Server:怎麼設定?找誰幫忙? • 設定 Client 與測試 • 安全性設定 • 日誌與登錄及備份管理
主機的用途與規劃 • 我的主機用途是什麼?WWW、Mail ? • 要達成這個目的,我要知道的是: • 硬體配備要如何?Proxy? NAT? • 硬碟規劃怎麼做? • 硬碟排列順序與磁碟代號? • Linux 的目錄組織架構 • 該伺服器用到的容量、目錄何在?
主機的用途與規劃 • Linux 的目錄組織架構與 Server: • Mail Server ==> /var/spool/mail • WWW Server ==> /var/www, /home • Samba Server ==> /home • …...
主機的用途與規劃 • 你必須知道的基礎資料: • Linux 的檔案配置與架構 • 每一個 Server 所預設使用的路徑 • Linux 底下,硬體與系統的關係 • 知道如何規劃一部 Linux 主機 • 必須瞭解到參考的依據!
Linux 的安裝技巧 • 選用哪一套 Linux 有什麼不同?(kernel) • 安裝大問題: • partition(fdisk) 與 format(mke2fs) • 什麼是掛載?? @_@ • 選擇什麼樣的套件?(make?gcc…?) • 開機設定 • MBR, Super block ? • Lilo, grub ?
Linux 的安裝技巧 • 你必須要知道的基礎資料: • 什麼是 Kernel ? • 硬碟的基本架構 • 如何 partition 與 format • 什麼是 Loader ?? • 選擇套件的依據原理!
瞭解想要架設的網站之原理 • 什麼是服務?什麼是 super daemon? • 開放的服務名稱是什麼? • /etc/services • Port 如何啟動關閉與觀察? • /etc/rc.d/init.d, /etc/xinetd.d, kill, netstat • 系統的程序 PID
瞭解想要架設的網站之原理 • 你必須要知道的基礎資料: • 啟動 daemon 的預設路徑 • daemon 與 port 的關係? • 使用 kill 與 signal
尋找合適的套件軟體與安裝 • 每個服務對應的軟體有哪些? • 如何知道我的主機已經安裝該軟體? • 資料庫查詢(RPM) • 手動日誌查詢(Tarball) • 什麼是原始碼(source code)? • ./configure, make, make install
尋找合適的套件軟體與安裝 • 安裝的方法: • RPM ( 不滿原始設定,用 SRPM 修改 ) • Tarball • 套件軟體通常的目錄放置習慣 • RPM ( /etc, /usr, /bin, /var….) • Tarball ( /usr/local/ )
尋找合適的套件軟體與安裝 • 你必須要知道的基礎資料: • 如何下達指令? • 什麼是 package manager ? • 如何查詢我的主機套件? • 如何克服屬性相依的問題? • 如何安裝 source code 的軟體?
設定 Server • 步驟一:如何找到設定檔放置的目錄? • 同一套件,設定檔名通常不變 • 不同 distribution 或安裝方式,讓設定檔案可能在不同的地方出現,所以每出一個 distribution 都需要去買書? • 用 RPM 確認檔名 • 用 Tarball 時,可用 find, locate,grep 等
設定 Server • 步驟二:如何實地編寫設定檔? • 使用 man, info 查詢設定檔參數 • /usr/share/doc 這個目錄在幹嘛? • 重點是, vi 會用嗎?
設定 Server • 步驟三:啟動 Server • 如何下達指令? • BASH Shell • 如何重新編輯啟動的檔案? • Shell script • /etc/rc.d/init.d • /etc/xinetd.d 或 /etc/inet.d • kill 與 Process ID
設定 Server • 步驟四:觀察啟動的狀態 • 關於 port 的啟動 • 用 netstat 看看ㄅㄟ • 關於啟動的訊息資料 • 那個 /var/log 目錄在做什麼? • Syslog 是什麼用途阿!?
設定 Server • 步驟五:對於 Client 開放的服務 • 開設哪些帳號,及帳號的相關預設值 • User 與 Group 有什麼用處? • 使用 useradd 可新增,但是預設家目錄? /etc/skel 目錄的編輯! • /etc/passwd 與 /etc/shadow 各有啥意義?如何設計 mail account 呢?
設定 Server • 步驟五:對於 Client 開放的服務 • 是否允許存取? • 什麼是權限(owner,group,others) ? • 那個 Process 屬於誰的呀!? • 存取的資料量限額? • Quota 的用途! • 危險的 SUID 與 SGID
設定 Server • 步驟五:對於 Client 開放的服務 • 是否允許身份的轉換? • su • sudo • SUID, SGID
設定 Server • 步驟六:設定開機時啟動 • 那個 /etc/rc.d/ 目錄是作何之用? • /etc/sysconfig 裡面的咚咚代表什麼? • chkconfig, ntsysv, /etc/rc.d/init.d 用途?
設定 Server • 你必須要知道的基礎資料: • 認識帳號、群組、與權限的相關性; • BASH, shell scripts, 與 vi 都需要熟悉 • package manager • 啟動的流程分析 • 連結檔之原理
設定 Client • 你必須要知道的基礎資料: • 跟 Server 一樣,剛剛第五步驟提到的內容,在 client 端雖不必設定,但是您必須瞭解,才能夠知道問題發生時,能夠如何克服!
安全性設定 • 雪特!被破解與密碼的關係? • /etc/login.defs • /etc/security/limits.conf • 什麼是 Super daemon 與 TCP_Wrappers • /etc/hosts.allow, /etc/hosts.deny • 我的核心與防火牆的關係? • ipchains, iptables
安全性設定 • 升不升級有所謂! • 漏洞來了怎麼辦? • 怎麼升級? • RPM :什麼是不同版本? • Tarball:怎麼安裝適合?
日誌與備份管理 • 為什麼要日誌? • 曾經發生過什麼事情? • 解析系統的問題 • 架站過程中發生的錯誤訊息與修正 • 記錄過往的主機歷程
日誌與備份管理 • 日誌用的服務與目錄: • syslogd • logrotate • /var/log/messages, secure, maillog...
日誌與備份管理 • 分析日誌的方法: • logwatch 之類的軟體; • 理解 syslog 後自行編寫 scripts • 自動分析還需要 crontab !
日誌與備份管理 • 備份的重要性: • 你說有多重要,他就有多重要,因為資訊與時間無價!!
架站完畢 • 規劃: • 安裝: • 架設: • 測試: • 維護。 • ……….. • 其實是粉累的!
架站完畢 • 所以知道為什麼基礎很重要了嗎? • 還是不知道: • 建議不要玩架站啦! @_@ • 知道了,但是沒時間: • 呵呵!等著被入侵~ • 好吧!建議還是好好學一學!
個人小建議 • 學會一種以上的 package manager • 務必努力去找男人! • 至少要會使用 vi吧~~ ^_^ • 一定要瞭解 Linux 的目錄架構 • 一定要知道 User, Group, Others,以及 Process之間的關係!
個人小建議 • 知道如何追查與克服問題: • 養成日誌觀察的好習慣! • 天助自助者! • 科技永遠來自於人類的惰性: • 知道 cron 的用途; • 訓練執行 BASH 與編寫 scripts 的能力