Upload
guy-mayer
View
69
Download
1
Embed Size (px)
DESCRIPTION
Linux 基礎應用. Tainan Linux User Group 鳥哥 ( VBird ) 2002/12/21. 為何學習 Linux ( 心態). 因為 Linux 網路功能強大 因為 Linux 作業系統上面的軟體幾乎都免費 因為 Linux 圖形介面可以隨時改成各人喜好 因為我沒錢且不喜歡 MS 的 Windows 但是 ….. 上面都是騙人的!都不是重點!重點是 ... Linux 可以用來架站!. 今日重點 ( 講題要變喔! ). 天吶!誰來教教我如何架站哪! 註:不玩架站的也幫忙捧捧場!. - PowerPoint PPT Presentation
Citation preview
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 的目錄組織架構的目錄組織架構• 該伺服器用到的容量、目錄何在該伺服器用到的容量、目錄何在?
主機的用途與規劃
• 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 的能力
請大家多多指教!