• 1. Linux 教育訓練
  • 2. 第一天 Linux 入門 上午 認識Linux Linux 版本介紹 RedHat Linux安裝過程 下午 RedHat Linux 目錄 / 設定檔 / 開機流程、檔案權限與管理工具介紹課程介紹
  • 3. 第二天 Server 架設 上午 DNS、DHCP、FTP server 實做時間 下午 WWW、MAIL、PROXY 實做時間課程介紹
  • 4. 課程介紹第三天 Linux 系統維護 / 安全議題 系統管理與維護 RedHat Errata 、up2date介紹 問題討論
  • 5. 認識Linux什麼是Free Software? Shareware/Freeware 不提供Source Code 無法讓使用者自由更改或散播
  • 6. 認識Linux什麼是自由軟體(Opensource)? Freedom(自由)/Open(開放) Source Code必須公開 任何人都可以自由傳播、下載、使用或改寫
  • 7. GNU計畫1983 年 Richard Stallman(自由軟體業的精神教父) 創辦 GNU(GNU’s not Unix)計畫 開始於1984年,旨在發展一個 類-Unix 且為 自由軟體 的完整作業系統 http://www.gnu.org/
  • 8. 自由軟體基金會GNU計畫的贊助單位 FSF(Free Software Fundation)提倡免費軟體 FSF自由使用權的三個意義: 可自由複製GNU的軟體 可自由修改原始碼 可自由散佈修改過的原始碼,但不得收取任何版權費用
  • 9. GNU Genel Public License大眾公有版權/通用公共版權 官方翻譯:自由文件許可證 Copyleft http://www.linux.org.tw/CLDP/GNU/licences/fdl.zh.html http://www.gnu.org/copyleft/gpl.html
  • 10. LINUX源起1991 年 8 月 芬蘭的一個學生在comp.os.minix 新聞組貼上了以下這段話: 「你好,所有使用 minix 的人 -我正在為 386 ( 486 ) AT 做一個免費的操作系統 ( 只是為了愛好 ),不會像 GNU 那樣很大很專業。」
  • 11. GNU與LinuxGNU 仍自行發展Hurd Kernel 開發許多以GPL發行的應用程式與工具程式 Linux(Linus’s Unix) 由網路上熱心的朋友一起發展Linux Kernel 採用GNU發展的許多應用程式與工具程式 應該稱作GNU/Linux
  • 12. Linux品牌RedHat Linux SuSE Linux Mandrake Linux Caldera Linux Turbolinux Debian GNU/Linux Gentoo Linux Linpus Linux
  • 13. Linux Kernel現況與認證Kerenl 版本 http://www.kernel.org 發展版本-2.5.70 穩定版本-2.4.20 Linux認證 RedHat RHCE http://www.redhat.com/ LPI Level one/two/three http://www.lpi.org
  • 14. RedHat Linux 9安裝 請拿出書本所附光碟片 我們將開始安裝
  • 15. 安裝第一步Kickstart 安裝介紹 光碟開機 基本組態設定 選擇語言 鍵盤及滑鼠 選擇安裝方式
  • 16. 分割磁碟使用Diskdruid 建立磁碟分割區 選擇掛載點,例如 “/” 、“/home”、”/var” 建立swap 分割區 檔案系統類型,ext2、ext3、msdos…etc 分割區大小
  • 17. 開機管理選項開機管理程式 GRUB LILO 不安裝開機程式 開機程式安裝在哪裡? MBR /boot 的第一個磁區 設定核心參數
  • 18. 網路組態設定新增網路裝置 選擇網路卡 DHCP設定 IP位址及其它網路資訊設定 Hostname Gateway DNS
  • 19. 防火牆組態設定使用iptables 高安全 中安全 停用 其他設定
  • 20. 語系/時區/root密碼設定選取要使用的語系 選取時區 設定 root 密碼
  • 21. Shadow/MD5加密認證 是否使用NIS/LDAP等其它認證方式 設定認證方式
  • 22. 選取要安裝的套件選擇安裝套件 套件相依性問題
  • 23. 開始安裝過程休息時間 記得回來換片繼續安裝
  • 24. xwindow組態設定選擇解析度、開機時是否啟動 xwindows 預設桌面管理員 選擇顯示卡 設定螢幕
  • 25. 最後安裝建立開機片 取出安裝光碟 重開機
  • 26. Linux 開機流程BIOS 嘗試在開機磁碟機的第 0 磁區、第 0 磁柱載入可供開機的磁區開機 開機載入程式 (boot loader ,如 LILO或Grub)的程式碼 找出 kernel 所在位置,接著載入並執行它以啟動開機程序 一旦 kernel 載入完畢,一些基本設備也完成初始化 (initialization) 嘗試從某個設備載入以及掛上 (mount) root filesystem 一旦 root filesystem 被載入並掛上,會看到一行訊息像: VFS: Mounted root (ext3 filesystem) readonly
  • 27. Linux 開機流程此時系統會在 root filesystem 上找到 init 程式 ( 在 /bin or /sbin) 並執行 init 讀取它的組態設定檔 (configuration file) /etc/inittab ,找出檔中標明 sysinit 的一行,並執行被指名的script。這個 sysinit script 通常類似 /etc/rc 或 /etc/init.d/boot 這兩個檔。這個 script 是一組建立基本系統服務的 shell 指令,諸如: 對所有磁碟執行 fsck 載入必備的核心模組 (modules) 啟動 swapping 進行網路初始化 將指定在 fstab 內的磁碟掛上
  • 28. Linux 開機流程當 sysinit script 結束後,控制權回到 init 上,接著進入預設的runlevel 預設的 runlevel 以 initdefault 這個關鍵字被指定在 /etc/inittab 內
  • 29. runlevel 說明 0 – 關機 halt (不要在 initdefault 設定這個) 1 – 單人模式 Single user mode 2 – 多人模式未含網路功能 Multiuser, without NFS (與 runlevel 3 相同, 用在沒有網路環境下) 3 – 完整多人使用者模式 Full multiuser mode 4 – 未使用 unused 5 – xwindow 模式 X11 6 – 重開機 reboot (不要在 initdefault 設定這個)
  • 30. man 男人?線上查詢 man page # man ls # man 1 ls # info ls /etc/man.conf whatis filename
  • 31. vi文書處理器 vi 管理員至少一定要會一種編輯器 vi 的使用: 一般模式:移動、複製、刪除、貼上 編輯模式:插入與取代文件 指令列模式:搜尋、自動取代、檔案存取等
  • 32. vi helph,j,k,l 移動 yy 複製 dd 刪除 p 貼上 o,i,a 插入 R,r 取代 u 回復/ 搜尋 :%s/x/y/g 自動取代 :w 寫入 :q 離開 :wq! 寫入強制離開
  • 33. Linux 檔案# touch test # ls –al test
  • 34. Linux 檔案種類正規檔案( regular file ) 第一個屬性為 [ - ] 純文字檔(ascii) 二進位檔(binary)  目錄 (directory): 第一個屬性為 [ d ] 連結檔 (link): 第一個屬性為 [ l ] 設備檔 (device): 區塊 (block) 設備檔,第一個屬性為 [ b ]; 字元 (character) 設備檔,第一個屬性為 [ c ]。
  • 35. Linux 檔案屬性
  • 36. 更改 Linux 檔案屬性指令u g o a +(加入) -(除去) =(設定) r w x檔案或目錄 chmod r=4,w=2,x=1 # chmod 770 test owner  = rwx  = 4+2+1 = 7 group  = rwx  = 4+2+1 = 7 others = ---  = 0+0+0 = 0
  • 37. 更改 Linux 檔案擁有者指令語法: chown [ -R ] 帳號名稱 檔案或目錄 chown [ -R ] 帳號名稱:群組名稱 檔案或目錄 範例: [root@test root]# chown games test [root@test root]# ls -l test drw-r--r--    1 games     root        0 Jun 20 14:36 test [root@test root]# chown –R root:root tmp
  • 38. 更改 Linux 檔案所屬群組語法: chgrp 群組名稱檔案或目錄 範例: [root@test root]# chgrp users test [root@test root]# ls -l drw-r--r--    1 root     users        1 Jun 20 14:36 test
  • 39. Linux 目錄結構/bin:常用系統程式目錄 /boot:開機設定檔,也是預設擺放核心 vmlinuz 的地方 /dev:擺放所有系統裝置檔案的目錄 /etc:幾乎系統的所有設定檔案均在此,尤其 passwd, shadow /etc/rc.d/init.d:系統開機的時候載入服務的 scripts 的擺放地點 /home:系統使用者的家目錄
  • 40. Linux 目錄結構/lib:Linux 執行或編譯程式函式庫目錄 /mnt:軟碟與光碟接預設掛載點的地方 /proc:系統核心與執行程序的一些資訊 /root:系統管理員的家目錄 /usr/bin, /bin:一般執行檔擺放的地方 /usr/sbin, /sbin:系統管理員常用指令集 /var:擺放系統記錄檔案的地方 /lost+fount:擺放系統不正常產生錯誤時遺失的片段
  • 41. (本页无文本内容)
  • 42. Linux 管理工具介紹檔案與目錄管理 磁碟與硬體管理 程序與資源管理 RPM的管理 帳號與身份管理
  • 43. 檔案與目錄管理目錄與路徑 相對路徑與絕對路徑 .     代表此層目錄 ..    代表上層目錄 ~     代表自己的家目錄 ~user 代表到 user 這個人的家目錄
  • 44. 檔案與目錄管理cd 變換目錄 cd /root pwd 顯示目前的目錄 mkdir 建立一個新目錄 mkdir –p /root/abc/123 rmdir 刪除一個裡面是空的空目錄 rmdir –p abc/123 環境變數PATH echo $PATH PATH=”$PATH”:/root
  • 45. 檔案與目錄管理ls [-ailS] 參數說明: -a       :全部的檔案都列出(連同隱藏檔) -i       :印出 inode 的值 -l       :長的列出,連同檔案大小的資料等等 -S       :以檔案大小排序
  • 46. 檔案與目錄管理cp [-drsu] [來源檔] [目的檔] 參數說明: -d:在進行 copy 的時候,如果是 copy 到 link 檔案,若不加任何參數,則預設情況中會將 link 到的原始檔案copy 到目的地,若加 -d 時,則 link 檔案可原封不動的將 link 這個捷徑其拷貝到目的地 -r:可以進行目錄的 copy -s:做成連結檔,而不 copy 之意!與 ln 指令相同功能! -u, --update:如果來源檔比較新,或者是沒有目的檔,那麼才會進行 copy 的動作
  • 47. 檔案與目錄管理rm [-fir] [檔名] 參數說明: -i     :提供使用者確認(這是預設值) -r     :遞迴刪除 -f     :強力刪除
  • 48. 檔案與目錄管理mv [-u] [來源檔] [目的檔] 參數說明: -u   :同樣的,為 update 的簡寫,當來源檔比目的檔還新的時後才會動作
  • 49. 觀看檔案內容cat  由第一行開始顯示檔案內容 tac  從最後一行開始顯示,可以看出 tac 是 cat 的倒著寫 more 一頁一頁的顯示檔案內容 less 與 more 類似,可以往前翻頁 head 只看頭幾行 tail 只看尾巴幾行 nl   顯示的時候,順道輸出 行號 od   以二進位的方式讀取檔案內容
  • 50. 連結檔的介紹連結檔的介紹: 什麼是 inode Block 是記錄『檔案內容資料』的地區,而inode 則是記錄『該檔案的屬性、及該檔案放置在哪一個 Block 之內』的資訊 ln hard link 不能跨 filesystem/不能 link 目錄 symbolic link ln [-s] [來源檔] [目的檔]
  • 51. 檔案與目錄權限chown 改變檔案的擁有人 chgrp 改變檔案的所屬群組 chmod 改變檔案的可寫、可讀、可執行等屬性 umask 改變預設的建立檔案或目錄時的屬性 chattr 改變檔案的特殊屬性 lsattr 顯示檔案的特殊屬性
  • 52. 搜尋檔案或目錄which 查看可執行檔案的位置 # which ls whereis 查看檔案的位置 # whereis [–b/-m] ls locate 配合資料庫查看檔案位置 # locate ls #updatedb find 尋找檔案 # find / -name “ls”
  • 53. 磁碟與硬體管理查看硬碟或目錄的容量:df, du 切割與格式化硬碟:fdisk, mke2fs, e2label, mknod 檢查硬碟壞軌與資料同步化寫入:fsck, sync 關於軟碟開機片: mkbootdisk, fdformat 各式磁區的掛載:mount, umount 設定開機時即掛載的方式:/etc/fstab 虛擬記憶體 Swap:mkswap, swapon, swapoff 磁碟效能:hdparm
  • 54. 程序與資源管理什麼是程序? 任何觸發系統工作的事件,系統會給予一個 process ID 來控制該事件的執行,這個 PID 就是程序 需要注意到,程序『屬於誰?他的權限是不同的!』而程序執行後輸出的訊息則與資料流有關
  • 55. 程序與資源管理如何觀察程序? top ps 常駐記憶體的程式(daemon, 服務) 在背景下執行 是系統正常運作所必需要的(syslog,cron) 是某些服務提供所必需要的(www, mail..)
  • 56. 程序與資源管理程序的優先執行順序? Priority nice value nice 新的 PID renice 已存在的 PID
  • 57. 程序與資源管理給予程序『訊號, signal』 kill -signal PID -1 重新讀取設定檔 -9 無條件強制驅離記憶體 -15 正常方式關閉該 PID
  • 58. 程序與資源管理重要的程序之一:syslog 系統在背景下工作的各項服務所產生的『訊息』均統一由 syslog 這個服務 (daemon) 所管理 /etc/syslog.conf /var/log/messages /var/log/secure ...
  • 59. 程序與資源管理背景與前景之工作管理 & 與 ctrl + z jobs fg, bg, kill %number
  • 60. 程序與資源管理工作排程 循環式工作排程: crontab /etc/crontab 單一工作排程: at
  • 61. Linux 套件管理Tarball 為原始碼 (open source) 大部分的 tarball 均支援跨平台 需要額外的套件支援:make, kernel source, gcc 等等 升級、反安裝等較為不方便
  • 62. Linux 套件管理RPM 具有資料庫:容易安裝、升級、移除 在查驗及搜尋方面極為有效率 漏洞修補速度快速 最大的缺點:屬性相依的問題(這包含了版本、平台等等)
  • 63. RPM的管理安裝 rpm –ivh bash.rpm 升級 rpm –uvh bash.rpm 驗證 Rpm –V bash
  • 64. RPM的管理移除 rpm –e bash 查詢 rpm –qa bash 重建rpm資料庫 rpm --rebuilddb
  • 65. 帳號與身份管理帳號管理 groupadd groupdel useradd userdel chsh chfn userconf
  • 66. 帳號與身份管理密碼管理與設定 passwd 使用者身份切換 su sudo visudo
  • 67. 帳號與身份管理使用者查詢 id finger groups
  • 68. RedHat Linux 設定指令 setup Authentication configuration:這是關於系統性安全的設定項目 Firewall configuration :這個是關於 ipchains 的防火牆機制設定 Mouse configuration :設定滑鼠的型態 Network configuration :設定網路參數 System services :設定系統服務啟動 Printer configuration :設定印表機囉 Timezone configuration :設定時區
  • 69. RedHat Linux 設定檔/etc/sysconfig/* 裡頭的設定檔案 系統啟動服務工具 ntsysv ntsysv [--level run-level] service service [service name] [start|stop|restart] chkconfig chkconfig [--level levels] [--list|add|del] [service name] init init [0-6]
  • 70. Shell指令的操作 每行指令均以 Enter 為『開始執行』的依據,不過可以 \ 延續下達 指令可接續參數(Options)來達成多樣化的工作 大小寫是完全不同的 藉由輸出訊息可瞭解問題、解決之
  • 71. Shell變數的功能 環境當中,一些必要指令的用途 HOME 家目錄 MAIL 用 mail 時取得的 mailbox PS1 提示字元囉! PATH 執行檔的搜尋路徑 ? 上個指令的執行結果回傳值
  • 72. Shell變數的功能 簡化與優化指令或 scripts 例如常使用的字串取代、 常使用的路徑取代…. Shell scripts 當中的變數取代(最常見)
  • 73. Shell進階指令操作--資料流重導向 將指令執行後,應該由螢幕輸出的的訊息導向到裝置或檔案當中; # ls /home >> right 2>> error 最常見在『背景』工作中!例如系統的一堆背景工作紀錄(syslogd)
  • 74. Shell進階指令操作--管線命令 pipe 將輸出的訊息繼續進行處理
  • 75. Shell進階指令操作--管線命令 pipe # last | grep root | wc -l # cat /etc/passwd | cut -d ‘:’ -f1 > accout
  • 76. 系統關機關機 shutdown –h now halt poweroff init 0 重新起動 shutdown –r now reboot init 6
  • 77. 討論時間有任何問題歡迎直接提出一起討論 第一天課程結束 明天講解Server架設與實作
  • 78. 網路工具一些網路偵錯指令 ping, ifconfig, ifup, ifdown, netstat, route, traceroute, host, dig, nslookup 遠端連線使用指令 telnet, ssh, ftp, ncftp, lftp, wget 文字界面網頁瀏覽 lynx, links
  • 79. RedHat Linux 網路設定修改主機名稱與Gateway等設定 /etc/sysconfig/network 修改網路卡設定 /etc/sysconfig/network-script/ifcfg-eth0 修改DNS與Hosts設定 /etc/resolv.conf /etc/hosts
  • 80. DNS Server何謂DNS? Domain Name Server 如何作業 正查 給domain name, 回應ip 反查 給ip, 回應domain name
  • 81. DNS Server查詢方式
  • 82. DNS Server套件-BIND套件:bind-9.2.1-16, bind-utils-9.2.1-16 服務:named 執行檔:named 服務埠:53 upd, 53 tcp 設定檔:/etc/named.conf , /var/namd/*
  • 83. 設定 BIND預設的設定檔為 /etc/named.conf 全域選項,直接宣告於options底下: options { directory “/var/named”; fowrarders { 168.95.1.1; }; allow-query {192.100.100/24; }; allow-transfer {192.100.100/24; }; };
  • 84. Master選項: zone “example.com” { type master; file “db.example.com”; }; Slave選項: zone “example.com” { type slave; masters { 192.100.30.1; }; file “db.example.com”; };
  • 85. Reverse lookup(反向尋查)選項: zone “30.168.192.in-addr.arpa”{ type slave; masters { 192.168.30.1; }; file “db.30.168.192”; }; Root 選項: zone “.” { type hint; file “named.ca”; };
  • 86. SOA (Start of Authority)每個ZONE選項中都要有此設定 exmaple.com. IN SOA example.com. root.example.com ( 2003053001 ; serial number 300 ; refresh 60 ; retry 1209600 ; expire 43200 ; minimum TTL for negative answers )
  • 87. NS (name server)每一個master 及 slave DNS 都要有一個NS 紀錄 例: example.com. IN NS ns.redhat.com. ns.example.com. IN A 192.168.30.1
  • 88. 主要紀錄的型式A紀錄對映hostname到IP位址 mail.example.com. IN A 192.168.30.3 www.example.com. IN A 192.168.30.4 CNAME定義位址的別名 mx IN CNAME mail www2 IN CNAME www.redhat.com. PTR紀錄IP位址對映到hostname 3 IN PTR mail.redhat.com.
  • 89. MX 紀錄MX 結合 domain name來處理其電子郵件 example.com. IN MX 5 mail.example.com exmaple.com. IN MX 10 mail2.example.com
  • 90. 實做修改 /etc/named.conf 設定讀取目錄 /var/named 建立一個 root 的 zone 設定 建立一個 example.com 的 zone 設定 建立一個 192.168.30 的反查 zone 設定
  • 91. 實做建立 example.com.zone 檔 設定 ns server 為 192.168.30.1 設定 A 記錄 設定 MX 記錄 設定 CNAME 記錄 建立 example.com.rev 檔 設定 PTR 紀錄
  • 92. DNS Server 啟動與停止/etc/init.d/named start 啟動 tail –f /var/log/messages 查看 log 紀錄 /etc/init.d/named stop 停止 killall named or kill -9 PID
  • 93. DNS Server 驗證nslookup www.example.com nslookup 192.168.30.3 dig exmaple.com mx host www.exmaple.com
  • 94. DNS Server Lab請建立一個以 exmaple.com 為網域且可供正查與反查的DNS Server
  • 95. DNS Server Lab檢驗項目 1 # host www.example.com www.example.com has address 192.168.30.3 檢驗項目 2 # nslookup 192.168.30.1 1.30.168.192.in-addr.arpa name = ns.example.com.
  • 96. DHCP server 種類DHCP 有三種方式, 靜態/自動/動態 靜態方式:手動指定用戶端固定IP 管理者在DHCP Server輸入用戶端 IP 與硬體位址 通常用在需要固定IP的各種伺服器主機 自動方式:自動指定IP位址 DHCP Server由預定的IP範圍, 自動分配給用戶端, 且無限期使用 IP範圍必需多於用戶端電腦數量 會記錄IP與MAC位址的對應資訊, 所以用戶端每次開機後都分配到相同IP
  • 97. DHCP Server 種類動態方式:動態分配IP位址 IP範圍少於用戶端電腦數量 動態分配IP時設定租用期限, 用戶端電腦於租用期限到期或關機時, 收回IP供其他用戶端電腦使用
  • 98. DHCP 租用流程分兩種, 第一種為第一次租用流程 (1)先在區域網路廣播找 DHCP Server DHCP Client => DHCP DISCOVER => DHCP Server (2)找到後由 DCHP Server 提供租用IP資訊 DHCP Server => DHCP_OFFER => DHCP Client (3)DHCP Client 回覆 DHCP Server 收到 IP 資訊, 並請求認可 DHCP Client => DHCP_REQUEST => DHCP Server (4)DHCP Server 收到請求後, 給予認可, DHCP Client啟始租用 IP DHCP Server => DHCP_ACK => DCHP Client
  • 99. DHCP 租用流程第二種為, 更新租用流程(在租用期達二分之一後開始動作) (1)DHCP Client 向 DHCP Server 請求延常租用位址時間 DHCP Client => DHCP_REQUEST => DHCP Server (2)DHCP Server 收到後, 回覆 DCHP Client 認可繼續租用 DHCP Server => DHCP_ACK => DHCP Client
  • 100. DHCP 租用流程若在這期中 DHCP Server 沒有給 DHCP Client 任何回應, 當 DHCP Client 達租用期限時, 就會停止使用, 再回到以第一種方式申請租用新的IP位址.
  • 101. DHCP Server 套件套件: dhcp-3.0p11-23.i386.rpm dhcp-devel-3.0p11-23.i386.rpm 設定檔路徑: /usr/share/doc/dhcp-3.0p11/dhcpd.conf.sample Copy 至 /etc/dhcpd.conf 相關檔案: /etc/sysconfig/dhcpd /var/lib/dhcp/dhcpd.leases
  • 102. dhcp.conf整體設定(Global):裡面含有租約期限、還有 DNS IP 與 router 的設定 動態 IP 設定:使用 subnet 的項目與 range 的參數來設定要分配出去的 IP 靜態 IP 設定:使用 host 這個項目段,配合 MAC 來設定 『#』為註解符號; 除了括號那一行之外,其他的每一行後面都要以『 ; 』做為結尾
  • 103. option domain-name   “example.com"; # 設定每部主機的後頭領域名稱為 example.com option domain-name-servers 168.95.1.1, 192.168.30.1; # 設定DNS IP #動態 IP 分配的設定: subnet 192.168.30.0 netmask 255.255.255.0 {    range 192.168.30.100 192.168.30.200;    option broadcast-address 192.168.30.255;    option routers 192.168.30.254; } dhcp.conf Example
  • 104. dhcp.conf Example# 靜態 IP 的設定: host server1 {    hardware ethernet  00:40:95:30:43:B4;    fixed-address 192.168.30.90;    option broadcast-address 192.168.30.255;    option routers 192.168.30.254; } default-lease-time 259200;   # 預設的租約時間,後面接的時間為秒鐘。 max-lease-time     518400;   # 最大租約時間,最長到 518400 秒
  • 105. DHCP Server 啟動 與 除錯/etc/init.d/dhcpd start tail -f /var/log/messages
  • 106. DHCP Client 設定將 Client 端的TCP/IP設定改為自動取得IP Windows 驗證 Ipconfig /all winipcfg Linux 驗證 Ifconfig -a
  • 107. DHCP Server Lab設定動態 IP 範圍 192.168.30.100~192.168.30.200 設定一台主機名稱為 server 固定IP為192.168.30.90 網卡Mac Address為 00:40:95:30:43:B4 廣播位址為 192.168.30.255 路由位址為 192.168.30.254
  • 108. FTP servervsFTPD (Very Secure FTP Daemon) 套件:vsftpd-1.1.3-8.i386.rpm TCP 20傳資料 TCP 21傳輸流程的控制 兩種主要身份使用 anonymous real user
  • 109. vsFTPD 設定檔/etc/vsftpd.ftpusers 限制登入的使用者 /etc/hosts.deny 限制登入的網域 /etc/vsftpd/vsftpd.conf 主要設定檔
  • 110. vsFTPD 啟動與驗證# /etc/init.d/vsftpd start 啟動vsftpd # lftp localhost # ncftp localhost
  • 111. FTP Server Lab請用 vsFTPD 架設一個 FTP Server 設定歡迎訊息 banner_file 讓匿名的使用者可以上傳檔案
  • 112. WWW Server套件: httpd { , -devel, -manual } 服務名稱:httpd 啟動的script : httpd 執行埠:80/tcp (http), 443/tcp (https) 設定檔:/etc/httpd/*, /var/www/* 相關: redhat-config-httpd,mod_ssl,以及其它
  • 113. WWW Server 設定檔設定檔位置 /etc/httpd/conf/httpd.conf 模組位置 /etc/httpd/conf.d/* 網頁文件預設放置目錄 /var/www/html/
  • 114. httpd.conf指定給使用者的目錄 UserDir public_html MIME 型態設定 AddType application/x-httpd-php .phtml AddType text/html .htm 宣告index的頁面 DirectoryIndex index.html default.html
  • 115. httpd.conf允許連結的設定 order allow, deny allow from .example.com 使用 .htaccess 檔案 #sample authentication .htaccess file AuthName “Jack’s home “ AuthType basic AuthUserFile /home/jack require user jack
  • 116. Virtual Host 虛擬主機在同一台電腦下, 要建立虛擬主機, 可採用 IP/Name/Port 三種方法建立 (1)IP Base: 使用IP地址將網頁請求對映到正確的頁面目錄, 因此每一個虛擬主機都需要一個IP位址 (2)Name Base: 只有單一IP位址, 但要用不同的網域名稱來呈現不同的網頁內容時, 就是以 Name Base 的方式來將網頁對映到正確的頁面, 但該方式無法使用 SSL 功能, 且需要支援HTTP/1.1的瀏覽器才可以使用. (3)Port Base: 利用不同的 port 設定, 建立起多個虛擬主機.
  • 117. SSL 連線步驟Client 端 和 Web Server SSL port 連線.(https) Web Server端將憑證資料傳給 Client 端 Client 端進行憑證資料的確認, 將認可傳給 Web Server 端 Web Server端會再跟 Client 端傳送兩次資料, 一次是以自己的私鑰產生的資料內容, 另一次是Web Server端的公鑰. Client 收到 Web Server 端的加密資料與公鑰後, 將 Web Server 的公鑰產生 Symmetric Key, 並將該 Symmetric Key 傳給 Web Server 端. 兩端將以此 Symmetric Key 建立起加密通道
  • 118. WWW Server 啟動與除錯/etc/init.d/httpd start tail –f /var/log/httpd/access_log tail –f /var/log/httpd/error_log
  • 119. WWW Server Lab請建立一個以Name Base的虛擬主機 www.example.com www2.example.com 分別可以看到不同的網頁
  • 120. Mail ServerMTA sendmail,postfix,qmail,exim MDA procmail MUA Outlook Express Becky
  • 121. Mail Server 路由
  • 122. Mail Server套件選擇 - Sendmail Sendmail 的特色: 允許各種不同的emial位址路徑 支援虛擬的domains及users 允許偽裝的使用者及機器 提供自動重試失敗傳送郵件的重傳及其它一些情況
  • 123. Mail Server套件-sendmail作業型態:System V-launched daemon 套件:sendmail {,-cf, -doc} 、IMAP 服務名稱:sendmail 執行的script:sendmail 服務埠:25(smtp) 設定檔位置:/etc/mail/sendmail.cf, /etc/aliases, /etc/mail/ 相關:procmail、/var/mail/maillog 、/var/spool/mail
  • 124. m4以 m4 來設定 sendmail.cf m4 是用來幫助設定sendmail.cf 的範本語言 Red Hat 預設 sendmail 的設定檔是以 /etc/mail/sendmail.mc 來產生的 Red Hat 建議以 m4 的 sendmai.mc 來開始設定sendmail 完整的 README.cf 放在 /usr/share/doc/sendmail 裡
  • 125. sendmail.cf主要設定檔 sendmail.cf 包含domain的別名(alias)、標頭、傳送規則等 編輯此檔時請小心並仔細地閱讀說明
  • 126. /etc/mail/sendmail.cf# 開放中繼功能 # SMTP daemon options O DaemonPortOptions=Port=smtp,Addr=127.0.0.1, Name=MTA 127.0.0.1 改為 0.0.0.0 # 限制郵件大小 # maximum message size O MaxMessageSize=1000000
  • 127. /etc/mail/accessRELAY 開放中繼功能 REJECT 拒絕傳送 DISCARD 直接丟棄 修改後記得在 /etc/mail 下執行 make
  • 128. /etc/aliase設定帳號別名 MAILER-DAEMON: postmaster postmaster: root root: admin@example.com sales: jack,john,mary # newaliases
  • 129. 查詢郵件佇列與 log# mailq # tail –f /var/log/maillog
  • 130. sendmail 啟動與測試# /etc/init.d/sendmail start # telnet localhost 25 mail from: root@server.example.com rcpt to: root@example.com data This is a test Mail . quit
  • 131. Mail Server Lab請用 sendmail 設定好一台可開放 192.168.30.1 向您的 Server 代為轉信的功能.
  • 132. Proxy Server什麼是代理伺服器? Proxy 會幫 Client 端的用戶去向目的地取得用戶端所需要的資料 是一個代理人的角色
  • 133. Proxy Server
  • 134. Proxy Server 運作方式
  • 135. Proxy Server 優缺點優點 快速的存取動作 降低網路的負荷 資料分流 提供防火牆內部的電腦連上 Internet 多層次的管道 ( 上層代理伺服器 ) 缺點 容易為 Intranet 的內部人員濫用 需要較高超的設定技巧與除錯程序 可能會取得舊的錯誤資料
  • 136. 上層Proxy ServerSeedNet 的代理伺服器(http://service.seed.net.tw/dial/server.shtml) Hinet 的代理伺服器(http://www.hinet.net/support/new_adsl04.htm)
  • 137. 硬體要求與最佳硬體配置方式CPU 最好能夠 P III 550 以上等級 RAM 最好能夠大於 512 MB Hard Disk 最好能用 SCSI 介面的 網路卡與網路周邊最好使用 GBytes 的網路卡
  • 138. Proxy Server套件-squid安裝Proxy套件 – squid-2.5.STABLE1-2.i386.rpm 目錄位置:/etc/squid 設定檔:/etc/squid/squid.conf 紀錄檔:/var/log/squid/access.log /var/log/squid/cache.log /var/log/squid/store.log
  • 139. squid.confhttp_port 3128 icp_port 3130 reference_age 1 month cache_dir ufs /var/spool/squid 100 16 256 cache_access_log /var/log/squid/access.log cache_log /var/log/squid/cache.log cache_store_log /var/log/squid/store.log pid_filename /var/run/squid.pid
  • 140. squid.conf#auth_param basic children 5 #auth_param basic realm Squid proxy-caching web server #auth_param basic credentialsttl 2 hours http_access allow all cache_mgr root cache_effective_user squid cache_effective_group squid
  • 141. squid 設定解說http_port 3128 以瀏覽器連接到本proxy server時的port cache_mem 8 MB 設定squid可用的記憶體空間 cache_dir ufs /var/spool/squid 100 16 256 設定快取目錄和快取可以使用的硬碟空間,100表示100MB;16表示第一層子目錄最多有16個;256表示每個第一層子目錄下的子目錄最多可以有256子目錄 cache_access_log /var/log/squid/access.log 快取記錄檔的名稱和所在目錄,負責記錄快取的所有行為 cache_log /var/spool/squid/cache.log 快取儲存記錄檔的名稱及所在目錄
  • 142. squid 設定解說cache_store_log /var/log/squid/store.log 設定store.log的存放位置 store.log、cache.log、access.log要定時備份並刪除,以免佔磁碟空間 reference_age 1 month 設定快取的資料保存時間 cache_mgr root squid出問題時要通知的管理者
  • 143. acl的用法 <設定的內容> acl類型 以來源端:src,srcdomain 以目地端:dst,dstdomain 以正規表式法:url_regex [-i] ^http:// urlpath_regex [-i] \.gif$ 設定的內容 IP or Domain or String acl example dstdomain .com
  • 144. http_access 用法設定允許存取 squid Server 的列表 以 acl 的定義來做管制 http_access allow example #設定只允許example的acl訂義存取 http_access deny all #如果要開放的話,改成 allow all
  • 145. cache_peer 用法 <主機名稱> <類別> <其他參數> 類別:parent(上層),sibling(同一層) http_port/icp_port:3128/3130 其他參數: proxy-only,weight=n,no-query,default,no-netdb-exchange,no-digest 到處向其它proxy server請求會消耗太多網路資源,所以請勿設太多parent和sibling server. cache_peer proxy.hinet.net parent 3128 3130 proxy-only
  • 146. cache_peer_access 用法 <上層 Proxy> cache_peer_access proxy.hinet.net allow example
  • 147. 不要進行cache的設定值只要網址列出 cgi 字樣都不做 cache hierarchy_stoplist cgi-bin ? acl QUERY urlpath_regex cgi-bin \? no_cache deny QUERY
  • 148. 與時間相關的設定值 <最小時間> <百分比> <最大時間> refresh_pattern ^ftp: 1440 20% 10080 refresh_pattern ^gopher: 1440 0% 1440 refresh_pattern . 0 20% 4320
  • 149. 與時間相關的設定值connect_timeout 2 minutes # 連線的timeout時間 peer_connect_timeout 30 seconds # 連線到上層proxy的timeout時間 request_timeout 5 minutes # 連上後,要求的 timeout 時間 persistent_request_timeout 1 minutes # 連上後, 連續要求 timeout 時間
  • 150. 額外的功能參數與 FTP 有關的設定項目,主要是針對被動式連線 ftp_user Squid@ ftp_passive on 主要與 DNS 的設定值有關,如果在高負載的 Proxy 環境下,可以考慮將 dns_children 提高到 20 左右,這個值最大為 32 dns_timeout 1 minutes hosts_file /etc/hosts
  • 151. transparent proxy設定 squid.conf httpd_accel_host proxy.example.com httpd_accel_port 80 httpd_access_with_proxy on httpd_accel_uses_host_header on 設定 NAT 主機的 port map iptables -t nat -A PREROUTING -i eth0 -p tcp -s 192.168.30.0/24 --dport 80 -j REDIRECT --to-ports 3128
  • 152. 啟動 squid server/etc/init.d/squid start tail –f /var/log/squid/access.log
  • 153. Proxy Client端設定在Browser的設定選項中找出代理伺服器,給予設定
  • 154. 末端資料分析 pwebstat http://martin.gleeson.com/pwebstats/installation.html 可使用該軟體來做log分析
  • 155. (本页无文本内容)
  • 156. Proxy Server Lab兩個人為一組,設定一台簡易的Proxy Server 使用 client 做 Internet 連線,並查看 Proxy Server 是否有代為抓取資料
  • 157. 討論時間安裝/設定/調校 觀察紀錄檔 有任何問題歡迎提問 第二天課程結束 明天將講解系統維護與管理/網路安全/線上套件更新
  • 158. 系統維護與管理定時備份資料 檢查系統紀錄檔 調校系統狀態 注意系統安全
  • 159. 備份資料確定備份資料的來源與目地 使用 tar 搭配 gzip 或 cpio 來完成備份的工作 運用 script 來將資料做備份與紀錄
  • 160. 網路安全Cracker 常見的入侵技術: 使用工具程式入侵你的主機 蠕蟲或木馬程式 ( Trojan horse ) DoS 攻擊法 ( Denial of Service ) IP 欺騙 Port scan
  • 161. 網路安全主機維護的幾個重要事項 關閉幾個不安全的服務 升級幾個可能有問題的套件 架設好最起碼的安全防護--防火牆— iptables http://projectfiles.com/firewall 套件
  • 162. 網路安全移除不必要的服務 使用以下工具檢查 port netstat nmap 使用 ssh 做主機與主機的連線 ssh putty
  • 163. 線上套件更新RedHat 套件更新 up2date 中央研究院 RedHat update Mirror ftp://linux.sinica.edu.tw/redhat/updates
  • 164. 討論與分享時間 歡迎提出在Linux整合上的問題 或 Linux相關議題 一起討論