RedHat Linux
Download
Report
Transcript RedHat Linux
Linux 簡介
計算工具
國立高雄大學應用數學系
2004/05/10
前言
Don’t panic!
No C/C++/assembly language
No hard examination
But Linus wrote Linux 0.0.1 when he was a
sophomore student
2004/05/10
2
參考資料
鳥哥的私房菜館 http://linux.vbird.org/
GNU/Linux 初學之旅:李果正
http://www.study-area.net/tips/linux_entry.htm
Linux 教育訓練:國家高速電腦中心
2004/05/10
3
Unix 簡介
Multix – MIT, GE
Bell Labs, AT&T, early 1970's
Unix, C Programming Language
Ken Tompson、Dennis Ritchie
主要概念
所有程式都是檔案 - (最具創意的概念)。
不論是建構編輯器還是附屬檔案,所寫的程式只有一個目的,
且要能有效完成目標。
任何人可以由小到大,模組化建構系統。
BSD – Berkeley Software Distribution
2004/05/10
Billy Joy(vi), Kirk McKusik
4
Unix 簡介 (續)
Kernel 核心
User 使用者
e.g. Linux Kernel
can access kernel data
can execute kernel programs
switch to user mode
service an interrupt
e.g. root、userXXX
cannot access kernel data
cannot execute kernel programs
issue a system call to switch to
kernel mode
Shell 殼?
2004/05/10
e.g. sh、csh、tcsh、bash
5
Unix 簡介 (續)
Shell
User management
File system
Process control
2004/05/10
6
Unix 簡介 (續)
2004/05/10
7
Unix 簡介 (續)
UNIX variants
AT&T, Bell Labs
UC, Berkeley – Berkeley Software Distribution
SCO Unix
Sun – SunOS, Solaris
IBM – AIX
SGI – Irix
HP – HP-UX
SYSV, BSD, POSIX
2004/05/10
8
Unix 簡介 (續)
Opensource Unix-like OS
2004/05/10
Minix
Linux
BSD series, OpenBSD, FreeBSD, NetBSD
Darwin, BSD4.4 + Mach Microkernel, Apple
More...
9
Unix 簡介 (續)
可以讓「多個」使用者、「同時」
執行「多個」程式的!
超級使用者:root
群組 groups
2004/05/10
10
Unix 簡介 (續)
An unix account is for
an individual person to login
an entity to execute program or own files
2004/05/10
e.g. user001
e.g. shutdown,sys, bin, ...
Entries in /etc/passwd
name:pass:UID:GID:GECOS:homedir
11
Opensource自由軟體
傳教士:Eric S. Raymond
http://www.tuxedo.org/~esr/
Opensource一詞的發明人
The Cathedral & The Bazaar
The Art of UNIX Programming
A Brief History of Hackerdom
Freedom (自由)/Open(開放)
Source Code必須公開
任何人都可以自由傳播、下載、使用或改寫
2004/05/10
12
GNU計畫
1983 年 Richard Stallman (自由軟體業
的精神教父) http://www.stallman.org
開始於1984年,旨在發展一個 類-Unix
且為 自由軟體 的完整作業系統
軟體應該是人類的共同智能,屬於公共
財!
我要做出一系列亂棒的免費軟體,好到
讓廠家們只要不用他就會倒店的程度。
http://www.gnu.org/
2004/05/10
13
自由軟體基金會
GNU計畫的贊助單位
FSF (Free Software Foundation) 提倡免費軟體
FSF自由使用權的三個意義:
2004/05/10
可自由複製GNU的軟體
可自由修改原始碼
可自由散佈修改過的原始碼,但不得收取任何版權費
用
14
GNU Genel Public License (GPL)
大眾公有版權/通用公共版權
官方翻譯:自由文件許可證
Copyleft
http://www.linux.org.tw/CLDP/GNU/licences/fdl.zh.html
http://www.gnu.org/copyleft/gpl.html
2004/05/10
15
Linux 簡介
1991 年 8 月
芬蘭的一個學生在comp.os.minix 新聞組
貼上了以下這段話:
「你好,所有使用 minix 的人 -我正在為 386 ( 486 )
AT 做一個免費的操作系統 ( 只是為了愛好 ),不
會像 GNU 那樣很大很專業。」
2004/05/10
16
Linus 的郵件原文
From: [email protected] (Linus Benedict Torvalds)
Newsgroups: comp.os.minix
Subject: What would you like to see most in minix?
Summary: small poll for my new operating system
Message-ID: <[email protected]>
Date: 25 Aug 91 20:57:08 GMT
Organization: University of Helsinki
Hello everybody out there using minix -
I'm doing a (free) operating system (just a hobby, won't be big and
professional like gnu) for 386(486) AT clones. This has been brewing
since april, and is starting to get ready. I'd like any feedback on
things people like/dislike in minix, as my OS resembles it somewhat
(same physical layout of the file-system (due to practical reasons)
among other things).
I've currently ported bash(1.08) and gcc(1.40), and things seem to work.
This implies that I'll get something practical within a few months, and
I'd like to know what features most people would want. Any suggestions
are welcome, but I won't promise I'll implement them :-)
Linus ([email protected])
PS. Yes - it's free of any minix code, and it has a multi-threaded fs.
It is NOT protable (uses 386 task switching etc), and it probably never
will support anything other than AT-harddisks, as that's all I have :-(.
2004/05/10
17
A small understatement !
“just a hobby, won’t be big and professional like gnu “
– Linus, 1991
“HP Records More Than $2.5 Billion in Linux-based
Revenue in 2003”
– http://www.hp.com/hpinfo/newsroom/press/2004/040115a.html
2004/05/10
18
History of Linux
A more complete history is available here :
http://netfiles.uiuc.edu/rhasan/linux
“Just for Fun : The Story of an Accidental
Revolutionary”, Linus Torvalds and David
Diamond.
2004/05/10
19
Linux version numbers
Each linux kernel version is characterised by
three numbers:
Major Version . Minor Version . Release Number
e.g. 2 . 6 . 2
The minor version number denotes whether the
kernel is a stable release or a development
release.
2004/05/10
Even = Stable ( e.g. 2.6.2 )
Odd = Development ( e.g. 2.5.102)
20
What is linux?
Clone of Unix
Aims to be POSIX and Unix specification
compliant.
True Multitasking
Virtual Memory
Shared Libraries
Shared copy-on-write executables
Proper memory management
TCP/IP networking ... and a few other things
2004/05/10
21
What is linux? (cont.)
Linux runs on (at least), the following
architectures :
• 32-bit x86-based
• Sun SPARC
• Motorola 68000
• PowerPC64
• Hitachi
• IBM S/390
• HP PA-RISC
• DEC VAX
• CRIS
2004/05/10
• Compaq Alpha AXP
• Sun UltraSPARC
• PowerPC
• ARM
• SuperH
• MIPS
• Intel IA-64
• AMD x86-64
22
What is linux? (cont.)
Written mainly in C
Some Assembler
240 MBytes of source code and
documentation
1,000,581 lines in .h files
4,196,191 lines in .c files
2004/05/10
23
Linux 簡介 (續)
Linux 是一套免費的32*位元多人多工 Unix-like
作業系統,同時相容於 System V 與 BSD 並且
符合POSIX標準。
It's GPLed!
Ported to other platforms: i386, IA64, DEC's
Alpha, Sun SPARC, PowerPC, VAX, SGI MIPS
etc.
2004/05/10
24
Linux 簡介 (續)
人類進化演進的過程
為求生存
為求社會地位
為娛樂,Just for fun!
全球性的團隊遊戲 (for developer)
2004/05/10
25
Linux 簡介 (續)
Totaly Free!
Opensource
Cross platform
多人多工
具網路功能
上千種 GNU 軟體
可與其他作業系統並存
2004/05/10
26
Linux 簡介 (續)
Developers worldwide
Opensource, thounds of eyeballs
Community support
Vendors support
2004/05/10
IBM
Redhat
Mandrake
27
Linux 簡介 (續)
Linux 是 kernel!
A distribution = Linux kernel + software
packages
Linux kernel + 基本的 libc utilities + X
Window system
最重要的工具集:GNU tools!
嚴格來講、叫做 GNU/Linux
2004/05/10
28
GNU與Linux
GNU
仍自行發展 Hurd Kernel
開發許多以GPL發行的應用程式與工具程式
Linux(Linus’s Unix)
由網路上熱心的朋友一起發展Linux Kernel
採用GNU發展的許多應用程式與工具程式
應該稱作GNU/Linux
2004/05/10
29
Linux品牌
2004/05/10
RedHat Linux
SuSE Linux
Mandrake Linux
Caldera Linux
Turbolinux
Debian GNU/Linux
Gentoo Linux
Linpus Linux
30
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
2004/05/10
31
2004/05/10
32
Linux 開機流程
1.
2.
3.
4.
5.
BIOS 嘗試在開機磁碟機的第 0 磁區、第 0 磁柱載入可供
開機的磁區開機
開機載入程式 (boot loader ,如 LILO或Grub)的程式碼
找出 kernel 所在位置,接著載入並執行它以啟動開機程
序
一旦 kernel 載入完畢,一些基本設備也完成初始化
(initialization)
嘗試從某個設備載入以及掛上 (mount) root filesystem
一旦 root filesystem 被載入並掛上,會看到一行訊息像:
VFS: Mounted root (ext3 filesystem) readonly
2004/05/10
33
Linux 開機流程
6.
此時系統會在 root filesystem 上找到 init 程式 ( 在 /bin or
/sbin) 並執行
init 讀取它的組態設定檔 (configuration file) /etc/inittab ,
找出檔中標明 sysinit 的一行,並執行被指名的script。這
個 sysinit script 通常類似 /etc/rc 或 /etc/init.d/boot 這兩個
檔。這個 script 是一組建立基本系統服務的 shell 指令,
諸如:
2004/05/10
對所有磁碟執行 fsck
載入必備的核心模組 (modules)
啟動 swapping
進行網路初始化
將指定在 fstab 內的磁碟掛上
34
Linux 開機流程
7.
當 sysinit script 結束後,控制權回到 init
上,接著進入預設的runlevel
2004/05/10
預設的 runlevel 以 initdefault 這個關鍵字被指
定在 /etc/inittab 內
35
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 設定這個)
2004/05/10
36
man 男人?
線上查詢 man page
# man ls
# man 1 ls
# info ls
/etc/man.conf
whatis filename
不管,我也要 woman 啦! 簡易耍寶版
2004/05/10
用別名 alias
$alias woman=man
以後就可以用 `woman ls' 了!
37
vi
文書處理器 vi
管理員至少一定要會一種編輯器
vi 的使用:
2004/05/10
一般模式:移動、複製、刪除、貼上
編輯模式:插入與取代文件
指令列模式:搜尋、自動取代、檔案存取等
38
vi help
h,j,k,l 移動
yy 複製
dd 刪除
p 貼上
o,i,a 插入
R,r 取代
u 回復
2004/05/10
/ 搜尋
:%s/x/y/g
自動取代
:w 寫入
:q 離開
:wq!
寫入強制離開
39
Linux 檔案
# touch test
# ls –al test
2004/05/10
40
Linux 檔案種類
正規檔案( regular file )
第一個屬性為 [ - ]
目錄 (directory):
第一個屬性為 [ d ]
連結檔 (link):
純文字檔(ascii)
二進位檔(binary)
第一個屬性為 [ l ]
設備檔 (device):
2004/05/10
區塊 (block) 設備檔,第一個屬性為 [ b ];
字元 (character) 設備檔,第一個屬性為 [ c ]。
41
Linux 檔案屬性
2004/05/10
42
更改 Linux 檔案屬性指令
r=4,w=2,x=1
# chmod 770 test
chmod
2004/05/10
u
g
o
a
owner = rwx = 4+2+1 = 7
group = rwx = 4+2+1 = 7
others = --- = 0+0+0 = 0
+(加入)
-(除去)
=(設定)
r
w
x
檔案或目錄
43
更改 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
2004/05/10
44
更改 Linux 檔案所屬群組
語法:
chgrp 群組名稱檔案或目錄 範例:
[root@test root]# chgrp users test
[root@test root]# ls -l
drw-r--r--
2004/05/10
1 root
users
1 Jun 20 14:36 test
45
Linux 目錄結構
/bin:常用系統程式目錄
/boot:開機設定檔,也是預設擺放核心 vmlinuz
的地方
/dev:擺放所有系統裝置檔案的目錄
/etc:幾乎系統的所有設定檔案均在此,尤其
passwd, shadow
/etc/rc.d/init.d:系統開機的時候載入服務的
scripts 的擺放地點
/home:系統使用者的家目錄
2004/05/10
46
Linux 目錄結構
/lib:Linux 執行或編譯程式函式庫目錄
/mnt:軟碟與光碟接預設掛載點的地方
/proc:系統核心與執行程序的一些資訊
/root:系統管理員的家目錄
/usr/bin, /bin:一般執行檔擺放的地方
/usr/sbin, /sbin:系統管理員常用指令集
/var:擺放系統記錄檔案的地方
/lost+fount:擺放系統不正常產生錯誤時遺失的
片段
2004/05/10
47
2004/05/10
48
Linux 管理工具介紹
檔案與目錄管理
磁碟與硬體管理
程序與資源管理
RPM的管理
帳號與身份管理
2004/05/10
49
檔案與目錄管理
目錄與路徑
2004/05/10
相對路徑與絕對路徑
. 代表此層目錄
.. 代表上層目錄
~ 代表自己的家目錄
~user 代表到 user 這個人的家目錄
50
檔案與目錄管理
cd
變換目錄
cd /root
mkdir
建立一個新目錄
mkdir –p /root/abc/123
2004/05/10
rmdir
刪除一個裡面是空的空
目錄
rmdir –p abc/123
pwd
顯示目前的目錄
環境變數PATH
echo $PATH
PATH=”$PATH”:/root
51
檔案與目錄管理
2004/05/10
ls [-ailS]
參數說明:
-a
:全部的檔案都列出(連同隱藏檔)
-i
:印出 inode 的值
-l
:長的列出,連同檔案大小的資料等等
-S
:以檔案大小排序
52
檔案與目錄管理
cp [-drsu] [來源檔] [目的檔]
參數說明:
-d:在進行 copy 的時候,如果是 copy 到 link 檔案,
若不加任何參數,則預設情況中會將 link 到的原始檔
案copy 到目的地,若加 -d 時,則 link 檔案可原封不
動的將 link 這個捷徑其拷貝到目的地
-r:可以進行目錄的 copy
-s:做成連結檔,而不 copy 之意!與 ln 指令相同功
能!
-u, --update:如果來源檔比較新,或者是沒有目的
檔,那麼才會進行 copy 的動作
2004/05/10
53
檔案與目錄管理
2004/05/10
rm [-fir] [檔名]
參數說明:
-i :提供使用者確認(這是預設值)
-r :遞迴刪除
-f :強力刪除
54
檔案與目錄管理
2004/05/10
mv [-u] [來源檔] [目的檔]
參數說明:
-u :同樣的,為 update 的簡寫,當來源檔比
目的檔還新的時後才會動作
55
觀看檔案內容
cat 由第一行開始顯示檔案內容
tac 從最後一行開始顯示,可以看出 tac 是 cat
的倒著寫
more 一頁一頁的顯示檔案內容
less 與 more 類似,可以往前翻頁
head 只看頭幾行
tail 只看尾巴幾行
nl 顯示的時候,順道輸出 行號
od 以二進位的方式讀取檔案內容
2004/05/10
56
連結檔的介紹
連結檔的介紹: 什麼是 inode
Block 是記錄『檔案內容資料』的地區,而
inode 則是記錄『該檔案的屬性、及該檔案放
置在哪一個 Block 之內』的資訊
ln
hard link
不能跨 filesystem/不能 link 目錄
2004/05/10
symbolic link
ln [-s] [來源檔] [目的檔]
57
檔案與目錄權限
chown 改變檔案的擁有人
chgrp 改變檔案的所屬群組
chmod 改變檔案的可寫、可讀、可執行等
屬性
umask 改變預設的建立檔案或目錄時的屬
性
chattr 改變檔案的特殊屬性
lsattr 顯示檔案的特殊屬性
2004/05/10
58
搜尋檔案或目錄
which 查看可執行檔案的位置
# which ls
whereis 查看檔案的位置
# whereis [–b/-m] ls
locate 配合資料庫查看檔案位置
# locate ls
#updatedb
find 尋找檔案
# find / -name “ls”
2004/05/10
59
磁碟與硬體管理
查看硬碟或目錄的容量:df, du
切割與格式化硬碟:fdisk, mke2fs, e2label,
mknod
檢查硬碟壞軌與資料同步化寫入:fsck, sync
關於軟碟開機片: mkbootdisk, fdformat
各式磁區的掛載:mount, umount
設定開機時即掛載的方式:/etc/fstab
虛擬記憶體 Swap:mkswap, swapon, swapoff
磁碟效能:hdparm
2004/05/10
60
程序與資源管理
什麼是程序?
2004/05/10
任何觸發系統工作的事件,系統會給予一個
process ID 來控制該事件的執行,這個 PID
就是程序
需要注意到,程序『屬於誰?他的權限是不同
的!』而程序執行後輸出的訊息則與資料流有
關
61
程序與資源管理
如何觀察程序?
top
ps
常駐記憶體的程式(daemon, 服務)
2004/05/10
在背景下執行
是系統正常運作所必需要的(syslog,cron)
是某些服務提供所必需要的(www, mail..)
62
程序與資源管理
程序的優先執行順序?
Priority
nice value
2004/05/10
nice 新的 PID
renice 已存在的 PID
63
程序與資源管理
給予程序『訊號, signal』
kill -signal PID
2004/05/10
-1 重新讀取設定檔
-9 無條件強制驅離記憶體
-15 正常方式關閉該 PID
64
程序與資源管理
重要的程序之一:syslog
2004/05/10
系統在背景下工作的各項服務所產生的『訊息』
均統一由 syslog 這個服務 (daemon) 所管理
/etc/syslog.conf
/var/log/messages
/var/log/secure ...
65
程序與資源管理
背景與前景之工作管理
2004/05/10
& 與 ctrl + z
jobs
fg, bg, kill %number
66
程序與資源管理
工作排程
循環式工作排程:
單一工作排程:
2004/05/10
crontab
/etc/crontab
at
67
Linux 套件管理
Tarball
2004/05/10
為原始碼 (open source)
大部分的 tarball 均支援跨平台
需要額外的套件支援:make, kernel source,
gcc 等等
升級、反安裝等較為不方便
68
Linux 套件管理
RPM
2004/05/10
具有資料庫:容易安裝、升級、移除
在查驗及搜尋方面極為有效率
漏洞修補速度快速
最大的缺點:屬性相依的問題(這包含了版本、
平台等等)
69
RPM的管理
安裝
升級
rpm –ivh bash.rpm
rpm –uvh bash.rpm
驗證
2004/05/10
Rpm –V bash
70
RPM的管理
移除
查詢
rpm –e bash
rpm –qa bash
重建rpm資料庫
2004/05/10
rpm --rebuilddb
71
帳號與身份管理
帳號管理
2004/05/10
groupadd
groupdel
useradd
userdel
chsh
chfn
userconf
72
帳號與身份管理
密碼管理與設定
passwd
使用者身份切換
2004/05/10
su
sudo
visudo
73
帳號與身份管理
使用者查詢
2004/05/10
id
finger
groups
74
RedHat Linux 設定指令
setup
2004/05/10
Authentication configuration:這是關於系統性安
全的設定項目
Firewall configuration :這個是關於 ipchains 的防
火牆機制設定
Mouse configuration :設定滑鼠的型態
Network configuration :設定網路參數
System services :設定系統服務啟動
Printer configuration :設定印表機囉
Timezone configuration :設定時區
75
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]
2004/05/10
76
Shell
指令的操作
2004/05/10
每行指令均以 Enter 為『開始執行』的依據,
不過可以 \ 延續下達
指令可接續參數(Options)來達成多樣化的工
作
大小寫是完全不同的
藉由輸出訊息可瞭解問題、解決之
77
Shell
變數的功能
環境當中,一些必要指令的用途
2004/05/10
HOME 家目錄
MAIL 用 mail 時取得的 mailbox
PS1 提示字元囉!
PATH 執行檔的搜尋路徑
? 上個指令的執行結果回傳值
78
Shell
變數的功能
簡化與優化指令或 scripts
2004/05/10
例如常使用的字串取代、
常使用的路徑取代….
Shell scripts 當中的變數取代(最常見)
79
Shell
進階指令操作--資料流重導向
2004/05/10
將指令執行後,應該由螢幕輸出的的訊息導向
到裝置或檔案當中;
# ls /home >> right 2>> error
最常見在『背景』工作中!例如系統的一堆背
景工作紀錄(syslogd)
80
Shell
進階指令操作--管線命令 pipe
2004/05/10
將輸出的訊息繼續進行處理
81
Shell
進階指令操作--管線命令 pipe
2004/05/10
# last | grep root | wc -l
# cat /etc/passwd | cut -d ‘:’ -f1 > accout
82
系統關機
關機
重新起動
2004/05/10
shutdown –h now
halt
poweroff
init 0
shutdown –r now
reboot
init 6
83
2004/05/10
84
常用指令
locate
這是快速尋找指令,請試試 locate locate 看看。有錯誤訊息出現的話,請
用 updatedb 更新一下系統資料庫。比較複雜的條件式搜尋,請研究一下
find 指令。
man
這是看 manual pages 線上說明的指令。請試試 man locate 看看。按 h 來
看操作說明,有空的話就 man man。請善用 man -k(或 apropos) 來找系統
上的指令。例如要找 ftp 的相關指令 man -k ftp 就會列出一堆出來。另外,
whatis ftp 則會有 ftp 的簡短說明,whereis ftp 則會指出 ftp 這支程式及其
man page(ftp.1)的位置。
info
這是另一個線上說明的指令,請試試 info ls 看看。按 Ctrl + h 來看操作說明,
有空的話就 info info。有個 pinfo 指令,但可能系統上沒有,找看看您的光
碟上有沒有,可取代 info 指令,操作較簡便,而且有彩色。
2004/05/10
85
常用指令 (續)
ls(list)
這就是 DOS 裡的 dir 指令,意思就是 list 啦!功能比 dir
強多了!ls 的參數相當多,別忘了 man ls,找些您喜歡
的參數試試看。
cat(concatenate)
可以顯示檔案內容或結合數個檔案成為一個檔案。
more(less)
這在 DOS 裡也有,不過功能不可同日而語。壓縮檔請改
用 zmore 及 izless(*.gz, *.Z) 或 bzmore 及 bzless(*.bz2)。
more /etc/profile 或 cat /etc/profile | more 兩種方式皆可。
2004/05/10
86
常用指令 (續)
gzip, bzip2, tar
這是 Un*x 系統常用到的壓縮、打包的工
具,請務必要先熟悉,在網路上下載的檔
案有許多都是 *.tar.gz, *.tar.bz2, *.tgz 的格
式,您要解開就要利用到這些工具。
2004/05/10
87
常用指令 (續)
Wget
這是抓檔的工具,如果沒有安裝,把您的安裝光
碟 mount 上來,裝上去,http, ftp 上的檔案都可
以抓,整個網站抓下來也沒問題。一般使用:
2004/05/10
wget ftp://xxx.xxx.xxx/target.tar.gz
wget -c ftp://xxx.xxx.xxx/target.tar.gz (續傳)
wget http://xxx.xxx.xxx/target.tar.gz
wget -m -np http://xxx.xxx.xxx/target.html (將以
target.html 為中心的整個相關案抓下來,m=mirror,
np=no parent 不抓上層目錄的檔案)。
man wget 裡頭有相當多的實例供參考,也有 gwget
的 GUI 界面供使用。
88
常用指令 (續)
telnet
打 BB 嗎?telnet bbs.xxx.xxx.xxx 就可以
了!當然您要先有中文終端機,例如:
chdrv, jmcce, crxvt ... 等等。而且要有中文
輸入法,chdrv,jmcce 就有附,crxvt 的話
可配合 xcin 來輸入中文。如果碰到亂碼,
可使用 telnet -8 參數試看看。
2004/05/10
89
編輯器
請先熟悉任一種編輯器
在 Un*x 裡頭,有許多檔案的設定,都得自行手
動去編輯設定檔,而 Un*x 裡頭的編輯器,實在
是多的不像話 :-)。請選個自己認為順手而其他
Un*x 系統也有的編輯器來使用。vi, emacs 這兩
個幾乎是 Un*x 系統的基本配備,當然使用上非
常有個性就是了!另外還有 joe, pico ... 等較簡
單的。
vi(m) 中文使用說明:
http://www.study-area.net/tips/vim/index.html
2004/05/10
90
編輯器 (續)
或
http://www.linuxfab.cx/indexColumnData.php?CID=53&FIRSTHIT=
1
http://www.linuxfab.cx/indexColumnData.php?CID=55&FIRSTHIT=
1
http://www.linuxfab.cx/indexColumnData.php?CID=58&FIRSTHIT=
1
emacs 中文使用說明:
ftp://beta.wsl.sinica.edu.tw/aspac/doc/94/94016.ps.gz
這個站還有一些中文文件,是中研院的 ASPAC 計劃,請先抓一下:
ftp://beta.wsl.sinica.edu.tw/aspac/doc/announce.doc
2004/05/10
91
編輯器 (續)
看一看再決定要不要抓其它檔案。
joe 中文使用說明:
http://www.linuxfab.cx/indexColumnData.
php?CID=61&FIRSTHIT=1
2004/05/10
92
編輯器 (續)
pico 這個不必中文說明了吧!:-) 這是郵件
新聞軟體 pine 所附的編輯器,您系統上不
一定會有。
2004/05/10
93
bash
bash
這是 GNU/Linux 常用到的 shell,簡單的說,您一進入 GNU/Linux,
這個 shell 就負責您和作業系統的溝通的工作,就像 DOS 裡頭的
command.com 一樣。光這一個 shell 要詳細的話,就可以出一本書,
您一有空的話,不妨 man bash 或 info bash,熟悉一下,一些有關
shell 的變數設定,裡頭都會有詳細的交待。
bash 的相關問題可以先參考 FAQ:
ftp://ftp.cwru.edu/pub/bash/FAQ
深入一點的文件:
http://www.tldp.org/LDP/abs/html/
學 bash,這個 abs(Advanced Bash-Scripting) guide 文件很值得研
究,有相當多的實例供參考,在作者的網頁有 tarball 可以下載。
2004/05/10
94
GNU/Linux 系統的控制室
要瞭解整個 GNU/Linux 系統運作的機制,最好的方法就
是熟悉 /etc 7 這個目錄下的各種檔案在做些什麼事情。
在這個目錄下的檔案是一些進入系統就要執行的 script
及整個系統的初始設定檔。這些檔案相當多,而且需要
shell script(man bash) 的基礎知識,剛開始看可能會搞
得滿面豆花,沒關係,不要急,慢慢來會比較快!:-)
如果使用的是 GUI 介面,那可以叫出 gnome-helpbrowser 或 khelpcenter (舊版為 kdehelp),可直接叫出
然後由選單來選,或加參數,來看一些系統上就有的說
明文件,例如叫出 bash 的 man/info:
gnome-help-browser man:bash
2004/05/10
95
gnome-help-browser info:bash
khelpcenter man:bash
khelpcenter info:bash
由於 GNOME/KDE 環境並沒有 man/info pages 的說明
文件,因此要使用這兩個工具來叫用他們的說明文件,
而這兩個工具也是可以解讀 man/info pages 格式,使用
上相當方便。
man, info, more, less 都會有搜尋功能,按個 / 然後輸入
要找的字串,再按 Enter 即可,按 n(next) 會繼續找,大
寫的 N 則是往回(上)找,按 q(quit) 離開。
2004/05/10
96
2004/05/10
97
GNU/Linux 上有沒有 ``窗'' 呢?
當然有啦!而且還是 ``多窗'' 的環境,那就
是 X Window System(可簡稱為 X 或 X11),
雖然移植到 PC 的是稱為 XFree86 但通常
稱為 X 應該也是可以。這是 Unix-like 系統
的『標準』GUI,任何一種的 Un*x 系統應
該都會有 X Window System。
2004/05/10
98
GNU/Linux 上有沒有 ``窗'' 呢?
為什麼說是 ``多窗'' 呢?因為 X 只是規定了一些基本規格,
彈性相當大,細節部份就由程式設計師去自由發揮,因
此就有許許多多的 WM(Window Manager) 出現,您有相
當多的選擇,不僅如此,目前大部份的 WM 皆支援
theme,所呈現出來的不同風貌會讓您嘆為觀止。
在這個地方就比 Windows 系統多了許多變化,不僅僅是
look & feel 的不同,連操作的方式也不同喔!較常用的
有 KDE 環境,GNOME 環境,afterstep、
WindowMaker、icewm、fvwm ... 等等。KDE, GNOME
不純是 WM,他是 GUI 的整合環境。
2004/05/10
99
GNU/Linux 上有沒有 ``窗'' 呢?
X 是透過 X protocol 採主從(client-server)方式的設計,相當適合網
路上的使用。尤其是一些很貴的商業軟體或是一些體積相當龐大的
軟體,只要一檯高檔的機器安裝即可,其它人可以透過網路去使用,
並把結果傳回您眼前的電腦螢幕。而且,這是 portable 的設計,和
您使用的作業平檯無關,也就是說您可以由其它作業系統連上這檯
機器來執行機器上的 X 應用程式。當然,本地端的作業系統要安裝
自己的 X server。遠端的機器就是 client (指上頭的應用軟體)。而且,
基本前提是網路要暢通。Linux/FreeBSD、Windows、OS/2、MSDOS 系統都有 X server 可以安裝。
另外,提醒您,GNU/Linux 是一套獨立的作業系統,而 XFree86 只
是其上的一套應用軟體,希望別誤會了!有許多朋友,因為這樣的
誤解,以致於和 Windows 系統做不適當的比較,這是不公平的。
2004/05/10
100
GNU/Linux 上有沒有 ``窗'' 呢?
各種 WM 網站,可先去觀光一下:
http://www.kde.org/ (KDE 整合環境)
http://gnome.org/ (GNOME 整合環境)
http://www.fvwm.org/ (老字號的 WM,特點是:快、省
記憶體)
http://blackbox.wiw.org/ (後起之秀,短小精悍,不失漂
亮)
http://www.windowmaker.org/ (wmaker 有 NeXT 的影子)
http://www.enlightenment.org/pages/main.html (最華麗
的 WM)
http://www.icewm.org/ (實用的 WM,麻雀雖小,五臟俱
全)
http://www.afterstep.org/ (另一個 NeXT 代表)
http://linux.nctu.edu.tw/web/moto/screenshots/screensh
ots_index.html 8
2004/05/10
101
我能在 GNU/Linux 上做什麼事情?
這就說不完了,anything you want! 除了日常的
文書處理作業,上上網,收發 email、打 BB 外,
GNU/Linux 還是程式設計者的天堂,除了一些特
殊的 C# 語言外,大概您找得到的程式語言的編
譯、組譯、解譯器,在 GNU/Linux 上都找得到,
而且 99.9% 都是 free 9 的。
當然 GNU/Linux 的母語是 C,如果您懂 C 的話,
使用 GNU/Linux 會愉快得多,因為 GNU/Linux
裡頭的程式,99.9% 其程式碼都是公開的!不懂
C 但懂一點 shell script 的話,也是可以玩得不亦
樂乎!總之,視您的用途而定。
2004/05/10
102
GNU/Linux 安裝好,大概一般常用的伺服器(server)都已安裝上去,
剩下的是一些微調設定的工作,如 ftp, email, WWW... 等等。基本上,
GNU/Linux 目前還是傾向定位於網路作業系統,雖然桌上環境正漸
漸成熟,但 GNU/Linux 的重點,還是在網路,可以預見的是,漸漸
走向 server + desktop 的趨勢,雖然還有一段路要走...
像目前非常流行的 WWW server,在 GNU/Linux 裡頭有 Apache10
+ PHP11 + *SQL12 的結合,成本低,相當有威力,這裡有現成的
例子:
http://www.linuxfab.cx/ (商用)
http://www.softwareliberty.org/ (非商用) 更高級的運用,如 google
搜尋引擎,以數千檯的 GNU/Linux 機器組成,這已超出我能力範圍
了,有待各位去發掘。總之,東西是死的,人是活的...
2004/05/10
103
Mouse vs. Keyboard
怪怪,怎麼談到這個問題呢?由於 Un*x 系統基
本上是一群工具的結合,這些工具組合起來威力
驚人,但同時也會嚇壞不少初學者(因為永遠搞
不清楚有多少指令可用,也永遠搞不清楚要用到
的指令有多少參數)。舉個例子:下面會提到的
ls 指令,主要是來觀察目錄內的檔案的,但同時
也有相對的圖形化(GUI)的檔案管理程式(file
manager),就像您在 Windows 中用的「檔案總
管」(explorer)一樣。那到底要用哪一種工具呢?
2004/05/10
104
Mouse vs. Keyboard (cont.)
GUI 的 file manager 表面上看是比較方便,但效
率卻不怎麼樣,甚至會佔不少記憶體,另外有一
個很重大的缺點是,沒辨法很方便的放進您所寫
的 script 6 中。其次,沒人敢擔保自己的系統不
出毛病,出了毛病恐怕就只能用軟碟來開機,這
時,可沒有 GUI 工具給您用囉!另外,這些指
令的參數相當多,可以做很精細的微調工作,達
到您所想要的效果,這是 GUI 的東東不容易完
整做到的,縱使做到了,大概選單會比指令的參
數更複雜。
2004/05/10
105
Mouse vs. Keyboard (cont.)
其實 GUI 的檔案管理程式只是整合了一些
常用的系統上工具方便使用者使用而已。
這裡可不是在貶低 GUI 的工具,而是說明
看場合來選擇適合的工具將會增加您的工
作效率。當然,有時候您是別無選擇啦!:)
2004/05/10
106
Mouse vs. Keyboard (cont.)
Un*x 是多人多工的作業系統,縱使是家裡個人
使用,還是一個多人多工的環境,因此基本上,
您本人就是一位系統管理者,這和您以前使用的
windows, OS/2 系統是不一樣的,因此一些系統
管理者需要做的事情,您多少都得懂一點才能善
用 GNU/Linux 系統。尤其目前的 Linux +
XFree86 尚無法做到全面 GUI 的情形下,您蹲
些馬步是必要的,縱使以後全面 GUI 了,還是
建議您多蹲些馬步,一定會用得著的。
2004/05/10
107
Mouse vs. Keyboard (cont.)
這裡所指的馬步,就是下面會談到的命令列
(command line)指令。因此,老手一般喜歡使用
command line 的東東,如果您顧及效率,想對
系統結構多些瞭解,而且以後也想寫個簡單的
script 程式玩玩的話,請多多留意 /sbin,
/usr/sbin, /bin, /usr/bin 裡頭有些什麼工具可用
(可能會讓您玩好久喔!)。命令列的指令,在
X 下也很常用到,可以開個模擬終端機。例如
rxvt/xterm 來使用。
2004/05/10
108
網路工具
一些網路偵錯指令
遠端連線使用指令
ping, ifconfig, ifup, ifdown, netstat, route,
traceroute, host, dig, nslookup
telnet, ssh, ftp, ncftp, lftp, wget
文字界面網頁瀏覽
2004/05/10
lynx, links
109
RedHat Linux 網路設定
修改主機名稱與Gateway等設定
修改網路卡設定
/etc/sysconfig/network
/etc/sysconfig/network-script/ifcfg-eth0
修改DNS與Hosts設定
2004/05/10
/etc/resolv.conf
/etc/hosts
110
DNS Server
何謂DNS?
Domain Name Server
如何作業
正查
反查
2004/05/10
給domain name, 回應ip
給ip, 回應domain name
111
DNS Server查詢方式
2004/05/10
112
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/*
2004/05/10
113
設定 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; };
};
2004/05/10
114
Master選項:
zone “example.com” {
type
master;
file
“db.example.com”;
};
Slave選項:
2004/05/10
zone “example.com” {
type
slave;
masters
{ 192.100.30.1; };
file
“db.example.com”;
};
115
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”;
};
2004/05/10
116
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
)
2004/05/10
117
NS (name server)
每一個master 及 slave DNS 都要有一個
NS 紀錄
例:
example.com.
IN NS ns.redhat.com.
ns.example.com. IN A 192.168.30.1
2004/05/10
118
主要紀錄的型式
A紀錄對映hostname到IP位址
mail.example.com. IN A 192.168.30.3
www.example.com. IN A 192.168.30.4
CNAME定義位址的別名
mx
www2
IN CNAME mail
IN CNAME www.redhat.com.
PTR紀錄IP位址對映到hostname
3
IN PTR mail.redhat.com.
2004/05/10
119
MX 紀錄
MX 結合 domain name來處理其電子郵件
example.com. IN MX 5 mail.example.com
exmaple.com. IN MX 10 mail2.example.com
2004/05/10
120
實做
修改 /etc/named.conf
2004/05/10
設定讀取目錄 /var/named
建立一個 root 的 zone 設定
建立一個 example.com 的 zone 設定
建立一個 192.168.30 的反查 zone 設定
121
實做
建立 example.com.zone 檔
設定 ns server 為 192.168.30.1
設定 A 記錄
設定 MX 記錄
設定 CNAME 記錄
建立 example.com.rev 檔
2004/05/10
設定 PTR 紀錄
122
DNS Server 啟動與停止
/etc/init.d/named start 啟動
tail –f /var/log/messages 查看 log 紀錄
/etc/init.d/named stop 停止
killall named or kill -9 PID
2004/05/10
123
DNS Server 驗證
nslookup www.example.com
nslookup 192.168.30.3
dig exmaple.com mx
host www.exmaple.com
2004/05/10
124
DNS Server Lab
請建立一個以 exmaple.com 為網域且可供
正查與反查的DNS Server
2004/05/10
125
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
2004/05/10
name = ns.example.com.
126
DHCP server 種類
DHCP 有三種方式, 靜態/自動/動態
靜態方式:手動指定用戶端固定IP
自動方式:自動指定IP位址
2004/05/10
管理者在DHCP Server輸入用戶端 IP 與硬體位址
通常用在需要固定IP的各種伺服器主機
DHCP Server由預定的IP範圍, 自動分配給用戶端,
且無限期使用
IP範圍必需多於用戶端電腦數量
會記錄IP與MAC位址的對應資訊, 所以用戶端每次
開機後都分配到相同IP
127
DHCP Server 種類
動態方式:動態分配IP位址
2004/05/10
IP範圍少於用戶端電腦數量
動態分配IP時設定租用期限, 用戶端
電腦於租用期限到期或關機時, 收回
IP供其他用戶端電腦使用
128
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
2004/05/10
129
DHCP 租用流程
第二種為, 更新租用流程(在租用期達二分之一後
開始動作)
(1)DHCP Client 向 DHCP Server 請求延常租用位址
時間
DHCP Client => DHCP_REQUEST => DHCP Server
(2)DHCP Server 收到後, 回覆 DCHP Client 認可繼續
租用
DHCP Server => DHCP_ACK => DHCP Client
2004/05/10
130
DHCP 租用流程
若在這期中 DHCP Server 沒有給 DHCP
Client 任何回應, 當 DHCP Client 達租用期
限時, 就會停止使用, 再回到以第一種方式
申請租用新的IP位址.
2004/05/10
131
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
相關檔案:
2004/05/10
/etc/sysconfig/dhcpd
/var/lib/dhcp/dhcpd.leases
132
dhcp.conf
整體設定(Global):裡面含有租約期限、還有 DNS IP 與
router 的設定
動態 IP 設定:使用 subnet 的項目與 range 的參數來設
定要分配出去的 IP
靜態 IP 設定:使用 host 這個項目段,配合 MAC 來設定
『#』為註解符號;
除了括號那一行之外,其他的每一行後面都要以『 ; 』做
為結尾
2004/05/10
133
dhcp.conf Example
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;
}
2004/05/10
134
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 秒
2004/05/10
135
DHCP Server 啟動 與 除錯
/etc/init.d/dhcpd start
tail -f /var/log/messages
2004/05/10
136
DHCP Client 設定
將 Client 端的TCP/IP設定改為自動取得IP
Windows 驗證
Ipconfig /all
winipcfg
Linux 驗證
2004/05/10
Ifconfig -a
137
DHCP Server Lab
設定動態 IP 範圍
192.168.30.100~192.168.30.200
設定一台主機名稱為 server
2004/05/10
固定IP為192.168.30.90
網卡Mac Address為 00:40:95:30:43:B4
廣播位址為 192.168.30.255
路由位址為 192.168.30.254
138
FTP server
vsFTPD (Very Secure FTP Daemon)
套件:vsftpd-1.1.3-8.i386.rpm
TCP 20傳資料
TCP 21傳輸流程的控制
兩種主要身份使用
2004/05/10
anonymous
real user
139
vsFTPD 設定檔
/etc/vsftpd.ftpusers
/etc/hosts.deny
限制登入的使用者
限制登入的網域
/etc/vsftpd/vsftpd.conf
2004/05/10
主要設定檔
140
vsFTPD 啟動與驗證
# /etc/init.d/vsftpd start
啟動vsftpd
# lftp localhost
# ncftp localhost
2004/05/10
141
FTP Server Lab
請用 vsFTPD 架設一個 FTP Server
2004/05/10
設定歡迎訊息 banner_file
讓匿名的使用者可以上傳檔案
142
WWW Server
套件: httpd { , -devel, -manual }
服務名稱:httpd
啟動的script : httpd
執行埠:80/tcp (http), 443/tcp (https)
設定檔:/etc/httpd/*, /var/www/*
相關: redhat-config-httpd,mod_ssl,以
及其它
2004/05/10
143
WWW Server 設定檔
設定檔位置
/etc/httpd/conf/httpd.conf
模組位置
/etc/httpd/conf.d/*
網頁文件預設放置目錄
/var/www/html/
2004/05/10
144
httpd.conf
指定給使用者的目錄
UserDir
public_html
MIME 型態設定
AddType application/x-httpd-php
AddType text/html
.htm
.phtml
宣告index的頁面
DirectoryIndex
2004/05/10
index.html default.html
145
httpd.conf
允許連結的設定
<Directory /var/www/html/internal>
order
allow, deny
allow from
.example.com
</Directory>
使用 .htaccess 檔案
#sample authentication
.htaccess file
AuthName “Jack’s home “
AuthType
basic
AuthUserFile /home/jack
require user jack
2004/05/10
146
Virtual Host 虛擬主機
在同一台電腦下, 要建立虛擬主機, 可採用
IP/Name/Port 三種方法建立
2004/05/10
(1)IP Base:
使用IP地址將網頁請求對映到正確的頁面目錄, 因此
每一個虛擬主機都需要一個IP位址
(2)Name Base:
只有單一IP位址, 但要用不同的網域名稱來呈現不同
的網頁內容時, 就是以 Name Base 的方式來將網頁對
映到正確的頁面, 但該方式無法使用 SSL 功能, 且需
要支援HTTP/1.1的瀏覽器才可以使用.
(3)Port Base:
利用不同的 port 設定, 建立起多個虛擬主機.
147
SSL 連線步驟
1.
2.
3.
4.
5.
6.
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 建立起加密通道
2004/05/10
148
WWW Server 啟動與除錯
/etc/init.d/httpd start
tail –f /var/log/httpd/access_log
tail –f /var/log/httpd/error_log
2004/05/10
149
WWW Server Lab
請建立一個以Name Base的虛擬主機
www.example.com
www2.example.com
分別可以看到不同的網頁
2004/05/10
150
Mail Server
MTA
MDA
sendmail,postfix,qmail,exim
procmail
MUA
2004/05/10
Outlook Express
Becky
151
Mail Server 路由
2004/05/10
152
Mail Server
套件選擇 - Sendmail
Sendmail 的特色:
2004/05/10
允許各種不同的emial位址路徑
支援虛擬的domains及users
允許偽裝的使用者及機器
提供自動重試失敗傳送郵件的重傳及其它一些
情況
153
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
2004/05/10
154
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 裡
2004/05/10
155
sendmail.cf
主要設定檔
sendmail.cf
2004/05/10
包含domain的別名(alias)、標頭、傳送規則等
編輯此檔時請小心並仔細地閱讀說明
156
/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
2004/05/10
157
/etc/mail/access
RELAY
REJECT
拒絕傳送
DISCARD
開放中繼功能
直接丟棄
修改後記得在 /etc/mail 下執行 make
2004/05/10
158
/etc/aliase
設定帳號別名
MAILER-DAEMON: postmaster
postmaster:
root
root:
[email protected]
sales:
jack,john,mary
# newaliases
2004/05/10
159
查詢郵件佇列與 log
# mailq
# tail –f /var/log/maillog
2004/05/10
160
sendmail 啟動與測試
# /etc/init.d/sendmail start
# telnet localhost 25
mail from: [email protected]
rcpt to: [email protected]
data
This is a test Mail
.
quit
2004/05/10
161
Mail Server Lab
請用 sendmail 設定好一台可開放
192.168.30.1 向您的 Server 代為轉信的功
能.
2004/05/10
162
Proxy Server
什麼是代理伺服器?
Proxy 會幫 Client 端的用戶去向目的地取得用
戶端所需要的資料
是一個代理人的角色
2004/05/10
163
Proxy Server
2004/05/10
164
Proxy Server 運作方式
2004/05/10
165
Proxy Server 優缺點
優點
快速的存取動作
降低網路的負荷
資料分流
提供防火牆內部的電腦連上 Internet
多層次的管道 ( 上層代理伺服器 )
缺點
容易為 Intranet 的內部人員濫用
需要較高超的設定技巧與除錯程序
可能會取得舊的錯誤資料
2004/05/10
166
上層Proxy Server
SeedNet 的代理伺服器
(http://service.seed.net.tw/dial/server.sht
ml)
Hinet 的代理伺服器
(http://www.hinet.net/support/new_adsl04.
htm)
2004/05/10
167
硬體要求與最佳硬體配置方式
CPU 最好能夠 P III 550 以上等級
RAM 最好能夠大於 512 MB
Hard Disk 最好能用 SCSI 介面的
網路卡與網路周邊最好使用 GBytes 的網
路卡
2004/05/10
168
Proxy Server套件-squid
安裝Proxy套件 – squid-2.5.STABLE12.i386.rpm
目錄位置:/etc/squid
設定檔:/etc/squid/squid.conf
紀錄檔:/var/log/squid/access.log
/var/log/squid/cache.log
/var/log/squid/store.log
2004/05/10
169
squid.conf
http_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
2004/05/10
170
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
2004/05/10
171
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
快取儲存記錄檔的名稱及所在目錄
2004/05/10
172
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出問題時要通知的管理者
2004/05/10
173
acl的用法
<acl> <acl名稱> <acl類型> <設定的內容>
acl類型
以來源端:src,srcdomain
以目地端:dst,dstdomain
以正規表式法:url_regex [-i] ^http://
urlpath_regex [-i] \.gif$
設定的內容
IP or Domain or String
acl example dstdomain .com
2004/05/10
174
http_access 用法
設定允許存取 squid Server 的列表
以 acl 的定義來做管制
http_access allow example
#設定只允許example的acl訂義存取
http_access deny all
#如果要開放的話,改成 allow all
2004/05/10
175
cache_peer 用法
<cache_peer> <主機名稱> <類別> <http_port> <icp_port> <其他參數>
類別:parent(上層),sibling(同一層)
http_port/icp_port:3128/3130
其他參數:
proxy-only,weight=n,no-query,default,no-netdbexchange,no-digest
到處向其它proxy server請求會消耗太多網路資源,所以
請勿設太多parent和sibling server.
cache_peer proxy.hinet.net parent 3128 3130 proxy-only
2004/05/10
176
cache_peer_access 用法
<cache_peer_access> <上層 Proxy> <allow|deny> <acl名稱>
cache_peer_access proxy.hinet.net allow example
2004/05/10
177
不要進行cache的設定值
只要網址列出 cgi 字樣都不做 cache
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?
no_cache deny QUERY
2004/05/10
178
與時間相關的設定值
<refresh_pattern>
<regex>
<最小時間> <百分比> <最大時間>
refresh_pattern ^ftp:
refresh_pattern ^gopher:
refresh_pattern .
2004/05/10
1440
1440
0
20%
0%
20%
10080
1440
4320
179
與時間相關的設定值
connect_timeout 2 minutes
# 連線的timeout時間
peer_connect_timeout 30 seconds
# 連線到上層proxy的timeout時間
request_timeout 5 minutes
# 連上後,要求的 timeout 時間
persistent_request_timeout 1 minutes
# 連上後, 連續要求 timeout 時間
2004/05/10
180
額外的功能參數
與 FTP 有關的設定項目,主要是針對被動式連
線
ftp_user Squid@
ftp_passive on
主要與 DNS 的設定值有關,如果在高負載的
Proxy 環境下,可以考慮將 dns_children 提高到
20 左右,這個值最大為 32
dns_timeout 1 minutes
hosts_file /etc/hosts
2004/05/10
181
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 --toports 3128
2004/05/10
182
啟動 squid server
/etc/init.d/squid start
tail –f /var/log/squid/access.log
2004/05/10
183
Proxy Client端設定
在Browser的設定選項中找出代理伺服器,
給予設定
2004/05/10
184
末端資料分析 pwebstat
http://martin.gleeson.com/pwebstats/instal
lation.html
可使用該軟體來做log分析
2004/05/10
185
2004/05/10
186
Proxy Server Lab
兩個人為一組,設定一台簡易的Proxy
Server
使用 client 做 Internet 連線,並查看
Proxy Server 是否有代為抓取資料
2004/05/10
187
討論時間
安裝/設定/調校
觀察紀錄檔
有任何問題歡迎提問
第二天課程結束
明天將講解系統維護與管理/網路安全/線上
套件更新
2004/05/10
188
系統維護與管理
定時備份資料
檢查系統紀錄檔
調校系統狀態
注意系統安全
2004/05/10
189
備份資料
確定備份資料的來源與目地
使用 tar 搭配 gzip 或 cpio 來完成備份的工
作
運用 script 來將資料做備份與紀錄
2004/05/10
190
網路安全
Cracker 常見的入侵技術:
2004/05/10
使用工具程式入侵你的主機
蠕蟲或木馬程式 ( Trojan horse )
DoS 攻擊法 ( Denial of Service )
IP 欺騙
Port scan
191
網路安全
主機維護的幾個重要事項
關閉幾個不安全的服務
升級幾個可能有問題的套件
架設好最起碼的安全防護--防火牆—
2004/05/10
iptables
http://projectfiles.com/firewall 套件
192
網路安全
移除不必要的服務
使用以下工具檢查 port
netstat
nmap
使用 ssh 做主機與主機的連線
2004/05/10
ssh
putty
193
線上套件更新
RedHat 套件更新
up2date
中央研究院 RedHat update Mirror
ftp://linux.sinica.edu.tw/redhat/updates
2004/05/10
194