20030623 linuxbasic and-security

Post on 31-Aug-2014

244 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

 

TRANSCRIPT

什麼是電腦?硬體與作業系統的關係? Linux 是什麼?與 Linux 的功能? Linux 的操作介面與如何有效學習? Linux 的多人工作平台概念 ( 帳號管理 ) Linux 檔案系統管理 Linux 程序管理與工作排程 Linux 套件管理員 Linux 問題的檢驗程序 Linux 網路安全簡述

一堆硬體,配合一個可以管理硬體的『作業系統』,即成為電腦一詞。

1960 年代: Multics 計畫始末1970 年代初期:貝爾研究室的

Thompson1973 年: 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 並進入自動排程; 仍須每個月定時手動將重要資料燒錄出來!

top related