轉Linus學習筆記

第1章 Linux安裝及基本命令
  1、Linux的起源與發展
   Linux內核項目是由芬蘭赫爾辛基大學的Linus Torvalds創建的
  1991年10月,Linux第一個公開版0.02版發佈
  1994年3月,Linux 1.0版發佈
  Linus的標誌是可愛的企鵝,取自芬蘭的吉祥物
  2、開源軟件的定義及許可協議
  GPL(GNU General Public License)
   GPL許可協議的主要目標是保證軟件對所有的用戶都是自由的
  LGPL(Lesser General Public License)
   LGPL相對於GPL的條款更加寬鬆,爲使用Linux平臺開發商業軟件提供了更多的空間
  OSD(The Open Source Definition)
   開放源代碼軟件的定義文本可以從官方網站查閱
  3、Linux在企業中的應用
  Linux作爲Internet網絡服務器的應用
   提供Web、DNS、FTP和E-mail服務
  Linux作爲中小企業內部服務器的應用
   提供網絡代理、網絡防火牆、DHCP和文件共享服務
  Linux作爲桌面環境的應用
   可選擇使用KDE、GNOME等多種桌面環境
  Linux作爲軟件開發環境的應用
   支持C、C++、PERL、PHP、JAVA和Python語言的開發
  4、Linux內核版本
  內核版本是由Linux內核社區統一進行發佈的
   XX.YY.ZZ
   XX:表示主版本號;YY:表示次版本號;ZZ表示末版本號
   2.5.4 :5是奇數,表示開發版本
   2.4.23:4是偶數,表示穩定版本
  階段總結
   開放源代碼軟件通常採用GPL或LGPL許可協議進行發佈
   Linux操作系統是開源軟件的成功代表
   Linux內核採用開發版本和穩定版本兩個系列進行版本發佈
   Linux存在衆多的發行版本,可以滿足不同類型的用戶需求
   Red Hat Linux系統發行版是Linux的事實標準,可以很好的滿足企業應用的需要
  
  6、硬盤分區的設備文件
  硬盤分區的文件名錶示 /dev/hda5
  dev:表示所有硬件設備文件的目錄
  hd:表示硬件設備的代號,hd代表IDE設備,sd代表SCSI設備
  a:表示同類型設備的編號,a代表第一個硬盤,b代表第二個硬盤,類推
  5:表示分區號
  7、Linux使用的文件系統類型
  • EXT2和EXT3都是Linux操作系統默認使用的文件系統類型
   EXT3屬於日誌文件系統,是EXT2文件系統的升級版
  • swap類型的文件系統在Linux系統的交換分區中使用
  • Linux支持對FAT格式文件系統(包括FAT16和FAT32)的讀寫
  • Linux支持對NTFS文件系統的讀取,默認不支持對NTFS文件系統的寫入
  8、目錄層次結構
  • Linux系統使用樹型目錄結構,在整個系統中只存在一個根目錄(文件系統)
  • Linux系統中總是將文件系統掛載到樹型目錄結構中的某個目錄節點中使用
  9、Linux的安裝方式
  安裝程序的引導方式
   RHEL4支持從光盤和USB存儲設備引導安裝程序
  安裝程序讀取軟件包的方式
   從光盤讀取軟件包進行安裝是RHEL4提供的缺省安裝方式
   安裝程序可讀取硬盤中保存的安裝光盤鏡像文件(ISO文件)進行安裝
   安裝程序可從NFS、FTP和HTTP網絡服務器中讀取文件進行安裝
  階段總結
   Linux系統安裝前需要進行硬盤中數據的備份
   主機硬盤中應爲Linux系統預留空間和分區
   Linux系統需要至少一個根分區和一個交換分區
   根分區文件系統默認採用EXT3格式
   RHEL4可以使用光盤或USB設備引導安裝程序
   安裝程序可以從光盤、硬盤和網絡服務器讀取軟件安裝包
  
  shutdown命令 - k 並不真正關機,而只是發出警告信息給所有用戶。
  - r 關機後立即重新啓動。
  - h 關機後不重新啓動。
  - f 快速關機,重啓動時跳過fsck。
  - n 快速關機,不經過init程序。
  - c 取消一個已經運行的shutdown
  
  用vi做虛擬網卡
  1. cd /etc/sysconfig/network-scripts/
  2. cp ifcfg-eth0 ifcfg-eth0:0 複製虛擬網卡配置文件
  3. vi ifcfg-eth0:0 配置虛擬網卡
   修改DEVICE=eth0:0 IP地址
  4. Ipup eth0:0 啓用虛擬網卡
  
  
  
  
  第2章 常用命令及帳戶管理
  1、Linux命令格式
  Linux命令的組成部分:命令字、命令選項、命令參數
  command [option] [arguments]
  command:執行的命令
  option:命令選項,說明對命令的要求
  arguments:命令的參數,描述命令作用的對象
  []:表示選項或參數可有可無,即參數並非必須
  2、命令中的其他組成
  • 命令提示符表示命令輸入的狀態
   管理員root用戶的提示符“#”
   [root@localhost ~]#
   普通用戶提示符“$”
   [teacher@localhost ~]$
  • 命令的各組成部分之間用空格分隔
  • 命令的輸入以回車鍵結束
  3、獲得命令幫助
  • help命令:$ help pwd
  • “--help”命令選項:$ touch --help
  • 使用man命令閱讀手冊頁:$ man ls
  • 使用info命令閱讀信息頁:$ info ls
  4、文件、目錄操作命令
  • 目錄操作命令: ls pwd cd mkdir rmdir
  • 文件操作命令: file touch cp rm mv find
  • 文本文件查看命令 :cat more less
  head tail
  5、目錄操作命令
  命令 功能
  ls 顯示指定目錄和文件的信息
  pwd 顯示當前目錄名稱
  cd 進入指定的目錄
  mkdir 創建指定名稱的目錄
  rmdir 刪除指定名稱的目錄
  6、路徑的表示
  • 相對路徑是以“.”或“..”開始的目錄路徑表示形式
  cd ./test
  ls ../bin
  • 絕對路徑是以“/”開始的路徑表示形式
  ls /
  cd /home
  7、文件操作命令
  命令 功能
  file 顯示指定文件的類型
  touch 建立指定名稱的文件或更新文件時間
  cp 複製文件或目錄
  rm 刪除文件或目錄
  mv 移動文件或目錄,文件或目錄重命名
  find 在指定目錄查找符合條件的文件
  文件命令實例
  • 檢測文件類型:$ file /etc/passwd
  • 建立空文件:$ touch tfile
  • 文件查找
   按文件名進行查找:$ find . -name file*
   按文件屬主進行查找:$ find . -user teacher
  • 複製和刪除文件:$ cp filea fileb
  $ rm filea
  • 文件移動與重命名:$ mv filea fileb
  $ mv filea dira/
  8、文本文件查看命令
  命令 功能
  cat 顯示文本文件內容
  more 分頁顯示文本文件內容
  less 分頁顯示文本文件內容,並可方便反覆瀏覽
  head 顯示文件首部內容
  tail 顯示文件尾部內容
  文本查看實例
  • 顯示文本:$ cat /etc/passwd
  • 分頁顯示文本:$ more /etc/passwd
  • 分頁文本瀏覽:$ less /etc/passwd
  • 顯示文件首:$ head -5 /etc/passwd
  • 顯示文件尾:$ tail -5 /etc/passwd
  階段總結
   Linux中的基本命令包括文件操作命令、目錄操作命令、文件查看命令等幾類
   文件操作命令完成對文件的建立、複製、刪除、移動等功能
   目錄操作命令完成對目錄的建立、複製、刪除、移動等功能
   文本查看命令完成對文本文件內容的瀏覽、局部瀏覽或分頁瀏覽等功能
  9、光盤的基本使用
  • 光盤驅動器設備文件 :/dev/cdrom
  • 掛載光盤使用mount命令:# mount -t iso9660 /dev/cdrom /mnt/cdrom/
  • 光盤內容的讀取
   使用命令訪問光盤掛載點目錄:# ls /mnt/cdrom/
  • 卸載光盤使用umount命令:# umount /mnt/cdrom
  10、光盤驅動器托盤的彈出與收回
  • 彈出光盤驅動器托盤:# eject
  • 收回光盤驅動器托盤:# eject -t
  11、光盤鏡像文件操作
  • 使用cp命令製作光盤鏡像文件:# cp /dev/cdrom mydatacd.iso
  • 使用mount命令掛載光盤鏡像文件:
  # mount -o loop -t iso9660 mydatacd.iso /mnt/cdrom/
  • 通過掛載點目錄訪問ISO鏡像文件的內容:# ls /mnt/cdrom/
  • 使用umount命令卸載光盤鏡像文件:# umount /mnt/cdrom/
  12、U盤的使用方法
  • 識別USB存儲設備
  包括USB硬盤、U盤、MP3播放器等
  /dev/sda /dev/sdb ……
  # fdisk -l
  • 使用mount命令掛載U盤:# mount -t vfat /dev/sda1 /mnt/
  • 通過掛載點目錄訪問U盤的內容:# ls /mnt
  • 使用umount命令卸載U盤:# umount /mnt
  13、用戶和組管理
  • 用戶帳號管理
  • 用戶組帳號管理
  • 文件權限設置
  • 使用圖形界面程序管理用戶和組帳號
  14、用戶管理命令
  命令 功能
  adduser 添加用戶帳號
  passwd 設置(更改)用戶口令
  userdel 刪除用戶帳號(及宿主目錄)
  usermod 設置用戶屬性
  15、用戶帳號管理
  • 建立用戶帳號:# adduser st01
  • 設置用戶口令:# passwd st01
  • 設置用戶帳號屬性
   鎖定用戶帳號禁止登錄:# usermod -L st01
  • 刪除用戶帳號:# userdel -r st01
  16、用戶帳號相關文件和目錄
  • 用戶帳號信息保存在passwd文件中:/etc/passwd
  • 用戶的加密口令保存在shadow文件中:/etc/shadow
  • 用戶的宿主目錄是home目錄中與用戶名稱相同的目錄:/home/teacher
  • 用戶的初始配置文件來在skel目錄(配置模版):/etc/skel
  階段總結
   用戶帳號信息保存在passwd文件中
   用戶口令信息保存在shadow文件中
   passwd和shadow文件保存在/etc目錄中
   adduser命令用於添加用戶帳號文件
   passwd命令用於設置用戶口令
   usermod命令用於設置用戶屬性
   userdel命令用於刪除用戶帳號
   目錄/etc/skel中保存了建立用戶帳號的模版文件
  
  17、用戶組管理命令及文件
  命令 功能
  groupadd 添加指定名稱的用戶組帳號
  groupdel 刪除指定名稱的用戶組帳號
  
  文件 功能
  /etc/group 保存用戶組帳號信息
  18、用戶組帳號管理
  • 添加用戶組:# groupadd class1
  • 在建立用戶時指定用戶組 :# adduser -g class1 st03
  • 更改用戶的組帳號 :# usermod -g class1 st01
  • 刪除用戶組:# groupdel class1
  19、查看文件的權限屬性
  文件權限(-rw--r--r--)
  權限項 讀 寫 執行 讀 寫 執行 讀 寫 執行
  字符表示 (r) (w) (x) (r) (w) (x) (r) (w) (x)
  數字表示 4 2 1 4 2 1 4 2 1
  權限分配 文件所有者 文件所屬組用戶 其他用戶
  20、使用chmod命令更改文件屬性
  chmod命令用於更改文件對於某類用戶的操作權限
  文件權限設置實例
  • 使用chmod命令設置文件權限
   查看文件權限:$ ls -l afile
  -rw-rw-r-- 1 st01 class1 0 Apr 3 16:52 afile
   增加文件屬主st01的執行權限(x):$ chmod u+x afile
   去除文件屬組class1的寫權限(w):$ chmod g-w afile
   設置其他用戶的文件權限爲可執行:$ chmod o=x afile
  21、設置文件屬主和屬組
  chown命令用於設置文件的屬主和屬組
  命令格式:chown OWNER[:[GROUP]] FILE...
  設置文件afile的屬主爲用戶st01:# chown st01 afile
  設置文件afile的屬組爲用戶組class1:# chown :class1 afile
  設置文件afile的屬主爲st03,並設置文件的屬組爲class2:# chown st03:class2 afile
  
 
  第3章 文本編輯器
  1、文本編輯器概述
  文本編輯器的作用
   Linux系統中的配置文件以文本文件的形式保存
   Linux管理員需要通過編輯配置文件進行系統管理
  文本編輯器的分類
   行編輯器與全屏幕編輯器
   字符界面編輯器與圖形界面編輯器
  2、Linux中的多種文本編輯器
  vii : Linux學習者需要掌握的第一個文本編輯器
  大多數Linux系統中缺省使用的文本編輯器
  Emacs : 用於編輯程序源代碼文件的文本編輯器
  nano : 在字符界面提供了菜單操作,易用性較好
  gedit : GNOME圖形環境中的文本編輯器
  3、vi編輯器的三種模式
  vi編輯器中有三種狀態模式
   命令模式
   輸入模式
   末行模式
  4、vi編輯器的基本使用
  • vi編輯器的啓動與退出
  • 文件操作
  • 光標移動操作
  • 編輯操作
  • 查找與替換操作
  • vi編輯器的在線幫助
  5、vi編輯器的啓動與退出
  • 直接進入編輯環境 :$ vi
  • 進入編輯環境並打開(新建)文件:$ vi myfile
  • 退出vi編輯環境 (輸入末行命令放棄對文件的修改,並退出編輯器)::q!
  6、文件的打開與讀取操作
  • 打開新文件
  打開新的文件到vi編輯器中::e filename
  打開新的文件到vi編輯器中,並放棄對當前文件的修改::e! filename
  • 讀取文件內容到當前vi編輯器中 ::r filename
  7、文件保存與另存爲
  • 保存文件(保存對vi編輯器中已打開文件的修改)::w
  • 另存爲文件(將vi編輯器中的內容另存爲指定文件名)::w myfile
  8、退出vi編輯器的多種方法
  • 未修改退出(沒有對vi編輯器中打開的文件進行修改,或已對修改進行了保存,直接退出vi編輯器)::q
  • 保存並退出(對vi編輯器中的文件進行保存並退出vi編輯器)::qw
  • 不保存退出(放棄對文件內容的修改,並退出vi編輯器)::q!
  9、光標移動和翻頁操作
  操作類型 光標操作鍵 功能
  光標移動 h 向左移動光標
   l 向右移動光標
   k 向上移動光標
   j 向下移動光標
  翻頁 Ctrl + f 向前翻整頁
   Ctrl + b 向後翻整頁
   Ctrl + d 向前翻半頁
   Ctrl + u 向後翻半頁
  10、行內快速跳轉
  操作鍵 功能
  ^ 將光標快速跳轉到本行的行首字符
  $ 將光標快速跳轉到本行的行尾字符
  w 將光標快速跳轉到當前光標所在位置的後一個單詞的首字母
  b 將光標快速跳轉到當前光標所在位置的前一個單詞的首字母
  e 將光標快速跳轉到當前光標所在位置的後一個單詞的尾字母
  11、文件內行間快速跳轉
  命令 功能
  :set nu 在編輯器中顯示行號
  :set nonu 取消編輯器中的行號顯示
  1G 跳轉到文件的首行
  G 跳轉到文件的末尾行
  #G 跳轉到文件中的第#行
  12、進入輸入模式
  命令 功能
  i 在當前光標處進入插入狀態
  a 在當前光標後進入插入狀態
  A 將光標移動到當前行的行末,並進入插入狀態
  o 在當前行的下面插入新行,光標移動到新行的行首,進入插入狀態
  O 在當前行的上面插入新行,光標移動到新行的行首,進入插入狀態
  cw 刪除當前光標到所在單詞尾部的字符,並進入插入狀態
  c$ 刪除當前光標到行尾的字符,並進入插入狀態
  c^ 命令刪除當前光標之前(不包括光標上的字符)到行首的字符,並進入插入狀態
  13、輸入模式的編輯鍵操作
  按鍵 功能
  方向鍵 進行上下左右方向的光標移動
  Home 快速定位光標到行首
  End 快速定位光標到行尾
  PageUp 進行文本的向上翻頁
  PageDown 進行文本的向下翻頁
  Backspace 刪除光標左側的字符
  Del 刪除光標位置的字符
  14、刪除操作
  命令 功能
  x 刪除光標處的單個字符
  dd 刪除光標所在行
  dw 刪除當前字符到單詞尾(包括空格)的所有字符
  de 刪除當前字符到單詞尾(不包括單詞尾部的空格)的所有字符
  d$ 刪除當前字符到行尾的所有字符
  d^ 刪除當前字符到行首的所有字符
  J 刪除光標所在行行尾的換行符,相當於合併當前行和下一行的內容
  15、撤銷操作
  命令 功能
  u 取消最近一次的操作,並恢復操作結果
  可以多次使用u命令恢復已進行的多步操作
  U 取消對當前行進行的所有操作
  Ctrl + r 對使用u命令撤銷的操作進行恢復
  16、複製與粘貼操作
  命令 功能
  yy 複製當前行整行的內容到vi緩衝區
  yw 複製當前光標到單詞尾字符的內容到vi緩衝區
  y$ 複製當前光標到行尾的內容到vi緩衝區
  y^ 複製當前光標到行首的內容到vi緩衝區
  p 讀取vi緩衝區中的內容,並粘貼到光標當前的位置(不覆蓋文件已有的內容)
  階段總結
   vi編輯器的啓動與退出
   文件操作
   光標移動操作
   vi編輯器的基本編輯操作:從命令模式進入輸入模式的命令、輸入模式中的基本編輯操作、命令模式中的刪除操作、命令模式中的撤銷操作、命令模式中的複製操作、命令模式中的粘貼操作
  
  17、字符串查找操作
  命令 功能
  /word 從上而下在文件中查找字符串“word”
  ?word 從下而上在文件中查找字符串“word”
  n 定位下一個匹配的被查找字符串
  N 定位上一個匹配的被查找字符串
  18、字符串替換操作
  命令 功能
  :s/old/new 將當前行中查找到的第一個字符“old” 串替換爲“new”
  :s/old/new/g 將當前行中查找到的所有字符串“old” 替換爲“new”
  :#,#s/old/new/g 在行號“#,#”範圍內替換所有的字符串“old”爲“new”
  :%s/old/new/g 在整個文件範圍內替換所有的字符串“old”爲“new”
  :s/old/new/c 在替換命令末尾加入c命令,將對每個替換動作提示用戶進行確認
  19、使用vi打開多個文件
  • 在輸入vi命令時使用多個文件名作爲參數:vi file1 file2 file3 ...
  20、vi多文件操作命令
  命令 功能
  :args 顯示多文件信息
  :next 向後切換文件
  :prev 向前切換文件
  :first 定位首文件
  :last 定位尾文件
  Ctrl + ^ 快速切換到編輯器中切換前的文件
  階段總結
   vi編輯器中可同時打開多個文本文件進行編輯
   vi編輯器的編輯區域中只顯示一個文件,其他被打開的文件被放在後臺
   vi中編輯區域的內容可以在多個已打開文件之間進行切換
   vi從一個文件切換到另一個文件時應先保存更改或放棄更改
  
  
  第4章 Shell的使用
  1、 Shell的基本概念:Shell是操作系統與用戶進行交互操作的界面
  2、Shell的發展與分類
  Bsh:在20世紀70年代中期誕生於新澤西的AT&T貝爾實驗室,具有較強的腳本編程功能
  Csh:在20世紀80年代早期誕生於加利福尼亞大學 ,使用C語言的語法,用戶命令交互更加方便
  Ksh:結合了Bsh和Csh兩者的功能優勢,兼有Bsh的語法和Csh的交互特性
  Bash:是Bsh的升級替代品,吸收了Ksh中的諸多優秀特性,Bash是開源軟件
  3、RHEL4中Shell的使用
  RedHat9.0中提供了多種Shell程序可供用戶選擇
  文件Shells中保存了Linux系統中可使用的Shell程序列表 :/etc/shells
  • 在某個Shell程序中可通過執行其他的Shell程序改變用戶的當前Shell
  [teacher@localhost ~]$ bsh
  • 用戶默認Shell的設定
  用戶使用的登錄Shell保存在passwd文件的記錄中:/etc/passwd
  4、Bash的主要功能
  • 命令行編輯功能
  • 命令和文件名補全功能
  • 命令歷史功能
  • 命令別名功能
  • 提供作業控制功能
  • 具有將命令序列定義爲功能鍵的功能
  • 靈活的Shell腳本編程
  7、 Shell變量的分類:環境變量、預定義變量、位置變量、用戶自定義變量(本地變量)
  8、環境變量
  • 使用set命令查看環境變量 :set
  常用環境變量
  USER UID SHELL HOME PWD PATH PS1 PS2
  環境變量配置文件
  /etc/bashrc
  /etc/profile
  ~/.bash_profile
  ~/.bashrc
  9、預定義變量
  變量名 含義
  $# 表示位置參數的數量
  $* 表示所有位置參數的內容
  $? 表示命令執行後返回的狀態,用於檢查上一個命令的執行是否正確;在Linux中,命令退出狀態爲0表示命令正確執行,任何非0值表示命令執行錯誤
  $$ 表示當前進程的進程號
  $! 表示後臺運行的最後一個進程號
  $0 表示當前執行的進程名
  10、用戶自定義變量
  • 自定義變量的設置:$ DAY=sunday
  • 自定義變量的查看與引用 :$ echo $DAY
  • 自定義變量的輸出 :$ export DAY
  • 自定義變量的清除 :$ unset DAY
  11、Bash的命令行編輯功能
  操作鍵 功能
  左右方向鍵 使用左右方向鍵可以使光標在當前命令行中的已有字符間進行任意的移動
  退格鍵 刪除命令行中光標左邊的字符
  Del 刪除當前光標處的字符
  Home 將光標快速移動到命令行的行首
  End 將光標快速移動到命令行的行尾
  Ctrl + u 刪除當前光標到行首的內容
  Ctrl + k 刪除當前光標到行尾的內容
  12、Bash的命令行補全功能
  • 命令補全功能
   使用Tab鍵可在命令查找路徑中查找匹配的命令,並進行命令拼寫的補全
  • 文件補全功能
   使用Tab鍵可對文件和目錄名進行補全
  13、Bash的命令歷史與命令重複
  • 命令歷史功能的使用 :使用上下方向鍵瀏覽已輸入命令(歷史命令)
  • 歷史命令的查看 :$ history
  • 用戶命令歷史保存文件 :~/.bash_history
  • 命令歷史的清除:$ history -c
  14、Bash的命令別名功能
  • 命令別名的顯示 :$ alias
  • 命令別名的定義 :$ alias grep='grep -i'
  • 命令別名的取消 :$ alias grep
  $ unalias -a
  • 系統別名定義文件
  RHEL4系統中爲用戶預定義的命令別名保存在“/etc/profile.d/”目錄的配置文件中
  階段總結
   Shell的發展與類型:Bsh Csh Ksh Bash
   Shell變量類型 :環境變量、預定義變量、位置變量、用戶自定義變量
   Bash的主要功能:命令行編輯、命令補全、命令歷史、命令別名
  
  15、管道與重定向
  • 標準輸入輸出
  • 重定向操作
  • 管道操作
  16、標準輸入輸出
  輸入輸出文件 文件編號 默認設備
  標準輸入 0 鍵盤
  標準輸出 1 顯示器
  標準錯誤輸出 2 顯示器
  17、重定向操作
  類別 操作符 說明
  輸入重定向 < 輸入重定向是將命令中接收輸入的途徑由默認的鍵盤更改(重定向)爲指定的文件
  輸出重定向 > 將命令的執行結果重定向輸出到指定的文件中,命令進行輸出重定向後執行結果將不顯示在屏幕上
   >> 將命令執行的結果重定向並追加到指定文件的末尾保存
  錯誤重定向 2> 清空指定文件的內容,並保存標準錯誤輸出的內容到指定文件中
   2>> 向指定文件中追加命令的錯誤輸出,而不覆蓋文件中的原有內容
  輸出與錯誤組合重定向 &> 將標準輸出與錯誤輸出的內容全部重定向到指定文件
  18、輸出重定向實例
   將標準輸出重定向到文件:$ ls /etc/ > etcdir
   將標準輸出重定向追加到文件:$ ls /etc/sysconfig/ >> etcdir
   將錯誤輸出重定向到文件:$ nocmd 2> errfile
   將標準輸出和錯誤輸出重定向到文件:$ ls afile bfile &> errfile
  19、管道的使用
  • 管道操作符:|
  • “|”符用於連接左右兩個命令,將“|”左邊的命令執行結果(輸出)作爲“|”右邊命令的輸入 :cmd1 | cmd2
  • 在同一條命令中可以使用多個“|”符連接多條命令 :cmd1 | cmd2 | ... | cmdn
  20、Shell腳本的概念
  • Shell腳本程序是Shell命令語句的集合,用於實現特定的功能;
  • Shell腳本程序保存在文本文件中,可以使用文本處理程序進行閱讀和編輯;
  • Shell腳本程序是由Shell環境解釋執行的,不需要在執行前進行編譯;
  • 執行Shell程序時,Shell腳本文件需要具有可執行(x)的屬性
  21、基本腳本編程
  • 使用文本編輯器(vi)建立Shell腳本文件
  • 腳本中應包括的內容
   腳本運行環境設置 :#!/bin/bash
   註釋行以#開始 :# Clean command history,清除用戶命令歷史
   腳本語句:history -c
  • 設置腳本文件爲可執行
  22、運行腳本程序
  • 使用Shell命令程序執行腳本程序:$ bash hello.sh
  • 使用“.”命令執行腳本程序:$ . hello.sh
  • 直接執行具有執行屬性的腳本程序:$ ./hello.sh
  階段總結
   輸入輸出文件:標準輸入、標準輸出、標準錯誤
   重定向符號:< > >> 2> 2>> &>
   管道符:|
   Shell腳本的組成:腳本運行環境設置、註釋行、腳本語句
  第5章 Linux應用程序安裝與管理
  1、Linux應用程序與命令的關係
  • 內部命令
  • 外部應用程序
  • 兩種形式的命令操作方法相同
  2、Linux應用程序與命令
  • 應用程序與命令的關係
   基本命令是Linux系統中不可缺少的組成部分
   命令保存在/bin和/sbin目錄中
   應用程序保存在/usr/bin和/usr/sbin目錄中
   命令的作用是完成對Linux系統本身的管理工作,應用程序則完成與Linux系統管理相對獨立的任務
   命令只能以命令行的形式運行,命令格式中包括命令字、命令選項和命令參數
   應用程序可以是以命令行的形式運行,也可以是字符界面或圖形界面的窗口程序,形式比較多樣
  3、應用程序與第三方應用程序
  • 系統應用程序與第三方應用程序的比較
   系統應用程序通常遵從Linux發行版本中的軟件包管理格式進行安裝和卸載
   第三方應用程序可能以Linux發行版本中使用的軟件包的格式提供安裝程序,也可能使用來自安裝程序或其他的形式提供應用程序的安裝
  4、Linux應用程序組成:可執行程序、配置文件、幫助文件、庫文件
  • 應用程序中不同類型的文件保存在Linux系統的不同目錄中
  文件類型 保存目錄
  普通執行程序文件 /usr/bin
  服務器執行程序文件和管理程序文件 /usr/sbin
  應用程序配置文件 /etc
  應用程序文檔文件 /usr/share/doc
  應用程序手冊頁文件 /usr/share/man
  5、RPM 軟件包
  • RPM最早是由Red Hat公司提出的軟件包管理標準,目前應用於很多Linux發行版
   RPM Package Manager
  • RPM軟件包的文件名
   bash-3.0-19.2.i386.rpm
   bash:代表軟件包名稱
   3.0-19.2.i386:軟件版本號、軟件運行硬件平臺
   rpm:軟件包擴展名
  6、rpm命令的功能
  • RHEL4中使用rpm命令對RPM軟件包進行管理
  • rpm命令可以完成對軟件包的所有管理功能
   查詢已安裝在Linux系統中的RPM軟件包的信息
   查詢RPM軟件包安裝文件的信息
   安裝RPM軟件包到當前Linux系統
   從當前Linux系統中卸載已安裝的RPM軟件包
   升級當前Linux系統中已安裝的RPM軟件包
  7、rpm查詢命令
  命令 功能
  rpm -qa 查詢Linux系統中的所有軟件包
  rpm -q 包名稱 查詢指定名稱的軟件包是否安裝
  rpm -qi 包名稱 查詢指定名稱軟件包的詳細信息
  rpm -ql 包名稱 查詢指定名稱軟件包中所包括的文件列表
  rpm -qf 文件名稱 查詢指定文件所屬的軟件包
  rpm -qpi 包文件名 查詢指定RPM包文件的詳細信息
  rpm -qpl 包文件名 查詢指定RPM包中包含的文件列表
  8、RPM安裝命令
  • rpm命令配合“-i”選項用於安裝RPM軟件包
  rpm -i vim-common-6.3.035-3.i386.rpm
  • rpm命令配合“-ivh”在安裝RPM軟件包時會顯示更多的提示信息
  rpm -ivh vim-common-6.3.035-3.i386.rpm
  9、RPM包卸載
  • rpm命令配合“-e”選項用於安裝RPM軟件包:rpm -e vim-enhanced
  • RPM軟件包的卸載同樣存在依賴關係
  被依賴的軟件包應該最後被卸載
  10、RPM包升級
  rpm命令配合“-U”選項用於安裝RPM軟件包
  rpm -U vim-enhanced-6.3.035-3.i386.rpm
  當系統中未安裝需要升級的軟件包時,升級的過程等同於安裝軟件包的過程
  階段總結
   應用程序和系統命令的執行文件放置在不同的系統目錄中
   應用程序軟件包中不同類型的文件保存在不同的系統目錄中
   Red Hat Linux系列發行版中使用RPM作爲軟件包的管理格式
   rpm命令用於軟件包的管理:rpm -q實現軟件包查詢功能、rpm -i實現軟件包安裝功能、rpm -e實現軟件包卸載功能、rpm -U實現軟件包升級功能
  11、應用補丁
  • 使用diff命令生成補丁文件
   語法:diff 原始文件 新文件
  • 使用patch命令應用補丁文件
   語法:patch 原始文件 補丁文件
  12、應用程序編譯安裝
  • 開放源代碼應用程序的編譯安裝
  • 編譯應用程序前的準備工作
  • 編譯前的配置
  • 編譯與安裝過程
  13、應用程序源代碼安裝的一般步驟
  • 確認當前系統中具備軟件編譯的環境
  • 獲得應用程序的源代碼軟件包文件
  • 解壓縮源代碼軟件包文件
  • 進行編譯前的配置工作
  • 進行程序源代碼的編譯
  • 將編譯完成的應用程序安裝到系統中
  14、編譯應用程序前的準備工作
  • 確認系統中已經安裝了編譯環境 :$ rpm -qa | grep gcc
  • 獲得(下載)程序的源代碼安裝包文件
  • 釋放程序源代碼軟件包文件:$ tar jxf prozilla-2.0.4.tar.bz2
  • 進入源代碼目錄:$ cd prozilla-2.0.4
  15、程序編譯前的配置
  • 程序源代碼目錄中的“configure”命令用於完成程序編譯前的配置工作
  • 查看“configure”命令支持的配置選項:./configure --help
  • 指定安裝路徑進行配置:./configure --prefix=/home/teacher/proz
  16、編譯與安裝
  • 程序編譯過程(使用make命令進行應用程序的編譯):$ make
  • 程序安裝過程(使用make install命令進行應用程序的編譯):$ make install
  • 驗證(執行)已編譯安裝完成的程序(查看安裝目錄中的文件,執行命令程序):
  $ cd /home/teacher/proz ; ls
  $ bin/proz –help
  17、應用程序管理工具的特點
  • 應用程序管理工具對RHEL4安裝光盤中包括的軟件包按照類型劃分後進行管理,結構比較清晰
  • 管理工具只能用於管理RHEL4發行版中自帶的應用程序,不能管理其他的RPM軟件包
  • 由於軟件包之間存在複雜的依賴性關係,很多軟件包只能通過管理工具進行安裝和卸載,通過rpm命令很難手工完成管理工作
  • 管理工具特別適合完成安裝和卸載某個類型的所有軟件包
  階段總結
   爲了實現特定的管理目的,一些應用程序只能通過源碼編譯的方式進行安裝
   應用程序源碼編譯安裝需要系統中有編譯環境
   應用程序源碼編譯包括配置、編譯、安裝等步驟
  ./configure
  make
  make install
   應用程序管理工具是Red Hat Linux系列發行版中特有管理程序,只能管理髮行版自身包括的軟件包
  
  第6章Linux系統管理
  1、系統啓動過程
  a:主機啓動,並從硬盤進行引導
  b:從硬盤MBR讀取並運行Boot Loader程序
  c:由Boot Loader引導Linux內核程序運行
  d:由Linux內核運行INIT進程
  e:進入指定運行級別,運行系統服務程序
  f:運行終端程序,等待用戶登錄
  2、Linux系統中的運行級別
  運行級別 說明
  0 停機
  1 單用戶模式,用於root用戶對系統進行維護
  2 多用戶模式,在此模式下不能使用NFS
  3 完全多用戶模式,主機做爲服務器使用時通常在此運行級別
  4 未分配使用
  5 圖形登錄的多用戶模式,用戶在該模式下可進行圖形界面登錄
  6 重新啓動
  3、顯示與轉換運行級別
  • 顯示運行級別:# runlevel
  • 改變系統運行級別
   init命令用於改變系統當前的運行級別,使用0-6的運行級別作爲命令選項
   關機操作:# init 0
   重新啓動操作:# init 6
  4、查看系統服務的啓動狀態
  • chkconfig命令可查看服務啓動狀態
   顯示全部服務的啓動狀態:# chkconfig --list
   顯示指定服務的啓動狀態:# chkconfig --list syslog
  5、設置獨立系統服務的啓動狀態
   實例:設置syslog服務在運行級別2和4中不啓動
  # chkconfig --level 24 syslog off
  6、設置非獨立服務的啓動狀態
   實例:設置rsync服務在xinetd服務中有效:# chkconfig rsync on
  重新啓動xinetd服務,使非獨立服務的啓動狀態設置生效
  # service xinetd restart
  7、INIT進程與配置文件
  • INIT進程是由Linux內核引導運行的,是系統中運行的第一個進程
  • INIT的配置文件是inittab
  # tail -5 /etc/inittab
  8、inittab文件的結構
  x:5:respawn:/etc/X11/prefdm -nodaemon
  字段 說明
  id 用於在inittab文件中唯一標識一個配置記錄
  runlevels 用於指定該記錄在哪些運行級別中運行
  action 用於描述記錄將執行哪種類型的動作
  process 用於設置啓動進程所執行的命令
  9、系統腳本
  rc.sysinit :保存在“/etc/rc.d/”目錄中的Bash腳本文件,在系統啓動時被調用執行,完成系統初始化的工作
  rc.local :在系統啓動過程中,完成初始化腳本的執行後,會執行“/etc/”目錄中的“rc.local”腳本
  可以將系統中需要自定義執行的命令保存在“rc.local”腳本中
  10、程序與進程
  • 程序是保存在外部存儲介質中的可執行代碼和數據,是靜態保存的代碼
  • 進程是程序代碼在處理器中的運行,是動態執行的代碼
  • 操作系統在執行程序時,將程序代碼由外部存儲介質(如硬盤)讀取到內部存儲介質(內存)中
  • 駐留在內存中的程序代碼作爲“進程”在中央處理器中被動態執行
  11、查看進程命令
  • 顯示進程信息:ps命令顯示某時刻系統進程的狀態信息
  • 顯示進程狀態:
   top命令以全屏幕的方式顯示系統中的進程狀態,並定時刷新顯示的內容
   可以通過top命令查看系統中進程的動態變化
  • 顯示系統進程樹:pstree命令以樹的形式顯示系統進程間的父子關係
  12、進程啓動方式
  • 手工啓動
   由用戶輸入命令,直接執行一個程序
   前臺啓動是普通的命令執行方式
   後臺啓動需要在命令尾加入“&”
  # cp /dev/cdrom mycd.iso &
  • 調度啓動
   使用at命令設置某個命令在某個時間,一次性的在系統中執行
   crontab命令設置在系統中需要週期性(如每天、每週等)完成的任務
  13、改變進程的運行方式
  • 把當前終端中運行的進程調入後臺
   使用“Ctrl+z”組合鍵可以將當前終端的進程調入後臺並停止執行
  • 查看後臺的進程
   jobs命令用於查看當前終端中後臺的所有進程的狀態:$ jobs
  [1]+ Stopped top
  • 將後臺的進程恢復到前臺運行
   fg命令用於將後臺的進程調入終端前臺執行:$ fg 1
  14、終止進程運行
  • 終止正在執行的命令
   使用“Ctrl + c”組合鍵可以強制結束當前終端中運行的命令
  • 使用kill命令終止進程 :$ kill -9 2501
  階段總結
   Linux系統中有0-6的運行級別,每個運行級別都有不同的含義
   進程是程序代碼在計算機系統中的動態運行
   ps、top和pstree命令用於查看系統中的進程信息
   進程可以被手工啓動,也可以被系統調度啓動
   進程可以運行在前臺或後臺,fg命令可以將後臺的進程調入前臺
   kill命令可以終止進程的運行
  
  15、cron簡介
  • cron是一個可以用來根據時間、日期、月份、星期的組合來調度對週期性任務執行的守護進程
  • 利用cron所提供的功能,可以將需要週期性重複執行的任務設置爲cron任務,並且設置爲在主機較空閒的時間(如夜間)自動完成
  • RHEL4中實現cron功能的軟件包組成
   vixie-cron 軟件包實現系統中的定時執行功能
   crontabs軟件包實現對Linux系統的定時任務管理功能
  16、cron服務的啓動與停止
  • 查詢crond服務狀態:# service crond status
  • 停止crond服務:# service crond stop
  • 啓動crond服務:# service crond start
  • 重新啓動crond服務:# service crond restart
  • 查看crond服務的開機啓動狀態:# chkconfig --list crond
  17、cron任務的格式
  50 3 2 1 * run_yearly_cmd
  字段 說明
  minute 分鐘,取值爲從0到59之間的任意整數
  hour 小時,取值爲從0到23之間的任意整數
  day 日期,取值爲從1到31之間的任意整數
  month 月份,取值爲從1到12之間的任意整數
  dayofweek 星期,取值爲從0到7之間的任意整數,0或7代表星期日
  command 要執行的命令或程序腳本
  18、使用crontab命令進行設置
  • 查看用戶的cron任務 :# crontab -l
  • 編輯用戶的cron任務
   編輯並覆蓋原有的cron任務:# crontab
   調用文本編輯器對cron任務進行編輯 :# crontab -e
  • 刪除用戶現有的cron任務 :# crontab -r
  19、cron任務的保存文件
  • 保存cron任務的文件
   所有用戶的cron任務(使用crontab命令創建的任務)都被保存在目錄“/var/spool/cron/”中的文件中
   文件的名稱與用戶名相同
   例如root用戶的cron任務列表文件的名稱是“/var/spool/cron/root”
  20、cron的配置文件和目錄
  • 系統任務配置文件
   “/etc/crontab”文件中設置的是Linux系統維護所需的任務,一般不需要人爲去修改
  • 任務腳本目錄
   在“/etc”目錄中有名爲cron.hourly 、cron.daily 、cron.weekly 和cron.monthly 的目錄
   目錄中存放的是需要定期執行的系統任務腳本
   例如,“/etc/cron.daily/”目錄中存放的是每日執行一次的系統任務腳本
  21、認識日誌文件
  • 日誌的功能
   日誌文件(Log files)是記錄Linux中系統消息的文件
   不同的日誌文件記載不同類型的信息,包括內核、服務以及在系統中運行的應用程序的信息
   日誌文件對於診斷和解決系統中的問題很有幫助
  22、系統中的日誌文件
  • 日誌文件的位置
   日誌文件保存在目錄“/var/log/”中
   “/var/log/”目錄中可以建立單獨的子目錄來存放特定程序的日誌文件
  • 日誌文件的分類
   應用程序獨立管理的日誌文件
   受syslogd服務統一管理的日誌文件
   syslogd服務的配置文件“/etc/syslog.conf” 的內容可以顯示syslogd服務管理的日誌文件
  23、日誌文件分析
  # head -1 /var/log/boot.log
  Apr 7 05:05:12 localhost rc: Starting pcmcia: succeeded
  字段 說明
  時間標籤 消息發出的日期和時間
  主機名 生成消息的計算機的名字
  生成消息的子系統的名字 發出消息的程序名稱
  消息 消息的內容
  24、磁盤限額的基本概念
  • quota軟件包:RHEL4中是通過quota軟件實現磁盤限額功能的
  • 容量限制與文件數限制
  quota可以限制指定對象能夠佔用的磁盤空間大小和擁有的文件數
  • 軟限制與硬限制
  軟限制:一個用戶在文件系統可擁有的最大磁盤空間和最多文件數量,在某個寬限期內可以暫時超過這個限制
  硬限制:一個用戶可擁有的磁盤空間或文件的絕對數量,絕對不允許超過這個限制
  • 用戶限制與組限制
  使用quota可以設置對指定用戶進行限額,也可以對指定用戶組進行整體限額
  25、設置磁盤限額的步驟
  • 修改“fstab”文件
   在文件系統的配置記錄中添加“usrquota”和“grpquota”配置選項
  LABEL=/ / ext3 defaults,usrquota,grpquota 1 1
  • 重新掛載文件系統
   重新啓動系統可以使文件系統的quota配置生效
  # reboot
  • 創建配額文件
   使用quotacheck命令可創建用戶配額文件aquota.user 和組配額文件aquota.group
  # quotacheck -cmug /
  • 設置配額
   使用edquota命令可以編輯對用戶和組的配額設置
  26、磁盤限額命令
  a、quotacheck用於建立限額額文件和對磁盤限額進行檢測
  在根文件系統中建立用戶和組的配額文件:# quotacheck -cmug /
  檢測根文件系統中配額文件和實際配額狀態的一致性
  # quotacheck -mfvug /
  b、 edquota命令用於編輯用戶和組的磁盤配額
  編輯用戶st01的配額設置:# edquota -u st01
  編輯組st01的配額設置:# edquota -g st01
  c、 quota命令用於顯示用戶和組的配額情況
  顯示用戶st01的配額信息:# quota -u st01
  顯示用戶組st01的配額信息:# quota -g st01
  27、tar命令建立歸檔
  • 對文件和目錄進行歸檔 :$ tar cf myfiles.tar files/
  • 對文件和目錄進行壓縮歸檔:$ tar czf myfiles.tar.gz files/
  28、查看歸檔中的文件列表
  • 查看歸檔文件中的目錄列表 :$ tar tf myfiles.tar
  • 查看壓縮歸檔文件中的目錄列表:$ tar tzf myfiles.tar .gz
  29、恢復歸檔文件
  • 恢復歸檔文件 :$ tar xf myfiles.tar
  • 恢復壓縮的歸檔文件 :$ tar xzf myfiles.tar.gz
  • 恢復歸檔文件到指定目錄 :$ tar xzf myfiles.tar.gz -C restore/
  階段總結
   Linux系統中通過crond服務實現任務的週期性自動執行,通過cron機制系統可以有效的完成管理任務的自動執行
   Linux系統中的日誌文件可以記錄系統中運行程序的信息,便於排錯時進行查詢
   Linux中使用quota實現對用戶和組的配盤配額,可以對用戶佔用的空間進行有效的管理
   tar命令可以實現對文件的歸檔、查看和恢復,可有效的實現對系統文件的備份和恢復
  
    
  第7章Linux基本網絡配置
  1、網絡信息查看
  • Linux系統中的普通用戶可以使用命令查看系統的網絡屬性信息
   查看網絡接口信息
   測試網絡連接狀態
   查看網關地址和路由信息
   查看主機名稱信息
  2、查看網絡接口信息
  • ifconfig命令用於查看網絡接口信息
  查看所有活動網絡接口的信息:$ /sbin/ifconfig
  查看所有網絡接口(包括非活動網絡接口)的信息:$ /sbin/ifconfig -a
  查看指定網絡接口信息:$ /sbin/ifconfig eth0
  3、查看主機路由信息
  • route命令可查看主機的路由信息:$ /sbin/route
  4、使用ping命令測試網絡連結
  • ping命令用於測試當前主機與其他主機的網絡連接:$ ping 192.168.152.131
  5、指定ping命令的測試數據包
  • ping命令可以指定發送的測試數據包的數量:$ ping -c 4 192.168.152.2
  6、測試與其他主機的網絡連接路徑
  • traceroute命令測試當前主機到目的主機之間經過的所有網絡節點
  $ traceroute 192.168.1.1
  7、查看當前主機名稱
  • hostname命令可顯示當前主機的名稱:$ hostname
  localhost.localdomain
  8、域名查詢
  • nslookup命令可進行域名的查詢
  使用nslookup命令的交互模式進行域名查詢:$ nslookup
  > www.sina.com.cn
  使用nslookup直接查詢域名:$ nslookup www.sina.com.cn
  9、使用命令進行網絡設置
  • 使用命令配置網絡屬性可以即時生效,但主機重新啓動後將丟失配置
   網絡設置的兩種方法
   ip地址配置命令
   路由配置命令
   主機名稱配置命令
   DNS域名解析
  10、網絡設置的兩種方法
  • DHCP網絡配置
  Linux主機通過網絡中已有的DHCP服務器獲取必要的設置信息進行網絡配置
  網絡客戶端的配置簡單,需要在DHCP服務器端進行正確的配置
  RHEL4中使用dhclient作爲dhcp客戶端程序
  • 手工網絡配置
  在每臺主機中獨立配置網絡屬性
  主要應用於網絡服務器主機
  11、ip地址配置命令
  • ifconfig命令可以設置網絡接口的ip地址
  # ifconfig eth0 192.168.152.133 netmask 255.255.255.0
  12、路由配置命令
  route命令可以維護系統路由表信息
  刪除缺省網關:# route del default gw 192.168.152.2
  添加缺省網關:# route add default gw 192.168.152.2
  13、設置主機名稱
  • hostname命令可以對當前主機的名稱進行設置
   hostname命令設置的主機名稱是即時生效的
   系統重新啓動後將會恢復爲系統原有的主機名稱
  # hostname LinServer
  14、DNS域名解析
  • 使用nslookup命令的交互模式可以顯示和設置當前命令使用的DNS服務器
   顯示使用的DNS服務器地址
  # nslookup
  > server
  Default server: 192.168.152.2
  Address: 192.168.152.2#53
   設置nslookup命令使用的DNS服務器地址
  > server 202.106.0.20
  Default server: 202.106.0.20
  Address: 202.106.0.20#53
  階段總結
   ifconfig命令可已查看和設置網絡接口的屬性
   route命令可查看和維護系統路由表信息,可查看和設置缺省網關的地址
   ping命令用於測試當前主機與目標主機之間的網絡連接
   traceroute命令用於測試當前主機與目標主機間的所有網絡節點的連接狀態
   hostname命令用於顯示和設置主機名稱
   nslookup命令用於查詢域名解析
  15、修改配置文件進行網絡設置
  • 通過配置文件進行網絡配置可以使配置持久有效
   使用工具進行網絡配置
   網絡服務啓動腳本
   網絡接口配置文件
   主機名稱配置文件
   本地主機名稱解析文件
   域名服務器配置文件
  16、RHEL4中提供了網絡配置工具:# netconfig
  17、網絡服務啓動腳本
  “network”服務程序用於對RHEL4中的網絡屬性進行配置生效
   network服務的啓動腳本在“/etc/init.d”目錄中:/etc/init.d/network
   啓動network服務:# /etc/init.d/network start
   停止network服務:# /etc/init.d/network stop
  18、網絡接口配置文件
  • 網絡接口的文件位於目錄“/etc/sysconfig/network-scripts/”中
   網絡接口eth0的配置文件是ifcfg-eth0
  # cat /etc/sysconfig/network-scripts/ifcfg-eth0
  19、停止和啓動指定的網絡接口
  • 網絡接口配置文件修改後並不會自動生效,需要執行命令使配置生效
   停用網絡接口:# ifdown eth0
   啓用網絡接口:# ifup eth0
   網絡接口停用再啓用時將按照配置文件的內容設置
  20、主機名稱配置文件
  • network文件位於“/etc/sysconfig/”目錄中,其中保存了主機的名稱配置
  # cat /etc/sysconfig/network
  NETWORKING=yes
  HOSTNAME=localhost.localdomain
   在文件“/etc/sysconfig/network”中對HOSTNAME配置項進行配置後,需要重新啓動計算機使新設置的主機名生效
  21、本地主機名稱解析文件
  • “/etc/hosts”文件保存本地的主機名與ip地址的對應記錄
  # cat /etc/hosts
  127.0.0.1 localhost.localdomain localhost
  • hosts文件和DNS服務器功能的比較
   在hosts文件中設置主機名稱的解析更加靈活,可以立即生效
   hosts文件中的設置內容只在當前的Linux主機中有效,無法作用於整個網絡
   hosts文件無法完全取代DNS服務器的作用,只能完成輔助的本地主機名稱解析
  22、域名服務器配置文件
  • 系統使用的DNS服務器的ip地址保存在“resolv.conf”文件中
  # cat /etc/resolv.conf
  nameserver 192.168.152.2
   文件中最多可以有3個“nameserver”配置記錄
   系統會優先使用文件中前面的“nameserver”配置記錄
   當前面的DNS服務器無效時系統會自動使用後面的DNS服務器進行域名解析
  階段總結
   RHEL4中提供了netconfig工具用於網絡配置文件的修改
   network服務用於設置系統的網絡屬性
   ifcfg-eth0文件用於設置網絡接口eth0的屬性
   “/etc/sysconfig/”目錄中的network文件用於保存主機名稱信息
   “/etc/hosts ”文件用於保存主機名稱和地址解析記錄
   “/etc/resolv.conf ”文件用於保存系統使用的DNS服務器的地址
  
  
  
  第8章NFS文件系統
  1、NFS的基本概念
  • NFS是系統間進行文件共享的一種網絡協議
  • 在NFS的應用結構中有服務器和客戶機兩種角色
  • NFS客戶端通過掛載NFS文件系統的方式訪問NFS服務器中輸出的共享目錄
  • 在同一臺主機中即可以是NFS服務器也可以作爲NFS客戶機
  2、NFS網絡共享的一般用法
  • 在NFS服務器主機中進行設置
   安裝NFS服務器軟件包
   啓動NFS服務器程序
   設置NFS共享目錄輸出
  • 在NFS客戶機中進行設置
   使用mount命令掛載NFS服務器中的NFS共享目錄到文件系統中
   通過NFS文件系統的掛載點目錄訪問NFS服務器中的共享內容
  3、NFS服務器的安裝
  • portmap軟件包
   提供了運行portmap服務所需的文件。portmap服務爲NFS等服務器程序提供RPC服務的支持
  • nfs-utils軟件包:提供了NFS服務器的啓動腳本和管理維護工具
  • 軟件包安裝:“nfs-utils”和“portmap”兩個軟件包在RHEL4系統中是默認安裝的
  4、NFS服務器的配置文件
  • “exports”文件用於配置NFS服務器中輸出的共享目錄
  # cat /etc/exports
  /home/share *(sync,ro)
  字段 說明
  nfs共享目錄名 需要進行輸出的NFS共享目錄名稱
  客戶端主機地址 能夠訪問共享目錄 的主機地址
  設置選項 設置共享目錄的屬性
  5、exports文件解析
  • exports文件中“客戶端主機地址”字段可以使用多種形式表示主機地址
  實例 說明
  192.168.152.13 指定IP地址的主機
  nfsclient.test.com 指定域名的主機
  192.168.1.0/24 指定網段中的所有主機
  *.test.com 指定域下的所有主機
  * 所有主機
  • exports文件中的“配置選項”字段放置在括號對(“( )”)中 ,多個選項間用逗號分隔
   sync:設置NFS服務器同步寫磁盤,這樣不會輕易丟失數據,建議所有的NFS共享目錄都使用該選項
   ro:設置輸出的共享目錄只讀,與rw不能共同使用
   rw:設置輸出的共享目錄可讀寫,與ro不能共同使用
  6、exports文件配置實例
  
  • 配置NFS服務器輸出的共享目錄
   輸出“/home/share”目錄,對所有主機可讀,對地址爲192.168.1.19的主機可讀可寫
   輸出“/home/pub”目錄,對192.168.152.0子網內的所有主機可讀
  # cat /etc/exports
  7、NFS服務器的啓動與停止
  • 查詢服務器的狀態
  爲了保證NFS服務器能夠正常工作,系統中需要運行portmap和nfs兩個服務程序
  # service portmap status
  # service nfs status
  • 啓動服務器 :# service portmap start
  # service nfs start
  • 停止服務器運行:# service nfs stop
  8、showmount命令
  • showmount命令的幫助信息
  showmount命令用於查詢顯示NFS服務器的相關信息 :# showmount --help
  • 顯示主機的NFS服務器信息
  顯示當前主機中NFS服務器的連接信息:# showmount
  顯示指定主機中NFS服務器的連接信息:# showmount 192.168.152.131
  • 顯示NFS服務器的輸出目錄列表
  顯示當前主機中NFS服務器的輸出列表 :# showmount -e
  顯示指定NFS服務器中的共享目錄列表:# showmount -e 192.168.152.131
  • 顯示NFS服務器中被掛載的共享目錄
  顯示當前主機NFS服務器中已經被NFS客戶機掛載使用的共享目錄
  # showmount -d
  • 顯示NFS服務器的客戶機與被掛載的目錄
  顯示當前主機中NFS服務器的客戶機信息 :# showmount -a
  顯示指定主機中NFS服務器的客戶機信息 :# showmount -a 192.168.152.131
  9、exportfs命令
  • 重新輸出共享目錄
  使nfs服務器重新讀取exports文件中的設置 :# exportfs -rv
  • 停止輸出所有目錄
  停止當前主機中NFS服務器的所有目錄輸出 :# exportfs -auv
  • 輸出(啓用)所有目錄
  輸出當前主機中NFS服務器的所有共享目錄 :# showmount -e
  10、啓動NFS服務器配置工具 :$ system-config-nfs
  階段總結
   NFS是進行文件共享的網絡協議
   在RHEL4系統中NFS服務器程序和管理工具是默認安裝的
   NFS服務器通過exports文件配置共享目錄輸出和目錄的訪問權限
   showmount命令用於查詢顯示NFS服務器的相關信息
   exportfs命令用於對“exports”文件設置的共享目錄進行管理
  11、Linux客戶端掛載NFS文件系統
  • 顯示NFS服務器的輸出 :# showmount -e 192.168.152.131
  • 掛載NFS服務器中的共享目錄 :# mount -t nfs 192.168.152.131:/home/share/ /mnt/
  12、卸載NFS文件系統
  • 顯示當前主機掛載的NFS共享目錄
  使用mount命令查看:# mount | grep nfs
  • 卸載系統中已掛載的NFS共享目錄
  使用umount命令卸載NFS文件系統:# umount /mnt/
  13、系統啓動時自動掛載NFS文件系
  將NFS的共享目錄掛載信息寫入“/etc/fstab”文件,可實現對NFS共享目錄的自動掛載
  # tail -1 /etc/fstab
  14、在Windows中使用NFS客戶端
  • Windows操作系統中可以通過安裝NFS客戶端軟件實現對NFS服務器的訪問
  • Omni Lite
   Omni Lite是比較常用的Windows操作系統中運行的NFS客戶端軟件
   Omni Lite是商業軟件,可以下載並進行試用
   Omni Lite可以運行於Windows 95之後的所有Windows操作系統
   Omni Lite的試用期限爲15天
  15、Omni Lite使用步驟
  • 啓動NFS Client程序
  • 設置NFS服務器主機記錄
  • 定義NFS驅動器的連接
  • 掛載NFS驅動器
  • 使用NFS網絡驅動器
  • 卸載NFS驅動器
  16、Omni Lite的運行與配置
   啓動NFS Client程序
  在Windows操作系統中選擇“開始”=〉“程序”=〉“Omni-Lite V4.13”菜單,並選擇“NFS Client”程序項啓動NFS客戶端程序
  
  階段總結
   在Linux系統中使用mount命令可以將NFS服務器中的共享目錄掛載到文件系統中
   Linux系統中已掛載的NFS文件系統可通過掛載點目錄進行訪問
   在Windows系統中需要安裝第三方的軟件實現NFS服務器共享目錄的訪問
   Omni Lite是Windows下較常用的NFS客戶端軟件
   Omni Lite通過將NFS共享目錄映射爲Windows中的網絡驅動器來訪問NFS服務器
  
  
  第9章 動態地址分配服務和網絡信息服務
  1、DHCP的基本概念
  • DHCP是進行動態主機配置的網絡協議
  • DHCP協議可以在Linux和Windows系統中實現
  • DHCP網絡服務的結構中具有服務器和客戶機兩個角色
  • DHCP服務器用於爲網絡中所有的DHCP客戶機提供網絡配置信息
  • DHCP客戶機向DHCP服務器發出配置請求,並按照服務器返回的信息進行網絡配置
  2、DHCP服務能夠提供的配置信息
  • 網絡接口的IP地址和子網掩碼
  • 網絡接口IP地址對應的網絡地址和廣播地址
  • 缺省網關地址
  • DNS服務器地址
  3、安裝DHCP服務器軟件
  • RHEL4系統的安裝光盤中包括RPM格式的DHCP服務器軟件包
  • 安裝包文件在RHEL4的第4張安裝光盤中
  # rpm -ivh dhcp-3.0.1-12_EL.i386.rpm
  4、dhcpd.conf配置文件
  • dhcpd服務器的主配置文件是:/etc/dhcpd.conf
  • dhcpd.conf文件默認不存在,需要手工建立
  • 系統中提供了配置文件樣例可供參考:/usr/share/doc/dhcp-3.0.1/dhcpd.conf.sample
  • dhcpd.conf的手冊頁提供了詳細的配置說明:# man dhcpd.conf
  5、dhcp.conf配置文件的基本格式
  • 聲明用來描述dhcpd服務器中對網絡佈局的劃分,是網絡設置的邏輯範圍
   subnet 192.168.1.0 netmask 255.255.255.0 {
  ……
   }
  • 參數由設置項和設置值組成: default-lease-time 21600;
   : max-lease-time 43200;
  • 選項由“option”關鍵字引導
  option routers 192.168.1.1;
  option subnet-mask 255.255.255.0;
  6、dhcpd.conf中的全局設置
  全局設置作用於整個配置文件
  7、使用subnet聲明設置子網屬性
  subnet聲明用於在某個子網中設置動態分配的地址和網絡屬性
  8、使用host聲明設置主機屬性
   host用於對單個主機的網絡屬性進行聲明,通常用於爲主機(服務器)分配固定使用的IP地址
  9、多網絡接口時需要配置的文件
  • 主機擁有多個網絡接口時需要在文件中指定提供dhcp服務的網絡接口
   在/etc/sysconfig/dhcpd文件中設置
  DHCPDARGS=
  爲
  DHCPDARGS=eth0
  eth0是提供dhcp服務的網絡接口名稱
  10、dhcpd服務的啓動與停止
  • dhcpd服務的啓動腳本;/etc/init.d/dhcpd
  • 啓動dhcpd服務:# service dhcpd start
  • 停止dhcpd服務:# service dhcpd stop
  • 重新啓動dhcpd服務;# service dhcpd restart
  11、查看dhcpd服務器的狀態
  • 使用啓動腳本查看服務器狀態:# service dhcpd status
  • 查看dhcpd服務器的租約文件
   租約文件dhcpd.leases中記錄了DHCP服務器向DHCP客戶機提供租用的每個IP地址的信息
  # tail -7 /var/lib/dhcp/dhcpd.leases
  12、DHCP客戶端配置
  • 設置網絡接口文件:# cat /etc/sysconfig/network-scripts/ifcfg-eth0
  • 重新啓動網絡接口:# ifdown eth0 ; ifup eth0
  階段總結
   DHCP服務器可向DHCP客戶機提供IP地址、缺省網關地址等配置信息
   RHEL4系統中包括dhcpd服務器的安裝包,需要手工進行安裝
   dhcpd服務器的主配置文件是dhcpd.conf
   dhcpd.conf文件中包括聲明、參數和選項三類設置內容
   Linux系統作爲DHCP客戶機需要設置網絡接口配置文件,並重新啓動網絡接口
    
  第10章 SAMBA文件共享服務
  1、Windows文件共享與Samba服務器
   Windows文件共享
   Windows主機之間使用SMB/CIFS網絡協議實現文件和打印資源的共享
   Windows無法與UNIX/Linux主機之間實現資源共享
   Samba服務器
   Samba服務器在UNIX系統中實現了SMB/CIFS協議
   通過Samba服務可以實現UNIX/Linux主機與Windows主機之間的資源互訪
  2、Samba服務器的服務程序
  Samba服務器包括兩個服務程序
  Smbd:smbd服務程序爲客戶機提供了服務器中共享資源(目錄和文件等)的訪問
  Nmbd:nmbd服務程序提供了NetBIOS主機名稱的解析,爲Windows網絡中域或者工作組內的主機進行主機名稱的解析
  3、Samba服務器的安裝
   RHEL4中缺省安裝了Samba相關的軟件包
  samba-common軟件包中提供了Samba服務器和客戶機中都必須使用的公共文件
  samba軟件包中包括了Samba服務器程序的所有文件
  samba-client軟件包中提供了Samba客戶機的所有文件
  system-config-samba軟件包中提供了Red Hat公司專門爲Samba服務器管理編寫的圖形界面的管理程序,該程序是Red Hat系統管理工具中的一部分
  4、smb.conf配置文件
  smb.conf
  Samba服務器的主配置文件是smb.conf,保存在目錄“/etc/samba/”中
  文件中註釋行使用“#”開始,是對配置內容的說明文字
  樣例行使用“;”開始,是對配置內容的舉例
  查看smb.conf有效配置的命令:# grep -v "^#" /etc/samba/smb.conf |grep -v "^;"
  5、smb.conf中的全局配置
   smb.conf中的[global]
  [global]
   workgroup = MYGROUP 設置Samba服務器所在的工作組的名稱,爲“MYGROUP”
   server string = Samba Server 設置Samba服務器的說明文字,用於描述Samba主機
   log file = /var/log/samba/%m.log 設置Samba服務器的日誌文件,表示所有設置文件都保存在“/var/log/samba/”目錄中,使用Samba服務器的每個客戶機的日誌分別進行保存在與客戶主機同名的“%m.log”文件中,“%m”變量表示客戶端主機的名稱
  
   max log size = 50 設置日誌文件的最大容量,默認爲“50”,表示50KB;
   security = usersecurity 設置Samba服務器的缺省安全級別爲“user”,表示需要經過Samba服務器的用戶認證後才能夠訪問服務器中的資源
  6、Samba服務器的安全級別
   smb.conf中security的配置
  security值 含義
  share 表示用戶不需要賬戶及密碼即可登入Samba服務器
  user 表示由提供服務的Samba服務器負責檢查賬戶及密碼(Samba默認的安全等級)
  server 表示檢查賬戶及密碼的工作指定由另一臺Windows服務器或Samba服務器負責
  domain 表示指定Windows域控制服務器來驗證用戶的賬戶及密碼
  7、用戶目錄共享設置
  smb.conf中的[home]
  [homes]共享目錄不特指某個目錄,而是表示Samba用戶的宿主目錄
  [homes]
   comment = Home Directories comment用於設置共享的說明信息
   browseable = no browseable設置爲no表示所有Samba用戶的宿主目錄不能被看到,只有登錄用戶才能看到自己的宿主目錄共享;這樣加強了Samba服務器的安全性
   writable = yes writable設置爲yes表示用戶對該共享目錄寫入
  8、Samba用戶帳號
   Samba帳號管理
  a、Samba用戶帳號使用獨立的smbpasswd文件保存用戶的帳號和加密口令信息
  b、Samba服務器中的用戶帳號應該具有與其同名的Linux系統用戶帳號,因爲c、Samba用戶是使用同名的系統帳號身份訪問Linux系統資源(文件和目錄)的
  c、Samba用戶的口令和同名系統用戶的口令是獨立的,可以相同或不同,需要分別進行維護和更改
  d、當Samba用戶不需要登錄Linux系統時,同名的系統用戶帳號可不設置口令
   Samba服務器的用戶帳號
   Samba服務器的用戶帳號文件保存在“/etc/samba/”目錄中,文件名稱是“smbpasswd”
   初始狀態“smbpasswd”文件不存在,在第一次使用smbpasswd命令創建Samba用戶時將自動建立
   “smbpasswd”文件中同時保存有用戶帳號和用戶密碼,因此該文件只對root用戶有讀寫權限
   smbpasswd命令
   smbpasswd命令用於維護Samba服務器的用戶帳號
   添加Samba用戶帳號:# smbpasswd -a sambauser
   禁用Samba用戶帳號 :# smbpasswd -d sambauser
   啓用Samba用戶帳號 :# smbpasswd -e sambauser
   刪除Samba用戶帳號 :# smbpasswd -x sambauser
  9、共享目錄配置實例
   公共共享目錄配置要求
   在smb.conf中添加名爲[public ]共享目錄
   公共共享目錄的路徑是“/home/public”
   任何Samba的用戶都可以訪問公共目錄並對目錄具有讀寫權限
   任何用戶在公共目錄中都以Linux中“nobody”系統用戶的身份出現,即在公共目錄中任何用戶建立的文件都屬於“nobody”系統用戶
   smb.conf中添加的配置內容
  [public]
   path = /home/public path用於設置共享目錄對應的Linux系統目錄
   public = yes public設置爲yes表示該共享目錄對於所有Samba用戶可見
   only guest = yes “only guest”設置爲yes表示所有用戶在使用該共享目錄時的用戶身份都是“guest”,即Linux系統用戶“nobody”
   writable = yes writable設置爲yes表示該共享目錄對於用戶可寫
  10、配置文件語法檢測服務啓動
   測試smb.conf文件的內容
   testparm命令是配置文件測試工具,可以對smb.conf配置文件的語法進行檢測,並顯示當前配置的清單
  # testparm
  11、啓動Samba服務器
   啓動腳本文件:/etc/init.d/smb
   啓動服務命令:# service smb start
   查詢服務狀態:# service smb status
   停止服務命令:# service smb stop
  12、smbclient命令
   smbclient是Samba服務器的命令行方式的登錄客戶端,使用的形式類似telnet和ftp命令
   顯示指定Samba服務器中的共享資源列表 :# smbclient -L 192.168.1.2
   以指定用戶身份登錄到指定服務器的指定共享目錄
  # smbclient //192.168.1.2/st02 -U st02
  • “//192.168.1.2/st02”表示服務器“192.168.1.2”中的共享目錄“st02”
  • “-U st02”表示以Samba用戶“st02”的身份進行登錄
  13、smbstatus命令
   smbstatus命令用於顯示當前主機中的Samba服務器的連接狀態信息
   顯示信息包括連接服務器的每個Samba客戶端的IP地址、主機名稱、登錄用戶名、鎖定的文件等
  # smbstatus
  14、smbmount命令
   smbmount
   smbmount命令用於將Samba共享目錄掛載到Linux文件系統中
  # smbmount //192.168.1.2/public /mnt
   mount命令
   使用“-t”命令選項指定文件系統類型爲“smbfs”,
   使用“-o”選項設置使用指定用戶帳號
  # mount -t smbfs -o username=st02 //192.168.1.2/public /mnt
   卸載smb文件系統:# umount /mnt/
  階段總結
   Windows主機之間使用SMB/CIFS協議進行文件和打印的共享
   Samba服務器在Linux /UNIX系統中實現了SMB/CIFS協議
   Samba服務器需要運行smbd和nmbd兩個服務程序
   配置文件smb.conf是Samba服務器配置的核心
   使用smbclient和smbmount客戶端命令可以連接使用Samba服務器中的共享目錄
  15、Linux主機訪問Windows共享目錄
   使用Samba客戶端軟件訪問Windows共享
   在Linux系統中使用Samba客戶軟件訪問Windows共享目錄與訪問Samba服務器的方法相同
   使用smbclient登錄共享目錄:# smbclient //192.168.1.123/share -U osmond
   使用mount命令掛載共享目錄:
  # mount -t smbfs -o username=osmond //192.168.1.123/share /mnt
  16、Samba Web 管理工具
   使用swat管理Samba服務器
   swat管理工具以Web界面的形式提供了對Samba服務器的管理功能
   swat的安裝
   swat軟件包位於REHL4系統的第4張安裝光盤,系統默認沒有安裝,需要使用rpm命令手工進行安裝
  # rpm -ivh samba-swat-3.0.10-1.4E.i386.rpm
   設置swat的啓動狀態
  # chkconfig swat on
  # service xinetd restart
  17、訪問swat管理界面
   swat對客戶端的訪問控制
   文件“/etc/xinetd.d/swat ”中設置了允許訪問swat服務的客戶主機的IP地址,可根據管理需求進行更改
  only_from = 192.168.1.122
   swat的訪問地址
   在允許訪問swat的客戶機中使用網頁瀏覽器登錄swat
   swat服務使用“901”號端口
  http://192.168.1.2:901/
   訪問swat服務需要使用root用戶帳號進行登錄
  18、swat自動完成的工作
   swat中的操作將修改smb.conf配置文件
   在swat界面中的進行的操作將自動保存在smb.conf配置文件中
  # tail -2 /etc/samba/smb.conf
  [Document]
   path = /usr/share/doc/
   swat中進行的操作會即時生效,不需要手工執行smb腳本重新啓動服務程序
  階段總結
   Windows主機可以將Samba服務器主機作爲文件服務器,訪問其中的共享文件
   Linux主機使用Samba客戶端軟件可以訪問Windows主機中的共享文件
   swat服務程序提供了Web界面的Samba服務器管理功能
   通過swat提供的Samba服務器管理界面,可以方便的對Samba服務器進行配置管理
  
  
  第11章 FTP服務器
  1、FTP服務器及基本原理
  • FTP服務的基本概念
   FTP是用於進行文件傳輸的網絡協議
   FTP服務中分爲服務器和客戶機兩個角色
  • FTP服務器的傳輸模式
   主動模式:由服務器主動連接客戶機建立數據鏈路
   被動模式:FTP服務器等待客戶機建立數據鏈路
  • FTP服務器使用的端口
   21端口用於與客戶機建立命令鏈路
   在主動模式下服務器使用20端口向客戶機建立數據鏈路
  2、主動模式的連接過程
  1:FTP客戶機由大於1024的N端口向FTP服務器的21端口發出請求建立命令鏈路
  2:FTP服務器由21端口向FTP客戶機的N端口迴應,確認建立命令鏈路
  3:FTP服務器由20端口向FTP客戶機的N+1端口主動建立數據鏈路連接
  4:FTP客戶機由N+1端口向FTP服務器的20端口迴應,確認數據鏈路的建立
  3、被動模式的連接過程
  1:FTP客戶機由大於1024的N端口向FTP服務器的21端口發出請求建立命令鏈路
  2:FTP服務器由21端口向FTP客戶機的N端口迴應,確認建立命令鏈路
  3:FTP服務器會通過已建立的數據鏈路通知客戶機自己已經打開了大於1024的端口M,用於建路數據鏈路;當需要傳輸數據時,FTP客戶機會通過N+1端口向FTP服務器的M端口請求建立數據鏈路
  4:FTP服務器在M端口監聽到FTP客戶機的連接請求後,將從M端口向FTP客戶機的N+1端口確認數據鏈路的建立
  4、常用FTP服務器軟件
  • Windows下常用的FTP服務器軟件
   IIS具有FTP服務器的功能
   Serv-U是流行的FTP服務器軟件
  • Linux下的FTP服務器
   Wu-ftpd出現較早,運行穩定,安全性稍差
   Proftpd在配置文件和安全性方面有很大改進
   vsftpd着重強調服務的安全性,運行效率也很高
  • vsftpd服務器是本章學習的重點
  5、ftp命令作爲FTP客戶端
  ftp命令是最基本的FTP客戶端軟件
  在Linux和Windows系統中都默認提供ftp命令
  ftp命令的交互環境中使用命令對FTP服務器進行操作
  ftp中很多命令與Bash中的命令類似
  binary設置傳輸二進制文件,ascii設置傳輸文本文件
  get命令用於下載文件,put命令用於上傳文件
  mget和mput用於一次下載或上傳多個文件
  bye命令可退出ftp命令交互環境
  6、FTP客戶端軟件
  • FTP客戶端軟件的特點
   運行在圖形環境下的窗口程序
   可使用鼠標和通過菜單進行操作
   用戶界面友好,操作方便
  • 常用FTP客戶端軟件
   CuteFTP是Windows下流行的商業軟件
   Filezilla是Windows下運行的開源軟件
   gftp是Linux中GNOME桌面環境中運行的FTP客戶端軟件,是GNOME的重要組成部分
  7、安裝vsftpd
  • vsftpd的安裝需要注意以下幾點
   RHEL4系統中默認沒有安裝vsftpd服務器
   vsftpd服務器的安裝文件位於第1張安裝光盤中
   安裝文件名稱是vsftpd-2.0.1-5.i386.rpm
   使用rpm命名可順利安裝該軟件包
  # rpm -ivh vsftpd-2.0.1-5.i386.rpm
  8、vsftpd.conf配置文件
  • vsftpd.conf是vsftpd服務器的主配置文件:/etc/vsftpd/vsftpd.conf
  • 配置文件中所有的配置項都有相同的格式:anonymous_enable=YES
  • 配置文件中的註釋行以“#”開始
  • 配置文件的詳細幫助信息可查詢手冊頁:# man vsftpd.conf
  9、vsftpd服務器的缺省配置
  • vsftpd.conf文件中的缺省配置爲:
  anonymous_enable=YES 設置爲“YES”時FTP服務器允許匿名登錄
  local_enable=YES 設置爲“YES”時允許本地用戶登錄
  write_enable=YES 設置爲“YES”時FTP服務器開放對本地用戶的寫權限
  local_umask=022 local_umask設置項設置本地用戶的文件生成掩碼
  dirmessage_enable=YES 設置爲“YES”時當切換到FTP服務器中的某個目錄時,將顯示該目錄下的.message隱含文件的內容
  xferlog_enable=YES 設置爲“YES”時FTP服務器將啓用上傳和下載日誌
  connect_from_port_20=YES 設置爲“YES”時FTP服務器將啓用FTP數據端口的連接請求
  xferlog_std_format=YES 設置爲“YES”時FTP服務器將使用標準的ftpd xferlog日誌格式
  pam_service_name=vsftpd pam_service_name設置PAM認證服務的配置文件名稱
  userlist_enable=YES 設置爲“YES”時FTP服務器將檢查userlist_file設置文件中指定的用戶是否可以訪問vsftpd服務器
  listen=YES listen設置爲“YES”時FTP服務器將處於獨立啓動模式
  tcp_wrappers=YES設置爲“YES”時FTP服務器將使用tcp_wrappers作爲主機訪問控制方式
  10、vsftpd.ftpusers文件
  • vsftpd.ftpusers用於保存不允許進行FTP登錄的本地用戶帳號
  # head -5 /etc/vsftpd.ftpusers
  • vsftpd.ftpusers文件中可禁止高權限本地用戶登錄FTP服務器,提高了系統的安全性
  11、vsftpd.user_list文件
  • vsftpd.user_list文件具有對vsftpd服務器更靈活的用戶訪問控制
  /etc/vsftpd.user_list
  • 使用vsftpd.user_list文件需要在主配置文件中進行設置
   設置禁止vsftpd.user_list文件中的用戶登錄
  userlist_enable=YES
  userlist_deny=YES
   設置只允許vsftpd.user_list文件中的用戶登錄
  userlist_enable=YES
  userlist_deny=NO
  12、匿名用戶登錄
  • vsftpd服務器提供匿名用戶登錄的功能
   匿名用戶使用的登錄用戶名:anonymous
  ftp
   匿名FTP用戶登錄的口令通常是使用用戶的E-mail地址,在vsftpd中輸入任何字符串或直接回車都可以登錄
   所有匿名用戶都登錄到相同的目錄中:/var/ftp
   FTP服務器的匿名登錄可用於構建公共的文件下載服務器
  13、vsftpd服務的啓動和關閉
  • 服務器啓動腳本
   啓動腳本名稱是vsftpd:/etc/init.d/vsftpd
   vsftpd服務需要設置在運行級別3和5自動啓動:# chkconfig --level 35 vsftpd on
   服務器啓動:# service vsftpd start
   服務器停止:# service vsftpd stop
   服務器狀態查詢:# service vsftpd status
  14、使用ftp命令登錄FTP服務器
  • ftp命令登錄FTP服務器的格式:# ftp 192.168.1.2
  • 匿名登錄
   使用用戶名anonymous或ftp
   登錄的FTP根目錄爲系統目錄“/var/ftp”
  • 本地用戶登錄
   使用系統用戶帳號和口令登錄ftp服務器
   登錄FTP服務器後的目錄爲用戶宿主目錄,用戶可轉換到系統中的其他目錄
  15、FTP本地用戶帳號的問題
  • 使用FTP本地用戶帳號存在安全性問題
   FTP本地用戶使用Linux系統用戶帳號,存在安全隱患
   使用虛擬帳號替代本地用戶帳號可以增強系統的安全性
   本地用戶登錄FTP目錄後可從宿主目錄轉換到其他目錄,不是很安全
   可以設置將本地用戶禁錮在宿主目錄中
  16、將FTP本地用戶禁錮在宿主目錄中
  在vsftpd.conf文件中添加設置項:chroot_local_user=YES
  • 重新啓動vsftpd服務:# service vsftpd restart
  • 使用ftp客戶端驗證:本地用戶登錄FTP服務器後,宿主目錄將作爲根(/)目錄
  階段總結
   FTP是進行文件傳輸的網絡協議
   FTP服務器和客戶機軟件在Linux和Windows平臺都有多種選擇
   vsftpd是以安全見長的FTP服務器軟件
   FTP客戶端可以是ftp命令或窗口程序
   vsftpd服務使用vsftpd.conf文件進行核心配置
   vsftpd服務器的啓動腳本是vsftpd
   vsftpd默認配置支持匿名用戶登錄和本地用戶登錄
  17、vsftpd中支持的用戶類型
  • 匿名用戶:使用公共的用戶帳號進行登錄,通常用於提供公共文件下載服務
  • 本地用戶:使用Linux系統用戶帳號登錄,每個用戶都使用各自的宿主目錄
  • 虛擬用戶:使用獨立的文件保存虛擬帳號,安全性較好,可替代本地用戶
  18、vsftpd虛擬用戶帳號的設置步驟
  1. 建立虛擬用戶口令庫文件
  2. 生成vsftpd的認證文件
  3. 建立虛擬用戶所需的PAM配置文件
  4. 建立虛擬用戶所要訪問的目錄並設置相應權限
  5. 設置vsftpd.conf配置文件
  19、vsftpd虛擬用戶配置
  • 建立虛擬用戶口令庫文件
   口令庫文件中奇數行設置用戶名,偶數行設置口令 :# cat logins.txt
  • 生成vsftpd的認證文件
   使用db_load命令生成認證文件
   # db_load -T -t hash -f logins.txt /etc/vsftpd/vsftpd_login.db
   設置認證文件只對用戶可讀可寫 :# chmod 600 /etc/vsftpd/vsftpd_login.db
  • 建立虛擬用戶所需的PAM配置文件
   手工建立vsftpd.vu文件:# cat /etc/pam.d/vsftpd.vu
  auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
  account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
  • 建立虛擬用戶及要訪問的目錄並設置相應的權限
   建立所有FTP虛擬用戶帳號使用的系統用戶帳號,並設置該帳號宿主目錄的權限
  # useradd -d /home/ftpsite virtual
  # chmod 700 /home/ftpsite/
  • 設置vsftpd.conf配置文件
   在配置文件中添加虛擬用戶的配置內容
  guest_enable=YES
  guest_username=virtual
  pam_service_name=vsftpd.vu
  • 重新啓動vsftpd服務程序
   對vsftpd.conf文件修改後需要重新啓動vsftpd服務程序
  # service vsftpd restart
  20、測試虛擬用戶帳號的FTP登錄
  使用ftp命令登錄FTP服務器
  使用已配置的虛擬用戶名和口令登錄FTP服務器,如能夠正常登錄說明虛擬帳號配置成功
  爲了系統的安全,缺省配置的虛擬用戶只具有較低的用戶權限
  可以通過爲每個虛擬用戶建立獨立的配置文件增加用戶的權限
  21、對虛擬用戶設置不同的權限
  • 設置主配置文件
   在vsftpd.conf文件中添加用戶配置文件目錄設置
  user_config_dir=/etc/vsftpd_user_conf
  • 建立用戶配置文件目錄
   使用mkdir命令建立用戶配置文件目錄
  # mkdir /etc/vsftpd_user_conf
  爲虛擬用戶建立單獨的配置文件
  用戶配置文件名稱與用戶名相同
  /etc/vsftpd_user_conf/mike
  /etc/vsftpd_user_conf/john
  22、虛擬用戶配置文件中的配置項
  每個FTP虛擬用戶都可以獨立設置其權限
  anon_world_readable_only=NO 表示用戶可以瀏覽FTP目錄和下載文件
  anon_upload_enable=YES 表示用戶可以上傳文件
  anon_mkdir_write_enable=YES 表示用戶具有建立和刪除目錄的權利
  anon_other_write_enable=YES 表示用戶具有文件改名和刪除文件的權限
  23、配置vsftpd服務器中的資源限制
  vsftpd服務器中的資源使用可以進行限制
  max_clients=100 用於設置FTP服務器所允許的最大客戶端連接數,值爲0表不限制
  max_per_ip=5 用於設置對於同一IP地址允許的最大客戶端連接數,值爲0表不限制
  local_max_rate=500000 設置項用於設置本地用戶的最大傳輸速率,單位bytes/sec,同上
  anon_max_rate=200000用於設置匿名用戶的最大傳輸速率,單位bytes/sec,值爲0同上
  階段總結
  vsftpd服務器中可使用匿名用戶、本地用戶和虛擬用戶三種用戶類型
  FTP服務器中的虛擬用戶與本地用戶功能類似,但更加安全
  vsftpd服務器中使用虛擬用戶需要維護獨立的用戶口令庫文件
  vsftpd中的每個虛擬用戶可以建立用戶配置文件用於設置獨立的用戶權限
  vsftpd中可以限制客戶機對服務器資源的使用
  
  
  
  
  
  第12章 域名服務
  1、DNS的作用
   域名的正向解析
   將主機域名轉換爲對應的IP地址,以便網絡程序能夠通過主機域名訪問到對應的服務器主機
   域名的反向解析
   將主機的IP地址轉換爲對應的域名,以便網絡(服務)程序能夠通過IP地址查詢到主機的域名
  2、DNS服務的整體結構
   DNS服務體系是一個龐大的分佈式數據庫
   DNS服務採用樹型層次結構
   全世界的DNS服務器具有共同的根域(.)
   對域名的查詢是分層次進行的
   對域名www.sina.com.cn域名的解析需要依次經過:
  • 根(.)域的DNS服務器
  • “cn.”域的DNS服務器
  • “com.cn. ”域的DNS服務器
  • “sina.com.cn.”域的DNS服務器
  3、常用國家和地區域名後綴
  每個國家和地區都被分配了根域下的頂級域名
  域名後綴 表示
  .us 代表美國,但是很少使用
  .cn 代表中國
  .jp 代表日本
  .hk 代表中國香港
  .tw 代表中國臺灣
  4、常用機構的域名後綴
  按照機構職能的不同,使用不同的域名後綴
  域名後綴 表示
  .gov 代表政府機構
  .com 代表公司企業
  .edu 代表教育機構,高校
  .net 代表互聯網絡機構
  .org 代表非商業組織
  5、BIND服務器安裝
   RHEL4中包括了BIND服務相關的軟件包
  bind-libs-9.2.4-2 :提供了實現域名解析功能必備的庫文件 ,系統默認安裝
  bind-utils-9.2.4-2 :提供了對DNS服務器的測試工具程序 ,系統默認安裝
  bind-9.2.4-2 :BIND服務器軟件包,默認沒有被安裝到RHEL4系統中,需要使用rpm命令手工安裝
  安裝文件位於第4張安裝光盤中
  # rpm -ivh bind-9.2.4-2.i386.rpm
  6、BIND服務器的基本配置
   主配置文件
   named.conf是BIND服務器的主配置文件:/etc/named.conf
   工作目錄
   “/var/named/” 目錄用於保存BIND服務器的域名區域文件
   啓動腳本
   “/etc/init.d/”目錄中的named文件是BIND服務的啓動腳本用於控制BIND服務器的啓動和停止
  7、DNS服務器的類型
   緩存域名服務器
   或稱爲“惟高速緩存服務器”,主要功能是提供域名解析的緩存
   主域名服務器
   是特定域所有信息的權威性信息源,對於某個指定域,主域名服務器是惟一存在的;主域名服務器中保存了指定域的區域文件
   從域名服務器
   不進行特定域信息(區域文件)的權威設置,而是從該域的主域名服務器中獲取相應的文件並
  8、構建緩存域名服務器
  a、安裝caching-nameserver軟件包
   RHEL4系統爲配置緩存域名服務器專門提供了名爲“caching-nameserver”的軟件包
   該軟件包保存在第1張安裝光盤中
  # rpm -ivh caching-nameserver-7.3-3.noarch.rpm
  b、named.conf中的全局設置
  options {
   directory "/var/named"; directory設置BIND服務器工作目錄,即域名區域文件保存的目錄
   dump-file "/var/named/data/cache_dump.db"; dump-file設置域名緩存文件保存位置、文件名
   statistics-file "/var/named/data/named_stats.txt";
  };
  c、根區域設置
  named.conf中的根區域設置
  zone "." IN {
   type hint; type設置爲hint表示該區域的類型是根區域
   file "named.ca"; file用於設置區域文件,根區域文件的名稱是“named.ca
  };
  d、 根區域文件
  named.ca是根區域文件,位於“/var/named/ ”目錄
  e、 localhost正向解析
  localhost區域的作用是對主機名稱“localhost”和環回地址“127.0.0.1” 進行解析
  zone "localhost" IN {
   type master; type設置爲master表示區域的類型爲主服務器
   file "localhost.zone"; file設置區域文件名的名字
  };
  f、 localhost反向解析
  zone "0.0.127.in-addr.arpa" IN {
   type master;
   file "named.local";
  };
  9、構建主域名服務器
  a、在named.conf文件中設置域
   建立正向解析域
  zone "ltest.com" {
   type master;
   file "ltest.com.zone";
   };
   建立反向解析域
  zone "1.168.192.in-addr.arpa" {
   type master;
   file "192.168.1.rev";
   };
  b、建立正向區域文件
  /var/named/ltest.com.zone
  基本設置
  $TTL 86400
  @ IN SOA ns1.ltest.com. hostmaster.ltest.com. (
   42 ; serial (d. adams)
   3H ; “refresh”
   15M ; retry
   1W ; expiry
   1D ) ; minimum
  c、添加域名服務器記錄
   域名服務器記錄又稱爲NS記錄,在區域文件中用於設置當前域的DNS服務器名稱
  @ IN NS ns1.ltest.com.
  @ IN NS ns2.ltest.com.
   “@”符號在區域文件中代表默認的域(當前域)
  d、添加地址記錄
  地址記錄又稱爲A記錄,用於設置主機名到IP地址的對應記錄
  ns1 IN A 192.168.1.2
  ns2 IN A 192.168.1.3
  host1 IN A 192.168.1.11
  host2 IN A 192.168.1.12
  e、添加別名記錄
   別名記錄又稱CNAME記錄,用於在區域文件中對主機名稱設置別名
  mail IN CNAME host1.ltest.com.
  www IN CNAME host2.ltest.com.
  f 、添加郵件交換記錄
  a) 郵件交換記錄又稱MX記錄,用於設置當前域中提供郵件服務的服務器名稱
  @ IN MX 5 mail.ltest.com.
  g、建立反向區域文件
  /var/named/192.168.1.rev
   基本設置:內容與正向區域文件中的基本設置相同
   域名服務器設置:內容與正向區域文件中的基本設置相同
   添加反向地址解析記錄
  2 IN PTR ns1.ltest.com.
  3 IN PTR ns2.ltest.com.
  11 IN PTR host1.ltest.com.
  12 IN PTR host2.ltest.com.
  h、反向解析文件的完整清單
  # cat /var/named/192.168.1.rev
  $TTL 86400
  @ IN SOA ns1.ltest.com. hostmaster.ltest.com. (
   42 ; serial (d. adams)
   3H ; “refresh”
   15M ; retry
   1W ; expiry
   1D ) ; minimum
  @ IN NS ns1.ltest.com.
  @ IN NS ns2.ltest.com.
  2 IN PTR ns1.ltest.com.
  3 IN PTR ns2.ltest.com.
  11 IN PTR host1.ltest.com.
  12 IN PTR host2.ltest.com.
  10、配置文件和區域文件的測試
   測試named.conf主配置文件
  named-checkconf命令用於對BIND服務器的主配置文件中的配置內容進行檢測
  # named-checkconf
   測試區域文件
  named-checkzone命令用於檢查區域文件中的語法錯誤,對正向區域文件和反向區域文件都可以進行檢查
  # named-checkzone ltest.com /var/named/ltest.com.zone
  # named-checkzone 1.168.192.in-addr.arpa /var/named/192.168.1.rev
  11、構建從域名服務器
   在named.conf文件中設置域
  建立正向解析域
  zone "ltest.com" {
   type slave; type設置爲“slave”,表當前DNS服務器是該域的從域名服務器類型
   file "slaves/ltest.com.zone" 從域名服務器中的區域文件應設置保存在 “slaves”子目錄中,區域文件將從主域名服務器中獲取並保存在該目錄中
  
   masters { 192.168.1.2 ; }; 使用masters設置主域名服務器的IP地址
   };
  建立反向解析域
  zone "1.168.192.in-addr.arpa" {
   type slave;
   file " slaves/192.168.1.rev";
   masters { 192.168.1.2 ; };
   };
   檢測配置文件和啓動named服務
   從域名服務器只需要檢測配置文件的語法:# named-checkconf
   啓動從域名服務器:# service named start
   查看區域文件
   從服務器啓動後將從主域名服務器中獲得區域文件並保存在指定的目錄中
  # ls /var/named/slaves/
  192.168.1.rev ltest.com.zone
  階段總結
   DNS服務器提供主機域名和主機IP地址間進行轉換的服務
   BIND是UNIX系統中運行的優秀的DNS服務器
   RHEL4系統中提供了BIND服務器的RPM安裝包
   DNS服務器的主配置文件是named.conf
   DNS服務器的工作目錄是“/var/named”
   DNS服務器可分爲緩存域名服務器、主域名服務器和從域名服務器三類
  12、DNS測試原理
   DNS服務器的主要測試方法
   設置客戶機使用指定的DNS服務器,通過使用網絡客戶端程序訪問主機域名對DNS服務器進行簡單的測試
   使用nslookup、dig和host等專用工具可以對DNS服務器進行較全面的測試
   nslookup命令在Linux和Windows系統中都默認安裝,是比較常用的測試工具
  13、使用nslookup測試DNS服務器
   進入nslookup命令交換環境:# nslookup
  >
   設置使用指定的DNS服務器:> server 192.168.1.2
   測試localhost主機域名的正向解析 :> localhost
   測試localhost主機域名的反向解析 :> 127.0.0.1
   測試互聯網中的域名解析:> www.sina.com.cn
   測試ltest.com域中的A記錄:> host1.ltest.com
   測試ltest.com域中的PTR記錄:> 192.168.1.11
   測試ltest.com域中的CNAME記錄:> www.ltest.com
   測試ltest.com域中的NS記錄:> set type=ns
  > ltest.com
   測試ltest.com域中的MX記錄:> set type=mx
  > ltest.com
   設置進行A記錄的測試:> set type=a
  14、使用dig測試DNS服務器
   dig
   dig命令的格式
   dig命令可以比nslookup命令顯示更多的DNS服務器信息
   # dig @192.168.1.2 ltest.com
  階段總結
   通過網絡客戶端程序向DNS服務器進行域名查詢是最簡單的域名服務器測試方法
   nslookup、dig和host等程序能夠對DNS服務器提供更加全面的測試
   nslookup命令可運行在Linux和Windows平臺
   nslookup命令可以對DNS服務器中的A、PTR、CNAME、NS和MX等各種類型的資源記錄進行測試
   dig命令可以提供比nslookup更豐富的DNS服務器信息
  
  
  第13章 郵件服務
  1、常用郵件系統
  • 公共郵箱:國內:網易郵箱、新浪郵箱
  國際:Hotmail、雅虎郵箱、Gmail郵箱
  • 郵件服務器:Windows平臺:Exchange
  UNIX平臺:Sendmail、Qmail、Postfix
  2、郵件系統的組成
  • 郵件系統中的角色
   MUA:Mail User Agent ,郵件用戶代理
   MTA:Mail Transfer Agent ,郵件傳輸代理
  • 郵件協議
   郵件發送協議SMTP
   Simple Mail Transfer Protocol ,簡單郵件傳輸協議
   郵件收取協議
   POP3 : Post Office Protocol V3,郵局協議第3版
   IMAP4 : Internet Message Access Protocol V4,因特網消息訪問協議第4版
  3、Sendmail的安裝
  • Sendmail相關的軟件包
   Sendmail:Sendmail服務器程序的安裝包
   m4:包括了配置Sendmail服務器的必要工具
   sendmail-cf:包括了重新配置Sendmail服務器的必要配置文件
   sendmail-doc:包括了sendmail服務器的說明文檔
  4、Sendmail的控制啓動
  • 主機域名的要求
   sendmail運行的主機需要具有完整的域名
  • sendmail的啓動與停止
   啓動sendmail:# /etc/init.d/sendmail start
   停止sendmail:# service sendmail stop
  5、Sendmail主要配置文件
  • 配置目錄
   Sendmail的所有配置文件都保存在配置目錄中:/etc/mail
  • 配置文件
   sendmail.cf
  Sendmail服務器的主配置文件,手工配置難度很大:/etc/mail/sendmail.cf
   sendmail.mc
  修改sendmail.mc文件後,通過m4命令可生成新的sendmail.cf配置文件
  # m4 sendmail.mc > sendmail.cf
  • 配置Sendmail的一般步驟
   修改sendmail.mc文件中的設置內容
   使用m4命令生成新的sendmail.cf文件
   重新啓動sendmail服務器程序,使新的配置生效
  • 數據庫文件
   數據庫文件的後綴是“.db”:/etc/mail/access.db
   數據庫文件輔助進行sendmail服務器的配置
   數據庫文件是通過makemap文件生成的:# makemap hash access.db   • 日誌文件
   maillog日誌文件用於記錄Sendmail的事件信息
   maillog文件保存在“/var/log”目錄中:/var/log/maillog
  6、Sendmail的常見配置舉例
  • 實例配置要求
   郵件服務器的IP地址爲192.168.1.2,主機域名爲mail.ltest.com
   郵件服務器將爲“ltest.com”域中的用戶提供郵件服務
   郵件服務器具有SMTP用戶認證功能
  • 域名設置
   郵件服務器需要進行域名註冊
   在ltest.com區域文件中進行A記錄和MX記錄的設置
  @ IN MX 5
  mail.ltest.com.
  mail IN A
  192.168.1.2
  • 設置local-host-names文件
   local-host-names文件用於設置提供郵件服務的域名
   在local-host-names文件中增加“ltest.com”域:# vi /etc/mail/local-host-names
  //添加郵件服務器提供郵件服務的域名:ltest.com
  • 開啓sendmail服務的網絡接口
   在sendmail.mc文件中設置服務地址:# vi sendmail.mc
  DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
  //修改爲
  DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA')dnl
  • 設置SMTP的用戶認證
   sendmail.mc文件中的配置:# vi /etc/mail/sendmail.mc
  dnl TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
  dnl define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
  //去除行首的註釋標記“dnl”,修改爲
  TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
  define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
   啓動saslauthd服務程序:# service saslauthd start
  • 郵件用戶帳號
   Sendmail服務器使用Linux系統中的用戶帳號作爲郵件帳號
   建立郵件用戶組:# groupadd mailuser
   建立郵件用戶帳號:# adduser -g mailuser -s /sbin/nologin mike
   初始化用戶口令:# passwd mike
  • 設置郵件別名和郵件羣發功能
   郵件別名和郵件羣發功能使用aliases機制實現
   aliases和aliases.db文件:/etc/aliases /etc/aliases.db
   aliases文件的記錄格式:name: addr_1, addr_2, addr_3, . . .
   設置郵件別名:admin: mike
   設置郵件羣發:testgroup: mike,john
   修改aliases文件後更新aliases.db文件:# newaliases
  • 訪問控制的設置
   access.db數據庫可實現基於主機地址的訪問控制
  # cat /etc/mail/access
  localhost.localdomain RELAY
  localhost RELAY
  127.0.0.1 RELAY
   access.db數據庫默認開啓了對郵件服務器本機用戶的郵件投遞
  • 生成sendmail.cf文件:# cd /etc/mail
  # m4 sendmail.mc> sendmail.cf
  • 重新啓動sendmail服務器
   當完成對sendmail服務器的配置後,需要重新啓動服務程序:
  # service sendmail restart
  • 驗證服務程序啓動:# netstat -ntpl | grep 25
  tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 6835/sendmail: acce
  階段總結
   SMTP、POP3和IMAP4是郵件系統中使用的網絡協議,可實現郵件的發送和收取
   Sendmail服務器的配置文件保存在“/etc/mail”目錄中
   Sendmail的主配置文件sendmail.cf是由m4命令根據sendmail.mc文件的內容生成的
   Sendmail服務器可以配置爲具有用戶認證功能的MTA服務器,可阻止垃圾郵件的發送
  7、安裝dovecot 服務器
  • RHEL4中安裝dovecot服務器
   dovecot服務器可實現POP3和IMAP4服務
   dovecot服務器沒有被缺省安裝
   dovecot需使用應用程序管理工具安裝
  # system-config-packages
  8、設置dovecot服務器
  • dovecot配置文件
   dovecot服務器的配置文件保存在“/etc”目錄下:/etc/dovecot.conf
  • 開啓dovecot 的pop3服務
   修改dovecot.conf文件:# vi /etc/dovecot.conf
  //將以下配置行:#protocols = imap imaps
  //修改爲:protocols = imap imaps pop3
  9、啓動dovecot服務程序
  • 使用腳本啓動dovecot服務
   對dovecot.conf配置文件進行設置後,需要重新啓動dovecot服務程序
  # service dovecot restart
  • 設置dovecot服務的啓動狀態
   設置dovecot的啓動狀態:# chkconfig --level 35 dovecot on
  • 驗證dovecot服務啓動
   使用netstat命令查看dovecot已經監聽110端口:# netstat -ntpl | grep 110
  10、使用郵件客戶端
  • 在OutLook Express中設置郵件帳號
   對於用戶mike需要設置郵件帳號爲[email protected]
   SMTP服務器設置爲mail.ltest.com
   POP3服務器設置爲mail.ltest.com
  11、安裝配置OpenWebmail
  • 修改系統的selinux設置
   在安裝OpenWebmail之前需要先禁用系統中的SELinux功能
   # vi /etc/sysconfig/selinux
  //將配置行:SELINUX=enforcing
  //修改爲:SELINUX=disabled
   在對selinux配置文件進行修改後,需要重新啓動系統才能夠使新的設置生效
  # init 6
  • 下載OpenWebmail所需的文件
   OpenWebmail及相關軟件包不包括在RHEL4中,需單獨獲得
  openwebmail-2.51-1.i386.rpm
  perl-CGI-SpeedyCGI-2.22-1.2.el4.rf.i386.rpm
  perl-Compress-Zlib-1.34-1.2.el4.rf.i386.rpm
  perl-suidperl-5.8.5-12.1.i386.rpm
  perl-Text-Iconv-1.4-1.2.el4.rf.i386.rpm
  • 安裝OpenWebmail軟件包
   使用rpm命令安裝openwebmail及相關軟件包
  # rpm -ivh perl*.rpm
  # rpm -ivh openwebmail*.rpm
  • 建立dbm.conf文件
   OpenWebmail需要建立 “dbm.conf” 配置文件
  # vi /var/www/cgi-bin/openwebmail/etc/dbm.conf
  dbm_ext .db
  dbmopen_ext .db
  dbmopen_haslock no
  • 初始化OpenWebmail系統
   執行openwebmail-tool.pl程序對OpenWebmail系統進行初始化
  # /var/www/cgi-bin/openwebmail/openwebmail-tool.pl --init
  12、通過Web服務器發佈Webmail
  • 啓動Apache服務器
   訪問OpenWebmail之前需要先啓動httpd服務程序:# service httpd start
  • 訪問OpenWebmail的界面
   在客戶端主機中使用網頁瀏覽器訪問OpenWebmail
  http://mail.ltest.com/cgi-bin/openwebmail/openwebmail.pl
  13、管理OpenWebmail應用系統
  • OpenWebmail的配置文件
   通過openwebmail.conf文件進行配置
  /var/www/cgi-bin/openwebmail/etc/openwebmail.conf
  • 修改配置文件中的設置項
   設置郵件系統域名和中文界面顯示
  # vi /var/www/cgi-bin/openwebmail/etc/openwebmail.conf
  //完成以下設置行的修改
  domainnames ltest.com
  default_language zh_CN.GB2312
  default_iconset Cool3D.Chinese.Simplified
  • 驗證對OpenWebmail的設置
   重新登錄OpenWebmail將變爲中文顯示界面
  • OpenWebmail中的個人設置
   對於單個用戶可以在界面中進行個人屬性的設置
  14、OpenWebmail中設置郵件過濾
  • 設置郵件過濾
   登錄OpenWebmail界面後,默認的工作區爲“收件箱”
   選擇“郵件規則”圖標進入“編輯郵件過濾規則”界面
  • 郵件過濾規則
   郵件過濾規則屬性:規則優先級、過濾條件、字符串、操作動作、目的郵件夾
   公共過濾規則:公共過濾規則是隻讀的,不能進行修改和刪除
   自定義規則:用戶可以根據實際需求進行郵件過濾規則的自定義
  階段總結
  • dovecot服務器缺省不提供pop3服務,需要在配置文件中進行設置
  • 在郵件客戶端軟件中需要配置用戶郵件帳號、SMTP服務器地址和POP3服務器地址等信息後,才能夠正確的收發郵件
  • OpenWebmail應用系統的運行需要Perl環境和Apache服務器的支持
  • 通過OpenWebmail提供的操作界面,郵件用戶可以登錄自己的郵箱進行郵件的閱讀和發送,並對郵箱進行管理操作
  

  
  第14章 網絡服務
  1、Apache服務器的起源
   Apache是著名的開源軟件項目
   Apache是著名的Web服務器軟件
   Apache名稱的原型爲A Patchy Server
   Apache項目由Apache軟件基金會(ASF)負責管理和開發
  2、Apache的主要特點
   Apache服務器的特點
   開放源代碼
   跨平臺應用,可運行於Windows和大多數UNIX/Linux 系統
   支持Perl、PHP、Python和Java等多種網頁編程語言
   採用模塊化設計
   運行非常穩定
   具有相對較好的安全性
  3、Apache的版本分支
   Apache服務器的兩個版本分支
   Apache服務器目前同時維護1.X和2.X兩個版本分支
   1.X:目前最高版本是1.3,系統運行穩定、缺乏一些較新的功能
   2.X:具有新的功能特性、與1.X的配置存在較大差別、沒有1.X運行穩定
  4、Apache的RPM包安裝
   Apache的RPM軟件包
   RHEL4系統中包括Apache服務器的RPM軟件包
   httpd軟件包:是Apache服務器的程序軟件包
   httpd-manual軟件包:是Apache服務器的手冊文檔
   Apache服務器RPM安裝後的目錄和文件
  目錄或文件 描述
  /etc/httpd/ Apache服務器的根目錄
  /etc/httpd/conf/httpd.conf Apache服務器的主配置文件
  /var/www/html/ Apache服務器的文檔根目錄
  /etc/init.d/httpd Apache服務器的啓動腳本文件
  /var/log/httpd/access_log Apache服務器的訪問日誌文件
  /var/log/httpd/error_log Apache服務器的錯誤日誌文件
  5、Apache編譯安裝
   編譯安裝的優點
   具有較大的自由度,功能可定製
   可及時獲得新版本
   普遍適用於大多數Linux版本
   獲得Apache服務器的源碼包
   從Apache的官方網站下載源碼包:http://httpd.apache.org/download.cgi
   源碼包文件:httpd-2.0.59.tar.gz
   確認Linux系統中的編譯環境
   編譯安裝需要系統中具備gcc等編譯工具
   可使用圖形界面的軟件包管理程序安裝完整編譯環境 :# system-config-packages
   編譯安裝的步驟
   釋放源碼包文件
   編譯前的配置
   編譯服務器程序
   安裝已編譯完成的程序
   編譯步驟操作
   使用tar命令釋放源代碼安裝包 :# tar zxvf httpd-2.0.59.tar.gz
   使用./configure命令進行編譯前的配置工作
  # ./configure --prefix=/usr/local/apache2 --enable-so --enable-rewrite
   使用make命令進行程序的編譯 :# make
   使用make install命令將已經編譯的文件安裝到系統中:# make install
  6、Apache服務器的目錄結構
   “/usr/local/apache2/”目錄中的子目錄
  子目錄 描述
  bin 保存Apache服務器運行和管理所需的執行程序
  lib 保存Apache服務器運行所需的庫文件
  conf 保存Apache服務器的配置文件
  htdocs Apache服務器的文檔根目錄
  manual 保存Apache服務器的幫助手冊文件(網頁格式)
  man 保存Apache服務器的手冊頁文件
  logs 保存Apache服務器的日誌文件
  7、Apache服務器的啓動和停止
   使用apachectl腳本控制服務程序
   apachectl腳本文件:/usr/local/apache2/bin/apachectl
   啓動httpd服務程序 :apachectl start
   重新啓動httpd服務程序 :apachectl restart
   停止httpd服務程序運行 :apachectl stop
   測試httpd.conf的語法 :apachectl -t
  8、httpd.conf配置文件解析
   httpd.conf配置文件的結構
   註釋行以“#”開始
   不以“#”開始的行是配置文件中真正有效的設置內容
   獲得完整的有效配置清單
   使用grep命令去除文件中以#開始的行:grep -v "^#" conf/httpd.conf
   httpd.conf中的全局配置
  設置項 說明
  ServerRoot 設置Apache服務器的根(Root)目錄
  ServerAdmin 設置Apache服務器管理員的E-mail地址
  ServerName 設置Apache服務器的主機名
  DocumentRoot 設置Apache服務器網頁(文檔)根目錄
  Listen 設置Apache服務器監聽的網絡端口號
  PidFile 設置保存httpd服務器程序進程號(PID)的文件
  
  設置項 說明
  ErrorLog 設置Apache服務器中錯誤日誌文件的路徑和文件名
  CustomLog 設置Apache服務器中訪問日誌文件的路徑和格式類型
  Timeout 設置Web服務器與瀏覽器之間網絡連接的超時秒數
  KeepAlive 設置爲Off時服務器不使用保持連接功能,傳輸的效率比較低;設置爲On時,可以提高服務器傳輸文件的效率,建議設置保持連接功能有效
  MaxKeep
  AliveRequests 當KeepAlive爲On時,設置客戶端每次連接允許請求響應的最大文件數 ,默認設置爲100個文件
   httpd.conf中的區域設置
   除全局設置外,httpd.conf文件中的大多數設置都是包括在“區域”中的
  :使用定義根區域的開始
   Options FollowSymLinks
   AllowOverride None
   :使用定義根區域的結束
  9、建立系統用戶的個人主頁
   httpd.conf文件配置
   在httpd.conf文件中需要進行UserDir的設置:UserDir public_html
   用戶目錄設置
   用戶宿主目錄需設置爲其他用戶可以進入:$ chmod o+x ~
   用戶宿主目錄中需要建立public_html目錄:$ mkdir public_html
   public_html目錄中需要建立index.html文件
   訪問用戶個人主頁:http://192.168.1.2/~st02/
  10、域名虛擬主機的配置
   httpd.conf文件中添加虛擬主機
  NameVirtualHost 192.168.1.2 用於設置域名虛擬主機使用的IP地址
   使用和建立在地址“192.168.1.2:80”上的虛擬主機區域
   ServerName www.ltest.com 使用ServerName設置當前虛擬主機所使用的域名
   DocumentRoot /home/ltest.com 設置當前虛擬主機所使用的文檔根目錄
  
  11、Apache的日誌
   Apache的兩類日誌文件
   httpd.conf中對日誌文件的設置:ErrorLog logs/error_log
  :CustomLog logs/access_log common
   訪問日誌文件:用於記錄對Apache服務器的訪問事件
  /usr/local/apache2/logs/access_log
   錯誤日誌文件:用於記錄Apache服務器中的錯誤事件
  /usr/local/apache2/logs/error_log
  階段總結
   Apache是著名的Web服務器軟件,可運行在多種操作系統平臺
   在RHEL4系統中,Apache服務器可採用RPM和源碼編譯兩種方式進行安裝
   apachectl是Apache服務器的啓動腳本程序,可以對httpd服務程序進行啓動控制
   Apache服務器的主配置文件是httpd.conf,用於對Apache服務器進行功能和性能的配置管理
  12、LAMP網頁應用架構
   LAMP的組成:Linux作爲操作系統、Apache作爲Web服務器
  MySQL作爲數據庫服務器、PHP/Perl/Python作爲編程語言
   LAMP的特點
   全部組成部分都採用開源軟件
   適合於構建各種類型的網頁應用系統
   具有廣泛的應用系統支持
  13、配置LAMP應用
   安裝並管理MySQL服務器
   獲得MySQL軟件包:http://dev.mysql.com/downloads/
   添加mysql用戶和組:# groupadd -g 200 mysql
  # useradd -u 200 -g mysql -d /usr/local/mysql/data -M mysql
   釋放MySQL軟件包:# tar zxvf mysql-3.23.58-pc-linux-i686.tar.gz -C /usr/local/
  # cd /usr/local/
  # ln -s mysql-3.23.58-pc-linux-i686/ mysql
   初始化MySQL服務器中的數據庫 :# ./scripts/mysql_install_db
   啓動mysql服務程序:# /usr/local/mysql/bin/safe_mysqld --user=mysql &
   設置數據庫管理員用戶口令
  # /usr/local/mysql/bin/mysqladmin -u root password 'myrootpw'
   登錄數據庫:# /usr/local/mysql/bin/mysql -u root
   安裝並管理PHP環境
   獲取php源碼包:http://www.php.net/downloads.php
   釋放php源碼包:# tar zxvf php-4.4.4.tar.gz -C /usr/local/src/
   完成編譯前的配置:
  # cd /usr/local/src/php-4.4.4
  # ./configure --prefix=/usr/local/php4 / 設置php程序的安裝路徑
  > --with-apxs2=/usr/local/apache2/bin/apxs / 設置php爲Apache服務器提供的模塊的安裝位置
  > --with-mysql=/usr/local/mysql / 設置mysql服務器程序的安裝位置
  > --with-config-file-path=/usr/local/php4 設置php程序的配置文件所在的位置
   編譯並安裝php程序:# make; make install
   建立php的配置文件:# cp php.ini-dist /usr/local/php4/php.ini
   進行Apache服務器中的設置
   httpd.conf中對php的配置
  LoadModule php4_module modules/libphp4.so
  AddType application/x-httpd-php .php
  DirectoryIndex index.html index.html.var index.php
   停止並再次啓動httpd服務程序:# /usr/local/apache2/bin/apachectl stop
  :# /usr/local/apache2/bin/apachectl start
   測試php網頁
   建立php測驗頁: # vi /usr/local/apache2/htdocs/test.php
  

  phpinfo( );
  ?>
   訪問測試頁:http://192.168.1.2/test.php
   安裝phpBB論壇系統
   獲得phpBB安裝包:http://www.phpbb.com/downloads.php
   釋放phpBB安裝包:# tar zxvf phpBB-2.0.21.tar.gz -C /usr/local/apache2/htdocs/
   設置目錄屬主和屬組:# chown -R nobody:nobody phpBB2/
   訪問phpBB安裝嚮導頁面:http://192.168.1.2/phpBB2/
   刪除配置目錄:# cd /usr/local/apache2/htdocs/phpBB2/
  # rm -rf install/ contrib/
   訪問phpBB論壇首頁:http://192.168.1.2/phpBB2/
  階段總結
   LAMP環境由Linux、Apache、MySQL和PHP/Perl/Python組成
   LAMP環境的構建需要配置Apache、MySQL和PHP進行協同工作
   phpBB是典型的LAMP應用,可實現論壇系統的功能
  
  

  第7章 代理服務器與防火牆
  1、應用層代理
   應用層代理的基本概念
   應用層代理針對特定的網絡協議提供代理服務
   HTTP代理和FTP代理是應用層代理的典型應用
   使用代理服務器可以解決的問題
   局域網中的所有主機都可以通過同局域網中具有互聯網訪問能力的代理服務器主機進行外部網絡的訪問
   代理服務器對已經訪問過的內容提供緩存,可有效的減少對外部網絡的訪問流量,並能夠提高頻繁訪問的頁面的訪問效率
   通過代理服務器可以進行一定程度的訪問控制,可以對客戶端和被訪問頁面進行控制
  2、代理服務的應用原理
  代理服務器工作在TCP/IP的應用層
  
  
  3、網絡層防火牆
   網絡防火牆軟件的主要功能
   對進入和流出的IP數據包進行過濾,屏蔽不符合要求的數據包,保證內部網絡的安全
   提供數據包的路由選擇,實現網絡地址轉換(NAT),從而解決局域網中主機使用內部IP地址也能夠順利訪問外部網絡的應用需求
   防火牆的類型
   硬件防火牆是功能專一的硬件設備,價格昂貴
   軟件防火牆的功能是由計算機中的軟件實現的,具有相當大的價格優勢
  4、網絡層防火牆的應用原理
   網絡防火牆工作在TCP/IP的網絡層
  
  5、Linux中代理服務和防火牆的實現
   Linux中使用軟件實現代理和防火牆功能
   使用netfilter/iptables架構實現網絡防火牆的基本功能
   使用squid服務器軟件實現HTTP服務的代理功能
  6、Linux防火牆軟件的發展與實現
   Linux中的防火強功能是由內核實現的
   在2.0內核中,網絡防火牆的操作工具名稱是ipfwadm
   在2.2內核中,網絡防火牆的操作工具名稱是ipchains
   在2.4之後的內核中,網絡防火牆的操作工具名稱是iptables
   netfilter與iptables
   在Linux的內核中使用netfilter架構實現防火牆功能
   iptables是Linux系統中爲用戶提供的netfilter管理工具,用於實現對Linux內核中網絡防火牆的管理
  7、iptables規則鏈
  iptables缺省具有5條規則鏈
  8、iptables規則表
   iptables缺省具有3個規則表
   Filter:用於設置包過濾
   NAT:用於設置地址轉換
   Mangle:用於設置網絡流量整形等應用
   不同的規則表由不同的規則鏈組成
   Filter:INPUT、FORWARD、OUTPUT
   NAT:PREROUTING、POSTROUTING、OUTPUT
   Mangle:PREROUTING、POSTROUTING、INPUT、OUTPUT和FORWARD
  9、netfilter/iptables的典型應用
   netfilter/iptables的典型應用
   作爲主機防火牆實現外部網絡與主機之間的訪問控制
   作爲網絡防火牆提供外部網絡與內部網絡的訪問控制
   作爲網關服務器實現網絡地址轉換(NAT)功能,實現內部網絡通過網關主機共享訪問外部網絡
   netfilter/iptables可以在Linux系統中實現網絡防火牆的各種常用功能
  10、iptables的軟件包組成
   RHEL4中的iptables軟件包
  # rpm -q iptables
  iptables-1.2.11-3.1.RHEL4
   iptables軟件包中的管理命令
   iptables是主要管理命令,對網絡防火牆功能的管理是通過iptables命令實現的
   iptables-save命令可以將當前系統中的防火牆設置進行保存
   iptables-restore命令可以將使用iptables-save命令保存的防火牆策略配置恢復到當前系統中
  11、iptables服務的啓動與停止
   iptables服務啓動腳本:/etc/rc.d/init.d/iptables
   iptables配置文件與策略設置文件
   iptables配置文件:/etc/sysconfig/iptables-config
   策略設置文件:/etc/sysconfig/iptables
   iptables服務的啓動與停止
   iptables服務缺省自動啓動
   可通過啓動腳本手工啓動和停止iptables服務:# service iptables start
  12、查看防火牆的基本狀態
   查詢防火牆的狀態
   使用iptables命令查詢防火牆狀態:# iptables -L
  13、使用iptables命令進行策略設置
   iptables命令是對防火牆配置管理的核心命令
   iptables命令提供了豐富的功能,可以對Linux內核中的netfilter防火牆進行各種策略的設置
   iptables命令的設置在系統中是即時生效的
   使用iptables命令手工進行的防火牆策略設置如果不進行保存將在系統下次啓動時丟失
  14、使用iptables-save命令保存設置
   iptables-save命令提供了防火牆配置的保存功能
   iptables-save命令缺省只將配置信息顯示到標準輸出(屏幕)中 :# iptables-save
   如果需要將iptables-save命令的輸出保存,需要將命令輸出結果重定向到指定的文件中:# iptables-save > ipt.v1.0
   使用iptables-save命令可以將多個版本的配置保存到不同的文件中
  15、使用iptables-restore命令恢復設置
   iptables-restore命令可恢復防火牆設置
   iptables-restore命令可恢復使用iptables-save命令保存的防火牆設置內容
   iptables-restore命令從標準輸入或輸入重定向文件中獲取防火牆的設置內容
  # iptables-restore < ipt.v1.0
   iptables-restore命令可快速恢復指定版本的防火牆配置
  16、使用iptables腳本保存防火牆設置
   iptables腳本可以保存當前防火牆配置
   在保存防火牆當前配置前應先將原有配置進行備份
  # cp /etc/sysconfig/iptables iptables.raw
   iptables腳本的save命令可以保存防火牆配置:# service iptables save
   配置內容將保存在“/etc/sysconfig/iptables”文件中,文件原有的內容將被覆蓋
  17、使用防火牆的配置工具
   RHEL4中提供了防火牆配置程序
   運行防火牆配置工具:# system-config-securitylevel-tui
   在防火牆配置工具設置後會即時生效,並將設置保存到“/etc/sysconfig/iptables”文件中
  18、iptables命令的使用
   iptables命令的操作對象包括
   規則表(table)由規則鏈的集合組成,不同的規則表用於實現不同類型的功能
   規則鏈(chain)由規則的集合組成,保存在規則表中;在規則表中不同的規則鏈代表了不同的數據包流向
   規則(rule)是最基本的設置項,用於對防火牆的策略進行設置;流經某個數據鏈的數據將按照先後順序經過規則的“過濾”
   iptables中缺省包括3個規則表
   filter
   nat
   mangle
   iptables命令可查看規則表的內容
   基本語法:iptables [-t table] -[L] [chain] [options]
   不指定表名稱時查看filter表的內容:# iptables -L
   查看指定的規則表:# iptables -t nat -L
   清空表中的規則
   命令格式:iptables [-t table] -F [chain] [options]
   清空filter表中的所有規則:# iptables -F
   清空nat表中的所有規則:# iptables -t nat -F
   刪除表中的自定義規則鏈
   命令格式:iptables [-t table] -X [chain]
   添加規則
   命令格式:iptables [-t table] -A chain rule-specification [options]
   在INPUT規則鏈中添加規則,允許來自“lo”網絡接口中所有數據包
  # iptables -A INPUT -i lo -j ACCEPT
   在INPUT規則鏈中添加規則,允許“eth0”網絡接口中來自“192.168.1.0/24”子網的所有數據包
  # iptables -A INPUT -i eth0 -s 192.168.1.0/24 -j ACCEPT
   刪除規則
   命令格式:iptables [-t table] -D chain rule-specification [options]
   刪除規則的iptables命令與添加規則的命令格式類似
   刪除INPUT規則表中已有的規則
  # iptables -D INPUT -i eth0 -s 192.168.1.0/24 -j ACCEPT
   設置內置規則鏈的缺省策略
   命令格式:iptables [-t table] -P chain target [options]
   只有內建規則鏈才能夠設置“缺省策略”
   將INPUT規則鏈的缺省策略設置爲“DROP”:# iptables -P INPUT DROP
   將規則鏈的缺省策略的缺省策略設置爲“DROP”,然後在逐個添加允許通過的規則是比較嚴謹的規則設置方法
  19、防火牆配置實例
   設置主機防火牆策略
   使用iptables命令設置防火牆策略
  # iptables –F 清除filter規則表中的所有規則
  # iptables –X 清除filter規則表中的自定義規則鏈
  # iptables –Z 清除filter規則表的計數
  # iptables -P INPUT DROP 設置filter表中INPUT規則鏈的缺省策略爲DROP
  # iptables -A INPUT -i lo -j ACCEPT 在規則鏈中添加規則允許來自lo網絡接口所有數據包
  # iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT 在INPUT規則鏈中添加規則允許
  # iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT 來自eth0網絡接口的SSH、WWW
  # iptables -A INPUT -i eth0 -p tcp --dport 3128 -j ACCEPT 和SQUID類型的數據包
  # service iptables save
   設置Linux作爲網關服務器
   配置需求
  • 服務器網接口eth0的IP地址爲“192.168.1.1/24”,eth0網絡接口與公司的內部網絡相連
  • 服務器的網絡接口ppp0是主機的撥號網絡接口,具有公網IP地址
  • 局域網中的所有主機都需要通過Linux網關服務器與外部互聯網進行通信
   關鍵配置命令
  # iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o ppp0 -j MASQUERADE
  “-t nat -A POSTROUTING ”表示在nat表的POSTROUTING規則鏈中添加規則
  “-s 192.168.1.0/24”表示數據包的源地址爲“192.168.1.0/24”子網
  “-o ppp0”表示數據包的流出網絡接口是“ppp0”,“ppp0”網絡接口具有公網IP地址
  “-j MASQUERADE”表示對數據包進行的處理,即將符合條件的數據包進行IP僞裝
  階段總結
   代理服務器和網絡防火牆工作在不同的協議層
   在Linux系統中內核提供包過濾防火牆功能,使用squid服務器實現代理服務器功能
   netfilter是Linux內核中的包過濾框架,iptables是對netfilter的管理工具
   使用iptables可設置Linux系統實現各種常用的網絡防火牆功能
  20、squid服務器的功能
   squid服務具有以下基本功能
   提供對HTTP和FTP協議的代理服務
   緩存代理的內容,提高客戶端訪問網站的速度,並能夠節約出口網絡流量
   對客戶端地址進行訪問控制,限制允許訪問squid服務器的客戶機
   對目標地址進行訪問控制,限制客戶端允許訪問的網站
   根據時間進行訪問控制,限定客戶端可以使用代理服務的時間
  21、squid服務器的代理工作機制
   squid服務器具有代理和緩存的基本功能
  22、squid服務器的安裝
   squid服務器在RHEL4系統中已經默認安裝 :# rpm -q squid
  squid-2.5.STABLE6-3
   squid服務的啓動狀態
   squid服務程序在RHEL4中默認不自動啓動
   需要用chkconfig命令設置squid服務在運行級別3和5中自動啓動
  # chkconfig --level 35 squid on
  23、squid服務啓動前的準備
   確認主機具有完整的域名
   squid服務運行需要Linux主機具有完整的域名:# grep `hostname` /etc/hosts
   squid服務器的初始化
   在第一次使用squid服務器之前需要先對squid服務器進行初始化工作 :# squid -z
   初始的主要作用是在squid服務器的工作目錄中建立需要的子目錄
  # ls /var/spool/squid/
  00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
  24、squid服務的啓動與停止
   啓動腳本
   squid服務的啓動腳本名稱是“squid”:/etc/init.d/squid
   啓動與停止squid服務
   啓動squid服務:# service squid start
   停止squid服務:# service squid stop
   服務端口
   squid服務器的缺省服務端口爲3128
  25、squid服務的配置文件
   配置目錄
   squid具有獨立的目錄保存配置文件:/etc/squid/
   主配置文件
   主配置文件squid.conf保存在配置目錄中:/etc/squid/squid.conf
   squid.conf文件中的配置選項
   配置服務端口:http_port 3128
   squid.conf文件中的配置選項
   緩衝內存數量:cache_mem 8 MB
  • “cache_mem”的值設置爲服務器物理內存的三分之一比較合適
   工作目錄 :cache_dir ufs /var/spool/squid 100 16 256
  • “cache_dir”設置項的缺省值爲設置“/var/spool/squid”作爲squid的工作路徑,“100 16 256”分別表示,目錄中最大的容量是100MB,目錄中的一級子目錄的數量爲16個,二級子目錄爲“256”個
   squid.conf文件中的配置選項
   訪問控制設置
  • “http_access”用於設置允許或拒絕訪問控制對象
  http_access allow localhost
  http_access deny all
   訪問控制列表(ACL)的定義
  • “acl”配置項用於設置訪問控制列表的內容
  acl all src 0.0.0.0/0.0.0.0
  acl localhost src 127.0.0.1/255.255.255.255
   重新啓動squid服務
   對squid.conf文件修改後需要重新啓動服務程序:# service squid restart
  26、配置透明代理服務器
   配置squid服務器
   修改squid.conf配置文件中的設置:# vi /etc/squid/squid.conf
  //在配置文件中添加以下的配置行
  httpd_accel_host virtual
  httpd_accel_port 80
  httpd_accel_with_proxy on
  httpd_accel_uses_host_header on
   重新啓動squid服務器:# service squid reload
   設置防火牆策略:# iptables -t nat -A PREROUTING -s 192.168.1.0/24 /
  > -p tcp --dport 80 -j REDIRECT --to-ports 3128
  “-t nat -A PREROUTING ”表示在nat表的PREROUTING規則鏈中添加規則
  “-s 192.168.1.0/24”表示數據包的源地址爲“192.168.1.0/24”子網
  “-p tcp”表示數據包的協議爲“tcp”,“--dport 80”表示數據包訪問的目的端口爲“80”,即標準的WWW服務
  “-j REDIRECT”表示將符合條件的數據包進行重定向,“--to-ports 3128”表示將數據包重定向到“3128”端口,“3128”端口是squid服務器提供網頁代理服務的端口
  27、網頁瀏覽器的代理設置
   透明代理
   如果網關配置爲透明代理將不需要在網絡瀏覽器中進行任何的代理設置
   使用代理服務器
   直接使用squid代理服務器需要在瀏覽器中進行代理服務器的信息設置
  階段總結
   squid是著名的代理服務器軟件,可實現HTTP和FTP協議的代理功能
   squid服務器的基本功能包括代理服務和內容緩存服務
   squid服務器的主配置文件“squid.conf”保存在“/etc/squid”目錄中
   squid提供代理服務的缺省端口是“3128”
   squid服務器可以對代理的內容和客戶端進行一定的訪問控制
   網頁瀏覽器使用代理服務器時需要進行設置

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章