Ubuntu服務器入門指南

 

Ubuntu 服務器指南

目錄

[隱藏]

[編輯] 關於本指南

[編輯] 排版約定

本文檔將使用下列記號:備註,一般表示一段有趣的,有時是技術性的,並和上下文相關的信息。提示,提供有完成某件事情的建議或捷徑。警示,提醒讀者可能面臨的問題,並給出避免這些問題的幫助信息。警告,告知讀者在特定情形下可能出現的風險。

用於打印的交叉引用排版約定效果如下:

        • 到其它文檔和網站的鏈接看上去像這樣。

PDF、HTML 以及 XHTML 版本的文檔將使用超鏈接來處理交叉引用。

輸入內容的排版約定效果如下:

        • 文件名或者目錄路徑,將以等寬字體(monospace)顯示。
        • 您在終端(Terminal)裏輸入的命令顯示效果如下:

command to type

        • 您在用戶界面上點擊、選擇或選中的選項,將以等寬字體(monospace)顯示。

菜單選擇、鼠標動作及鍵盤快捷鍵:

        • 菜單選擇的序列操作顯示效果如下:

文件(F) → 打開(O)

        • 鼠標動作假定您使用右手模式的鼠標設定。文中述及的“單擊”和“雙擊”皆使用鼠標左鍵。文中述及的“單擊右鍵”指的是使用鼠標右鍵。文中述及的“單擊中鍵”指的是使用鼠標中鍵、按下鼠標滾輪,或者是以模擬中鍵的方式同時按下鼠標左、右鍵,這取決於您的鼠標設計。
        • 鍵盤快捷鍵組合的顯示效果如下:

Ctrl+N 。根據慣例,“Control”、“Shift” 以及 “Alternate” 按鍵將以 Ctrl、Shift 以及 Alt 來表示,需要特別指出的是,其中第一個按鍵在按下第二個鍵的過程中應該一直被按住。

[編輯] 貢獻和反饋

本文檔由 Ubuntu 文檔小組 編寫。您可以通過 Ubuntu 文檔小組的郵件列表發送自己的意見或評論來完善本文檔。欲知該小組的信息、其郵件列表、項目等等詳情,您可以訪問 Ubuntu 文檔小組官方網站。本文檔的簡體中文版由 UbuntuChina 文檔組翻譯,欲知更多信息或加入我們,請訪問 Ubuntu 中文 Wiki

如果您發現了文檔中存在的問題,或者想提些建議,您可以直接在Ubuntu Bug 跟蹤系統上提交一份bug報告。您的幫助是這些文檔成功的關鍵![翻譯相關的 bug 可以聯繫UbuntuChina 文檔組成員。]

非常感謝

- 您的 Ubuntu 文檔小組

[編輯] 介紹

歡迎閱讀 Ubuntu 服務器指南!

Ubuntu 服務器指南 包括了在您的 Ubuntu 系統中如何安裝和配置滿足您需要的不同服務器的相關信息。它是一個循序漸進、面向任務的配置和定製您系統的指南。本手冊討論的主題如下所示:

        • 網絡配置
        • Apache2 的配置
        • 數據庫
        • Windows 聯網

本手冊主要分爲以下幾塊:

        • 安裝
        • 包管理
        • 聯網
        • Windows 聯網

本指南假定您已經對您的 Ubuntu 系統有個基本的瞭解。如果您需要安裝 Ubuntu 的詳細幫助,將參考 Ubuntu 安裝指南。

本手冊的 HTML 和 PDF 版本可以在 Ubuntu 文檔網站 在線獲得。

您可以在our Lulu store上購買到本指南的紙質品,只需支付打印和郵寄費用。

[編輯] 安裝

本章提供了安裝 Ubuntu 6.06 LTS Server Edition(服務器版)的快速入門。更多細節說明,請參見 Ubuntu 安裝指南。

[編輯] 準備安裝

準備安裝,本部分內容說明在開始安裝之前要考慮的各個方面。

[編輯] 系統要求

Ubuntu 6.06 LTS Server Edition (服務器版)支持三種主要的體系架構: Intel x86、AMD64 和 PowerPC。下表列出了被推薦硬件明細表。您可以根據需要使用比這更少的(硬件)進行管理。然而,大多數用戶不應當忽略這些建議,否則風險自負。表 2-1 最小建議配置

安裝類型 RAM 硬盤空間
服務器 64 MB 500 MB

Ubuntu 6.06 LTS Server Edition (服務器版)的默認自述文檔已經在下面列出了。當然,安裝的尺寸大小極大程序上取決於您在安裝過程中安裝服務的多少。對於大多數管理員來說,默認的服務對於服務器一般的使用已經足夠了。

服務器

這是一個小型服務器服務列表,它爲各種服務器應用程序提供了一個通用基礎。它是最低限度的並被設計成可以在其上添加想要的服務,如文件/打印服務、web 主機、郵件主機等。要滿足這些服務至少需要 500 MB 的磁盤空間,但考慮添加更多的空間是要取決於在您服務器上您想要提供的服務。

記住這些尺寸並不包括其他的素材如用戶文件、郵件、日誌和數據。當爲您自己的文件和數據考慮空間時最好能留足。

[編輯] 備份
        • 在您開始之前,請確保備份了您現在系統上的每個文件。如果第一次時已經有一個操作系統安裝在您的計算機上,那麼最合適的辦法就是把您的磁盤重新分區,爲 Ubuntu 留出空間。無論哪次對您的磁盤進行分區您都應該做好丟失磁盤上所有東西的準備,因爲您可能會誤操作或者在分區過程中出錯,如系統掉電等。在安裝中所使用的程序是相當可靠的,大多數已經用了幾年,但它們執行的也是破壞性的操作,一個操作出錯可能會把您有價值的數據丟失掉。

如果您是想把電腦做成多重引導的系統,請先確定您手頭上有電腦裏已經存在的這些操作系統的安裝介質。特別是當您把啓動盤重新分區以後,您可能會發現必須重新安裝原有操作系統的啓動引導程序,某些情況下,還得重新安裝該操作系統並恢復受影響分區上的文件。

[編輯] 從 CD 安裝

將您的安裝 CD 插入 您的 CD-ROM 設備並重啓計算機。當從 CD-ROM 重啓時安裝系統將立即開始。一旦初始化之後,您的第一個安裝屏幕將出現。

此時,閱讀屏幕上的文字。您也許想看看安裝程序提供的幫助屏。如果您想這麼做的話,請按 F1 鍵。

要執行缺省的服務器安裝程序,選擇 “安裝到硬盤” 並按 回車 鍵。安裝過程將開始。簡單地根據屏幕上的指示,您的 Ubuntu 系統將被安裝。

或者,您要安裝一個 LAMP 服務器 (Linux, Apache, MySQL, PHP/Perl/Python),選擇 “安裝 LAMP 服務器”,並根據指示進行安裝。

[編輯] 包管理

Ubuntu 提供一套全面的包管理系統用於軟件的安裝、升級、配置和卸載。除了讓您 Ubuntu 計算機可以訪問組織好的超過 17,000 個軟件包的軟件庫之外,包管理工具還可以解決依賴關係並提供軟件更新檢查。

一些工具可以和 Ubuntu 包管理系統進行交互,從便於系統管理員做自動化處理的簡單命令行工具到便於 Ubuntu 新手使用的簡單圖形界面。

[編輯] 介紹

Ubuntu 的包管理系統是從 Debian GNU/Linux 發行版中洐生出來的。包文件包括在您 Ubuntu 系統中實現特定功能或軟件所必需的文件、元數據和指令。

Debian 包文件一般用 '.deb' 作後綴,而且位於建立在不同介質上由包組成的 軟件庫 中,這些介質包括 CD-ROM 光盤和網站。包通常是預編譯的二進制形式,因此安裝速度快而且軟件也無需編譯。

許多複雜的包使用 依賴包 這一概念,依賴包是主包爲實現完整功能而要求的附加包。例如,語音合成包 Festival 依賴 festvox-kalpc16k 包,該依賴包提供被應用程序使用的衆多聲音之一。爲了能使 Festival 正常運行,所有依賴包都必須與 Festival 主包同時安裝。Ubuntu 軟件管理工具將會自動完成這一切。 ff

[編輯] Apt-Get

apt-get 命令是一個強大的命令行工具,用於同 Ubuntu 的 Advanced Packaging Tool (APT) 一起執行諸如安裝新軟件包、升級已有軟件包、更新包列表索引,甚至是升級整個 Ubuntu 系統等功能。

作爲一個簡單的命令行工具,apt-get 對於服務器管理員來說比 Ubuntu 中的其他軟件包管理工具有着相當多的優點。這些優點包括便於在簡單終端連接 (SSH) 中使用,同時能夠用於系統管理腳本中,以便能被cron 動作計劃工具自動運行。

apt-get 工具的一些常見用法示例:

關於 APT 用法的更多信息,可閱讀全面的Debian APT 用戶手冊 或輸入:

apt-get help

[編輯] Aptitude

Aptitude 是一個菜單驅動,基於文本的 Advanced Packaging Tool (APT) 系統前端。包管理的許多常用功能,如安裝,卸載和升級,可以在Aptitude 中單鍵執行命令,它通常是小寫字母。

Aptitude 最適用於非圖形的終端環境,確保命令關鍵字的適當功能。您可以作爲一個普遍用戶在終端提示符後用以下命令開始運行 Aptitude:

sudo aptitude

當 Aptitude 開始之後,你將看在屏幕頂部的一個菜單條,其下有兩個窗,頂窗包含包的類別,如 新軟件包 和 未安裝軟件包 。底窗包含包和包類別的相關信息。

使用 Aptitude 作包管理相對直觀,用戶界面便於執行常用任務。下面是在 Aptitude 中進行包管理時常見用法如下:

        • 安裝軟件包:要安裝包,通過未安裝軟件包包類別找到該軟件包,如通過鍵盤箭頭鍵和 ENTER 鍵定位並高亮你想安裝的軟件包。在高亮你要安裝的軟件包之後,將其標示爲安裝。現在按 g 鍵顯示軟件包的操作提示。再按 g 鍵,您將被提示要成爲 root 用戶以完成安裝。按 ENTER 鍵將顯示 Password: 提示。輸入您的用戶密碼成爲 root 用戶。最後,再一次按 g 鍵,您將被提示下載軟件包。在Continue 提示上按 ENTER 鍵,開始下載和安裝軟件包。
        • 卸載軟件包:要卸載軟件包,通過已安裝軟件包包類別找到該軟件包,如通過鍵盤箭頭鍵和 ENTER 鍵定位並高亮你想卸載的軟件包。在高亮你要卸載的軟件包之後,按 - 鍵,文件包條目將變成 pink,標示其爲卸載。現在按 g 鍵顯示軟件包的操作提示。再按 g 鍵,您將被提示要成爲 root 用戶以完成卸載。按 ENTER 鍵將顯示 Password: 提示。輸入您的用戶密碼成爲 root 用戶。最後,再一次按 g 鍵,您將被提示下載軟件包。在Continue 提示上按 ENTER 鍵,開始卸載軟件包。
        • 更新軟件包索引:要更新軟件包索引,簡單按 u 您將被提示要成爲 root 用戶以完成更新。按 ENTER 鍵將顯示 Password: 提示,輸入您的用戶密碼成爲 root 用戶。開始更新軟件包索引,當出現下載對話框時在 OK 提示上按 ENTER 鍵以結束更新過程。
        • 升級軟件包:要升級軟件包,如上所述更新軟件包索引,然後按U 鍵標示所有能升級的軟件包。現在按 g 鍵顯示軟件包的操作提示。再按 g 鍵,您將被提示要成爲 root 用戶以完成安裝。按 ENTER 鍵將顯示 Password: 提示。輸入您的用戶密碼成爲 root 用戶。最後,再一次按 g 鍵,您將被提示下載軟件包。在Continue 提示上按 ENTER 鍵,開始升級軟件包。

當實際查看軟件時列出軟件包當前狀態,在頂窗軟件包列表中顯示信息的第一列使用下列關鍵字來描述軟件包狀態:

        • i: 安裝軟件包
        • c: 軟件包沒有安裝,但在系統中有軟件包的殘留配置
        • p: 從系統徹底刪除
        • v: 虛擬軟件包
        • B: 已損壞的軟件包
        • u: 解壓文件,但尚未配置軟件包
        • C: 半配置 - 配置失敗需要修復
        • H: 半安裝 - 卸載失敗需要修復

要退出 Aptitude,只需簡單按 q 鍵並確認您想退出即可。在 Aptitude 菜單中按 F10 鍵可以列出其他許多功能。

[編輯] 配置

Advanced Packaging Tool (APT) 系統軟件庫的配置被保存在 /etc/apt/sources.list 文件中。這兒有個該文件的示例,

[file:///usr/share/ubuntu-docs/ubuntu/serverguide/sample/sources.list 這裏] 是一個典型的 /etc/apt/sources.list 文件範例。

您可以編輯該文件來使軟件庫生效或失效。舉個例子,要不想無論何時在發生文件包操作都會引起要求插入 Ubuntu CD-ROM ,只需要簡單地將在文件頂部的 CD-ROM 相應行註釋掉即可:

==== 其他軟件庫 ====
除了可以使用官方支持的 Ubuntu 軟件包庫之外,還存在擁有幾千個潛在軟件包的由其它社區維護的軟件庫。這些軟件庫中最流行的兩個是 Universe 和 Multiverse 軟件庫。這些軟件庫並不被 Ubuntu 官方支持,這就是它們爲什麼在缺省時不能的原因,但它們提供的包通常是可以在您的 Ubuntu 計算機上安全使用的。

在 Multiverse 軟件庫中的包通常有許可證的問題,這使得它們不能和自由操作系統一起分發,它們在您所在的地區可能是違法的。

建議不要在 Universe 或 Multiverse 軟件庫中包含官方支持的軟件包。尤其是在升級這些包時可能會不安全。      

許多其他軟件包源也是可用的,有時甚至只提供一個軟件包,這種情況主要發生在由單個應用程序的開發人員所提供軟件包源上。然而當您在使用非標準軟件包源時您應該非常小心謹慎,在執行任何安裝之前仔細考查源和軟件包,因爲有些軟件包源和其中的軟件包可能會使您的系統在某些方面運行不穩定或不正常。

要使 Universe 和 Multiverse 庫可用,編輯/etc/apt/sources.list 文件並將去掉相關行的註釋:
<pre><nowiki>

deb http://archive.ubuntu.com/ubuntu dapper universe multiverse
deb-src http://archive.ubuntu.com/ubuntu dapper universe multiverse

[編輯] 3.5.1. 引用

如何添加軟件庫(Ubuntu Wiki)

[編輯] 聯網

網絡是由兩個或兩個以上的設備通過物理線纜或無線連接而成並在連接設備之間共享和分發信息。這些設備包括計算機系統、打印機或用有線或無線連接起來的其它相關設備。

Ubuntu 服務器指南的這部分提供與聯網相關的一般和特定信息,包括網絡概念的簡介以及對常用網絡協議及服務器應用程序的詳細討論。

[編輯] 網絡配置

Ubuntu 提供了許多圖形化工具來配製您的網絡設備。本文適用於服務器管理員並聚焦在命令行中管理您的網絡。

[編輯] 4.1.1. 以太網

大多數以太網配置都集中在單個文件 /etc/network/interfaces 中。如果您沒有以太網設備,那麼在該文件中將只出現環回口,該文件看上去類似這樣:

auto lo
iface lo inet loopback
address 127.0.0.1
netmask 255.0.0.0

如果您只有一個以太網設備 eth0,被配置成從 DHCP 服務器得到設置,並且在引導時自動激活,那麼只需要再添加兩行:

auto eth0↵
iface eth0 inet dhcp

第一行說明 eth0 將會在您啓動時自動激活。第二行說明該接口 (“iface”) eth0 將有得到一個 IPv4 地址空間 (如果是一個 IPv6 的設備將須將 “inet” 用 “inet6” 代替) 並且它將自動從 DHCP 中自動獲得它的配置。假定您的網絡和 DHCP 服務都已經被正確配置,該機的網絡將不需要更多的配置。DHCP 服務器將提供默認網關 (通過 route 命令來實現) 、設備的 IP 地址 (通過 ifconfig 命令來實現)以及網絡使用的 DNS 服務器 (在 /etc/resolv.conf 文件中實現)。

要把您的以太網設備配置成靜態 IP 地址和自定義配置的話,則要求更多的信息。假設您想指定 IP 地址 192.168.0.2 給設備 eth1,其掩碼是 255.255.255.0。您的默認網關的 IP 地址是 192.168.0.1。您可以在 /etc/network/interfaces 中輸入類似下面的語句:

iface eth1 inet static
        address 192.168.0.2
        netmask 255.255.255.0
        gateway 192.168.0.1

在這個例子中,您將需要在 /etc/resolv.conf 中手工指定您的DNS服務器,看起來如下:

search mydomain.com
nameserver 192.168.0.1
nameserver 4.2.2.2

search 語句在試圖解析網絡名時把 mydomain.com 添到主機名查詢中。舉個例子,如果您的網絡域名是 mydomain.com 並且您試圖去 ping 主機 “mybox”,DNS 查詢將在解析時改爲 “mybox.mydomain.com”。nameserver 語句指定用於將主機名解析成 IP 地址的的 DNS 服務器。如果您使用自己的名稱服務器,在這裏輸入它。否則詢問您的 Internet 服務供應商要使用的主、輔 DNS 服務器,並把它們如上所示輸入到 /etc/resolv.conf 中。

配置更多的接口是可能的,包括撥號的 PPP 接口、IPv6 網絡、VPN 設備等。更多信息和支持選項請參考 man 5 interfaces。記住 ifup/ifdown 腳本使用的/etc/network/interfaces 是比其他一些 Linux 發行版更高級的配置模式。傳統的低級工具如ifconfig、route 和 dhclient 也爲了 ad hoc 配置對您來說也是可用的。

[編輯] 4.1.2. 管理 DNS 記錄

本部分說明如何配置用來將IP地址解析成主機名或相反功能的名稱服務,而不是說如何將整個系統配置成一個名稱服務器。

要管理 DNS 條目,您可以在 /etc/resolv.conf 文件中添加、編輯或刪除 DNS 名稱服務器。一個 範例文件 在下面給出:

search com
nameserver 204.11.126.131
nameserver 64.125.134.133
nameserver 64.125.134.132
nameserver 208.185.179.218

search 關鍵字指字爲未完成主機名添加的字符串,在這裏我們使用com。因此當我們運行:ping ubuntu 時它被理解成 ping ubuntu.com。

nameserver 關鍵字指定名稱服務器的 IP 地址,它將被用來解析 IP 地址或主機名。該文件可以有多個名稱服務器記錄。名稱服務器將按相同順序進行網絡查詢。

如果 DNS 服務器名稱是通過 DHCP 或 PPPOE 動態取回的(從您 ISP 取回),那麼不要在該文件中添加名稱服務器記錄。它將被自動更新。

[編輯] 4.1.3. 管理主機

要管理主機,您可以在 /etc/hosts 文件中添加、編輯或刪除主機。該文件包括 IP 地址和相對應的主機名。當您的系統要解析一個主機到 IP 地址或從一個 IP 地址獲取主機名時,它將在使用名稱服務器之前參考 /etc/hosts 文件。如果該 IP 地址已經在 /etc/hosts 文件中被列出,那麼將不再使用名稱服務器。這一動作可以通過編輯 /etc/nsswitch.conf 來改變,不過後果自負。

如果您網絡所包含計算機的 IP 地址沒有在 DNS 中列出,建議您將它們加入到 /etc/hosts 文件中。

[編輯] TCP/IP

傳輸控制協議和網際協議 (TCP/IP) 是在 20世紀70年代被美國國防部高級研究規劃局 (DARPA)作爲在不同類型計算機及計算機網絡之間的通信手段而被開發的一個標準協議簇。TCP/IP 是 Internet 的驅動力,因此它是全球最流行的網絡協議簇。

[編輯] 4.2.1. TCP/IP 介紹

TCP/IP 的兩個協議組件處理計算機網絡的不同方面。網際協議,TCP/IP 中的 "IP" 是一個連接協議,只處理使用 IP 數據報 作爲網絡信息基本單元的網絡包路由。IP 數據報由報頭和其後的消息組成。傳輸控制協議 是 TCP/IP 中的 "TCP",可以使網絡主機之間建立用於交換數據流的連接。TCP 也保證連接之間的數據傳送以及其在網絡主機上的接收順序與其從另一臺網絡主機上的發送順序一致。

[編輯] 4.2.2. TCP/IP 配置

TCP/IP 協議配置由必須設置的幾個元素組成,可以通過編輯相應的配置文件或配置方案如動態主機配置協議 (DHCP) 來設置,它可以配置成提供適當的 TCP/IP 配置來自動設置網絡客戶機。這些配置值必須正確設置,以便於您的 Ubuntu 系統進行相應網絡操作。

TCP/IP 常用配置元素及其作用如下所示:

        • IP 地址 IP 地址是唯一標識字符串,它由四部分由點號分隔的,範圍從 0 到 255 的十進制數組成。 每部分由8個比特表示,整個地址總長爲32個比特。這種格式被稱爲 dotted quad notation。
        • 掩碼 子網掩碼 (或簡稱掩碼) 是一個局部位掩碼,或用指定的 子網掩碼 來將IP 地址中的網絡分隔出來的一組標識。舉個例子,在 C 類網絡中,標準的掩碼是 255.255.255.0 屏蔽了 IP 地址的前三個字節,並允許 IP 地址的最後一個字節指定子網中的主機。
        • 網絡地址 網絡地址表示包括IP 地址網絡部分的字節。 例如, 一個 A 類網絡的主機 12.128.1.2 將使用 12.0.0.0 作爲網絡地址,使用 12 來表示 IP 地址的第一個字節 (網絡部分), 餘下的三個爲 0 的字節表示可能的主機值的。網絡主機使用象 192.168.1.100 這樣非常普遍的不可路由的私有 IP 地址將使用 192.168.1.0 網絡地址,用前三個字節來指定 C 類 192.168.1 網絡,而用一個 0 來表示網絡上所有可能的主機。
        • 廣播地址 廣播地址是一個允許向給定子網中的所有主機而不是一臺特定的網絡主機同時發送網絡數據的 IP 地址。一般標準 IP 網絡的地址是 255.255.255.255,但這個廣播地址不能用來爲 Internet 網上的每臺主機發送一個廣播消息,因爲路由器會阻止它。更適當的廣播地址設置是匹配特定子網的。例如,在流行的私有 C 類 IP 網 192.168.1.0 中,廣播地址應該設爲 192.168.1.255。廣播消息一般都是由網絡協議產生的,如地址識別協議 (ARP) 和路由信息協議 (RIP)。
        • 網關地址 網關地址是一個通過該地址可能會到達指定網絡或網絡主機的 IP 地址。如果一臺網絡主機希望與另一臺網絡主機通訊,而該機並不在同一網絡中,而是要傳輸到另一個網絡或主機上,如 Internet 主機。網關地址設置必須正確,否則您的系統將不能到達不在同一網絡中的任何主機。
        • 名稱服務器地址 名稱服務器地址表示域名服務 (DNS) 系統的 IP 地址。該系統將網絡主機名解析成 IP 地址。可以按順序來指定三個不同優先級的名稱服務器地址:主 名稱服務器,次 名稱服務器,和 第三 名稱服務器。按順序爲您系統將網絡主機名解析成相應的 IP 地址,你必須指定合法的名稱服務器地址,該地址應該在您系統的 TCP/IP 配置中被授權使用。在許多情況下這些地址可以也應該被您的網絡服務供應商提供,但也可以使用許多免費的、可供公衆訪問的名稱服務器,如 IP 從 4.2.2.1 到 4.2.2.6 的 Level3 (Verizon) 服務器。

IP 地址、掩碼、網絡地址、廣播地址以及網關地址一般都是在文件 /etc/network/interfaces 中通過相應的語句來指定的。名稱服務器地址一般是在文件 /etc/resolv.conf 中通過 nameserver 語句來指定的。更多詳情,請分別查閱 interfaces 或 resolv.conf 的系統手冊頁。

查閱 interfaces 系統手冊頁,可用以下命令:

man interfaces

查閱 resolv.conf 系統手冊頁,用以下命令:

man resolv.conf

[編輯] 4.2.3. IP 路由

IP 路由是在 TCP/IP 網絡上爲可能發送的網絡數據指明或發現路徑。路由使用一組路由表來指示網絡數據包從源地址轉發到目的地,經常是通過許多叫做路由器的網絡節點做中轉。IP 路由是 Internet 上路徑發現的主要方式。IP 路由分爲兩種形式:靜態路由 和 動態路由。

靜態路由包含向系統路由表中手工添加的 IP 路由,一般是通過 route 命令來向路由表手工添加的。靜態路由與動態路由相比有許多優點,如在小網絡中實施簡單,有可預測性 (路由表總是事先算好,因此路由在每次使用時都相當一致),在其它路由器和網絡鏈路處理上比動態路由協議開銷小。然而,靜態路由也有一些缺點。如靜態路由只限於小網絡而且不能很好地進行調整。靜態路由由於路由固定的特性,因此根本無法根據路由來適應網絡中斷和故障。

動態路由有賴於從一個源到目的有多條可用 IP 路由的大型網絡,利用特定的路由協議,如路由信息協議 (RIP),可以自動調整路由表以生成可能的動態路由。動態路由相對靜態路由有幾個優點,如擁有較大的伸縮性和能根據網絡路由來適應網絡中斷和故障。另外,幾乎無須手工配置路由表,因爲路由器可以相互學到其他已有並且可用的路由器。這一特性也消除了由於人爲錯誤而在路由表中引入錯誤的可能。然而,動態路由也並不完美,其表現出來的缺點如相當複雜以及由於路由器通訊所帶來的額外的網絡開銷,並不能使最終用戶由此獲益,並卻一直消耗着網絡帶寬。

[編輯] 4.2.4. TCP 和 UDP

TCP 是一個基於連接的協議,提供糾錯並通過 流量控制 來傳輸數據。流量控制決定什麼時間一個數據流需要停止,例如在出現諸如 衝突 等問題時重發先前發送的數據包,以確保完整和準確的數據傳輸。TCP 常用於重要信息的交換,如數據庫傳輸。

另一方面,用戶數據報協議 (UDP) 是一個 無連接 協議,很少用於重要數據的傳輸,因爲缺乏流量控制或其他一些確保可靠數據傳輸的方法。UDP 常用在如音視頻流這樣的應用程序,由於它缺少糾錯和流控,因此相對於 TCP 來說更快,而且丟失少量包通常也不會造成災難性的後果。

[編輯] 4.2.5.ICMP

Internet 控制消息協議是在Request For Comments (RFC) #792 中定義的,是對網際協議 (IP) 的一個擴充。支持的網絡包包括控制、錯誤和信息的消息。ICMP 常被用在諸如判斷一臺網絡主機或設備可用性的 ping 工具這樣的網絡應用程序。在網絡主機和設備如路由器之間使用 ICMP 所返回的錯誤消息示例包括 Destination Unreachable 和 Time Exceeded。

[編輯] 4.2.6. 守護程序

守護程序是特殊的系統應用程序,一般常駐在後臺並等待來自其他應用程序請求其所提供的功能。許多守護程序都是網絡中心;在 Ubuntu 系統後臺執行的許多守護程序都可以提供網絡的相關功能。這些網絡守護程序包括 超文本傳輸協議守護程序 (httpd),用於提供網站服務器功能;Secure SHell 守護程序 (sshd),用於提供安全遠程登錄 shell 和文件傳輸功能;Internet Message Access Protocol 守護程序 (imapd),用於提供 E-Mail 服務。

[編輯] 防火牆配置

Linux 內核包括 Netfilter 子系統,用來處理或決定網絡傳輸頭部進入或穿過你的服務器,目前所有的 Linux 防火牆都用該系統來做包過濾。

[編輯] 4.3.1. 防火牆介紹

內核的包過濾系統如果沒有一個用戶態 (userspace) 界面來管理它的話對管理員來說幾乎沒有用。這正是 iptables 的目的。當一個包到達您的服務器,它從用戶態 (userspace) 通過 iptables 傳給 Netfilter 子系統,然後基於提供的規則去接受、操作或拒絕。因此,如果你能熟悉它的話,那麼 iptables 就是您管理您防火牆所需的全部。

[編輯] 4.3.2. IP 僞裝

IP 僞裝的目的是爲了允許您網絡上那些有着私有的、不可路由的 IP 地址的機器可以通過做僞裝的機器訪問 Internet。來自您私有網絡並要訪問 Internet 的傳輸必須是可以操作的,也就是說回覆要可以被路由回來以送到發出請求的機器上。要做到這一點,內核必須修改每個包 源 IP 地址以便回覆能被路由回它這裏,而不是發出請求的私有 IP 地址,因爲它們對於 Internet 來說是不存在的。Linux 使用 Connection Tracking (conntrack) 來保持那個連接是屬於哪個機器的,並相應地對每個返回包重新做路由。發自您私有網絡的流量就這樣被僞裝成源於您的網關機器。這一過程在 Microsoft 文檔中被稱爲 Internet 連接共享。

這可以用單條 iptables 規則來完成,也許基於您網絡配置來說會有一些小的差異:

sudo iptables -t nat -A POSTROUTING -s 192.168.0.0/16 -o ppp0 -j MASQUERADE

上述命令假設您的私有地址空間是192.168.0.0/16,您與 Internet 相連的設備是 ppp0。語法分解如下所示:

        • -t nat -- 該規則將進入 nat 表
        • -A POSTROUTING -- 該規則將被追加 (-A) 到 POSTROUTING 鏈
        • -s 192.168.0.0/16 -- 該規則將被應用在源自指定地址空間的流量上
        • -o ppp0 -- 該規則應用於計劃通過指定網絡設備的流量。
        • -j MASQUERADE -- 匹配該規則的流量將如上所述 "跳轉" (-j) 到 MASQUERADE (僞裝) 目標。

在過濾表 (缺省表,在那裏有着大多數或全部包過濾指令) 中的每條鏈 (chain) 都有一個默認的 ACCEPT 策略,但如果您還在網關設備上設置防火牆,那麼您也許還要設置 DROP 或 REJECT 策略,這時您被僞裝過的流量還需要被 FORWARD 鏈 (chain) 中的規則允許才能正常工作:

sudo iptables -A FORWARD -s 192.168.0.0/16 -o ppp0 -j ACCEPT
sudo iptables -A FORWARD -d 192.168.0.0/16 -m state --state ESTABLISHED,RELATED -i ppp0 -j ACCEPT

上述命令將允許通過從您局域網到 Internet 的所有連接,這些連接所有的相關流量也都返回到發起它們的機器。

[編輯] 4.3.3. 工具

有很多工具可以幫助您構建一個完整的防火牆,而不需要 iptables 的專業知識。偏好圖形界面的,Firestarter 非常流行也易於使用,fwbuilder 則非常強大而且其界面對於用過諸如 Checkpoint FireWall-1 商業防火牆工具的管理員來說相當熟悉。如果您偏好有着純文本配置文檔的命令行工具,Shorewall 是個非常強大的解決方案,可以幫您爲任何網絡配置一個高級防火牆。如果您的網絡相對簡單,或如果您沒有網絡,那麼 ipkungfu 將給您一個無需配置就可以工作的防火牆,也允許您通過編輯簡單友好的配置文件來輕鬆設置更高級的防火牆。另一個感興趣的工具就是fireflier,被設計成桌面防火牆應用程序。它由一個服務器 (fireflier-server) 和可選的 GUI 客戶端 (GTK 或 QT) 組成,操作就象 Windows 中許多流行的交互式防火牆應用程序一樣。

[編輯] 4.3.4. 日誌

防火牆日誌主要是爲了確認攻擊、找出並解決您防火牆規則的問題以及注意您網絡中不正常的活動。您必須在您防火牆中包含這些日誌規則以便生成相應日誌,雖然,日誌規則必須優先於任何可應用的最終規則 (那些決定其目的包命運的規則,如ACCEPT、DROP 或 REJECT) 。

sudo iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j LOG --log-prefix "NEW_HTTP_CONN: "

一個從本機發起的對 80 端口的請求將會在 dmesg 中生成一條日誌,如下所示:

[4304885.870000] NEW_HTTP_CONN: IN=lo OUT= MAC=00:00:00:00:00:00:00:00:00:00:00:00:08:00 SRC=127.0.0.1 DST=127.0.0.1 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=58288 DF PROTO=TCP SPT=53981 DPT=80 WINDOW=32767 RES=0x00 SYN URGP=0

上面的日誌也會出現在/var/log/messages、/var/log/syslog 和 /var/log/kern.log 中。這一過程可以通過適當編輯 /etc/syslog.conf 或安裝配置 ulogd 並用 ULOG 代替 LOG 來進行改變。ulogd 守護程序是一種用戶態服務器可以監聽來自內核的防火牆日誌指令,並且能夠將其寫到任何您希望的文件中,甚至是 PostgreSQL 或 MySQL 數據庫。使用諸如 fwanalog、fwlogwatch 或 lire 日誌分析工具將會很輕鬆地弄懂您的防火牆日誌。

[編輯] OpenSSH 服務器

[編輯] 4.4.1. 介紹

Ubuntu 服務器指南的這部分內容介紹一個強大的遠程控制網絡計算機和在它們之間傳輸數據的工具集 OpenSSH。您也可以學到一些 OpenSSH 服務器應用程序的配置以及如何在您 Ubuntu 系統修改它們。

OpenSSH 是Secure Shell (SSH) 協議工具集中的一個自由可用的版本,用以遠程控制一臺計算機或在計算機之間傳輸文件。完成這些功能的傳統工具,如 telnet 或 rcp 等,是不安全的,它們在使用時用明文來傳輸用戶的密碼。OpenSSH 提供一個服務器守護程序和客戶端工具來保障安全、加密的遠程控制和文件傳輸操作,以有效地取代傳統的工具。

OpenSSH 服務器組組件 sshd 持續監聽來自任何客戶端工具的連接請求。當一個連接請求發生時,sshd 根據客戶端連接的類型來設置當前連接。例如,如果遠程計算機是通過 ssh 客戶端應用程序來連接的話,OpenSSH 服務器將在認證之後設置一個遠程控制會話。如果一個遠程用戶通過 scp 來連接 OpenSSH 服務器,OpenSSH 服務器將在認證之後開始服務器和客戶機之間的安全文件拷貝。OpenSSH 可以支持多種認證模式,包括純密碼、公鑰以及Kerberos 票據。

[編輯] 4.4.2. 安裝

OpenSSH 客戶端及服務器應用程序的安裝是簡單的。要在您 Ubuntu 系統中安裝 OpenSSH 客戶端應用程序,可以在終端提示符後使用以下命令:

sudo apt-get install openssh-client

要安裝 OpenSSH 服務器應用程序及相關的支持文件,可以在終端提示符後使用以下命令:

sudo apt-get install openssh-server

[編輯] 4.4.3. 配置

您可以通過編輯 /etc/ssh/sshd_config 文件來配置 OpenSSH 服務器應用程序的缺省過程。關於該文件中使用的配置語句信息,您可以在終端提示符後運行下列命令來查閱相應的手冊頁:

man sshd_config


在 sshd 配置文件中有許多語句來控制那些諸如通信設置和認證模式。下面是一個通過編輯 /etc/ssh/ssh_config 文件來改變配置語句的例子。

在編輯配置文件之前,您應該生成一個原始文件的拷貝並對其寫保護,以便您可以參考原始文件並在必要時重用它。

拷貝 /etc/ssh/sshd_config 文件並對其寫保護可以通過在終端提示符後運行下列命令:

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.original
sudo chmod a-w /etc/ssh/sshd_config.original


以下是您可能更改配置語句的範例:

        • 要設置您 OpenSSH 在 TCP 2222 端口而不是缺省的 TCP 20 端口監聽,可以如下使用改變 Port 語句:

Port 2222

        • 要讓 sshd 允許基於公鑰登錄證書,可以簡單添加或修改該行語句:

PubkeyAuthentication yes 到 /etc/ssh/sshd_config 文件中。如果已經存在,確保該行語句沒有被註釋。

        • 要使您的 OpenSSH 服務器顯示 /etc/issue.net 文件的內容以作爲預登錄 Banner,只需簡單地將下行添加或修改:

Banner /etc/issue.net 到 /etc/ssh/sshd_config 文件中即可。

在修改 /etc/ssh/sshd_config 文件之後,保存該文件並重啓 sshd 服務器應用程序以使之生效。可以在終端提示符後使用下列命令:

sudo /etc/init.d/ssh restart

許多其他的 sshd 配置語句可以使服務器應用程序按您的要求運行。然而,給您一個忠告,如果您訪問服務器的唯一方法就是使用 ssh,而且您在通過 /etc/ssh/sshd_config 文件來配置 sshd 時犯了一個錯誤,那麼在重啓該服務之後您可能會發現您被鎖在服務器外面了,或者是 sshd 服務在處理一個不正確的配置語句時拒絕啓用。因此當在遠程服務器上編輯該文件時要格外的小心。

[編輯] 4.4.4. 引用

OpenSSH 網站

高級 OpenSSH 維基頁

[編輯] FTP 服務器

文件傳輸協議 (FTP) 是一個 TCP 協議,用於在計算機之間上傳和下載文件。FTP 工作在客戶端/服務器模式下。服務器組件被稱爲 FTP 守護程序。它持續不斷地臨聽來自遠程客戶端的 FTP 請求。當一個請求到達時,它管理登錄和建立連接。在整個會話期間它執行 FTP 客戶端發送來的任何命令。

可以通過兩種方式來管理 FTP 服務器的訪問:

        • 匿名
        • 授權

在匿名模式中,遠程客戶端可以使用 "anonymous" 或 "ftp" 缺省用戶帳號並通過發送一個郵件地址做爲密碼來訪問 FTP 服務器。在授權模式下一個用戶必須擁有帳號和密碼。用戶所訪問 FTP 服務器中目錄和文件的權限是根據登錄時所用帳號來定義的。一般來說,FTP 守護程序將隱藏在 FTP 服務器的根目錄中並將其改到 FTP 家目錄。這樣就可以向遠程傳話隱藏文件系統的其他部分。

[編輯] 4.5.1. vsftpd - FTP 服務器安裝

vsftpd 是可在 Ubuntu 中使用的 FTP 守護程序之一。它在安裝、設置和維護方面十分方便。要安裝 vsftpd 您可以使用下列命令:

sudo apt-get install vsftpd 

[編輯] 4.5.2. vsftpd - FTP 服務器配置

你可以編輯 vsftpd 配置文件,/etc/vsftpd.conf,來配置缺省設置。缺省狀態下只允許匿名 FTP。如果您希望禁用該選項,您可以將下面這行:

anonymous_enable=YES

改爲

anonymous_enable=NO
  • 缺省狀態下,本地系統用戶是不允許登錄 FTP 服務器的。要改變該設置,您可以將下面這行反註釋:
* 缺省狀態下,允許用戶從 FTP 下載文件,但不允許他們上傳文件到 FTP 服務器。爲了能夠上傳文件到 FTP 服務器,需要改變該設置,您可以將下面這行反註釋掉:
<pre><nowiki>

* 配置文件包括許多配置參數。關於配置文件中的每個參數的信息都可以得到,或者您可以參考手冊頁,man 5 vsftpd.conf 說明每個參數的細節。
一旦您配置好了 vsftpd 您就可以運行該守護程序了。您可以執行下列命令來運行vsftpd 守護進程:
<pre><nowiki>
sudo /etc/init.d/vsftpd start 

請注意在配置文件中缺省的設置主要是出於安全考慮。上面每一個改變都會使系統的安全性更小,所以請只在您需要時才改變他們。

[編輯] 網絡文件系統 (NFS)

NFS 允許系統將其目錄和文件共享給網絡上的其他系統。通過 NFS,用戶和應用程序可以訪問遠程系統上的文件,就象它們是本地文件一樣。

NFS 最值得注意的優點有:

        • 本地工作站可以使用更少的磁盤空間,因爲常用數據可以被保存在一臺機器上,並讓網絡上的其他機器可以訪問它。
        • 不需要爲用戶在每臺網絡機器上放一個用戶目錄。用戶目錄可以在 NFS 服務器上設置並使其在整個網絡上可用。
        • 存儲設備如軟盤、光驅及 USB 設備可以被網絡上其它機器使用。這可能可以減少網絡上移動設備的數量。

[編輯] 4.6.1. 安裝

在終端提示符後鍵入以下命令安裝 NFS 服務器:

sudo apt-get install nfs-kernel-server

[編輯] 4.6.2. 配置

您可以配置要輸出的目錄,您可以在 /etc/exports 文件中添加該目錄。例如:

/ubuntu *(ro,sync,no_root_squash)
/home *(rw,sync,no_root_squash)

您可以用主機名來代替 *。儘量指定主機名以便使那些不想其訪問的系統訪問 NFS 掛載的資源。

您可以在終端提示符後運行以下命令來啓動 NFS 服務器:

sudo /etc/init.d/nfs-kernel-server start

[編輯] 4.6.3. NFS 客戶端配置

使用 mount 命令來掛載其他機器共享的 NFS 目錄。可以在終端提示符後輸入以下類似的命令:

sudo mount example.hostname.com:/ubuntu /local/ubuntu

掛載點 /local/ubuntu 目錄必須已經存在。而且在 /local/ubuntu 目錄中沒有文件或子目錄。

另一個掛載其他機器的 NFS 共享的方式就是在 /etc/fstab 文件中添加一行。該行必須指明 NFS 服務器的主機名、服務器輸出的目錄名以及掛載 NFS 共享的本機目錄。

以下是在 /etc/fstab 中的常用語法:

example.hostname.com:/ubuntu /local/ubuntu nfs rsize=8192,wsize=8192,timeo=14,intr

[編輯] 4.6.4. 引用

Linux NFS 常見問答

[編輯] 動態主機配置協議 (DHCP)

動態主機配置協議 (DHCP) 是一種網絡服務,相對於手工爲每臺網絡主機配置,它使網絡主機可能自動被服務器指定設置。被配置成 DHCP 客戶端的計算機並不能控制其從 DHCP 服務器得到的設置,且該配置對於計算機用戶來說是透明的。

由 DHCP 服務器提供給 DHCP 客戶端最常用的設置包括:

        • IP 地址和掩碼
        • DNS
        • WINS

然而,一個 DHCP 服務器也支持配置如下屬性,如:

        • 主機名
        • 域名
        • 默認網關
        • 時間服務器
        • 打印服務器

使用 DHCP 的好處在於當網絡發生改變如 DNS 服務器地址改變時,只需要在 DHCP 服務器中改變即可,所有網絡主機將在其 DHCP 客戶端下一次輪詢 DHCP 服務器時被重新配置。另一個好處就是,它在將新計算機整合到網絡時也更容易,因爲不需要再檢查 IP 地址的有效性。同時也減少 IP 地址的衝突。

一個 DHCP 服務器可以用兩個模式來提供配置設置

  • MAC 地址

該模式需要用 DHCP 去標明連接到網上的每塊網卡唯一的硬件地址,然後在 DHCP 客戶端每次使用該網絡設備發送給 DHCP 服務器請求時提供給它一個固定的配置。

  • 地址池

該模式需要定義一個 IP 地址池 (有時也叫範圍或作用域) ,以便 DHCP 客戶端可以被動態提供它們的配置from which DHCP clients are supplied their configuration properties dynamically and on a fist come first serve basis。當一個 DHCP 客戶端有段時間不再在網絡上時,該配置將過期並釋放回地址池以便爲其他 DHCP 客戶端使用。

ubuntu 提供 DHCP 服務器及其客戶端。服務器叫 dhcpd (動態主機配置協議守護程序)。Ubuntu 提供的客戶端叫 dhclient,應該安裝在所有自動配置的計算機上。這兩個程序很容易安裝和配置,並可在系統引導時自動啓用。

[編輯] 4.7.1. 安裝

要安裝 dhcpd,可以在終端提示符後輸入以下命令:

sudo apt-get install dhcpd

您將看到下面的輸出,說明接下來做什麼:

Please note that if you are installing the DHCP server for the first
time you need to configure. Please stop (/etc/init.d/dhcp
stop) the DHCP server daemon, edit /etc/dhcpd.conf to suit your needs
and particular configuration, and restart the DHCP server daemon
(/etc/init.d/dhcp start).

You also need to edit /etc/default/dhcp to specify the interfaces dhcpd
should listen to. By default it listens to eth0.

NOTE: dhcpd's messages are being sent to syslog. Look there for
diagnostics messages.

Starting DHCP server: dhcpd failed to start - check syslog for diagnostics. 

[編輯] 4.7.2. 配置

安裝結束後的錯誤消息可能會帶來小小的困惑,不過下面幾步將幫助您配置服務:通常,您想做的是隨機指定一個 IP 地址。這可以通過以下設置來實現:

default-lease-time 600;
max-lease-time 7200;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
option routers 192.168.1.254;
option domain-name-servers 192.168.1.1, 192.168.1.2;
option domain-name "mydomain.org";

subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.10 192.168.1.100;
range 192.168.1.150 192.168.1.200;
} 

這將導致 DHCP 服務器從 192.168.1.10-192.168.1.100 或 192.168.1.150-192.168.1.200 範圍中分配客戶端一個 IP 地址。如果客戶端沒有要求一個特定的時間幀的話它將租用 600秒的 IP 地址。否則最大 (允許) 租用時間爲 7200 秒。服務器也 "建議" 客戶端使用 255.255.255.0 做爲它的子網掩碼,192.168.1.255 作爲它的廣播地址,192.168.1.254 作爲路由器/網關,同時將 192.168.1.1 和 192.168.1.2 作爲它的 DNS 服務器。

如果您需要爲您的 Windows 客戶機指定一個 WINS 服務器,您需要包含 netbios-name-servers 選項,如:

option netbios-name-servers 192.168.1.1; 

Dhcpd 配置設置可以從 DHCP 快速指南中得到,該指南可以在 這裏 找到。

[編輯] 4.7.3. 引用

DHCP 常見問答

[編輯] 域名解析服務 (DNS)

域名解析服務 (DNS) 是一個 Internet 服務,相互映射 IP 地址和完全限定域名 (FQDN) 。通過這種方式,使用 DNS 將不再需要記住 IP 地址。運行 DNS 的計算機稱爲 名稱服務器。Ubuntu 提供 BIND (伯克利 Internet 名稱守護程序),一個在 GNU/Linux 上最常用的維護名稱服務器的程序。

[編輯] 4.8.1. 安裝

在終端提示符後輸入以下命令來安裝 dns:

sudo apt-get install bind

[編輯] 4.8.2. 配置

DNS 配置文件被保存在 /etc/bind 目錄中。主配置文件叫 /etc/bind/named.conf。缺省配置文件的內容如下所示:

// This is the primary configuration file for the BIND DNS server named.
//
// Please read /usr/share/doc/bind/README.Debian for information on the 
// structure of BIND configuration files in Debian for BIND versions 8.2.1 
// and later, *BEFORE* you customize this configuration file.
//

include "/etc/bind/named.conf.options";

// reduce log verbosity on issues outside our control
logging {
        category lame-servers { null; };
        category cname { null; };
};

// prime the server with knowledge of the root servers
zone "." {
type hint;
file "/etc/bind/db.root";
};

// be authoritative for the localhost forward and reverse zones, and for
// broadcast zones as per RFC 1912

zone "localhost" {
type master;
file "/etc/bind/db.local";
};

zone "127.in-addr.arpa" {
type master;
file "/etc/bind/db.127";
};

zone "0.in-addr.arpa" {
type master;
file "/etc/bind/db.0";
};

zone "255.in-addr.arpa" {
type master;
file "/etc/bind/db.255";
};

// add local zone definitions here
include "/etc/bind/named.conf.local";

include 行指定包含 DNS 選項的文件名。在選項文件中的directory 行告訴 DNS 在哪兒尋找文件。所有 BIND 用到的文件都與該目錄相關。名爲 /etc/bind/db.root 的文件描述世界上的根名稱服務器。這些服務器按時更新並不時被維護。

zone 部分定義一個主服務器,並將其保存在 file 標籤所指定的文件中。每個 zone 文件包括 3 個資源記錄 (RRs):一個 SOA RR、一個 NS RR 以及一個 PTR RR。SOA 是授權開始的縮寫。"@" 符是一個特定的符號表示原點。NS 是名稱服務器 RR。PTR 是域名指針。要開始 DNS 服務器,可以在終端提示符後運行以下命令:

sudo /etc/init.d/bind start

詳情您可以參考在參考部分所提及的文檔。

[編輯] 4.8.3. 引用

DNS 指南

[編輯] CUPS - 打印服務器

Ubuntu 打印及打印服務主要是 通用 UNIX 打印服務 (CUPS)。該打印系統是自由可用、可移植的打印層,正在成爲絕大多數 GNU/Linux 發行版新的打印標準。

CUPS 管理打印作業和隊列,並使用標準的 Internet 打印協議 (IPP) 提供網絡打印,該協議提供最大範圍的打印機支持,從點陣打印機到激光打印機以及位於兩者之間的許多打印機。CUPS 也支持 PostScript Printer Description (PPD) 和網絡打印機的自動檢測,以及提供基於 Web 的簡單配置和管理工具。

[編輯] 4.9.1. 安裝

在您 Ubuntu 計算機上安裝 CUPS,只需簡單使用 sudo 和apt-get 命令並將要安裝包作爲第一個參數即可。一個完全的 CUPS 安裝需要安裝許多從屬包,但它們也可以在同一個命令行指定。在終端提示符後輸入以下命令以安裝 CUPS:

sudo apt-get install cupsys cupsys-client

認證您的用戶密碼之後,這些包將被下載並正確安裝。在安裝結束之後,CUPS 服務器將自動開始。爲了發現並修復問題,您可以通過錯誤日誌文件 /var/log/cups/error_log 來查看 CUPS 服務器的錯誤。如果錯誤日誌並沒有顯示足夠的用於找到和解決您所遇問題的信息,通過將配置文件 (下面要討論) 中將LogLevel 語句從缺省的 "info" 改爲 "debug" 甚至是記錄每件事的 "debug2",以獲得 CUPS 日誌的詳細信息。

[編輯] 4.9.2. 配置

可以通過 /etc/cups/cupsd.conf 文件中的指令來配置通用 UNIX 打印系統服務器的行爲的。CUPS 配置文件與 Apache HTTP 服務器的主配置文件語法相同,因此熟悉編輯 Apache 配置文件的用戶在編輯 CUPS 配置文件時會感到相當容易。在這裏將顯示一些您可能想要改變初始值的設置範例。

在編輯配置文件之前,您應該將原始文件做個副本並將其寫保護,以便您可以將原始文件作爲參考並在必要時重用它。

拷貝 /etc/cups/cupsd.conf 文件並對其寫保護,可以在終端提示符後執行以下命令:

sudo cp /etc/cups/cupsd.conf /etc/cups/cupsd.conf.original
sudo chmod a-w /etc/cups/cupsd.conf.original
        • ServerAdmin:要配置指定 CUPS 服務器管理員的郵件地位,只需用你喜歡的文本編輯器簡單編輯 /etc/cups/cupsd.conf 配置文件,並修改相應的 ServerAdmin 行即可。舉個例子,如果您是 CUPS 服務器的管理員,並且您的郵件地址是'[email protected]',那麼您可以象下面這樣修改 ServerAdmin 行:

ServerAdmin [email protected]

關於 CUPS 服務器配置文件中配置語句的更多範例,通過在終端提示符後輸入以下命令可以查閱相關的系統手冊頁:

man cupsd.conf

無論您在什麼時間修改了 /etc/cups/cupsd.conf 配置文件,您都需要重啓 CUPS 服務,在終端提示符後鍵入以下命令:

sudo /etc/init.d/cupsys restart

CUPS 服務器的其它一些配置在文件 /etc/cups/cups.d/ports.conf 中:

        • Listen:在 Ubuntu 的缺省狀態下,CUPS 服務器安裝後只監聽 IP 地址爲 127.0.0.1 的環回接口。爲了讓 CUPS 服務器可以在網絡適配器真正的 IP 地址上監聽,您必須要麼指定一個指定主機名、要麼指定一個IP 地址,隨您選擇。可以通過 Listen 語句來添加一個 IP 地址/端口對。例如:如果您的 CUPS 服務器在一個局域網中,其 IP 地址爲 192.168.10.250,您想要該子網中的其它系統能夠訪問它,您可以編輯 /etc/cups/cups.d/ports.conf 並如下所示添加一個 Listen 語句:
Listen 127.0.0.1:631 # existing loopback Listen
Listen /var/run/cups/cups.sock # existing socket Listen
Listen 192.168.10.250:631 # Listen on the LAN interface, Port 631 (IPP)

在上面的例子裏,如果您不想 cupsd 監聽環回地址 (127.0.0.1) ,您可能註釋或刪除了相關語句。但最好保留它以監聽局域網 (LAN) 的以太網接口。爲了能監聽一個特定主機名所綁定的所有的網絡接口,您可以爲 socrates 主機名創建一個 Listen 條目,如下所示:

Listen socrates:631 # Listen on all interfaces for the hostname 'socrates'

或者忽略 Listen 語句並使用 Port 來代替,如:

Port 631 # Listen on port 631 on all interfaces

[編輯] 4.9.3. 引用

CUPS 網絡

[編輯] HTTPD - Apache2 Web 服務器

Apache 是在 GNU/Linux 系統中最常用的 Web 服務器。Web 服務器爲客戶機所提交的網頁請求服務。客戶機一般通過網頁瀏覽器如 Firefox、Opera、Mozilla或IE來請求和查看網頁。

用戶輸入統一資源定位器 (URL) 來指向一個 Web 服務器,並通過完全限定域名 (FQDN) 和路徑來請求資源。例如,要查看 Ubuntu 網站 的主頁,用戶只需要輸入 FQDN 即可。如果要請求關於 有償技術支持 的特定信息,用戶將在 FQDN 後輸入路徑。

用於傳輸網頁的最常用協議就是超文本傳輸協議 (HTTP)。也支持諸如基於安全套接層的超文本傳輸協議 (HTTPS) 以及用於上傳和下載文件的文件傳輸協議 (FTP) 等協議。

Apache Web 服務器常與 MySQL 數據庫引擎、超文本處理器 (PHP) 腳本語言及其他流行的腳本語言如Python 和 Perl 組合在一起。這一組合被稱爲 LAMP (Linux, Apache, MySQL and Perl/Python/PHP) ,並形成一個強大健壯的開發基於 Web 應用程序的開發平臺。

[編輯] 4.10.1. 安裝

Apache2 web 服務器在 Ubuntu Linux 中是可用的。要安裝 Apache2:

        • 在終端提示符後輸入下列命令:
sudo apt-get install apache2

[編輯] 4.10.2. 配置

Apache 可以在純文本配置文件中通過 語句 來配置的。主配置文件叫 apache2.conf。此外,其外配置文件可以用 Include 語句來添加,也可以使用通配符來包含多個配置文件。任何語句都可能被放在這些配置文件的任何一個文件中。修改過的主配置文件只在 Apach2 啓動或重啓時才能被其識別。

服務器也查看包含 mime 文檔類型的文件;該文件名通過 TypesConfig 設置,缺省情況下是mime.types。

缺省的 Apache2 配置文件是 /etc/apache2/apache2.conf。您可以編輯該文件以配置 Apache2 服務器。您可以配置端口號、文檔根目錄、模塊、日誌文件及虛擬主機等。

[編輯] 4.10.2.1. 基本設置

本部分內容說明 Apache2 服務器基本的配置參數。詳情請參閱 Apache2 文檔

        • Apache2 提供了一個友好虛擬主機的缺省配置。它配置成單個缺省虛擬主機 (使用 VirtualHost 語句) 。如果您有單個站點,可以修改或直接使用它。如果您有多個站點的話,可以將其作爲其它虛擬主機的模板。如果對其不加理會,該缺省虛擬主機將會作爲您的缺省網站提供服務,或者如果網站用戶所輸入的 URL 並沒有匹配您任何所定義站點的 ServerName 語句時,將看到該虛擬主機內容。要修改缺省虛擬主機,可以編輯文件 /etc/apache2/sites-available/default。如果您希望配置一個新的虛擬主機或站點,在同一目錄中將拷貝該文件並將新文件重命名爲您所想要的文件名,如sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/mynewsite。編輯新文件並用下面的所描述的語句來配置新的站點:
        • ServerAdmin 語句指定服務器管理員的郵件地址,缺省值是 webmaster@localhost。應該改成您的郵件地址 (如果您是服務器管理員的話)。如果您的網站有問題,Apache2 將顯示包含該郵件地址的錯誤信息以便報告該問題。在 /etc/apache2/sites-available 目錄中您網站的配置文件裏可以找到該語句。
        • Listen 語句指定端口以及可選的 IP 地址,Apache2 將在其上監聽。如果 IP 地址沒有被指定,Apache2 將監聽所有指向其所運行機器上的 IP 地址。Listen 語句的缺省值是 80。把其改成 127.0.0.1:80 將使 Apache2 只在您的環回接口上臨聽以致於它相對於 Internet 不可用。也可改變其監聽端口如81,或保持原樣以便正常操作。該語句可以在它自己的文件 /etc/apache2/ports.conf 中發現並修改。
        • The ServerName 語句是可選的,它指明您站點要應答什麼 FQDN。缺省虛擬主機沒有指定 ServName,因爲它要應答沒有匹配其它虛擬主機 ServerName 語句的所有請求。如果您只獲得 ubunturocks.com 域名並希望在您的 Ubuntu 服務器上只作它的主機,那麼在您虛擬主機配置文件中的 ServerName 語句值應該是 ubunturocks.com。在您先前創建的新虛擬主機文件 (/etc/apache2/sites-available/mynewsite) 中添加該語句。

您也可能要您的網站響應 www.ubunturocks.com 的請求,因爲許多用戶會假定 www 前綴是適當的。可以使用 ServerAlias 語句來解決這個問題。您也可以在 ServerAlias 中使用通配符。例如,ServerAlias *.ubunturocks.com 將使您的網站響應任何域名以 .ubunturocks.com 結尾的請求。

        • DocumentRoot 語句指定 Apache 將到哪兒去尋找站點文件,缺省值爲 /var/www。沒有站點配置在那裏,但如果您反註釋在 /etc/apache2/apache2.conf 中的 RedirectMatch 語句,請求將被重定向到 /var/www/apache2-default,那裏是缺省的 Apache2 站點。在您站點的虛擬主機文件中改變該值,記住在必要時可以創建相應的目錄!

/etc/apache2/sites-available 目錄並 不會 被 Apache2 解析。在 /etc/apache2/sites-enabled 的軟鏈接指向 "可用的" 站點。使用 a2ensite (Apache2 啓用站點) 工具可以創建這些軟鏈接,如:sudo a2ensite mynewsite 這裏您站點的配置文件是 /etc/apache2/sites-available/mynewsite。同樣,a2dissite 工具將用來禁用站點。

[編輯] 4.10.2.2. 缺省設置

這部分內容說明 Apache2 服務器缺省設置的配置。舉個例子,如果您添加一個虛擬主機,您爲該虛擬主機配置的設置將優先於缺省虛擬主機。如果在該虛擬主機的設置中有個語句沒有定義,那麼將使用缺省值。

        • 當用戶在目錄名後使用斜槓 (/) 來請求一個目錄索引時,The DirectoryIndex 將通過服務器提供缺省頁服務。

例如,當一個用戶請求 http://www.example.com/this_directory/ 頁時,他或她要麼得到 DirectoryIndex 頁,如果它存在的話;要麼得到一個服務器生成的目錄列表,如果它不存在且設置了 Indexes 選項的話;要麼就得到一個無權訪問頁,如果它不存在且沒有設置 Indexes 選項的話。服務器嘗試找到在 DirectoryIndex 語句中所列文件之一,並返回它所找到的第一個。如果它沒有找到任何一個文件且該目錄設置了 Indexes 選項,服務器將生成並返回一個 HTML 格式的列表,包括該目錄中的子目錄和文件。缺省值可以在 /etc/apache2/apache2.conf 文件中找到,是 " index.html index.cgi index.pl index.php index.xhtml"。因此,如果 Apache2 在所請求的目錄中找到任何一個匹配這些名字的文件,第一個將被顯示。

        • ErrorDocument 語句允許您爲 Apache 指定一個用於特定錯誤事件的文件。例如,如果用戶請求的資源不存在,那麼將引發 404 錯誤,而在 Apache2 的缺省配置中,文件 /usr/share/apache2/error/HTTP_NOT_FOUND.html.var 將被顯示。該文件並不在服務器的 DocumentRoot 中,但在 /etc/apache2/apache2.conf 中有個別名語句將到 /error 目錄的請求重定向到 /usr/share/apache2/error/ 中。要查看缺省的 ErrorDocument 語句列表,可以使用命令:grep ErrorDocument /etc/apache2/apache2.conf
        • 在缺省狀態下,服務器將傳輸日誌記錄在文件 /var/log/apache2/access.log 中。您可以在您每個虛擬主機站點的配置文件上用 CustomLog 語句來改變它,或者忽略它以接受在 /etc/apache2/apache2.conf 中指定的缺省設置。您也可以通過 ErrorLog 語句來指定記錄錯誤日誌的文件,該文件缺省是 /var/log/apache2/error.log。這些都從傳輸日誌中分離出來以便更好地在您的 Apache2 服務器中發現和解決問題。您也可以指定 LogLevel (缺省值是 "warn") 和 LogFormat (缺省值參見 /etc/apache2/apache2.conf)
        • 一些選項是基於每目錄而非每服務器的。Option 是這些語句中的一個。Directory 段是被放在類 XML 標記中,如:
<Directory /var/www/mynewsite>
                                ...
                        </Directory>

在 Directory 段中的 Options 語句接受一個或更多下面的用空格分隔的值 (包括其它):

  • ExecCGI - 允許執行 CGI 腳本。如果該選項沒有設置,則 CGI 腳本將不能執行。

大多數文件不會作爲 CGI 腳本運行的。這是非常危險的。CGI 腳本應該位於您 DocumentRoot 目錄以外與之分開的目錄中,並且只能該目錄纔有 ExecCGI 選項設置。缺省狀態下,CGI 腳本默認位於 /usr/lib/cgi-bin。

  • Includes - 允許服務器端包含。服務器端包含允許一個 HTML 文件包含其他文件。這不是一個常用選項。更多信息參見 the Apache2 SSI 指南。
  • IncludesNOEXEC - 允許服務器端包含,但 CGI 腳本中的 #exec 和 #include 指令無效。
  • Indexes - 如果 DirectoryIndex (如 index.html) 在請求的目錄沒存在的話,按一定方式顯示目錄內容列表。
  • Multiview - 支持內容協商的多重視圖;該選項在缺省狀態下出於安全的考慮是被禁用的。參見 Apache2 關於該選項的文檔。
  • SymLinksIfOwnerMatch - 僅在軟連接與其目的文件或目錄擁有相同所有者時才使用。

[編輯] 4.10.2.3. 虛擬主機設置

虛擬主機允許您在同一臺機器上相對不同的 IP 地址、主機名或不同端口號運行不同的服務器。例如,您可以運行使用虛擬主機在同一個 Web 服務器上運行網站 http://www.example.comhttp://www.anotherexample.com。這一選項適用於缺省虛擬主機和基於 IP 的虛擬主機的 <VirtualHost> 語句,也適用於基於名稱的虛擬主機的 <NameVirtualHost> 語句。

虛擬主機的語句設置僅應用於特定的虛擬主機。如果一個語句在服務器範圍中設置而沒有在虛擬主機設置中定義,那麼將使用缺省設置。例如,您可以定義網絡管理員的郵件地址而無需爲每個虛擬主機都分別定義郵件地址。

爲虛擬主機設置 DocumentRoot 語句到包含根文檔 (如 index.html) 目錄。缺省的 DocumentRoot 是 /var/www。

在 VirtualHost 段中的 ServerAadmin 語句是指用於錯誤頁的頁腳中的郵件地址,如果您想在錯誤頁的頁腳顯示郵件地址的話。

[編輯] 4.10.2.4. 服務器設置

這部分內容說明如何配置基本的服務器設置。

LockFile - 當服務器編譯時使用了 USE_FCNTL_SERIALIZED_ACCEPT 或 USE_FLOCK_SERIALIZED_ACCEPT 參數時,使用 LockFile 語句來設置 lockfile 的路徑。它必須保存在本地磁盤上,它應該設置成缺省值,除非日誌目錄被定位在 NFS 共享上。如果是這種情況,缺省值應該被改爲本地磁盤的位置並且其目錄只對 root 用戶可讀。

PidFile - PidFile 語句設置服務器記錄其進程 ID (pid) 的文件。該文件只對 root 用戶可讀。在大多數情況下,應該保留其缺省值。

User - 用戶語句設置被服務器用於迴應請求的用戶 ID。該設置決定服務器的權限。一些該用戶無法訪問的文件也無法被您網站的訪問者訪問。用戶缺省值是 www-data。

除非您的確知道您在做什麼,否則請不要將 User 設爲 root 用戶。用 root 作爲 User 的值將會在您的 Web 服務器中產生極大的安全漏洞。

Group 語句同 User 語句相似。Group 設置被服務器用於迴應請求的用戶組。缺省的組也是 www-data。

[編輯] 4.10.2.5. Apache 模塊

Apache 是一個模塊化的服務器。這就意味着在覈心服務器中只包括最基本的功能。擴展功能可以通過被引導進 Apache 的模塊來實現。缺省情況下,基本模塊是在編譯時被包含進服務器的。如果服務器編譯成可以動態引導模塊,那麼模塊可以單獨編譯,並在任何時候使用 LoadModule 語句來添加。否則,Apache 必須在添加或刪除模塊時重新編譯。Ubuntu 編譯 Apache2 時是允許動態引導模塊的。配置語句通過將已有模塊放置 <IfModule> 塊中以便有條件地包含在配置語句中。您可以在您的 Web 服務器上安裝和使用額外的 Apache2 模塊。您可以用 apt-get 命令來安裝 Apache2 模塊。如安裝 MYSQL 認證的 Apach2 模塊,您可以在終端提示符中運行以下命令:

sudo apt-get install libapache2-mod-auth-mysql

一旦您安裝了模塊,模塊將出現在 /etc/apache2/mods-available 目錄中。您可以使用 a2enmod 命令來啓用模塊。您也可以使用 a2dismod 命令來禁用模塊。一旦您啓用該模塊,該模塊將在 /etc/apache2/mods-enabled 目錄中出現。

[編輯] 4.10.3. HTTPS 配置

The mod_ssl 模塊爲 Apache2 服務器添加了一個重要的功能 - 通訊加密的能力。因此,當您的瀏覽器要用 SSL 加密通訊時,需要在瀏覽器導航欄中在輸入的統一資源定位器 (URL) 的開始處使用 https:// 前綴。

mod_ssl 模塊已經包含在 apache2-common 軟件包中。如果您安裝該軟件包,您可以在終端提示符之後執行下列命令啓用 mod_ssl 模塊:

sudo a2enmod ssl

[編輯] 4.10.3.1. 證書和安全

要設置您的安全服務器,使用公共鑰創建一對公鑰私鑰對。大多數情況下,您發送您的證書請求 (包括您的公鑰),您公司證明材料以及費用到一個證書頒發機構 (CA)。CA 檢證證書請求及您的身份,然後將證書發回您的安全服務器。

還有種辦法就是您可以創建您自己簽署的證書。然而請注意自己籤置的證書不應該用於生產環境。自已簽署的證書不會被用戶瀏覽器自動接受。瀏覽器將提示用戶接受證書並創建一個安全的連接。

一旦您有一個自己簽署的證書或一個您選擇的 CA 簽署的證書,您需要將它安裝在您的安全服務器上。

[編輯] 4.10.3.2. 證書類型

您需要一個鑰匙和一個證書來操作您的安全服務器,這意味着您可以生成自己簽署的證書或購買 CA 簽署的證書。由 CA 簽署的證書爲您的服務器提供兩個重要的功能:

        • 瀏覽器 (通常) 會自動地識別證書並且在不提示用戶的情況下允許創建一個安全連接。
        • 當一個 CA 生成一個簽署過的證書,它爲提供網頁給瀏覽器的組織提供身份擔保。

多數支持 SSL 的 Web 瀏覽器都有一個 CA 列表,它們的證書會被自動接受。如果一個瀏覽器遇到一個其授權 CA 並不在列表中的證書,瀏覽器將詢問用戶是否接受或拒絕連接。

您可以爲您的安全服務器生成一個自己簽署的證書,但要知道自己簽署的證書並不提供與 CA 簽署的證書相同的功能。自己簽署的證書不會被多數 Web 瀏覽器自動識別,而且自己簽署的證書也不爲任何提供網站的組織提供擔保。CA 簽署的證書爲安全服務器提供所有這些重要的功能。從 CA 得到證書的過程相當容易。下面簡要介紹一下:

      • 創建一個私有和公共密鑰對
      • 基於公鑰創建一個證書請求。證書請求包含您服務器及公司信息。
      • 發送證書請求,並隨之提供您的身份文檔到一個 CA。我們不能告訴您選擇哪個證書頒發機構。您可以基於您以往的經驗或您朋友或同事的經驗或純粹基於經濟因素來決定。

一旦您選定一家 CA,您需要根據他們所提供的規程來從他們那裏獲得證書。

      • 當 CA 確定您確實如您所聲稱的那樣時,他們將發給您一個數字證書。
      • 在您的安全服務器上安裝該證書,並開始進行安全事務處理

無論您是從一家 CA 那兒獲得證書或是生成您自己簽署的證書,第一步就是生成鑰匙。

[編輯] 4.10.3.3. 生成一個證書籤署請求 (CSR)

要生成證書籤署請求 (CSR),您應該創建您自己的鑰匙。您可以在終端提示符後運行以下命令以創建鑰匙:

openssl genrsa -des3 -out server.key 1024
          
Generating RSA private key, 1024 bit long modulus
.....................++++++
.................++++++
unable to write 'random state'
e is 65537 (0x10001)
Enter pass phrase for server.key:

您現在可以輸入您的 passphrase。爲了最大程度的安全,它至少應該包含八個字符。當指定 -des3 時最小長度爲四個字符。它應該包含數字和/或標點符號,並且不應該是字典中的單詞。也請記住您的 passphrase 是大小寫敏感的。

再次輸入 passphrase 覈對。一旦您再次輸入正確的話,服務器密鑰就生成了並保存在 server.key 文件中。

您也可以不用 passphrase 來運行您的安全 Web 服務器。這樣比較方便,因爲在您啓動您的安全 Web 服務器時您不需要每次都輸入 passphrase。但它也是相當不安全的,鑰匙的風險也同樣意味着服務器的風險。

在任何情況下,您都可以選擇不用 passphrase 來運行您的安全 Web 服務器,這可以通過在生成時不帶 -des3 參數來實現或者通過在終端提示符後執行以下命令:

openssl rsa -in server.key -out server.key.insecure

一旦您運行上述命令,不安全的鑰匙將被保存在 server.key.insecure 文件中。您可以使用該文件來生成沒有 passphrase 的 CSR。

要創建 CSR,可以在終端提示符後運行以下命令:

openssl req -new -key server.key -out server.csr

它將提示您輸入 passphrase。如果您輸入正確的 passphrase,它將提示您輸入公司名、站點名、郵件ID等。一旦您輸入了所有內容,您的 CSR 將被創建並被保存在 server.csr 文件中。您可以提交該 CSR 文件給一家 CA 去處理。CA 將使用該 CSR 並頒發證書。但是,您也可以使用該 CSR 生成自己簽署的證書。

[編輯] 4.10.3.4. 創建一個自己簽署的證書

要創建自己簽署的證書,在終端提示符下運行以下命令:

openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

上述命令將提示您輸入 passphrase。一旦您輸入正確的 passphrase,您的證書將被創建並將保存在 server.crt 文件中。

如果您的安全服務器被用在生產環境中,你也許需要 CA 簽署的證書。並不推薦使用自己簽署的證書。

[編輯] 4.10.3.5. 安裝證書

您可以安裝鑰匙文件 server.key 和證書文件 server.crt 或由您的 CA 頒發的證書文件,在終端提示符後運行以下命令:

sudo cp server.crt /etc/ssl/certs
sudo cp server.key /etc/ssl/private

您要添加以下四行到 /etc/apache2/sites-available/default 文件或您安全虛擬主機的配置文件。您要將它們放在 VirtualHost 部分。他們應該放在 DocumentRoot 行下面:

SSLEngine on

SSLOptions +FakeBasicAuth +ExportCertData +CompatEnvVars +StrictRequire

SSLCertificateFile /etc/ssl/certs/server.crt
SSLCertificateKeyFile /etc/ssl/private/server.key

HTTPS 在 443 端口監聽。您可以將下面一行添加到 /etc/apache2/ports.conf 文件中:

Listen 443

[編輯] 4.10.3.6. 訪問服務器

一旦您安裝了您的證書,您應該重啓您的 Web 服務器。您可以在終端提示符後運行以下命令以重啓您的 web 服務器:

            
sudo /etc/init.d/apache2 restart

您應該記住並在每次您啓動您的安全 web 服務器時輸入 passphrase。

您將被提示輸入 passphrase。一旦您輸入正常的 passphrase,將啓動安全 web 服務器。您可以通過在您的瀏覽器地址欄上輸入 https://your_hostname/url/ 來訪問安全服務器的頁面。

[編輯] 4.10.4. 引用

Apache2 文檔

Mod SSL 文檔

[編輯] Squid - 代理服務器

Squid 是一個全功能的 web 代理與緩存服務器應用程序,它爲超文本傳輸協議 (HTTP)、文件傳輸協議 (FTP) 以及其他流行網絡協議提供代理和緩存服務。Squid 可以實現安全套接層 (SSL) 請求的緩存和代理、域名服務器 (DNS) 的緩存以及進行傳輸緩存。Squid 也支持大量不同的緩存協議,如 Internet 緩存協議 (ICP)、超文本緩存協議 (HTCP)、緩存陣列路由協議 (CARP) 以及 Web 緩存協同協議 (WCCP)。

Squid 代理緩存服務器對於不同的代理和緩存服務器需求來說是一個極好的解決方案,它適用於從分支機構到企業級的網絡,訪問控制機制的粒度以及通過簡單網絡管理協議 (SNMP) 對臨界參數的監視。當選擇計算機系統用於 Squid 代理或緩存服務器時,請確保您的系統配置大量的物理內存以便 Squid 可以使用內存進行緩存以提高性能。

[編輯] 4.11.1. 安裝

在終端提示符後輸入下列命令安裝 Squid 服務器:

sudo apt-get install squid squid-common

[編輯] 4.11.2. 配置

Squid 可以通過編輯在 /etc/squid/squid.conf 配置文件中的語句來進行配置。下面的範例說明一些語句的修改可能對 Squid 服務器的影響。更多 Squid 的配置可以參閱參考章節。

在編輯配置文件之前,您應該生成一份原始文件副本並對其進行寫保護,以便您可以將原始文件作爲參考並在必要時重用它。

要拷貝 /etc/squid/squid.conf 文件並對其進行寫保護,可以在終端提示符後使用以下命令:

sudo cp /etc/squid/squid.conf /etc/squid/squid.conf.original
sudo chmod a-w /etc/squid/squid.conf.original
        • 要將您的 Squid 服務器監聽 TCP 端口 8888 以代替缺省的 TCP 端口 3128,可以如下所示修改 http_port 語句:

http_port 8888

        • 改變 visible_hostname 語句是爲了給 Squid 服務器一個特定的主機名。該主機名並必是計算機的主機名。在本範例中它被設爲 weezie。

visible_hostname weezie

        • 此外,使用 Squid 訪問控制,您可以通過 Squid 代理將 Internet 服務配置成僅限於有確定網際協議 (IP) 地址的用戶使用。例如,我們將舉例說明只讓 192.168.42.0/24 子網的用戶訪問:

將下列語句添加到您 /etc/squid/squid.conf 文件 ACL 部分的 底部: acl fortytwo_network src 192.168.42.0/24 然後添加下列語句到你 /etc/squid/squid.conf 文件 http_access 部分的 頂部: http_access allow fortytwo_network

        • 使用 Squid 卓越的訪問控制功能,您可以通過 Squid 代理將 Internet 服務配置成僅限於在正常商務時間使用。例如,我們將舉例說明只允許來自 10.1.42.0/24 子網的商務僱員在週一到週五的上午 9:00 到 下午 5:00 時間段內訪問:

將下列語句添加到您 /etc/squid/squid.conf 文件 ACL 部分的 底部: acl biz_network src 10.1.42.0/24 acl biz_hours time M T W T F 9:00-17:00 然後添加下列語句到你 /etc/squid/squid.conf 文件 http_access 部分的 頂部: http_access allow biz_network biz_hours


在修改 /etc/squid/squid.conf 文件後,保存該文件並重啓 squid 服務器應用程序以使改動生效。可以在終端提示符後使用下列命令:

sudo /etc/init.d/squid restart

[編輯] 4.11.3. 引用

Squid 網站

[編輯] 版本控制系統

版本控制是管理改動信息的技術。它對於程序員而言一直是重要的工具,他們經常花時間對程序進行小改動之後又在第二天改回來。但版本控制軟件的用途卻遠遠超出了軟件開發的界線。無論何處您可以發現人們使用計算機去管理那些經常變動的信息,那裏都有使用版本控制的空間。

[編輯] 4.12.1. Subversion

Subversion 是一個開源的版本控制系統。使用 Subversion,您可以記錄源文件和文檔的歷史。它管理文件和目錄。文件樹被放入了中心庫中。庫更象是一個普通的文件服務器,除了它可以記住對文件和目錄的每次改變。

[編輯] 4.12.1.1. 安裝

要通過 HTTP 協議來訪問 Subversion 庫,您必須安裝和配置一個 web 服務器。Apache2 被證明可以和 Subversion 一起工作。請參考 Apache2 章節的 HTTP 小節以安裝和配置 Apache2。要使用 HTTPS 協議訪問 Subversion 庫,您必須在您的 Apache2 web 服務器上安裝和配置數字證書。請參考 Apache2 章節的 HTTPS 小節以安裝和配置數據證書。

要安裝 Subversion,可以在終端提示符後運行以下命令:

sudo apt-get install subversion libapache2-svn

[編輯] 4.12.1.2. 服務器配置

這一步假定您已經在您的系統上安裝了上面提及的包。本部分內容說明如何創建一個 Subversion 庫和訪問項目。創建 Subversion 庫

Subversion 庫可以在終端提示符後使用以下命令創建:

svnadmin create /path/to/repos/project

[編輯] 4.12.1.3. 訪問方式

Subversion 庫可以通過許多不同的方式如通過在本地磁盤或不同的網絡協議來訪問 (checked out)。然而,庫的位置經常是一個 URL。下表描述了不同的URL模式如何映射相應的訪問方式。表 4-1 訪問方式

模式 訪問方式
file:// 直接訪問庫 (在本地磁盤)
http:// 通過 WebDAV 協議訪問帶有 Subversion 的 Apache2 web 服務器。
https:// 與 http:// 相同,但有 SSL 加密
svn:// 通過自身協議訪問 svnserve 服務
svn+ssh:// 與 svn:// 一樣,但使用 SSH 遂道

在本部分,我們將看到如何爲所有這些訪問方式來配置 Subversion。這裏,我們只介紹基本用法。更多詳細、高級用法請參閱svn 書

[編輯] = 4.12.1.3.1. 直接訪問庫 (file://) =

這是所有訪問方式中最簡單的。它不要求運行任何 Subversion 服務器進程。該訪問方式用於在同一臺機器上訪問 Subversion。在終端提示符後輸入的命令如下所示:

svn co file:///path/to/repos/project

svn co file://localhost/path/to/repos/project

如果您沒有指定主機名,則需要三個斜槓 (///) -- 其中兩個是協議的 (這裏是 file),另一個是路徑前的。如果您指定了主機名,那麼您必須使用雙個斜槓 (//)。

庫權限依賴於文件系統的權限。如果用戶有讀/寫權限,他可以從庫中檢出或者提交到庫。

[編輯] = 4.12.1.3.2. 通過 WebDAV 協議 (http://) 訪問 =

要通過 WebDAV 協議訪問 Subversion,您必須配置您的 Apache2 web 服務器。您必須在您的 /etc/apache2/apache2.conf 文件中添加下面一小段:

<Location /svn>
DAV svn
SVNPath /path/to/repos
AuthType Basic
AuthName "Your repository name"
AuthUserFile /etc/subversion/passwd
<LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user
</LimitExcept>
</Location> 

接下來,您必須創建 /etc/subversion/passwd 文件。該文件包含用戶認證細節。要添加一個條目,如添加一個用戶,您可以在終端提示符後運行下列命令:

htpasswd2 /etc/subversion/passwd user_name

該命令將提示您輸入密碼。一旦您輸入密碼。該用戶將被添加。現在您可以運行下列命令來訪問庫:

svn co http://servername/svn

該密碼是以純文本傳輸的。如果您擔心密碼被截取,建議您使用 SSL 加密。相關細節,請參考下一章節。

[編輯] = 4.12.1.3.3. 通過帶有 SSL 加密的 WebDAV 協議來訪問 (https://) =

通過帶 SSL 加密的 WebDAV 協議 (https://) 訪問也使用 http:// 類似,只是您必須在您的 Apache2 web 服務器中安裝和配置數字證書。

您可以安裝由證書籤署機構如 Verisign 頒發的數字證書。或者,您也可以安裝自己簽署的證書。

這一步假設您已經在您的 Apache2 web 服務器中安裝和配置了數字證書。現在要訪問 Subversion 庫,請參考上一章節!除了所用協議之外訪問方式完全相同。您必須使用 https:// 來訪問 Subversion 庫。

[編輯] = 4.12.1.3.4. 通過自身協議訪問 (svn://) =

一旦 Subversion 庫被創建,您就可以配置訪問控制了。您可以通過編輯 /path/to/repos/project/conf/svnserve.conf 文件來配置訪問控制了。例如,要設置認證,您可以在配置文件中反註釋下列行:

在反註釋上面幾行之後,您可以在 passwd 文件中維護用戶列表。因此編輯同一目錄中的文件 passwd 並添加新用戶。其語法如下:
<pre><nowiki>
username = password

更多細節,請參考該文件。

現在要從本機或不同機器通過 svn:// 自身協議來訪問 Subversion,您可以使用 svnserve 命令來運行 svnserver。其語法如下:

$ svnserve -d --foreground -r /path/to/repos

For more usage details, please refer to:
$ svnserve --help

一旦您運行該命令,將啓動 Subversion 並在缺省端口 (3690) 監聽。要訪問項目庫,您必須在終端提示符後運行下列命令:

svn co svn://hostname/project project --username user_name

根據服務器的配置,出現密碼提示。一旦您認證通過,將從 Subversion 庫檢出代碼。要讓本地副本同步項目庫,您可以運行 update 子命令。在終端提示符後的命令語法如下所示:

cd project_dir ; svn update

關於 Subversion 子命令的更多細節,您可以參考手冊。如爲了學到關於 co (checkout) 命令的細節,請在終端提示符後運行下列命令:

svn co help

[編輯] = 4.12.1.3.5. 通過帶有 SSL 加密的自身協議 (svn+ssh://) 訪問 =

配置和服務器處理與用 svn:// 方式是相同的。詳情請參考上面的章節。這一步假定您已經完成了上面的步驟並用 svnserve 命令啓動了 Subversion 服務器。

它也假定 ssh 服務器已經在該機上運行並允許連接。爲了確認,請嘗試使用 ssh 登錄該機器。如果您可以登錄,一切就緒。如果不能登錄,請在繼續之前解決它。

svn+ssh:// 協議使用 SSL 加密來訪問 Subversion 庫。使用這種方式進行的數據傳輸是加密的。要訪問項目庫 (如 checkout),您必須使用下面的命令語法:

svn co svn+ssh://hostname/var/svn/repos/project

使用這種訪問方式您必須使用全路徑 (/path/to/repos/project) 來訪問 Subversion 庫。

根據服務器配置,它將提示輸入密碼。在使用 ssh 登錄時您必須輸入密碼。一旦您被認證通過之後,它將從 Subversion 庫中檢出代碼。

[編輯] 4.12.2. CVS 服務器

CVS 是一個版本控制系統。您可以使用它來記錄源文件的歷史。

[編輯] 4.12.2.1. 安裝

在終端提示符後輸入下列命令來安裝 cvs:

sudo apt-get install cvs

在您安裝 cvs之後,您將安裝 xinetd 來啓動和停用 cvs 服務器。在提示符後輸入下列命令以安裝 xinetd:

sudo apt-get install xinetd

[編輯] 4.12.2.2. 配置

一旦您安裝 cvs,將會自動初始化庫。缺省狀態下,庫存放在 /var/lib/cvs 目錄下。您可以通過運行以下命令來改變該路徑:

cvs -d /your/new/cvs/repo init

一旦庫開始建立,您可以配置 xinetd 來啓動 CVS 服務器。您可以拷貝以下行到 /etc/xinetd/cvspserver 文件。

service cvspserver
{
port = 2401
socket_type = stream
protocol = tcp
user = root
wait = no
type = UNLISTED
server = /usr/bin/cvs
server_args = -f --allow-root /var/lib/cvs pserver
disable = no
}

如果你改變缺省的庫目錄 (/var/lib/cvs) 那麼您必須要編輯庫。

一旦您配置好 xinetd ,您就可以運行以下命令來啓動 cvs 服務器了:

sudo /etc/init.d/xinetd start

您可以執行以下命令來確定 CVS 服務器正在運行:

sudo netstat -tap | grep cvs

當您運行該命令時,您可以看到類似下面的行:

tcp 0 0 *:cvspserver *:* LISTEN 

在這裏您可以繼續添加用戶,添加新的項目以及管理 CVS 服務器

CVS 允許用戶添加獨立於 OS 安裝的用戶。也許最容易的方式就是讓 CVS 使用 Linux 的用戶,雖然它有潛在的安全隱患。詳細請參考 CVS 手冊。

[編輯] 4.12.2.3. 添加項目

本部分內容說明如何在 CVS 庫中添加新項目。創建目錄以及該目錄所需的文檔和源文件。現在運行下列命令將該項目添加到 CVS 庫中:

cd your/project
cvs import -d :pserver:[email protected]:/var/lib/cvs -m "Importing my project to CVS repository" . new_project start

您可以使用 CVSROOT 環境變量來保存 CVS 根目錄。一旦您導出 CVSROOT 環境變量,您可以在上面的 cvs 命令中避免使用 -d 選項。

字符串 new_project 是一個 vendor 標籤,start 是一個版本標籤。它們在此沒有任何用處,但由於 CVS 要求要有它們,所以它們必須出現。

當您新添項目時,您所用的 CVS 用戶必須對 CVS 庫 (/var/lib/cvs) 有寫權限。缺省狀態下,src 組有對 CVS 庫的寫權限,因此,您可以添加用戶到該組,然後就該用戶就可以在 CVS 庫中添加和管理項目了。

[編輯] 4.12.3. 引用

Subversion 主頁

Subversion 書 (使用Subversion進行版本控制)

CVS 手冊

[編輯] 數據庫

Ubuntu 提供兩個數據庫服務器。它們是:

        • MySQL™
        • PostgreSQL

它們位於主軟件庫中。該部分內容說明如何安裝和配置這些數據庫服務器。

[編輯] 4.13.1. MySQL

MySQL 是一個快速、多線程、多用戶、強大的 SQL 數據庫服務器。它旨在成爲能用於大型應用、高負載的生產系統以及大規模部署的軟件。

[編輯] 4.13.1.1. 安裝

要安裝 MySQL,可以在終端提示符後運行下列命令:

sudo apt-get install mysql-server mysql-client

一旦安裝完成,MySQL 服務器應該自動啓動。您可以在終端提示符後運行以下命令來檢查 MySQL 服務器是否正在運行:

sudo netstat -tap | grep mysql

當您運行該命令時,您可以看到類似下面的行:

tcp 0 0 localhost.localdomain:mysql *:* LISTEN -

如果服務器不能正常運行,您可以通過下列命令啓動它:

sudo /etc/init.d/mysql restart

[編輯] 4.13.1.2. 配置

缺省狀態下,管理員密碼是沒有設置的。一旦您安裝了 MySQL,您必須要做的第一件事就是配置 MySQL 的管理員密碼。要做到這一點,可以運行以下命令:

sudo mysqladmin -u root password newrootsqlpassword
sudo mysqladmin -u root -h localhost password newrootsqlpassword

您可以編輯 /etc/mysql/my.cnf 文件來進行基本設置 -- 日誌文件、端口號等。詳情請參考 /etc/mysql/my.cnf 文件。

[編輯] 4.13.2. PostgreSQL

PostgreSQL 是一個面向對象的數據庫系統,它有着傳統商業數據庫系統和下一代 DBMS 系統所增進的功能。

[編輯] 4.13.2.1. 安裝

要安裝 PostgreSQL,可以在命令提示符後運行下列命令:

sudo apt-get install postgresql

一旦安裝完成,您就要按您的需要配置 PostgreSQL 服務器,儘管缺省配置已經可以使它可以正常運行了。

[編輯] 4.13.2.2. 配置

缺省狀態下,通過 TCP/IP 的連接是被禁用的。PostgreSQL 支持多客戶認證方式。其中 IDENT 認證方式被默認使用。請參考 PostgreSQL 管理員指南。

接下來的討論假定您希望啓用 TCP/IP 連接並對客戶認證使用 MD5 模式。PostgreSQL 配置文件被保存在 /etc/postgresql/<version>/main /etc/postgresql/7.4/main

要配置 ident 認證,請在 /etc/postgresql/7.4/main/pg_ident.conf 文件中添加。

要啓用 TCP/IP 連接,編輯文件 /etc/postgresql/7.4/main/postgresql.conf。

找到 #tcpip_socket == false 行並將其改爲 tcpip_socket == true。如果您知道您正在做什麼,那麼您也可以編輯其他所有參數。詳情請參考配置文件或 PostgreSQL 文檔。

缺省狀態下,沒有爲 MD5 客戶端認證設置用戶證書。因此,首先必須將 PostgreSQL 服務器配置成使用 trust 客戶端認證,用以連接數據庫。配置密碼並將配置恢復成使用 MD5 客戶端認證。要啓用 trust 客戶端認證,可編輯文件 /etc/postgresql/7.4/main/pg_hba.conf

註釋所有使用 ident 和 MD5 客戶端認證的行並添加下列行:

local all postgres trust sameuser

然後運行下列命令啓動 PostgreSQL 服務器:

sudo /etc/init.d/postgresql start

一旦 PostgreSQL 服務器成功啓動,在終端提示符後運行下面的命令以連接缺省的 PostgreSQL 模板數據庫。

psql -U postgres -d template1

上面的命令是以用戶 postgres 的身份連接 PostgreSQL 的 template1 數據庫。一旦您連到 PostgreSQL 服務器,您將會在 SQL 提示符下。您可以在 psql 提示符中運行下列命令來爲用戶 postgres 配置密碼。

template1=# ALTER USER postgres with encrypted password 'your_password';

在配置密碼後,編輯文件 /etc/postgresql/7.4/main/pg_hba.conf 以使用 MD5 認證:

註釋掉最近添加的 trust 行並添加下面行:

local all postgres md5 sameuser

無論如何上面配置並不完整。更多的配置參數請參考 PostgreSQL 管理員指南。

[編輯] 郵件服務

在網絡或 Internet 上從一個人得到郵件給另一個人的處理過程包含許多系統的協同工作。這些系統中的每一個都必須配置正確以便可以正常工作。發送者使用一個 郵件用戶代理 (MUA),或郵件客戶端通過一個或多個 郵件傳輸代理 (MTA) 來發送信息,最後一個將信息送到 郵件投遞代理 (MDA) 以便將其投遞到接受者的收件箱中。該信息將會被接受者郵件客戶端檢索到,通常是通過 POP3 或 IMAP 服務器。

[編輯] 4.14.1. Postfix

Postfix 是 Ubuntu 中缺省的郵件傳輸代理 (MTA)。它試圖變得快捷、易於管理和安全。它與 MTA sendmail 兼容。這部分內容說明如何安裝和配置 postfix。還說明如何將它設置成使用安全連接的 SMTP 服務器 (爲了安全發送郵件)。

[編輯] 4.14.1.1. 安裝

要安裝帶有 SMTP-AUTH 和 傳輸層安全 (TLS) 的 postfix,運行下列命令:

sudo apt-get install postfix

當安裝進程提問時簡單地按回車,下面將詳細說明相關配置。

[編輯] 4.14.1.2. 基本配置

要配置 postfix,運行下列命令:

sudo dpkg-reconfigure postfix

用戶界面將顯示。在每一屏中,選擇下列值:

**** Ok
**** Internet 站點
**** NONE
**** mail.example.com
**** mail.example.com, localhost.localdomain, localhost
**** No
**** 127.0.0.0/8
**** Yes
**** 0
**** +
**** 全部

把 mail.example.com 作爲您的郵件服務器的主機名。

[編輯] 4.14.1.3. SMTP 認證

下一步是爲 postfix 的 SMTP AUTH 配置使用 SASL。與其直接編輯配置,不如使用 postconf 命令配置所有 postfix 參數。配置參數被保存在 /etc/postfix/main.cf 文件中。如果您希望更新配置一項參數,您可以運行命令或手工在文件中修改。

      • 配置 Postfix 使用 SASL (saslauthd) 的 SMTP AUTH :
postconf -e 'smtpd_sasl_local_domain ='
postconf -e 'smtpd_sasl_auth_enable = yes'
postconf -e 'smtpd_sasl_security_options = noanonymous'
postconf -e 'broken_sasl_auth_clients = yes'
postconf -e 'smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination'
postconf -e 'inet_interfaces = all'
echo 'pwcheck_method: saslauthd' >> /etc/postfix/sasl/smtpd.conf
echo 'mech_list: plain login' >> /etc/postfix/sasl/smtpd.conf
      • 接下來爲 TLS 配置數字證書。當被詢問問題時,按照提示並適當回答。
openssl genrsa -des3 -rand /etc/hosts -out smtpd.key 1024
chmod 600 smtpd.key
openssl req -new -key smtpd.key -out smtpd.csr
openssl x509 -req -days 3650 -in smtpd.csr -signkey smtpd.key -out smtpd.crt
openssl rsa -in smtpd.key -out smtpd.key.unencrypted
mv -f smtpd.key.unencrypted smtpd.key
openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 3650
mv smtpd.key /etc/ssl/private/
mv smtpd.crt /etc/ssl/certs/
mv cakey.pem /etc/ssl/private/
mv cacert.pem /etc/ssl/certs/

您可以從證書頒發機構得到數字證書。或者您可以創建您自己的證書。詳情參考 第4.10.3.4節 ― 創建一個自己簽署的證書。

      • 配置 Postfix 對接收或發送郵件進行 TLS 加密:
postconf -e 'smtpd_tls_auth_only = no'
postconf -e 'smtp_use_tls = yes'
postconf -e 'smtpd_use_tls = yes'
postconf -e 'smtp_tls_note_starttls_offer = yes'
postconf -e 'smtpd_tls_key_file = /etc/ssl/private/smtpd.key'
postconf -e 'smtpd_tls_cert_file = /etc/ssl/certs/smtpd.crt'
postconf -e 'smtpd_tls_CAfile = /etc/ssl/certs/cacert.pem'
postconf -e 'smtpd_tls_loglevel = 1'
postconf -e 'smtpd_tls_received_header = yes'
postconf -e 'smtpd_tls_session_cache_timeout = 3600s'
postconf -e 'tls_random_source = dev:/dev/urandom'
postconf -e 'myhostname = mail.example.com'

在您運行所有命令之後,postfix 的 SMTP AUTH 將被配置。將爲 TLS 創建自己簽署的證書並與 postfix 一起配置。

現在文件 /etc/postfix/main.cf 看上去就象 這樣。

postfix 初始配置完成。運行下列命令以開始 postfix 守護程序:

sudo /etc/init.d/postfix start

現在 postfix 已經被安裝、配置及成功運行。Postfix 支持在 RFC2554 中定義的 SMTP AUTH。它基於 SASL。無論如何在您使用 SMTP 之前必須設置 SASL 認證。

[編輯] 4.14.1.4. 配置 SASL

libsasl2、sasl2-bin 和 libsasl2-modules 對於使用 SASL 的 SMTP AUTH 是必需的。如果您沒有安裝它們的話,您可以安裝這些應用程序。

apt-get install libsasl2 sasl2-bin

要讓其正常工作的話做一些改動是必須的。因爲 Postfix 是被 chroot 在 /var/spool/postfix 中運行,SASL 需要被配置在假根目錄中運行 (從 /var/run/saslauthd 到 /var/spool/postfix/var/run/saslauthd):

mkdir -p /var/spool/postfix/var/run/saslauthd
rm -rf /var/run/saslauthd

要激活 saslauthd,編輯文件 /etc/default/saslauthd,並修改或添加 START 變量。爲了將 saslauthd 配置成在假根目錄中運行,添加 PWDIR、PIDFILE 和 PARAMS 變量。最終,隨您所好配置 MECHANISMS 變量。該文件看起來象這樣:

START=yes

PWDIR="/var/spool/postfix/var/run/saslauthd"
PARAMS="-m ${PWDIR}"
PIDFILE="${PWDIR}/saslauthd.pid"


MECHANISMS="pam"

如果您喜歡,您可以使用 shadow 代替 pam。這將使用 MD5 哈希密碼傳輸並更爲安全。需要認證的用戶名和密碼將是您正在服務器上使用系統的那些用戶。

接下來更新 /var/spool/portfix/var/run/saslauthd 的 dpkg "state"。saslauthd 初始化腳本將使用該設置來創建有着適當權限和所有權的目錄:

dpkg-statoverride --force --update --add root sasl 755 /var/spool/postfix/var/run/saslauthd

[編輯] 4.14.1.5. 測試

SMTP AUTH 配置完成。現在是啓動並測試設置的時候了。您可以運行下列命令來啓動 SASL 守護程序:

sudo /etc/init.d/saslauthd start

要查看 SMTP-AUTH 和 TLS 是否正常工作,運行下列命令:

telnet mail.example.com 25

在您建立到 postfix 郵件服務器連接之後,輸入:

ehlo mail.example.com

如果您看到包括下列行時,那麼一切工作正常。輸入 quit 退出。

250-STARTTLS
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN PLAIN
250 8BITMIME

[編輯] 4.14.2. Exim4

Exim4 是另一個由劍橋大學開發的用於連接 Internet 的 Unix 系統上的消息傳輸代理 (MTA)。安裝Exim可以代替 sendmail,雖然 exim 的配置與 sendmail 是非常不同。

[編輯] 4.14.2.1. 安裝

要安裝 exim4,運行下列命令:

sudo apt-get install exim4 exim4-base exim4-config

[編輯] 4.14.2.2. 配置

要配置 exim4,運行下列命令:

sudo dpkg-reconfigure exim4-config

用戶界面將顯示。該用戶界面讓您配置許多參數。例如,在 exim4 中配置文件被分成多個文件。如果您希望將它們放在一個文件中,您可以根據該用戶界面進行配置。

您在用戶界面配置的所有參數被保存在 /etc/exim4/update-exim4.conf.conf 文件。如果您希望重新配置,您可以重新運行配置嚮導或用您喜歡的編輯器手工編輯該文件。一旦您配置好了,您可以運行下列命令來生成主配置文件:

sudo update-exim4.conf

生成主配置文件且被保存在 /var/lib/exim4/config.autogenerated.

在任何時候,你都不要手工編輯主配置文件 /var/lib/exim4/config.autogenerated。它在每次您運行 update-exim4.conf 之後會自動更新。

您可以運行下列命令以啓動 exim4 守護程序。

sudo /etc/init.d/exim4 start

TODO: 該內容將覆蓋 exim4 的 SMTP AUTH 配置。

[編輯] 4.14.3. Dovecot 服務器

Dovecot 是一個主要出於安全考慮編寫的郵件投遞代理。它支持主要收件箱格式:mbox 或 Maidir。這部分說明如何將它設爲一個 imap 或 pop3 服務器。

[編輯] 4.14.3.1. 安裝

要安裝 dovecot,在命令提示符中運行下列命令:

sudo apt-get install dovecot-common dovecot-imapd dovecot-pop3d

[編輯] 4.14.3.2. 配置

要配置 dovecot,您可以編輯文件 /etc/dovecot/dovecot.conf。您可以選擇您所使用的協議。它可以是 pop3、pop3 (安全 pop3)、imap 和 imaps (安全 imap)。對這些協議的說明是超出該指南範圍的。更多信息請參考 wikipedia 關於 POP3 和 IMAP 的文章。

IMAPS 和 POP3S 比簡單 IMAP 和 POP3 更安全,因爲他們使用 SSL 加密連接。一旦您選擇了協議,修改在文件 /etc/dovecot/dovecot.conf 中的下列行:

protocols = pop3 pop3s imap imaps

當 dovecot 啓動時協議開始生效。接下來在文件 /etc/dovecot/dovecot.conf 的 pop3 部分添加下列行:

pop3_uidl_format = %08Xu%08Xv

然後選擇您所用的收件箱。Dovecot 支持 maildir 和 mbox 格式。大多數通常使用 mailbox 格式。它們都有自己的優點,並且在 dovecot 網站 上討論。

一旦您選擇了您的收件箱格式後,就可以編輯文件 /etc/dovecot/dovecot.conf 並修改下列行:

default_mail_env = maildir:~/Maildir # (for maildir)

default_mail_env = mbox:~/mail:INBOX=/var/spool/mail/%u # (for mbox)

如果接收到的郵件類型與您已經配置不同,那麼您要配置您的郵件傳輸代理 (MTA) 用來將該郵件傳輸到這種類型的收件箱中。

一旦您已經配置好了 dovecot,啓動 dovecot 守護程序以測試您的設置:

sudo /etc/init.d/dovecot start

如果您啓用 imap 或 pop3,您也可以試着用命令 telnet localhost pop3 或 telnet localhost imap2 登錄。如果您看到類似下面的東西,那麼安裝就成功了:

bhuvan@rainbow:~$ telnet localhost pop3
Trying 127.0.0.1...
Connected to localhost.localdomain.
Escape character is '^]'.
+OK Dovecot ready.

[編輯] 4.14.3.3. Dovecot SSL 配置

要配置 dovecot 使用 SSL,您可以編輯文件 /etc/dovecot/dovecot.conf 並修改下列行:

ssl_cert_file = /etc/ssl/certs/dovecot.pem
ssl_key_file = /etc/ssl/private/dovecot.pem
ssl_disable = no
disable_plaintext_auth = no

當您安裝 dovecot 時,會通過它自動創建 cert 和 key 文件。請注意這些鑰匙沒被簽名並會在客戶端連接時給出 "bad signature" 的錯誤。要避免這一點,您可以使用商業證書,甚至更好,使用您自己簽署的 SSL 證書。

[編輯] 4.14.3.4. 郵件服務器的防火牆配置

要從另一臺計算機訪問您的郵件服務器,您必須配置您的防火牆以允許連接服務器必要的端口。

**** IMAP - 143
**** IMAPS - 993
**** POP3 - 110
**** POP3S - 995

[編輯] 4.14.4. Mailman

Mailman 是一個管理電子郵件討論及電子通訊列表的開源程序。許多開源的郵件列表 (包括所有的 Ubuntu 郵件列表)使用 Mailman 作爲他們的郵件列表軟件。它是強大的且易於安裝和維護。

[編輯] 4.14.4.1. 安裝

Mailman 爲管理員和用戶提供一個 web 界面。因此,它要求 apache 要有 mod_perl 的支持。Mailman 使用外部郵件服務器來發送和接收郵件。它可以與下列郵件服務器很好的工作:

        • Postfix
        • Exim
        • Sendmail
        • Qmail

我們將看到如何安裝 mailman、apache web 服務器和 Exim 郵件服務器。如果您希望安裝 mailman 和一個不同的郵件服務器,請參考參考部分。

[編輯] = 4.14.4.1.1. Apache2 =

要安裝 apache2 您可以參考 第4.10.1節 ― 安裝。

[編輯] = 4.14.4.1.2. Exim4 =

要安裝 Exim4 您可以在終端提示符後運行下列命令:

sudo apt-get install exim4
sudo apt-get install exim4-base
sudo apt-get install exim4-config

一旦安裝好 exim4,配置文件被保存在 /etc/exim4 目錄中。缺省情況下,在 ubuntu 中,exim4 配置文件被分成不同的文件。您可以通過配置 /etc/exim4/update-exim4.conf 中的下列變量來改變這一現狀:

        • dc_use_split_config='true'

[編輯] = 4.14.4.1.3. Mailman =

要安裝 Mailman,在終端提示符後運行下列命令:

sudo apt-get install mailman

它複製安裝文件到 /var/lib/mailman 目錄,將 CGI 腳本安裝到 /usr/lib/cgi-bin/mailman目錄,創建 list linux 用戶,創建 list linux 用戶組。mailman 進程將以該用戶運行。

[編輯] 4.14.4.2. 配置

本節假定您已經成功安裝 mailman、apache2 和exim4。現在您只需要配置它們。

[編輯] = 4.14.4.2.1. Apache2 =

一旦 apache2 安裝之後,您可以在 /etc/apache2/apache2.conf 文件添加下列行:

Alias /images/mailman/ "/usr/share/images/mailman/"
Alias /pipermail/ "/var/lib/mailman/archives/public/"

Mailman 使用 apache2 來運行它的 CGI 腳本。mailman 的 CGI 腳本被安裝在 /usr/lib/cgi-bin/mailman 目錄中。因此 mailman 的 url 將是 http://hostname/cgi-bin/mailman/。如果您希望改變這一狀況,您可以修改 /etc/apache2/apache2.conf 文件。

[編輯] = 4.14.4.2.2. Exim4 =

一旦 Exim4 安裝之後,您可以在終端提示符後使用下列命令啓動 Exim 服務器:

sudo apt-get /etc/init.d/exim4 start

爲了使 mailman 可以和 exim4 一起工作,您需要配置 exim4。正如先前所說的那樣,在缺省狀態下 exim4 使用不同類型的多個配置文件。詳情請參考 Exim 網站。要運行 mailman,我們可以新建一個配置文件到下列配置類型:

        • 傳輸
        • 路由器

Exim 按這些小的配置文件順序創建出一個主配置文件。因此這些配置文件的順序是非常重要的。

[編輯] = 4.14.4.2.3. 主 =

所有隸屬於主類別的配置文件都被保存在 /etc/exim4/conf.d/main/ 目錄中。您可以將下面的內容添加到一個名爲 04_exim4-config_mailman 的新文件中:

MM_HOME=/var/lib/mailman
MM_UID=list
MM_GID=list
domainlist mm_domains=hostname.com↵
MM_WRAP=MM_HOME/mail/mailman
MM_LISTCHK=MM_HOME/lists/${lc::$local_part}/config.pck

[編輯] = 4.14.4.2.4. 傳輸 =

所有隸屬於傳輸類型的文件被保存在 /etc/exim4/conf.d/transport/ 目錄中。您可以將下面的內容添加到一個名爲 40_exim4-config_mailman 的新文件中:

mailman_transport:
driver = pipe
command = MM_WRAP /
'${if def:local_part_suffix /
{${sg{$local_part_suffix}{-(//w+)(//+.*)?}{/$1}} } /
{post}}' /
$local_part
current_directory = MM_HOME
home_directory = MM_HOME
user = MM_UID
group = MM_GID

[編輯] = 4.14.4.2.5. 路由器 =

所有隸屬於路由類的所有配置文件都被保存在 /etc/exim4/conf.d/router/ 目錄中。您可以將下列內容添加到名爲 101_exim4-config_mailman 的新文件中:

mailman_router:
driver = accept
require_files = MM_HOME/lists/$local_part/config.pck
local_part_suffix_optional
local_part_suffix = -bounces : -bounces+* : /
-confirm+* : -join : -leave : /
-owner : -request : -admin
transport = mailman_transport

主類和傳輸類的配置文件的順序可以隨意。但路由類的配置文件的順序必須相同。該文件必須在 200_exim4-config_primary 文件之前出現。如果兩個配置文件包含相同類型的信息。第一個文件優先。詳情請參閱參考部分。

[編輯] = 4.14.4.2.6. Mailman =

安裝 mailman 之後,您可以使用下列命令來運行它:

sudo /etc/init.d/mailman start

一旦 mailman 安裝,您必須創建缺省的郵件列表。運行下列命令以創建郵件列表:

sudo /usr/sbin/newlist mailman

Enter the email address of the person running the list: bhuvan at ubuntu.com
Initial mailman password:
To finish creating your mailing list, you must edit your /etc/aliases (or
equivalent) file by adding the following lines, and possibly running the
`newaliases' program:

## mailman mailing list
mailman: "|/var/lib/mailman/mail/mailman post mailman"
mailman-admin: "|/var/lib/mailman/mail/mailman admin mailman"
mailman-bounces: "|/var/lib/mailman/mail/mailman bounces mailman"
mailman-confirm: "|/var/lib/mailman/mail/mailman confirm mailman"
mailman-join: "|/var/lib/mailman/mail/mailman join mailman"
mailman-leave: "|/var/lib/mailman/mail/mailman leave mailman"
mailman-owner: "|/var/lib/mailman/mail/mailman owner mailman"
mailman-request: "|/var/lib/mailman/mail/mailman request mailman"
mailman-subscribe: "|/var/lib/mailman/mail/mailman subscribe mailman"
mailman-unsubscribe: "|/var/lib/mailman/mail/mailman unsubscribe mailman"

Hit enter to notify mailman owner...

# 

我們已經把 exim 配置成可以識別所有來自 mailman 的郵件。因此並不需要在 /etc/aliases 中添加任何新的條目。如果您對配置文件做了改動,請確保您在進入下一章節之前重啓了這些服務。

[編輯] 4.14.4.3. 管理

我們假定您已經進行了缺省安裝。mailman 的 cgi 腳本應該在 /usr/lib/cgi-bin/mailman/ 目錄中。Mailman 提供了一個基於 web 管理工具。可以在您的瀏覽器輸入下列 url 訪問該頁:

http://hostname/cgi-bin/mailman/admin

缺省的郵件列表 mailman 將出現在屏幕上。如果您點擊郵件列表名,它將詢問您的認證密碼。如果您輸入了正確的密碼,您將可以改變該郵件列表的管理設置。您可以使用命令行工具 (/usr/sbin/newlist) 創建一個新的郵件列表,您也可以使用 web 界面來創建新的郵件列表。

[編輯] 4.14.4.4. 用戶

Mailman 爲用戶提供了一個 web 界面,可以在您的瀏覽器中輸入下列 url 來訪問該頁:

http://hostname/cgi-bin/mailman/listinfo

缺省郵件列表 mailman 將出現在屏幕上。如果您點擊郵件列表名,它將顯示訂閱表單。您可以輸入您的郵件地址、姓名 (可選)及密碼來訂閱。一個邀請郵件將發送給您。您可以根據該郵件的指示完成訂閱。

[編輯] 4.14.4.5. 引用

GNU Mailman - 安裝手冊


指南 - 一起使用 Exim 4 和 Mailman 2.1

[編輯] Windows 聯網

計算機網絡通常包含不同的系統,雖然使用全由 Ubuntu 桌面計算機和服務器計算機構成的網絡是有趣的,但一些網絡環境還是需要 Ubuntu 和 Microsoft® Windows® 這兩個系統協同工作。Ubuntu 服務器指南中的這部分內容介紹配置你 Ubuntu 服務器的原理及所用工具,以便同 Windows 計算機共享網絡資源。

[編輯] 介紹

將你的 Ubuntu 系統與 Windows 客戶機成功連網包括爲 Windows 環境提供和整合常用服務。這些服務有助於網絡中計算機和用戶的數據和信息共享,可以將它們按功能劃分爲以下三大類:

        • 文件和打印共享服務。Server Message Block (SMB) 協議使得在網絡上共享文件、文件夾、卷和打印機變得容易。
        • 目錄服務。通過Lightweight Directory Access Protocol (LDAP) 和 Microsoft Active Directory®技術來共享網絡計算機和用戶的重要信息。
        • 認證和權限。建立網絡計算機和用戶身份並通過使用文件權限、組策略和Kerberos認證服務等原理和技術來確定計算機或用戶信息。

幸運的是,你的 Ubuntu 系統可以給 Windows 客戶機提供上述所有的服務並且在它們之間共享網絡資源。你的 Ubuntu 系統中用來和 Windows 網絡互連的一個基本軟件是包含 SMB 服務器應用程序及其工具。Ubuntu 服務器指南的這部分將簡要介紹一下 SAMBA 套件中服務器應用程序及工具的安裝和簡單配置。此外,SAMBA的詳細文檔和信息已超出了本文檔的編制範圍,您可以在 SAMBA 網站 上找到。

[編輯] 安裝 SAMBA

欲安裝 SAMBA 服務器應用程序,請在提示符裏輸入如下命令:

sudo apt-get install samba

[編輯] 配置 SAMBA

您可以通過編輯 /etc/samba/smb.conf 文件來配置 SAMBA 服務:用以改變缺省設置或新增設置。可用設置項的更多信息可以查看 /etc/samba/smb.conf 文件中的註釋,或在終端提示符後輸入以下命令查看 /etc/samba/smb.conf 手冊來獲得:

man smb.conf

在編輯配置文件之前,您應該保留一份原文件的副本,不對其作修改,以便今後必要時可參考和重用這份原始配置。

備份 /etc/samba/smb.conf 文件:

sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.original

然後編輯 /etc/samba/smb.conf 文件,進行相應的修改。

[編輯] 5.3.1. 服務器

除了文件及打印共享服務器應用程序 SAMBA 之外,Ubuntu 還包括了其他強大的服務器應用程序,它們設計成象真正的 Windows 服務器一樣,可以向 Windows 客戶端提供相同的網絡附加服務功能。例如,Ubuntu 可以提供統一的網絡資源,如使用目錄服務的計算機和用戶,方便的身份識別,以及通過認證服務來獲得授權的計算機和用戶。

下一節將討論 SAMBA 及其支持技術,如 Lightweight Directory Access Protocol (LDAP) 服務器和 Kerberos 認證服務器的更多細節。你也可以學到SAMBA配置文件中的一些有用的指令,以方便同 Windows 客戶機和服務器集成。

[編輯] 5.3.1.1. Active Directory

Active Directory 是 Microsoft 專用的目錄服務實現,用來提供網絡資源和用戶的共享信息。除了提供這些信息的統一源之外,Active Directory 也擔任網絡統一身份安全認證的角色。Active Directory 融合了通常獨立、專用的目錄系統中簡單集成,管理和網絡資源安全等功能。SAMBA 軟件包可以被配置成使用由 Windows 域控制器提供的 Active Directory 服務。

[編輯] = 5.3.1.1.1. LDAP =

LDAP 服務器應用程序給 Windows 計算機提供了與 Microsoft Active Directory 服務非常相似的目錄服務功能。這些服務包括管理加入網絡的計算機、用戶、計算機組和用戶組的身份和關係,爲描述、定位和管理這些資源提供一個統一的方法。在你的 Ubuntu 系統中所使用的是 LDAP 的一個自由有效的實現,名爲OpenLDAP,這個名爲slapd 和 slurpd的服務守護程序負責處理 OpenLDAP 目錄請求和 LDAP 服務器與另一個 Ubuntu 服務器之間的目錄數據傳送。只要 SAMBA編譯時加上LDAP 支持,OpenLDAP 與 SAMBA 一起就可以和Windows域服務器一樣以相同的方式提供文件、打印和目錄服務。

[編輯] = 5.3.1.1.2. Kerberos =

Kerberos 安全認證系統是一個通過一臺集中的服務器給計算機和用戶提供認證的標準服務,它允許從其他任何使用 Kerberos 的計算機那裏接受加密的授權票據。Kerberos 驗證的好處包括相互驗證,委派驗證,互操作性和簡單信任管理。在 Ubuntu 中處理 Kerberos 驗證和 Kerberos 數據庫管理的主要服務器守護程序是 krb5kdc 和 kadmin。相對於 Windows 域控制器SAMBA 可以使用 Kerberos 作爲一個用來給計算機和用戶授權的機制。爲了做到這些,Ubuntu 系統必須安裝 Kerberos,同時 /etc/samba/smb.conf 也需要修改以選擇適當的realm 和 security 模式。舉個例子,編輯/etc/samba/smb.conf文件,並將下列語句:

realm = DOMAIN_NAME
security = ADS

添加到文件中並保存

請確定上面示例中的 DOMAIN_NAME 已經被你的 Windows 域名所代替。

你需要重啓 SAMBA 進程以使改變產生作用。重啓 SAMBA 進程可以在終端提示符後輸入以下命令:

sudo /etc/init.d/samba restart

[編輯] 5.3.1.2. 計算機帳號

目錄服務中計算機帳號唯一指定網絡中的計算機系統,甚至在安全方面就象對待用戶一樣。計算機賬號可以象用戶賬號一樣有密碼,同樣也象用戶賬號一樣訪問網絡資源受授權影響。舉個例子,如果一個在特定網絡中有着合法賬號網絡用戶,企圖給一個沒有合法計算機賬號的計算機上的網絡資源授權時,根據網絡策略,如果用戶企圖驗證的計算機是未經授權的計算機,則用戶也許會被拒絕訪問資源。

計算機帳號可以會被添加到 SAMBA 的密碼文件中,首先該計算機的名字在本地密碼庫中做爲一個合法用戶帳號被添加。添加一個計算機或機器帳號到 SAMBA 的密碼文件可以在終端提示符後使用 smbpasswd 命令,如下所示:

sudo smbpasswd -a -m COMPUTER_NAME

請確定示例中的 COMPUTER_NAME 被那臺你希望添加機器賬號的計算機實際名字所代替。

 

[編輯] 5.3.1.3. 文件權限

文件權限清楚地定義計算機和用戶對指定的目錄、文件或一組文件的權力。這些權限可以通過編輯/etc/samba/smb.conf 來定義並明確被定義文件共享的權限。舉個例子,如果你定義了一個叫 sourcedocs 的 SAMBA 共享,並希望給 planning 用戶組以 read-only 只讀權限,但允許叫 authors 的用戶組和名爲 richard 的用戶可以寫該共享,那麼你可以編輯/etc/samba/smb.conf 文件,並將下列條目放在 [sourcedocs] 條目下:

read list = @planning
write list = @authors, richard

將其保存在 /etc/samba/smb.conf中,以使其生效。

另一個適合的權限就是對特定的共享資源聲明 administrative 權限。有着administrative 權限的用戶可以讀、寫或修改任何包含在用戶已明確給予 administrative 權限的資源裏的任何信息。舉個例子,如果你想給用戶 melissa 在示例 sourcedocs 共享上的 administrative 權限,你可以編輯/etc/samba/smb.conf 文件,並將下面一行添加到 [sourcedocs] 條目下:

admin users = melissa

將其保存在 /etc/samba/smb.conf中,以使其生效。

[編輯] 5.3.2. 客戶端

Ubuntu 中包括客戶端應用以及通過 SMB 協議遠程訪問網絡資源的能力。例如,一個名爲 smbclient 的工具就可以以一種類似文件傳輸協議(FTP)客戶端的方式訪問遠程共享的文件系統。以使用 smbclient 來訪問在名爲 bill 遠程 Windows 計算機中的共享文件夾資源 documents 來做示範,在提示符後輸入類似下面的命令:

smbclient //bill/documents -U <username>

然後你將被提示輸入相對於 -U 參數之後用戶名的密碼,當成功驗證後,將出現一個提示符,在那裏我們可以使用與非圖形化 FTP 客戶端類似的語法來操作和傳輸文件。smbclient 工具的詳細信息可以輸入以下命令來查閱該工具的手冊頁:

使用 SMB 協議的遠程網絡資源在本地掛載也可以使用 mount 命令。例如,要掛載在一個名爲 development 的Windows 服務器上的一個名爲 project-code 共享文件夾,並使用 dlightman 用戶名掛載到你的 Ubuntu 系統的 /mnt/pcode 掛載點上,你可以在提示符後運行以下命令:

mount -t smbfs -o username=dlightman //development/project-code /mnt/pcode

然後你將被提示輸入用戶密碼,在成功驗證之後,共享資源的內容就可以通過 mount 命令中的最後一個參數所指定的本地掛載點來訪問了。要卸載該共享資源,就象其他被掛載的文件系統一樣只需簡單的使用 umount 命令即可。例如:

umount /mnt/pcode

[編輯] 5.3.2.1. 用戶帳號

用戶帳號定義了有一些授權來使用指定計算機和網絡資源的人。通常,在網絡環境中,用戶帳號被提供給每個允許訪問計算機或網絡的人,然後這些計算機或網絡根據策略和權限來明確用戶帳號擁有多大的權力。要在你的 Ubuntu 系統中定義 SAMBA 網絡用戶,你可能使用smbpasswd 命令。如要爲你 Ubuntu 系統上名爲jseinfeld 的用戶添加一個 SAMBA 用戶,你可以在提示符後輸入命令:

smbpasswd -a jseinfeld

然後 smbpasswd 應用程序將提示你爲該用戶輸入密碼:

New SMB password:

輸入你想爲用戶設置的密碼,smbpasswd 會要求你確認密碼:

Retype new SMB password:

確認密碼之後,smbpasswd 將爲用戶在 SAMBA 密碼文件中添加一個條目。

[編輯] 5.3.2.2. 組

組定義了對指定網絡資源擁有共同訪問級別的一組計算機或用戶,並提供對這些資源的訪問控制粒度級別。舉個例子,如果定義一個 qa 組幷包含用戶 freda、danika 和 rob,再定義第二個組 support 幷包含 danika、jeremy 和 vincent。那麼某個網絡資源被配置爲允許 qa 組訪問時,則其可以被 freda、danika 和 rob訪問,而不是 jeremy 或 vincent。因爲用戶 danika 屬於 qa 和 support 兩個組,所以她能夠訪問配置爲兩個組訪問的資源,而所有其他用戶則只能訪問明確允許其所屬組訪問的資源。

當在 SAMBA 配置文件 /etc/samba/smb.conf 中定義組時,被認可的寫法是在用“@”符作爲組名的開始。例如,如果你希望在 /etc/samba/smb.conf 某段中定義一個名爲 sysadmin 的組,那麼你需要輸入 @sysadmin 來作爲組名。

[編輯] 5.3.2.3. 組策略

組策略爲 SAMBA 服務器定義屬於域或工作組計算機帳號的 SAMBA 配置設置及其他全局設置。舉個例子,如果 SAMBA 服務器屬於一個名爲 LEVELONE 的 Windows 計算機工作組,那麼 /etc/samba/smb.conf 可以相應改成下面的值:

workgroup = LEVELONE


保存文件並重啓 SAMBA 守護程序以使改變生效。

其它重要的全局策略設置包括 server string,定義了 Ubuntu 系統向基於 Windows 網絡上其它機器所宣稱的 NETBIOS 服務器名稱。該名稱也使你的 Ubuntu 系統被 Windows 客戶端及其它使用 SMB 協議瀏覽網絡的計算機所識別。而且用戶還可以通過 /etc/samba/smb.conf 文件中的 log file 指令來指定 SAMBA 服務器日誌文件的名稱和所在位置。

還有一些可以管理全局組策略的附加指令包括對所有共享資源全局性能的說明。例如在 /etc/samba/smb.conf 中 [global] 標題下面的指令將影響所有共享資源,除非在某些共享資源標題下有覆蓋全局設置的指令。你可以通過 browseable 指令來使網絡中所有的客戶機都能瀏覽全部共享。該指令使用一個布爾值,位於 /etc/samba/smb.conf 文件的 [global] 標題中。編輯該文件,並添加下面一行:

browseable = true

到 /etc/samba/smb.conf 文件的 [global] 節的下面。這樣所有你 Ubuntu 系統中的共享將通過 SAMBA 被授權客戶機瀏覽,除非該共享包含了覆蓋全局指令的 browseable = false 指令。

相同方式運作的其他例子還有 public 和 writeable 指令。public 指令接受一個布爾值並決定特定的共享資源對所有客戶是否可見,而無論其被授權與否。writeable 指令也採用布爾值以定義特定共享資源是否對部分或所有網絡客戶可寫。

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