狠狠撸

狠狠撸Share a Scribd company logo
?
什麼是電腦?硬體與作業系統的關係? Linux  是什麼?與  Linux  的功能? Linux  的操作介面與如何有效學習? Linux  的多人工作平台概念 ( 帳號管理 ) Linux  檔案系統管理 Linux  程序管理與工作排程 Linux  套件管理員 Linux  問題的檢驗程序 Linux  網路安全簡述
一堆硬体,配合一个可以管理硬体的『作业系统』,即成為电脑一词。
1960 年代: Multics  計畫始末 1970 年代初期:貝爾研究室的  Thompson 1973 年: Ritchie  使  C  語言與  Unix  誕生 1977 年: Berkeley  大學的  BSD  的誕生 1980 年初期: AT&T  的商業行為
1984 年: Stallman  的  FSF  與  GNU  計畫 自由軟體  (free beer or free air ?) ; 通用授權  (GNU General Public License) 開放源碼  (Open Source) 影響:發展了數百個以上的好用軟體,全部取之於社群、用之於社群。
GNU  的大問題:有軟體、沒有作業系統… .
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.
Linux =  核心  (Kernel)  即是管理硬體的那個作業系統咯! 核心在控制整個系統 ( 軟、硬體 ) 核心的功能不同,支援的硬體就不同 可以支援外掛模組 ( 想像驅動程式 ) 硬體驅動模組設計是『硬體廠商』的責任 -- 每人一信、開發才會快! ^_^
Linux distribution : 僅有核心,能做的功能有限; 架構在  GNU  的  GPL  ,由  GNU  與其他  Open Source  社群提供大量的軟體在  Linux  這個核心上面; 某些商業團體,將  Linux kernel  配合這些軟體套件 (Packages) 配套成為一可直接安裝在  X86  上的完整光碟。
Linux  的發行商  (distributions) Red Hat Mandrake Linpus CLE … ..( 共有將近兩百家 ) 通通使用同一個核心功能!
Linux  的功能: 桌上型電腦: Windows  能做的,在  Linux  上面都可以達到,不過,就是中文化差了點~ KDE, GNOME  都是很優良、很漂亮的  Window Manager X Window  僅是『一套軟體』
Linux  的功能: 工作站 (Workstations) : 軟體開發、三 D 美術開發、數值模式運算… . 伺服器: WWW, FTP, Mail, Proxy, File, Firewall, ….
Linux  優點: 網路功能強大、軟體眾多、 Open Source Linux  缺點: 入門門檻高、中文化不夠徹底 大眾的問題: 認知不足…誰說  Linux  架站容易?!
Linux  與  Windows  的比較?? 無法比較,因為兩者定位不同; 各取所需,沒有誰好誰壞!
圖形介面  (X-Window System) KDE, GNOME….. 最大的優點是親和、中文化 文字介面  (BASH Shell) 功能強大、但學習歷程較長 最大的優點是,更深入系統,適合系統管理員
為何強調  Bash Shell ? Bash shell  佔用資源較少,且由於來自  GNU ,與  Linux kernel  相容性高; X Window  不但佔用資源較多,使系統運作龜速,且可能容易掛點; Shell scripts  能夠直接設計  program  ,可以很快速的管理好  Linux  主機; 多人多工平台,較適合  Bash shell  。
想玩一玩  Linux  而已: 使用  X-Window  爽一爽即可 但不要架站喔! 為了生活、為了興趣、為了管理: 可以理解為什麼要這樣做? 問題發生了,會知道哪裡可能出錯? 整個流程的檢驗程序清晰!
有心要學習,最好要會的咚咚: BASH  與最簡易的  vi ( 文書處理機 ) 正規表示法 (Regular Expression) Linux  的檔案、帳號等基本概念 套件的安裝 (Package Manager) 網路基礎觀念 至於架站… .. 上面的學會了,架站自然就會了!
其他必備技巧: 還是需要讀英文的! 上網  Google  搜尋技巧; 懂得找男人 ( man ) 注意閱讀螢幕出現的訊息資料; 注意登錄檔資訊  ( log file ) 注意發問時提供的資訊
文書處理器  vi 管理員至少一定要會一種編輯器 vi  的使用: 一般模式:移動、複製、刪除、貼上 編輯模式:插入與取代文件 指令列模式:搜尋、自動取代、檔案存取等
線上查詢  man page 是否一定要『背』指令? man command man 5 configuration info command ( 尤其  GNU  提供的工具 ) /etc/man.conf ( 尤其自行安裝軟體 ) whatis filename
每個帳號均有自己的家目錄與相關的  mail box  以及其他帳號相關的操作環境之設定 Linux  僅認識  ID  數字: UID, GID 兩種  UID :  0(root), 1~65534( 一般身份 ) 三種身份: owner, group, others 與  Linux  档案权限相關性很高! /etc/passwd, /etc/shadow, /etc/group 密碼的設定技巧
root  的重要性: 系統管理、安全管理、套件管理… .. 『技術』不是問題『操守』才是重點 多人維護之主機的  root  身份變換: 即使是  root  ,亦建議使用一般身份操作平時的  Linux  作業; su, sudo
檔案類型:  file type regular files: data, ascii, binary programs.. Directory device files: Block, Character 檔案系統類型: filesystem type ext2, ext3, reiserfs vfat, ntfs…..
树状目录
档案权限 User, Group, Others 適合多人多工、可達保密防諜之目的
档案权限
基本檔案與目錄管理操作 ls, pwd, cd, mkdir, rmdir cp, mv, rm,  cat, nl, head, tail, less, more,  file, diff
檔案屬性的變換 chown, chgrp, chmod # chmod 777 bar
檔案的搜尋 which command ( 與  PATH  有關 ) whereis filename locate filename find path type arguments
連結檔 hard link 不可跨  filesystems,  不可連結  directory 所有的  link  為  0  時,檔案才會完蛋。 Symbolic link 就是『捷徑』囉!
磁碟分割槽与掛载问题:
磁碟分割槽与掛载问题: 每個  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
磁碟分割槽的分割問題: fdisk  的使用 ( 需瞭解  MBR, partition  的基本觀念 ) mke2fs  來格式化 fsck  來檢驗磁區 /etc/fstab  來開機掛載!
什麼是程序? 任何觸發系統工作的事件,系統會給予一個  process ID  來控制該事件的執行,這個  PID  就是程序! 需要注意到,程序『屬於誰?他的權限是不同的!』而程序執行後輸出的訊息則與資料流有關!
如何觀察程序? top ps 常駐記憶體的程式 (daemon,  服務 ) 在背景下執行 是系統正常運作所必需要的 (syslog,cron) 是某些服務提供所必需要的 (www, mail..)
程序的優先執行順序? Priority nice value nice  新的  PID renice  已存在的  PID
給予程序『訊號 , signal 』 kill -signal PID -1  重新讀取設定檔 -9  無條件強制驅離記憶體 -15  正常方式關閉該  PID
重要的程序之一: syslog 系統在背景下工作的各項服務所產生的『訊息』均統一由  syslog  這個服務  (daemon)  所管理 /etc/syslog.conf /var/log/messages /var/log/secure ...
工作排程 循環式工作排程: crontab /etc/crontab 單一工作排程: at
RPM 具有資料庫:容易安裝、升級、移除 在查驗及搜尋方面極為有效率 漏洞修補速度快速 最大的缺點:屬性相依的問題 ( 這包含了版本、平台等等 )
Tarball 為原始碼  (open source) 大部分的  tarball  均支援跨平台 需要額外的套件支援: make, kernel source, gcc  等等 升級、反安裝等較為不方便
没有任何一套作业系统会『完全』满足您,所以使用者必需要至少学习一种套件管理员,以提供自我程式资料库的安装!
先查看螢幕出現的錯誤訊息; 由螢幕出現的錯誤訊息以  man  來查尋該問題的解決方法; 檢驗登錄檔  (logfile)  的錯誤記錄; 由錯誤記錄反查該套件的設定檔或者相關指令的校正!
學會一種以上的  package manager 務必努力去找 男人 ! 至少要會使用  vi   吧~~  ^_^ 一定要瞭解  Linux  的 目錄架構 一定要知道  User ,  Group ,  Others ,以及  Process   之間的關係!
知道如何追查與克服問題: 養成日誌觀察的好習慣! 天助自助者! 科技永遠來自於人類的惰性: 知道  cron  的用途; 訓練執行  BASH  與編寫  scripts  的能力
『會用』比『會考試』應該要重要的多! 由『實作』去體驗會比冥想有效的多! 由『搜尋』取代『發問』會快速而有效的多!
如何入侵與攻擊  Linux  主機? 使用軟體套件的漏洞 (Ex>Wu-FTP) 使用  port scan  軟體掃瞄後,以  root kit  攻擊軟體取得  Linux  主機的  root  功能 利用防火牆規則的不當規劃來滲透 使用玉石俱焚的當機手段
那麼該如何預防? 瞭解網路的基礎 ( 不論  Linux  與  Windows  的網路基礎均是相同的! ) 將不同的服務分別設定在不同主機上 如何升級套件? 瞭解如何啟動與關閉一個  service (daemon) 如何架設防火牆?
網路基礎  OSI  網路七層協定 Hub  與  Switch  的差異; 網路卡卡號? TCP/IP  的相關重點: Public IP  與  Private IP ? 什麼是  port  與協定及  daemon  ?
如何升級套件? RPM  由  Red Hat  或者是 中山大學  FTP  下載  RPM  套件; 使用  rpm -Fvh  升級已安裝者 需注意與硬體的搭配 (EX>Kernel)
如何升級套件? Tarball 如何移除? 需要哪些前驅套件? gcc, make, kernel source, kernel head…. 查看  INSTALL  與  README
如何查看自己的主機開了多少  port  ? netstat  與其參數; top, ps  等程序管理; nmap  等  port scan  軟體
啟動與關閉  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
防火牆: 一堆規則的比對,所以… . 就是設定一堆規則來限制登入 基礎防火牆: TCP_Wrappers 找到  daemon  名稱 編輯  /etc/hosts.allow  與  /etc/hosts.deny 編輯完畢,立即生效!
基礎防火牆: iptables iptables -L -n  查看 共有三條鏈 (chains) ,初級來說,只要管理  INPUT  即可! 架設概念: 關閉所有,啟動特定! 能登入的  service  盡量限制進入點!
基礎防火牆: iptables 使用  script  來啟動防火牆規則; # 1.  清除所有已存在規則 iptables -F iptables -X iptables -Z
# 2.  設定預設規則 iptables -P INPUT DROP iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT
# 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 #  針對網路卡卡號!
主機服務單純化: Models  主機就只跑  Models  ,不要有太多的額外伺服器軟體啟用,且對於  ssh  登入點需要『強烈的限制!』最好僅允許中心內部連線;並且,防火牆可以設定的嚴格一點
主機服務單純化: 伺服器的架設中,由於需要開放對外,因此,漏洞的即時修補為最重要的工作!最好可以使用自動更新的  scripts  來輔助系統管理!
備份的重要性: 有防火牆仍無法高枕無憂! 兩部電腦互相備份,可使用  scripts  並進入自動排程; 仍須每個月定時手動將重要資料燒錄出來!

More Related Content

20030623 linuxbasic and-security