20030623 linuxbasic and-security2. 什麼是電腦?硬體與作業系統的關係? Linux 是什麼?與 Linux 的功能? Linux 的操作介面與如何有效學習? Linux 的多人工作平台概念 ( 帳號管理 ) Linux 檔案系統管理 Linux 程序管理與工作排程 Linux 套件管理員 Linux 問題的檢驗程序 Linux 網路安全簡述 4. 1960 年代: Multics 計畫始末 1970 年代初期:貝爾研究室的 Thompson 1973 年: Ritchie 使 C 語言與 Unix 誕生 1977 年: Berkeley 大學的 BSD 的誕生 1980 年初期: AT&T 的商業行為 5. 1984 年: Stallman 的 FSF 與 GNU 計畫 自由軟體 (free beer or free air ?) ; 通用授權 (GNU General Public License) 開放源碼 (Open Source) 影響:發展了數百個以上的好用軟體,全部取之於社群、用之於社群。 7. 1991 年: Linus Torvalds 的一則 BBS 簡訊 Hello everybody out there using minix- I'm doing a (free) operation system (just a hobby, won't be big and professional like gnu) for 386(486) AT clones. 8. Linux = 核心 (Kernel) 即是管理硬體的那個作業系統咯! 核心在控制整個系統 ( 軟、硬體 ) 核心的功能不同,支援的硬體就不同 可以支援外掛模組 ( 想像驅動程式 ) 硬體驅動模組設計是『硬體廠商』的責任 -- 每人一信、開發才會快! ^_^ 9. Linux distribution : 僅有核心,能做的功能有限; 架構在 GNU 的 GPL ,由 GNU 與其他 Open Source 社群提供大量的軟體在 Linux 這個核心上面; 某些商業團體,將 Linux kernel 配合這些軟體套件 (Packages) 配套成為一可直接安裝在 X86 上的完整光碟。 10. Linux 的發行商 (distributions) Red Hat Mandrake Linpus CLE … ..( 共有將近兩百家 ) 通通使用同一個核心功能! 11. Linux 的功能: 桌上型電腦: Windows 能做的,在 Linux 上面都可以達到,不過,就是中文化差了點~ KDE, GNOME 都是很優良、很漂亮的 Window Manager X Window 僅是『一套軟體』 12. Linux 的功能: 工作站 (Workstations) : 軟體開發、三 D 美術開發、數值模式運算… . 伺服器: WWW, FTP, Mail, Proxy, File, Firewall, …. 13. Linux 優點: 網路功能強大、軟體眾多、 Open Source Linux 缺點: 入門門檻高、中文化不夠徹底 大眾的問題: 認知不足…誰說 Linux 架站容易?! 14. Linux 與 Windows 的比較?? 無法比較,因為兩者定位不同; 各取所需,沒有誰好誰壞! 15. 圖形介面 (X-Window System) KDE, GNOME….. 最大的優點是親和、中文化 文字介面 (BASH Shell) 功能強大、但學習歷程較長 最大的優點是,更深入系統,適合系統管理員 16. 為何強調 Bash Shell ? Bash shell 佔用資源較少,且由於來自 GNU ,與 Linux kernel 相容性高; X Window 不但佔用資源較多,使系統運作龜速,且可能容易掛點; Shell scripts 能夠直接設計 program ,可以很快速的管理好 Linux 主機; 多人多工平台,較適合 Bash shell 。 17. 想玩一玩 Linux 而已: 使用 X-Window 爽一爽即可 但不要架站喔! 為了生活、為了興趣、為了管理: 可以理解為什麼要這樣做? 問題發生了,會知道哪裡可能出錯? 整個流程的檢驗程序清晰! 18. 有心要學習,最好要會的咚咚: BASH 與最簡易的 vi ( 文書處理機 ) 正規表示法 (Regular Expression) Linux 的檔案、帳號等基本概念 套件的安裝 (Package Manager) 網路基礎觀念 至於架站… .. 上面的學會了,架站自然就會了! 20. 文書處理器 vi 管理員至少一定要會一種編輯器 vi 的使用: 一般模式:移動、複製、刪除、貼上 編輯模式:插入與取代文件 指令列模式:搜尋、自動取代、檔案存取等 21. 線上查詢 man page 是否一定要『背』指令? man command man 5 configuration info command ( 尤其 GNU 提供的工具 ) /etc/man.conf ( 尤其自行安裝軟體 ) whatis filename 22. 每個帳號均有自己的家目錄與相關的 mail box 以及其他帳號相關的操作環境之設定 Linux 僅認識 ID 數字: UID, GID 兩種 UID : 0(root), 1~65534( 一般身份 ) 三種身份: owner, group, others 與 Linux 档案权限相關性很高! /etc/passwd, /etc/shadow, /etc/group 密碼的設定技巧 23. root 的重要性: 系統管理、安全管理、套件管理… .. 『技術』不是問題『操守』才是重點 多人維護之主機的 root 身份變換: 即使是 root ,亦建議使用一般身份操作平時的 Linux 作業; su, sudo 24. 檔案類型: file type regular files: data, ascii, binary programs.. Directory device files: Block, Character 檔案系統類型: filesystem type ext2, ext3, reiserfs vfat, ntfs….. 28. 基本檔案與目錄管理操作 ls, pwd, cd, mkdir, rmdir cp, mv, rm, cat, nl, head, tail, less, more, file, diff 30. 檔案的搜尋 which command ( 與 PATH 有關 ) whereis filename locate filename find path type arguments 31. 連結檔 hard link 不可跨 filesystems, 不可連結 directory 所有的 link 為 0 時,檔案才會完蛋。 Symbolic link 就是『捷徑』囉! 33. 磁碟分割槽与掛载问题: 每個 partition 就是一個完整的 filesystem 使用 mount 來掛載每一個 partition , 需要有 mount point 來掛載 (directory) # mount -t vfat /dev/hda5 /mnt/windows # mount -t ntfs /dev/hda6 /mnt/winnt # mount -t ext3 /dev/hdb1 /mnt/linux2 34. 磁碟分割槽的分割問題: fdisk 的使用 ( 需瞭解 MBR, partition 的基本觀念 ) mke2fs 來格式化 fsck 來檢驗磁區 /etc/fstab 來開機掛載! 36. 如何觀察程序? top ps 常駐記憶體的程式 (daemon, 服務 ) 在背景下執行 是系統正常運作所必需要的 (syslog,cron) 是某些服務提供所必需要的 (www, mail..) 38. 給予程序『訊號 , signal 』 kill -signal PID -1 重新讀取設定檔 -9 無條件強制驅離記憶體 -15 正常方式關閉該 PID 42. Tarball 為原始碼 (open source) 大部分的 tarball 均支援跨平台 需要額外的套件支援: make, kernel source, gcc 等等 升級、反安裝等較為不方便 45. 學會一種以上的 package manager 務必努力去找 男人 ! 至少要會使用 vi 吧~~ ^_^ 一定要瞭解 Linux 的 目錄架構 一定要知道 User , Group , Others ,以及 Process 之間的關係! 48. 如何入侵與攻擊 Linux 主機? 使用軟體套件的漏洞 (Ex>Wu-FTP) 使用 port scan 軟體掃瞄後,以 root kit 攻擊軟體取得 Linux 主機的 root 功能 利用防火牆規則的不當規劃來滲透 使用玉石俱焚的當機手段 49. 那麼該如何預防? 瞭解網路的基礎 ( 不論 Linux 與 Windows 的網路基礎均是相同的! ) 將不同的服務分別設定在不同主機上 如何升級套件? 瞭解如何啟動與關閉一個 service (daemon) 如何架設防火牆? 50. 網路基礎 OSI 網路七層協定 Hub 與 Switch 的差異; 網路卡卡號? TCP/IP 的相關重點: Public IP 與 Private IP ? 什麼是 port 與協定及 daemon ? 51. 如何升級套件? RPM 由 Red Hat 或者是 中山大學 FTP 下載 RPM 套件; 使用 rpm -Fvh 升級已安裝者 需注意與硬體的搭配 (EX>Kernel) 54. 啟動與關閉 Services ? Stand alone: /etc/rc.d/init.d/scripts (start|stop) Super daemon: vi /etc/xinetd.d/files /etc/rc.d/init.d/xinetd restart ps & kill 55. 防火牆: 一堆規則的比對,所以… . 就是設定一堆規則來限制登入 基礎防火牆: TCP_Wrappers 找到 daemon 名稱 編輯 /etc/hosts.allow 與 /etc/hosts.deny 編輯完畢,立即生效! 57. 基礎防火牆: iptables 使用 script 來啟動防火牆規則; # 1. 清除所有已存在規則 iptables -F iptables -X iptables -Z 58. # 2. 設定預設規則 iptables -P INPUT DROP iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT 59. # 3. 設定進入 (INPUT) 規則 iptables -A INPUT -p TCP -i eth0 -s 192.168.0.0/24 -j ACCEPT # 針對 IP iptables -A INPUT -p TCP -i eth0 --dport 80 -j ACCEPT # 針對 daemon iptables -A INPUT -m mac --mac-source aa:bb:cc:dd:ee:ff -j ACCEPT # 針對網路卡卡號! 60. 主機服務單純化: Models 主機就只跑 Models ,不要有太多的額外伺服器軟體啟用,且對於 ssh 登入點需要『強烈的限制!』最好僅允許中心內部連線;並且,防火牆可以設定的嚴格一點