Linux 組網入門(轉)

ba發表於2007-08-16
Linux 組網入門(轉)[@more@]WEB 伺服器

現在在Internet上最熱門的服務之一就是WWW(World Wide Web)服務。如果你想透過主頁向世界介紹自己或自己的公司,就必須將主頁放在一個WEB伺服器上,當然你可以使用一些免費的主頁空間來發布。但是如果你有條件,你可以註冊一個域名,申請一個IP地址,然後讓你的ISP將這個IP地址解析到你的LINUX主機上。然後,在LINUX主機上架設一個WEB伺服器。你就可以將主頁存放在這個自己的WEB伺服器上,透過它把自己的主頁向外釋出。

4.1 選擇和安裝WEB伺服器軟體
目前,在世界各地有許多公司和學術團體,根據不同的計算機系統,開發出不同的伺服器,如Apache、CERN、Microsoft Internet Information System、NCSA、WebSite等。它們各有所長。而在許多LINUX的發行版本中,已經整合了一個免費的、使用廣泛的、技術成熟的WEB伺服器軟體Apache。
筆者經過實際的試用,發覺Apache與LINUX的配合還是十分理想的,所以在此筆者就具體地介紹一下Apache在Red Hat Linux 6.0下的配置與實現。
如果我們在安裝LINUX的選擇啟動程式中選中httpd選項。這樣Apache就會將自動完成安裝,並且能夠滿足日常的應用需要,我們只需要進行一些更具體的設定工作就行了。

4.2 Apache的組成
在Red Hat Linux 6.0中,Apache將自己的所有配置檔案和日誌檔案放在了“/etc/httpd”目錄下,其中“/etc/httpd/conf”下為配置檔案,“/etc/httpd/log”下為日誌檔案。
同時,它將建立“/home/httpd”目錄,並在其下建立三個子目錄:“html/”:在這個目錄下存放HTML(主頁)檔案;“cgi-bin/”:在這個目錄下可以存放一些CGI程式;“icons/”:在這個目錄下是伺服器自帶的一些圖示。

4.3 Apache的設定
Apache伺服器軟體的配置檔案主要有:“access.conf”:用於設定系統中的存取方式和環境;“httpd.conf”:用於設定伺服器啟動的基本環境;“srm.conf”:主要用於做檔案資源上的設定;“mime.type”:記錄Apache伺服器所能識別的MIME格式。
在具體講解之前,我們必須告訴大家,LINUX系統已經在安裝時就採用了一系列的預設值,而大家可以根據下面的講解來理解這些設定的意義,然後根據自己的實際情況做一些細微的調整,以更加適合於你的具體應用。
4.3.1 access.conf的配置
當我們使用“vi”來開啟它的時候,我們會發現,就象LINUX一樣,內容十分繁多,看得人頭暈眼花的。請大家一定要明確,凡是最前面是以“#”號開頭的,表示這一行是註釋語句,是幫助大家理解檔案內容的,而不是配置檔案本身。在下面的講解中,我們也將把這些註釋語句略去不說。
該檔案的第一段非註釋部分如下:

Option Indexes Includes ExecCGI FollowSymLink
AllowOverride None
Order allow , deny
allow from all
大家應該注意到,這一個部分是以開始,以結束的。這表示在其中間的部分都是針對指定目錄——“/home/httpd/html”而言的。
1.Option命令有很多的引數,各個引數的意義如下所示:
All:准許以下所有功能(MultiViews除外);
MultiViews:准許內容協商的Multiviews;
Indexes:若該目錄下無index檔案,則准許顯示該目錄下的檔案以供選擇;
IncludesNOEXEC:准許SSI(Server-side Includes),但不可使用#exec和#include功能;
Includes:准許SSI;
FollowSymLinks:准許符號連結到其他目錄;
ExecCGI:准許該目錄下可以使用CGI。
2.而AllowOverride命令則是用來決定是否准許在“access.conf”檔案中設定的許可權是否可以被在檔案“.htaccess”中設定的許可權覆蓋。它有兩個引數:
All 准許覆蓋;None 不准許覆蓋。
3.Order命令:用來設定誰能從這個伺服器取得控制。它也有兩個引數:
allow 可以取得控制;deny 禁止取得控制。
現在我們一起來看看關於目錄“/home/httpd/html”的設定的含義:它使得這個目錄,如果不存在index.htm檔案時,列出目錄資訊以供選擇,准許SSI,允許執行CGI程式,開啟了動態連線。它不允許再使用在檔案“.htaccess”中設定來覆蓋這裡所設定的許可權。使所有的人都可以取得控制。
該檔案的第二段非註釋部分如下:

Option ExecCGI
AllowOverride None

這個表示目錄“/home/httpd/cgi”的設定為,當前目錄下可以執行CGI程式。不允許再使用在檔案“.htaccess”中設定來覆蓋這裡所設定的許可權。
需要說明的是,不同的LINUX系統中,可以在這個檔案中看到的資訊不完全相同,但是根據這裡給出的資訊,大家可以參照命令的解釋自行理解檔案中的設定,以及根據自己的需要進行相應的修改。

4.3.2 httpd.conf的配置
這個檔案中有許多設定命令,用來設定伺服器的執行環境。以下是一些常用的部分:
1. ServerType命令,用來設定伺服器的啟動方式。它的命令格式如下:
命令格式: ServerType [standalone/inted]
standalone參數列示WEB服務程式以一個單獨的守候程式的方式在後臺偵聽是否有客戶端的請求,如果有就生成一個子程式來為其服務。
inetd參數列示WEB服務不是以一個單獨的守候程式的形式支援。而是由Inetd這個超級伺服器守候程式進行代勞,當它收到一個客戶端的WEB服務請求的時候,再啟動一個WEB服務程式為其服務。
在此建議使用standalone引數。
2. Port命令,為伺服器的服務指定埠號(套接字)。一般來說,WEB服務使用知名埠號——80,如果你設定了別的埠號,別人再使用你的WEB服務時,就必須輸入“http://xxx.xxx.xxx:埠號”,這樣是不方便的。所以,建議這裡設定為Port 80。
命令格式: Port 埠號例:Port 80
3. Server Admin命令,用來設定WEB管理員的E-Mail地址。這個地址會出現在系統連線出錯的時候,以便訪問者能夠將情況及時地告知WEB管理員。
命令格式: Server Admin [you E-Mail address]
例:Server Admin
4. BindAddress命令,用來設定要從哪個地址來接受服務。
命令格式: BindAddress [*/IP/FQDN]
例:BindAddress IP 表示只接受輸入IP地址的訪問者
BindAddress FQDN 表示只接受輸入域名地址的訪問者
BindAddress * 表示接受以上兩種方式的訪問者
5. ErrorLog命令,用來指定錯誤記錄檔名稱和路徑。
命令格式: ErrorLog [log filename]例:ErrorLog /var/httpd/error.log
6. CacheNegotiatedDocs命令,讓代理伺服器將資料留在快取中。在很多情況下,預設為不讓代理伺服器將資料留在快取中的,所以這條設定命令是被註釋掉的。
7. Timeout命令,只要客戶端超過這裡設定的秒數還沒有完成一個請求的話,服務端將終止這次請求服務。如果網路速度較慢的話,建議在此設定較大的數值。以給客戶端更多機會。
命令格式: Timeout [second]例:Timeout 120
8. KeepAlive命令,設定是否開啟連續請求的功能。
命令格式: KeepAlive [on/off]
9. MinSpareServer命令,用於設定WEB服務程式的最小空閒個數。當WEB服務程式空閒個數小於此設定時,系統將會自動開啟更多的服務程式以使得空閒的WEB服務程式的最小空閒個數。
命令格式: MinSpareServer [number]例:MinSpareServer 5
要注意的是,這個數字太大的話,則空閒的程式在浪費系統資源,大大減少了整個系統的資源。如果太小,則有可能造成頻繁的連線使得系統應接不瑕。設定的原則是,如果這個伺服器是專用的WEB伺服器,則將這個值儘量地設大,否則就設定得夠用就可以。
10. MaxSpareServer命令,這個命令則是設定WEB服務程式的最大空閒個數。
命令格式: MaxSpareServer [number]例:MaxSpareServer 10
這個命令與前一個相配合,可以使得WEB服務程式在記憶體中所佔資源最合理。
11.StartServers命令,用來設定剛開啟WEB伺服器時生成幾個服務程式。
命令格式: StartServers [number]例:StartServers 5
12.MaxClients命令,用來設定接受客戶端請求的最大數目,以使得維護系統穩定性,避免系統負載過大。
命令格式: MaxClients [number]例:MaxClients 150

4.3.3 srm.conf的配置
這個檔案主要用來指定主頁文件的位置。下面介紹三個最常用的命令。
1. DocumentRoot命令,用來指定主文件的地址。
命令格式: DocumentRoot [Path]例:DocumentRoot /home/httpd/html
2. UserDir命令,用來指定個人主頁的位置。如果你有一個使用者test,那麼它主目錄是“/home/test”,當客戶端輸入”,系統就會到對應的目錄“/home/test/UserDir/”中去尋找。其中“UserDir”就是在UserDir命令中設定的指定目錄。
命令格式: UserDir [Path]例: UserDir Public_html
3. DirectoryIndex命令,用來宣告首頁檔名稱。一般地,我們使用“index.html”或“index.htm”作為首頁的檔名。如果這樣設定後,那麼客戶端發出WEB服務請求時,將首先調入的主頁是在指定目錄下檔案“index.html”或“index.htm”。
命令格式: DirecotryIndex [filename]例:DirecotryIndex index.html

4.3.4 使新的配置生效
在上面,我們可能已經根據新的需求更改了相應的配置選項,如果我們要使得這個新的配置立即生效。我們就必須重新啟動WEB服務程式。
在LINUX中,我們可以十分方便地使用命令列來使得WEB服務程式重啟。
/etc/rc.d/init.d/httpd restart

4.4 為使用者開闢個人主頁空間
如果我們利用了LINUX系統架設了一臺WEB伺服器,我們不僅可以存放公司的主頁,而且還可以為公司的每一個員工提供一塊個人主頁的空間。
1. 首先,為需要個人主頁空間的員工在LINUX上開設一個帳號。這樣,它就擁有了一個使用者主目錄“/home/使用者帳號名”。
addusr 使用者帳號名passwd 使用者帳號名
2. 在使用者主目錄下建立一個目錄“public_html”,然後為其設定相應的許可權。
cd ~使用者帳號名mkdir public_htmlchmod 755 public_html
3. 確認在srm.conf檔案中的UserDir命令設定的是public_html目錄。
4. 讓員工將自己的個人主頁上傳到自己使用者主目錄下的public_html目錄中。
5. 現在就可以使用使用者帳號名”來訪問員工的個人主頁了。

4.5 用Apache實現虛擬主機服務

4.5.1 什麼是虛擬主機服務
所謂的虛擬主機服務就是指將一臺機器虛擬成多臺WEB伺服器。舉個例子來說,一家公司想從事提供主機代管服務,它為其它企業提供WEB服務。那麼它肯定不是為每一家企業都各準備一臺物理上的伺服器,而是用一臺功能較強大的大型伺服器,然後用虛擬主機的形式,提供多個企業的WEB服務,雖然所有的WEB服務就是這臺伺服器提供的,但是讓訪問者看起來卻是在不同的伺服器上獲得WEB服務一樣。
具體地說,就是,我們可以利用虛擬主機服務將兩個不同公司與的主頁內容都存放在同一臺主機上。而訪問者只需輸入公司的域名就可以訪問到它想得到的主頁內容。
用Apache設定虛擬主機服務通常可以採用兩種方案:基於IP地址的虛擬主機和基於名字的虛擬主機,下面我們分別介紹一下它們的實現方法。以便大家在具體的應用中能夠選擇最合適的實現方法。

4.5.2 設定實現基於IP地址的虛擬主機服務
1. 實現前提
這種方式需要在機器上設定IP別名,也就是在一臺機器的網路卡上繫結多個IP地址去為多個虛擬主機服務。而且要使用這項功能還要確定在你的LINUX核心中必須支援IP別名的設定,否則你還必須重新編譯核心。
下面舉一個擁有兩個虛擬主機的服務設定,以供參考。
2.配置步驟
假設,我們用來實現虛擬主機服務的機器,首先已經為自己提供了WEB服務,現在將為新的一家公司提供虛擬主機服務。
1) 規劃IP地址:為虛擬主機申請新的IP地址。(假設本機IP地址為202.101.2.1)
202.101.2.2
2) 讓ISP作好相應的域名解析工作。
3) 為網路卡設定IP別名:
/sbin/ifconfig eth0:0 202.101.2.2 netmask 255.255.255.0
4) 重新設定“/etc/httpd/conf/httpd.conf”,在檔案中加入:

ServerAdmin
DocumentRoot /home/httpd/
ServerName
ErrorLog /var/log/httpd//error.log

5)建立相應的目錄。
mkdir /home/httpd/
mkdir /var/log/httpd//error.log
6)將相應的主頁內容存放在相應的目錄中即可。
3.不利因素
這種虛擬主機的實現方法有一個嚴重的不足,那就是,每增加一個虛擬主機,就必須增加一個IP地址。而由於IP地址空間已經十分緊張,所以通常情況下是無法取得這麼多的IP地址的。而且從某種意義上說,這也是一種IP地址浪費。

4.5.3 設定實現基於名字的虛擬主機服務
而基於名字的虛擬主機服務,是比較適合使用的一種方案。因為它不需要更多的IP地址,而且配置簡單,無須什麼特殊的軟硬體支援。現代的瀏覽器大都支援這種虛擬主機的實現方法。當然,這也就是指一些早期的客戶端瀏覽器也許不支援這種虛擬主機的實現方法。
正是以上原因,我們沒有理由不使用基於名字的虛擬主機服務而使用基於IP地址的虛擬主機服務。
配置基於名字的虛擬主機服務需要修改配置檔案:
“/etc/httpd/conf/httpd.conf”,在這個配置檔案中增加以下內容。
NameVirtualHost 202.101.2.1


ServerAdmin
DocumentRoot /home/httpd/
ServerName
ErrorLog /var/log/httpd//error.log


ServerAdmin
DocumentRoot /home/httpd/
ServerName
ErrorLog /var/log/httpd//error.log


也就是在基於IP地址的配置基礎上增加一句:NameVirtualHost 202.101.2.1而已。在本例中,為了體現只需要增加一次,所以特別地設定了兩個虛擬主機服務。
最後也是建立相應的目錄,將主頁內容放到相應的目錄中去就可以了。
------------------------------------
FTP 伺服器

在眾多的網路應用中,FTP(File Transfer Protocol)有著非常重要的地位。在Internet中一個十分重要的資源就是軟體資源。而各種各樣的軟體資源大多數都是放在FTP伺服器中的。可以說,FTP與WEB服務幾乎佔據了整個Internet應用的80%以上。
FTP服務可以根據服務物件的不同分為兩類:一類是系統FTP伺服器,它只允許系統上的合法使用者使用;另一類是匿名FTP伺服器,Anonymous FTP Server,它使用任何人都可以登入到FTP伺服器上去獲取檔案。

5.1 選擇和安裝FTP伺服器軟體
如果你在安裝LINUX系統的時候,在選擇啟動程式的時候選擇了“ftpd”這一項的話,安裝完LINUX系統後,它已經將一個預設的FTP伺服器安裝到系統中去了。我們已經可以利用它來實現系統FTP伺服器的功能了。我們只需在此基礎上根據我們的需要進行一些個性化設定就可以了。
在絕大多數的LINUX發行版本中都選用的是Washington University FTP,它是一個著名的FTP伺服器軟體,一般簡稱為wu-ftp。它功能強大,能夠很好地執行於眾多的UNIX作業系統,例如:IBM AIX、FreeBSD、HP-UX、NeXTstep、Dynix、SunOS、Solaris等。所以Internet上的FTP伺服器,一大半以上採用了它。
wu-ftp擁有許多強大的功能,很適於吞吐量較大的FTP伺服器的管理要求:
1) 可以在使用者下載檔案的同時對檔案做自動的壓縮或解壓縮操作;
2) 可以對不同網路上的機器做不同的存取限制;
3) 可以記錄檔案上載和下載時間;
4) 可以顯示傳輸時的相關資訊,方便使用者及時瞭解目前的傳輸動態;
5) 可以設定最大連線數,提高了效率,有效地控制了負載。

5.2 wu-ftp的組成
安裝了wu-ftp後,你將在/bin目錄下看到以下五個可執行檔案:
ftpd FTP伺服器程式
ftpshut 用於關閉FTP伺服器程式
ftpcount 顯示目前線上人數
ftpwho 檢視目前FTP伺服器的連線情況
ckconfig 檢查FTP伺服器的設定是否正確
除了這些可執行檔案以外,它還在/etc和/var目錄下生成了七個配置檔案:
/etc/ftpusers
/etc/ftpaccess
/var/run/ftp.pids
/etc/ftpconversions
/var/log/xferlog
/etc/ftpgroups
/etc/ftphosts
系統安裝了wu-ftp後,會建立一個特殊的使用者ftp,並在/home目錄下建立了一個ftpd目錄,當使用者以匿名登入上來時,將會自動定位於這個目錄下。在這個目錄下一般會建立幾個子目錄。
/home/ftpd/bin:存放一些供FTP使用者使用的可執行檔案
/home/ftpd/etc:存放一些供FTP使用者使用的配置檔案
/home/ftpd/pub:存放供下載的資訊
/home/ftpd/incoming:存放供上載資訊的空間

5.3 wu-ftp的配置
5.3.1 檢視、修改/etc/inetd.conf檔案
/etc/inetd.conf檔案是LINUX系統的超級伺服器inetd的配置檔案。它負責監聽多個TCP/IP埠。當它收到請求,就根據配置檔案派生一個相應的伺服器。透過使用超級伺服器,其他服務就可以只在需要時才派生,從而大大節省了系統資源。
而wu-ftp就是利用超極伺服器inetd來監聽請求的。當超級伺服器inetd收到了客戶端的FTP請求時,就根據配置檔案開啟一個FTP服務程式。所以我們如果要使用wu-ftp,就必須確認在超級伺服器inetd的配置檔案inetd.conf中有這樣一句:
ftp stream tcp nowait root /usr/sbin/tcpd wu.ftpd
以便當超級伺服器收到FTP請求的時候,能夠派生一個wu-ftp的FTP服務程式。(注:要確認是否有這樣一行時,可以使用檔案內容查詢命令來確認:
cat /etc/inetd.conf | grep ftp 如果沒有,則用手工加入或手工修改。

5.3.2 wu-ftpd的命令選項
wu-ftpd就是wu-ftp的服務程式。它可以不帶引數執行,也可以帶引數執行。下面簡單介紹一下wu-ftpd的執行引數。
-d 當FTP伺服器發生錯誤時,將錯誤入系統的syslog中;
-l 將每次FTP客戶端進行連線的入系統的syslog中;
-t 設定FTP客戶端連線幾分鐘無操作就切斷連線;
-a 使wu-ftp使用/etc/ftpaccess的設定;
-A 使wu-ftp不使用/etc/ftpaccess的設定;
-L 將FTP客戶端連線後所執行的程式記錄在系統的syslog中;
-I 將FTP客戶端上載檔案的日誌記錄在/usr/adm.xferlog檔案中;
-o 將FTP客戶端下載檔案的日誌記錄在/usr/adm/xferlog檔案中。
透過對以上引數的理解,我們建議,將上面系統安裝時的那條預設配置改為:
ftp stream tcp nowait root /usr/sbin/tcpd wu.ftpd –a –I

5.3.3 提供自動壓縮、解壓縮的功能
如果想讓FTP伺服器有自動壓縮、解壓縮的功能,必須先將一些壓縮、解壓縮的命令檔案如tar、gzip、gunzip、compress、uncompress等命令檔案複製到/home/ftpd/bin目錄下。

5.3.4 關於/etc/ftpaccess的設定
這個配置檔案是FTP伺服器上最重要的配置檔案,它直接關係到你的FTP伺服器能否正常工作,還有許多許可權上的設定。下面是一個典型的配置例項。
loginfails 3
class local real *
class remote anonymous guest *
limit remote 100 Any /etc/ftpd/toomany.
msgmessage /etc/ftpd/welcome.msg login
compress yes local remote
tar yes local remote
private yes
passwd-check rfc822 warn
log commands real
log transfer anonymous guest inbound outbound
log transfer real inbound
shutdown /etc/ftpd/shut.msg
delete no anonymous,guest
overwrite no anonymous,guest
rename no anonymous
chmod no anonymous,guest
umask no anonymous
upload /home/ftpd * no
upload /home/ftpd /bin no
upload /home/ftpd /etc no
upload /home/ftpd /pub yes real 0644 dirs
upload /home/ftpd /incoming yes real guest anonymous 0644 dirs
alias in /incoming
email
email
deny *.com.tw /etc/ftpd/deny.msg
下面我們逐句進行講解,並給出每條設定的含義,以便大家觸類旁通,以便根據自己FTP伺服器的具體情況進行合理的設定。
1. 格式:loginfails [次數]
功能:設定當使用者登入到FTP伺服器時,允許使用者輸錯密碼的次數。
例項:loginfails 3:密碼輸入錯誤三次就切斷連線。
2. 格式:class [類名] [real/guest/anonymous] [IP地址]
功能:這個指令的功能設定FTP伺服器上使用者的類別。並可對客戶端的IP地址進行限制,允許某部分的IP地址或全部的IP地址訪問。而在FTP伺服器上的使用者基本上可以分為以下三類:
real 在該FTP伺服器有合法帳號的使用者;
guest 有記錄的匿名使用者;
anonymous 許可權最低的匿名使用者
例項:class local real *:定義一個名為local的類,它包含了在任何地方登入(*代表所有IP地址)的real使用者。
class remote anonymous guest *:定義一個名為remote的類,它包含了在任何地方登入的anonymous使用者和guest使用者。
3. 格式:limit [類別] [人數] [時間] [檔名]
功能:這個指令的功能為設定指定的時間內指定的類別允許連線的指定人數上限。當達到人數上限的時候,顯示指定檔案的內容。
例項:limit remote 100 Any /etc/ftpd/toomany.msg:在任何時間內,remote類的訪問使用者達到100人時,將不再允許無法產生新的連線,當第101位客戶要連線時,連線將失敗,並象使用者出示檔案/etc/ftpd/toomany.msg的內容。
4. 格式:message [檔名稱] [指令]
功能:當使用者執行所指定的指令時,系統將指定的檔案內容顯示出來。
例項:message /etc/ftpd/welcome.msg login:當使用者執行login命令時,也就是登入到FTP伺服器上的時候,系統將顯示檔案/etc/ftpd/welcome.msg的內容。
5. 格式:compress [yes/no] [類別]
功能:設定哪一個類別的使用者可以使用compress(壓縮)功能。
例項:compress yes local remote:允許local和remote兩個類別的使用者都能使用compress(壓縮)功能。
6. 格式:tar [yes/no] [類別]
功能:設定哪一個類別的使用者可以使用tar(歸檔)功能。
例項:tar yes local remote:允許local和remote兩類的使用者都能使用tar功能。
7. 格式:private [yes/no]
功能:設定是否支援群組對檔案的取用。
例項:private yes:支援群組對檔案的取用。
8. 格式:passwd-check [none/trivial/rfc822] [enforce/warn]
功能:設定對匿名使用者anonymous的密碼使用方式。
none 表示不做密碼驗證,任何密碼都可以登入;
trival 表示只要輸入的密碼中含有字元“@”就可以登入;
rfc822 表示密碼一定要符合RFC822中所規定的E-Mail格式才能登入;
enfore 表示輸入的密碼不符合以上指定的格式就不讓登入;
warn 表示密碼不符合規定時只出現警告資訊,仍然能夠登入。
例項:passwd-check rfc822 warn:希望能夠得到符合規定的E-Mail作為密碼,但如果不是,也允許登入。
9. 格式:log command [real/guest/anonymous]
功能:設定哪些使用者登入後的操作記錄在檔案/usr/adm/xferlog中。
例項:log command real:當real使用者登入後,將他的操作記錄下來。由於其它使用者許可權較低,所以操作不會引起太大的安全隱患,所以一般只需記下real使用者的操作就可以了。
10. 格式:log transfers [real/guest/anonymous] [inbound/outbound]
功能:設定哪些使用者的上載(inbound)和下載(outbound)操作做日誌。
例項:log transfer anonymous guest inbound outbound:對於匿名使用者要更加的關注它們的檔案操作,所以無論上載、下載都進行記錄。
log transfer real inbound:對於合法使用者則只記錄他的上載記錄。
11. 格式:shutdown [檔名]
功能:FTP伺服器關閉的時間可以設定在後面所指定的檔案中,當設定的時間一到,便無法登入FTP伺服器了,要恢復的話只有將這個檔案刪掉。而這個檔案必須由指令/bin/ftpshut來生成。
例項:shutdown /etc/ftpd/shut.msg
12. 格式:delete [yes/no] [real/anonymous/guest]
功能:設定是否允許指定使用者使用delete命令刪除檔案。預設是允許。
例項:delete no anonymous,guest:為了更好地管理FTP伺服器,一般情況下,我們不允許匿名使用者執行delete命令。
13. 格式:overwrite [yes/no] [real/anonymous/guest]
功能:設定是否允許指定使用者覆蓋同名檔案。預設是允許。
例項:overwrite no anonymous,guest:為了更好地管理FTP伺服器,一般情況下,我們不允許匿名使用者覆蓋同名檔案。
14. 格式:rename [yes/no] [real/anonymous/guest]
功能:設定是否允許指定使用者使用rename命令來為檔案改名。預設是允許。
例項:delete no anonymous:為了更好地管理FTP伺服器,一般情況下,我們不允許匿名使用者執行rename命令改變檔名。而對有記錄的匿名使用者則適當的放寬,允許他們使用改名命令。
15. 格式:chmod [yes/no] [real/anonymous/guest]
功能:設定是否允許指定使用者使用chmod命令更改檔案許可權。預設是允許。
例項:delete no anonymous,guest:為了更好地管理FTP伺服器,一般情況下,我們不允許匿名使用者執行chmod命令更改檔案許可權。
16. 格式:umask [yes/no] [real/anonymous/guest]
功能:設定是否允許指定使用者使用umask命令。預設是允許。
例項:delete no anonymous:為了更好地管理FTP伺服器,一般情況下,我們不允許匿名使用者執行umask命令。
17. 格式:upload [根目錄] [上載目錄] [yes/no] [使用者] [許可權] [dirs/nodirs]
功能:對可以上載的目錄進行更加詳細的設定。
例項:upload /home/ftpd * no:表示在子目錄/home/ftpd下不允許上載;upload /home/ftpd /bin no:表示在子目錄/home/ftpd/bin下不允許上載;upload /home/ftpd /etc no:表示在子目錄/home/ftpd/etc下不允許上載;upload /home/ftpd /pub yes real 0644 dirs:允許用伺服器上的合法使用者在子目錄/home/ftpd/pub目錄下能上載許可權為0644(也就是-rw-r--r--)的檔案,而且在這個目錄下可以新建子目錄。 upload /home/ftpd /incoming yes real guest anonymous 0644 dirs:允許所有的使用者在子目錄/home/ftpd/incoming下能上載許可權為0644的檔案,而且在這個目錄下可以新建子目錄。
18. 格式:alias [目錄別名] [目錄名]
功能:給指定目錄設定一個別名,在切換目錄時就可以使用較短的目錄別名。
例項:alias inc: /incoming:為子目錄incoming設定一個別名inc:。
19. 格式:email [guest的E-Mail地址]
功能:只要將某些E-Mail地址設定在這個地方,那麼這些使用者登入到FTP伺服器時,他的身份將為guest,一般許可權比real低一些,比anonymous高。
例項:email email :這裡僅是一個示例,實際上可以包含多個符合規範的E-Mail地址。
20. 格式:deny [IP地址/域名] [說明檔案]
功能:這個設定可以限制哪一些IP地址或域名的使用者無法登入FTP伺服器。
例項:deny *.com.tw /etc/ftpd/deny.msg:設定凡是域名是以“.com.tw”結束的域名,都禁止其訪問。而將/etc/ftpd/deny.msg的內容顯示給使用者看。

5.3.5 設定/etc/ftpuser,禁止某些使用者登入
有時我們需要禁止一些使用者使用FTP服務。其實這個設定是十分簡單的,只需要將要禁止的使用者帳號寫入檔案/etc/ftpuser中。由於從系統的安全考慮,一般我們是不希望許可權過大的使用者和一些與命令名相同的使用者進入FTP伺服器。所以在預設的配置中,一般以下使用者已經被列入了“黑名單”。
root uucp news bin adm nobody lp sync shutdown halt mail

5.3.6 設定/etc/ftphosts,禁止某些來自指定機器上的登入
如果你需要拒絕來自某些主機的登入,一種方法就是在/etc/ftpaccess中設定deny命令,另一種更加簡單的方法就是在/etc/ftphosts中寫入你要禁止的主機的IP地址或域名。

5.3.7 使新的配置生效
到此為止,我們已經能夠根據自己的需要對FTP伺服器配置進行必要的修改和調整。而讓我們重新配置後,就必須使其生效。一般的,對/etc/ftpaccess的配置是直接作用於設定後的下一次FTP服務程式。而其它的則要對inetd程式重新啟動。

5.4 wu-ftp相關的其他一些命令的使用

5.4.1 連線數統計命令ftpcount
我們可以使用ftpcount命令十分清楚地統計出當前連線到FTP伺服器上的使用者數目,並且同時列出上限。命令輸出如下所示:
Service class local 0 Users(20maximum)
Service class remote 5 Users(100maximum)

5.4.2 線上使用者檢視命令ftpwho
我們可以使用ftpwho命令十分清楚地列出當前連線的使用者的詳細情況。

5.4.2 FTP關閉檔案生成命令ftpshut
我們可以使用ftpshut命令生成一個在/etc/ftpaccess中設定的shut.msg檔案,用於關機設定。ftpshut命令的格式為:
Ftpshut time
-l 這個引數設定在關閉FTP伺服器功能前多少分鐘時停止使用者的連線;
-d 這個引數設定在關閉FTP伺服器功能前多少分鐘時切斷使用者連線;
time 指定關閉FTP伺服器的時間。例如6:20分則寫為0620;
---------------------------------------------------
eMail 伺服器

在Internet出現WWW服務之前,電子郵件系統曾經是使用最為廣泛的一種應用服務。電子郵件為人們的溝通帶來了方便,眨眼間,透過Internet傳送著各種各樣的祝福和訊息。它為人們的溝通增加了許多方便。

6.1 電子郵件系統的工作原理
電子郵件系統的運作方式與其它的網路應用有著根本上的不同。在其它的絕大多數的網路應用中,網路協議直接負責將資料傳送到目的地。而在電子郵件系統中,傳送者並不等待傳送工作完成,而是僅僅將要傳送的內容傳送出去。
例如:檔案傳輸協議(FTP)就象打電話一樣,實時地接通對話雙方,如果一方暫時沒有應答,則通話就會失敗。而電子郵件系統則不同,傳送方將要傳送的內容透過自己的電子郵局將信件發給接收方的電子郵局。如果接收方的電子郵局暫時繁忙,那麼傳送方的電子郵局就會暫存信件,直到可以傳送。而當接收方未上網時,接收方的電子郵局就暫存信件,直到接收方去取。可以這麼說,電子郵件系統就象是在Internet上實現了傳統郵局的功能,而且是更加快捷方便地實現。
現在作為一個普通的使用者想要連線到Internet,那麼就必須找一家Internet服務商(ISP)提供連線服務。在中國,最大的ISP就是中國電信。ISP在提供連線的同時,還會提供一個電子郵局,分配一個電子信箱給使用者使用。而且在Internet上還有許多免費的電子郵局提供電子郵件服務。
值得一提的是,電子郵件總是有一個空間大小的敘述,這是什麼意思呢?也就是電子郵局給每個使用者所提供的暫存信件的空間。當然,越大越好嘛。

6.2 電子郵件的標準
電子郵件的協議標準是TCP/IP協議族的一部分。它規定了電子郵件的格式和在郵局間交換電子郵件的協議。
每個電子郵件都分為兩部分:郵件頭和郵件內容。TCP/IP對電子郵件的郵件頭的格式作了確切的規定,而將郵件內容的格式讓使用者自定義。在郵件頭中最重要的兩個組成部分就是傳送者和接收者的電子郵件地址。電子郵件地址的格式如下:
使用者名稱@電子郵局域名 例:
而電子郵件的傳輸協議(也就是在郵局間交換電子郵件的協議)主要有SMTP(簡單郵件傳輸協議)、POP(電子郵局協議),以及現在新興的IMAP(網際網路郵件應用協議)。

6.3 電子郵件系統的組成
整個電子郵件應用系統由兩大部分構成:
1. 電子郵局系統;
2. 電子郵件傳送、接收系統。
電子郵件傳送、接收系統則象遍及千家萬戶的郵箱,傳送者和接收者透過它將郵件從電腦中傳送和接收郵件。這個部分是一個執行在電腦中的客戶端程式,最常用的有Microsoft的Outlook Express,Netscape,The Bat,Foxmail,方正飛揚等。使用者可以根據自己的喜愛來選擇不同的程式。它們從根本上說,實現的功能是一樣的。
電子郵局行使著像傳統郵局的功能,它在傳送者和接收者之間起著一個橋樑作用。它是執行在電子郵局伺服器上的一個伺服器端程式。最常用的有Microsoft的IIS和sendmail等。而在這裡我們介紹的就是功能強大的、免費的,基於類UNIX作業系統的電子郵件服務端程式sendmail的最基本的配置與使用方法。

6.4 安裝sendmail
如果你在安裝LINUX的時候,選擇了E-MAIL服務,sendmail就已經安裝在LINUX系統中了,並且已經作了一些最基本的設定。
如果你在安裝時沒有選擇,或者你需要升級sendmail就可以使用以下方法進行。
1. 透過RPM包來安裝或升級(僅用於RedHat LINUX):
1) 首先在光碟上或Internet上找到下面幾個RPM包:
sendmail-8.9.3-10.i386.rpm sendmail可執行檔案
sendmail-cf-8.9.3-10.i386.rpm sendmail.cf生成器
sendmail-doc-8.9.3-10.i386.rpm sendmail.cf文件
2) 然後使用以下命令安裝或升級:
安裝: rpm –ivh sendmail-8.9.3-10.i386.rpm
升級: rpm –Uvh sendmail-8.9.3-10.i386.rpm
2. 用原始碼編譯關安裝:
1) 首先取得最新版本的原始碼

2) 展開原始碼:
cd /hometar –zxvf sendmail-8.9.3.tar.gz
這樣就會在/home目錄下建立一個sendmail-8.9.3目錄:
/home/sendmail-8.9.3/README
/home/sendmail-8.9.3/src
/home/sendmail-8.9.3/cf
/home/sendmail-8.9.3/doc
3) 編譯:由於sendmail自己帶了一個編譯程式Build,所以不用make命令:
cd /home/sendmail-8.9.3/src
./Build
install

6.5 用sendmail構建一個E-Mail伺服器
當我們在系統中安裝了sendmail後我們就可以使用這臺機成為我們的電子郵局了。因為sendmail的功能強大,配置繁瑣。所以我們在下面的介紹中舉一個架設供一個公司使用的Internet E-Mail伺服器為例進行講述。
以下的設定也能運用在較大的電子郵局應用中,但是隨著的使用者數的增多,將會使得整個郵局的效能有所下降,這時也就相應地要進行更加深入的配置工作。考慮到本書是一個入門級的讀物,我們就不進行深入的討論。有興趣的讀者可以參看相應的書籍。
總而言之,我希望在本章節的描述後,能使大家夠迅速地使用LINUX架設一個小型的實用的電子郵局。下面我們就開始吧!

6.5.1 設定sendmail作為守衛程式(daemon)啟動
如果你在安裝LINUX的時候,選擇了E-Mail服務。那麼,sendmail就已經成為一個守衛程式啟動了。所謂的守衛程式,指的是它就象DOS作業系統中的常駐記憶體程式一樣,執行後,它們在後臺偵聽,當需要它進行服務的時候,它就完成特定的功能和服務。在LINUX系統中有許許多多的服務就是以守衛程式的方式啟動著的。
你可以使用以下命令來確認sendmail是否已經啟動。
ps –A|grep sendmail
如果啟動了sendmail,那麼這個命令將顯示出它的相關資訊。否則將沒有任何提示地回到命令列。如果沒有啟動,那麼你只發好在/etc/rc.d/rc.net檔案中加上以下幾行程式碼。
if [-f /usr/lib/sendmail ];
then(cd /usr/spool/mqueue;rm –f if *)
/usr/lib/sendmail-bd-qlh;echo –n ‘sendmail’>/dev/console
fi

6.5.2 設定sendmail.cf
sendmail.cf是sendmail的配置檔案。一般說來在安裝了LINUX系統之後,它將自動生成一個適合本系統使用的sendmail.cf檔案,而且在sendmail.8.9.3/cf目錄下還有許多適應各種系統的sendmail.cf的檔案樣本,根據檔名也可以判斷出它們所適用的場合。可以選擇它們替換原有的sendmail.cf檔案。也就是將它們複製到/etc目錄中去,覆蓋掉原來的sendmail.cf檔案。
而且sendmail還提供了一個sendmail.cf的生成器m4,它透過一系列的人機對話來生成一個使用者定製的sendmail.cf檔案。具體的用法可以閱讀m4的幫助文件。在此就不再詳述。

6.5.3 開啟SMTP、POP埠
在Internet中,我們採用POP埠提供接收郵件服務,採用SMTP埠提供傳送郵件服務。也就是說,客戶端的郵件傳送、接收系統在要傳送郵件的時候,就與電子郵局的SMTP埠連線;當要接收郵件的時候,就與電子郵局的POP埠連線。
而一般在所有的類UNIX系統中,SMTP埠預設是開啟的,而POP埠在預設狀態下是關閉的,我們必須將它開啟。
1. 用root(超級許可權)登入到伺服器上;
2. 編輯檔案/etc/inetd.conf;
3. 找到描述POP埠的語句;
#pop2 stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.pop2d
#pop3 stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.pop3d
前面的#號代表這一行是註釋語句,不生效。
POP2是早期的埠協議版本,我們現在一般使用的是POP3.
4. 將POP3的描述語句那一行的註釋號“#”去掉。確保POP2的那一行是註釋語句。
5. 如果沒有找到,就手工補上這一行;(另外,我們還可以驗證一下是否存在SMTP埠的描述語句);
6. 存檔後退出。
7. 執行inetd命令,使得設定生效。
8. 用以下命令驗證,看POP3埠是否開啟(生效)。
netstat –a |grep pop
如果開啟的話,可以看到以下資訊:
tcp 0 0 *:pop3 *:* LISTEN

6.5.4 為新使用者開E-Mail帳號
其實,在LINUX中,要為一個新的使用者開E-Mail帳號是十分簡單的。只要在LINUX系統中新增一個使用者就可以了。那麼這個使用者帳號和密碼就是E-Mail的帳號和密碼。
例如,我為一個新使用者test開一個E-Mail帳號。就用以下命令:
adduser testpasswd test
這樣,這個新使用者的E-Mail地址就是:

密碼當然就是帳號的密碼了。

6.5.5 為E-Mail帳號設定別名
如果,有一些使用者想使用多個E-Mail地址,是不是就要為他開多個帳號呢?如果是這樣就會增加對帳號管理的難度。所以LINUX給我們提供了一種方法:設定別名。
比如說,一個使用者叫“王大明”,它想擁有以下的幾個E-Mail地址:



我們就透過以下步驟來實現這樣的別名設定。
1. 以root登入伺服器;
2. 新增一個賬號wdm;
3. 編輯檔案/etc/aliases;
4. 加上兩行:
wangdm:wdm
daming:wdm
5. 存檔退出;
6. 執行命令:
newaliases
這樣,發給王大明的郵件可以使用三個郵件地址,而王大明只需要使用一個E-Mail帳號:wdm@company.com就可以接收所有寄給以上三個E-Mail郵件地址的電子郵件。

6.5.6 郵件限額
當一個E-Mail伺服器為許多人提供E-Mail服務的時候,無限量的電子郵件將很容易塞滿伺服器的硬碟,造成很大的負載。如果你的伺服器不想為使用者提供無限空間的E-Mail暫存空間,那麼你就可以使用“郵件限額”來給使用者一個有限的暫存空間。
其實,它是利用磁碟限額功能來實現的。電子郵件的暫存空間是在/var/spool/mail目錄下,只要透過磁碟限額設定每一個使用者在這個目錄下能使用的最大空間就可以了。
----------------------------------------------
DNS 伺服器

在用TCP/IP協議族架設的網路中,每一個節點都有一個唯一的IP地址,用來作為它們唯一的標誌。然而,如果讓使用者來記住這些毫無記憶規律的IP地址將是不可想象的。人們就需要一種有記憶規律的字串來作為唯一標記節點的名字。
然而,雖然符號名對於人來說是極為方便的,但是在計算機上實現卻不是那麼方便的。為了解決這個需求,應運而生了一個域名服務系統DNS,它執行在TCP協議之上,負責將字元名——域名轉換成實際相對應的IP地址。這個過程就是域名解析,負責域名解析的機器就叫域名伺服器。

8.1 域名解析的方法

8.1.1 最早的域名解析方法
最簡單的主機名解析方法是,在一個檔案中記錄所有主機名及與其對應的IP地址,並保證該檔案中主機名的唯一性,透過檢索檔案中的便可以完成主機名的解析。採用這種最簡單的解決方法有其歷史原因:
在整個70年代,APRANET只是一個小規模的,由類似的數百臺主機組成的團體。於是為了解決主機名解析的問題,將連線到ARPANET上每臺主機的名字與對應的地址都儲存在HOSTS.TXT檔案中。這樣每增加一臺機器,就必須修改HOSTS.TXT檔案一次。隨著網路的不斷髮展,網路中的主機數量爆炸性地增加,這種域名解析的方法已經無法適應新的解析需要。

8.1.2 分散式的域名伺服器
這種方法,我們已經在基礎篇的第六章中有了詳細的敘述,在此就不再重複了。在這種分散式的域名伺服器體系中,每一臺域名伺服器(DNS)負責解析屬於自己的這一部分主機的域名。
一般說來,如果你所處在公司或組織所擁有的主機並不多,一般是將域名的解析工作交給自己的ISP的域名伺服器來完成。而如果你所在組織擁有的主機比較多,我們就可以組建自己的域名伺服器負責解析你所在組織的主機。


8.2 域名伺服器建立例項

8.2.1 例項環境
假設我們需要建立一臺應用於以下情況的一個企業主域名伺服器。
1. 擁有一個C類網段地址,為202.101.55.0
2. 企業域名註冊為company.com。
3. 域名伺服器的IP定為202.101.55.55,主機名為dns.company.com。它同時充當Proxy.
4. 企業網透過路由器與Internet連線。
5. 要解析的伺服器有:
(202.101.55.1) Web伺服器
mail.company.com (202.101.55.2) E-Mail伺服器

8.2.2 安裝前的準備工作
首先要保證在作為系中統有/etc/resolv.conf和/etc/hosts.conf這兩個檔案。
/etc/resolv.conf檔案中內容如下所示:
domain compay.comnameserver 202.101.55.55
其中第一行指出對於任何希望連到它上面的主機應該搜尋的域。而第二行指出了在哪個地址可以找到需要的域名服務大。
/etc/hosts.conf的內容如下所示:
order hosts,bindmulti on
這裡的設定告訴主機名稱先在/etc/hosts檔案中搜尋,然後再查詢域名伺服器。

8.2.3 定義檔案/etc/named.boot
要使LINUX系統完成域名伺服器的功能,則需要執行一個named的服務程式。這個服務程式可以在安裝LINUX時選中。
named啟動時需要讀取一個初始化檔案——/etc/named.boot,這個檔案是named的基本配置檔案。它並不包含任何DNS資料,針對前面的假定環境,我們要在這個檔案中寫入:
diretory /etc/named
primary company.com db.company
primary 0.0.127.IN-ADDR.ARPA db.127.0.0
primary 55.101.202.IN-ADDR.ARPA db.202.101.55
cache . db.cache
下面我們逐行講解這個檔案中的內容:
1) 在第一行中我們指定named從/etc/named目錄下讀取DNS資料檔案。這個目錄可以自行指定並建立,指定後將所有的DNS資料檔案均存放在這個目錄下;
2) 第二行指定named作為company.com的主域名伺服器,db.company檔案中包含了所有*.my.com形式的域名的解析資料。
3) 第三行則指定named作為127.0.0網段(本地loopback)地址的轉換主伺服器。其中db.127.0.0檔案中包含了所有127.0.0.*形式的地址到域名的轉換資料。
4) 第四行指定named作為202.101.55網段地址轉換主伺服器,db.202.101.55檔案中包含了所有以202.101.55.*形式的地址到域名的轉換資料。
5) 最後一行指定named從db.cache檔案中獲得Internet的頂層“根”伺服器地址。
要說明的是,這些資料檔案的名稱均是自行決定的。

8.2.3 建立正向域名轉換資料檔案db.company
根據/etc/named.boot檔案中的定義,我們在/etc/named目錄下建立檔案db.company,並且在其中寫入所有在company.com域內的主機節點。根據前面假定的環境,可以寫入:
@ IN SOA dns.company.com. root.dns.company.com.(
200002011 ;檔案版本號
28800 ;重新整理時間(秒)
7200 ;重試時間(秒)
3600000 ;終止時間(秒)
86400) ;TTL生存時間(秒)
IN NS dns.company.comwww
IN A 202.101.55.1email
IN A 202.101.55.2proxy
IN CNAME dns
下面我們就逐句地理解這裡的配置。
1. SOA是主伺服器設定檔案中一定要設定的命令,我們通常將它放在檔案的第一行。
1) 最前面的符號“@”代表目前所管轄的域。
2) 接著的“IN”代表地址類別,這裡就是固定使用“IN”的。
3) 接下來就是命令SOA。
4) 接下來填入域名伺服器,記住由於DNS資料檔案的特殊格式規定,在最後一定要加上“·”,在這個例子中,我們填入域名伺服器:“dns.company.com.”
5) 接下來是域名伺服器管理員的E-MAIL地址,但要注意的是,E-Mail地址中的分隔符“@”在這裡用“·”來代替,在最後也要加上“。”,在這裡,我們相應寫入:“root.dns.company.com.”
6) 接下來在括號內填上各種選項:
檔案版本號:當你修改這個檔案的內容時,也要修改這個版本序列號。以此來區分是否有更新。
更新時間:指定二級伺服器向主伺服器複製資料的更新時間週期。
重試時間:指定二級伺服器在更新出現通訊故障時的重試時間。
終止時間:指定二級伺服器重新執行更新動作後仍然無法完成更新任務而終止更新的時間。
生存時間:指定當域名伺服器詢問某個域名和其IP地址後,在域名伺服器上放置的時間。
注:二級伺服器所設定的域名伺服器是主伺服器的備份主機。
2. 在第二行中,我們用NS命令指定這個域的域名伺服器。在這裡我們指出這個域的域名伺服器是“dns.company.com”。
3.接下來的兩行我們使用A命令來指定域名與IP地址的對應關係。我們將Web伺服器的域名與其IP地址202.101.55.1對應起來;將E-Mail伺服器的域名mail.company.com與其IP地址202.101.55.2對應起來。
4. 最後一行,我們使用了CNAME命令為dns.company.com指定了另一個域名以供使用:proxy.company.com。

8.2.3 建立反向域名轉換資料檔案db.127.0.0和db.202.101.55
反向域名轉換資料檔案用來提供IP地址查詢相應的DNS主機名,每個網段分別有一個資料檔案。
1. 網段127.0.0通常只有一個地址,那就是127.0.0.1 loopback地址。所以我們在db.127.0.0中寫入的內容是:
@ IN SOA dns.company.com. root.dns.company.com.(
200002011 ;檔案版本號
28800 ;重新整理時間(秒)
7200 ;重試時間(秒)
3600000 ;終止時間(秒)
86400) ;TTL生存時間(秒)
IN NS dns.company.com1
IN PTR localhost
前面兩名相信讀者已經不會陌生,最後一句我們使用PTR命令讓配置檔案中的主機可以使用IP地址來知道所對應的域名。
最前面的1代表127.0.0.1,對應的域名就是localhost。
2.網段202.101.55就可能會存在更多的記錄,前面假定環境下的設定應是:
@ IN SOA dns.company.com. root.dns.company.com.(
200002011 ;檔案版本號
28800 ;重新整理時間(秒)
7200 ;重試時間(秒)
3600000 ;終止時間(秒)
86400) ;TTL生存時間(秒)
IN NS dns.company.com1
IN PTR www2
IN PTR email55
IN PTR dns55
IN PTR proxy

8.2.4 獲得db.cache檔案
在LINUX系統中通常在提供了一個named.ca的檔案,該檔案中Internet的頂層域名伺服器,但是這個檔案通常會發生變化,所以建議最好從Internet上下載最新的版本。該檔案可以透過匿名FTP從ftp.rs.internic.net/domain下載,檔名是named.boot。將它複製一份為db.cache就可以了。

8.3 測試域名伺服器

8.3.1 使用nslookup測試
nslookup命令的功能是查詢域名伺服器中的資料資料。下例就是使用它來測試域名伺服器是否架設成功,其中斜體字代表要輸入的內容。
# nslookupDefault server:dns.company.com
Address:202.101.55.55 ;能出現這些資訊代表成功>
wwwserver:dns.company.com
Address:202.101.55.1

8.3.2 使用ping測試
還有一種更簡單的測試方法,那就是用ping命令,如果成功將顯示:
# ping
Ping data bytes64 bytes from
202.101.55.1:icmp_seq=0 ttl=255 time=1.3ms64 bytes from
202.101.55.1:icmp_seq=1 ttl=255 time=0.6ms64 bytes from
202.101.55.1:icmp_seq=2 ttl=255 time=0.6ms……

8.4 小技巧
安裝好域名伺服器後,在內部使用域名進行遠端連線時,會發現速度非常慢。其實只要/etc/hosts中加上所有內部的機器的域名就可以了。
----------------------------------------
檔案伺服器

在一個網路上,可能不只有LINUX系統,還會存在著象Windows NT、Windows95等其它作業系統。如何讓這些安裝不同作業系統的機器進行檔案級的資源共享呢?下面我們就一起來探討這個問題。

9.1 讓LINUX成為檔案伺服器——安裝Samba伺服器

9.1.1 什麼是Samba
Samba可以想象成一個區域網上的檔案伺服器。它可以為在同一個了網中的客戶(如Win95、WinNT等)提供檔案服務和列印服務。也就是說,Samba伺服器可以讓LINUX實現象Novell Netware檔案伺服器提供的功能。

9.1.2 Samba工作原理
Samba的工作原理是,讓NETBIOS(Windows95網路鄰居的通訊協議)和SMA(Server Message Block)這兩個協議執行於TCP/IP通訊協議之上,並且使用Windows 95的NETBEUI協議讓LINUX可以在網路鄰居上被Windows 95看到。
其中最重要的就是SMB協議(Server Message Block),這是一個用於不同計算機之間共享印表機、序列口和通訊抽象(如命名管道、郵件插槽等)的協議。SMB協議是一個非常重要的協議,在所有的Microsoft Windows系列作業系統中廣為應用。
Samba是SMB伺服器在類UNIX系統上的實現。它是開放原始碼的GPL自由軟體。目前Samba可以在幾乎所有的UNIX變種上執行。

9.1.3 安裝Samba伺服器
在RedHat LINUX作業系統中,只要在安裝的時候選擇了Samba,那麼它就會在安裝LINUX的同時安裝Samba。如果沒有選擇的話,也可以在光碟上找到Samba的RPM安裝包,使用RPM安裝它就可以了。

9.1.4 配置Samba
配置Samba的工作其實就是對它的配置檔案smb.conf進行相應的設定。Smb.conf關係著Samba伺服器的許可權設定,以及共享的目錄、印表機和機器所屬的工作組等各種細緻的選項。
檔案smb.conf的語法非常明確。檔案被分成段,每一段的名字用一個方括號括起來。在每一段內用“名稱=值”的格式來設定引數。最前面加分號表示該句為註釋。在後面的講述中,我們只說明最常用到的最基本的一些部分,而更加深入的設定,請大家閱讀這個檔案的註釋段。
整個配置檔案中最基本是三個特殊段。
1. Global段:配置伺服器在整個過程中用到的引數,併為其它段提供預設值。
[global]
workgroup=MYGROUP;
hosts allow = 192.168.1. 192.168.2. 127.
printcap name = /etc/printcap
load printers = yeslog
file = /var/log/samba/log.%m
1) 第一句workgroup用來指定機器在網路鄰居所處的工作組。預設值為MYGROUP,大家可以根據自己的喜愛進行相應的修改。
2) 而hosts allow是一個用來指定在區域網中哪些機器可以使用Samba服務的描述。一般情況,無須設定,所以最前面用一個“;”開始,表示將這句註釋掉。
3) 而第三句則是告訴Samba,印表機名稱的位置。
4) 第四行load printers = yes則是告訴Samba伺服器,允許瀏覽所有的印表機。
5) 最後一句則是指定了log日誌檔案的存放地址。
2.Homes段:這個段是用來表示允許客戶機連線的使用者主目錄。在smb.conf檔案中沒有這個目錄的特定內容。當發出服務請求時,就在smb.conf檔案的其它部分尋找這種特定的服務。如果沒有發現這種服務,並且提供了homes段時,就搜尋密碼檔案去發現使用者的主目錄。透過分解Homes段,Samba使使用者主目錄作為共享而使用。下面是這個段的最基本的幾個設定。
[homes]
comment=Home Directory
browseable=no
writable=yes
1) 其中comment提定客戶機在伺服器上可以使用的共享。
2) browseable則設定Samba在網路瀏覽表是否顯示目錄,建議改為browseable=yes。
3) 最後一句則是表示是否具有寫許可權。
3. Printers段:設定印表機的共享狀況。樣板如下表所示:
[printers]
comment=All printers
browseable=no
printable=yes
建議將browseable=no改為browseable=yes。
一般地,在預設的smb.conf檔案中已經做了最基本的設定,不加修改就可以應用在多種情況之中。所以建議初學者可以不用修改它。當然如果必要的話,可以參考註釋語句進行一些嘗試。
也就是說,如果大家不對smb.conf作修改,客戶機已經能夠使用最基本的Samba服務.

9.1.4 啟動Samba伺服器
啟動Samba伺服器的方法有兩種。一種是standalone方式,另一種是Inted方式:
啟動方式 佔有資源 反應速度
Standalone方式 多 快
Inted方式 少 慢
我們建議使用Inted方式啟動Samba伺服器,要注意的是,我們不能同時採用兩種方式執行,否則將造成Samba服務工作不政常。而預設狀態下也是使用這種啟動方式。
1. 使用Inted方式啟動
安裝Samba時,會在/etc/services檔案中增加類似的以下幾行:
netbios-ns 137/tcp
netbios-ns 137/udp
netbios-dgm 138/tcp
netbios-dgm 138/udp
netbios-ssn 139/tcp
netbios-ssn 139/udp
而在/etc/inetd.conf檔案中也新增了以下幾行:
netbios-ssn stream tcp nowait root /usr/sbin/smbd
smbdnetbios-ns dgram udp wait root /usr/sbin/nmdb nmdb
如果你想要用下一種方式啟動,請在它們前面加上一個註釋符號“#”,然後執行inetd命令使修改生效。
2. 使用Standalone方式啟動
如果你要使用這種方式啟動,請在/etc/rc.d/rc.local檔案中加入以下幾行:
echo “Startting Samba Server……”
/usr/local/samba/bin/smbd –D -d1
/usr/local/samba/bin/nmbd –D –d1 –n LINUX

9.1.5 使用Samba服務
以Windows 9x為例,我們只要開啟網路上的芳鄰,就可以發現一個新的工作組MYGROUP,
下面還有這臺LINUX主機。我們就可以使用Samba服務了。

9.2 網路檔案系統NFS
請在安裝LINUX的時候選中NFS,讓LINUX系統將這項服務安裝到系統中來。接著我們就可以十分容易地使用它了。

9.2.1 共享LINUX的檔案
透過NFS共享LINUX的檔案很簡單,只要修改/etc/exports檔案就可以了。例如,我們想將/home/nfstest這個目錄共享給202.101.55.5這臺機器,並且賦予它讀、寫許可權,那麼只要將如下資訊寫入/etc/exports這個檔案中去就可以了。
/home/nfstest 202.101.55.5(rw)

9.2.2 在LINUX中將共享的檔案掛進來
接著,如果我們可以在202.101.55.5這臺機器(202.101.55.1)上將/home/nfstest外掛進來。我們只要簡單地執行命令:
mount –t nfs 202.101.55.1:/home/nfstest /mnt/nfstest
這樣就將202.101.55.1上的/home/nfstest目錄掛到了202.101.55.5的/mnt/nfstest目錄下了。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617731/viewspace-961114/,如需轉載,請註明出處,否則將追究法律責任。

相關文章