Linux是多用戶、多任務的操作系統,具有可移植性、強大的網絡功能和良好的編程環境。在Linux的發行版中已經附帶了多套服務器軟件,無論是架設網頁服務器、郵件服務器,還是FTP服務器,都可以輕而易舉地實現。本文以Red Hat Linux 9.0為基礎,向你全面講述Linux環境下服務器架設的方法與技巧。一、動態域名的實現 1.動態域名基礎 搭建Linux服務器是一個系統工程,涉及到硬件購置、軟件安裝、域名申請、網絡服務提供等。這裡的前提就是域名的申請,因為對於虛擬撥號上網的用戶而言,使用的都是動態IP地址,別人根本無法和你聯系。 解決的辦法就是采用動態域名解析工具,通過運行一個專門的客戶端程序,一旦撥號用戶上線,就會把當前的動態IP地址發送到專門的動態域名解析服務器,然後該動態域名解析服務器就可以及時更新自己的數據庫,把某個“固定”域名指向該臨時IP地址。這樣,不管現在的IP地址是多少,總是可以通過一個固定的域名來訪問我們的Linux服務器。 需要注意的是,計算機所擁有的IP地址應該是公網IP地址,也就是Internet所采用的IP地址,而非內網(局域網)IP地址。 2.動態域名解析 (1)注冊動態域名 我們可以到科邁網http://www.comexe.cn/register.PHP注冊一個用戶賬戶。然後在“域名管理”頁面中單擊“申請科邁公網免費二級域名”鏈接,注冊一個合適的名稱(例如myname),即會得到一個myname.kmip.net的二級域名,然後單擊“提交”按鈕,如果該域名沒有被別人注冊,則可以立即生效。 注意:本文假設用戶已經完全安裝Red Hat Linux 9.0,並使用KDE桌面系統。 (2)安裝動態域名解析工具 注冊成功以後,我們可以到http://www.comexe.cn/client/linux_i.tar.gz中下載動態域名解析工具 (如,版本號“公網Ver 2.00 Build 104”)。下載得到的是一個壓縮文件,在系統裡建立一個目錄,如/usr/local/comexe,把下載的文件解壓到這個目錄即可。 [root@ahpeng root]# cd /tmp [root@ahpeng tmp]# tar -xvzf linux_i.tar.gz [root@ahpeng tmp]# cp pipclient /usr/local/comexe/pipclient (3)配置客戶端 解壓後得到一個執行文件pipclient。在終端命令窗口切換到該目錄並運行以下命令: [root@ahpeng comexe]# ./ pipclient 第一次運行pipclient,會要求輸入配置信息: [root@ahpeng comexe]# ./ pipclient Usage: pipclient -h -c -w /home/pipclient -h: help message. -c: do configuration. -w <dir>: set work Directory. Do configuration now. Input User name: 這裡按照屏幕提示輸入以下配置信息: Input User name: //在科邁網注冊的用戶名 Input PassWord: //科邁網用戶密碼 Input Domain: //域名 Input Offline URL or Offline IP(Enter for none): //域名離線URL。如果沒有請直接按回車鍵。這裡要注意離線功能對科邁的二級域名(如abc.dns0755.net、abc.kmip.net)無效 Has another domain?(Y/N): //如果要解析多個域名,請按“Y”,逐個輸入域名及其離線URL 配置完畢後應該出現以下提示信息: 030827 155904:MESG: COMEXE DDNS (Public IP) Ver 2.00a Build 102 Copyright 2003 Shenzhen COMEXE Communication Technology Co. Ltd. All Rights Reserved. http://www.comexe.cn 030827 155904:MESG:服務啟動. 030827 155904:INFO:Connected to:210.22.12.54:9994 030827 155904:INFO:Connected to:210.22.12.54:9993 030827 155904:MESG:登錄成功! 出口IP是: xxx.xxx.xxx.xxx 030827 155904:INFO:xxx.xxx.xxx.xxx N 20 現在可以按Ctrl+C組合鍵退出。如果以後要修改配置,可以在終端命令窗口運行以下命令: [root@ahpeng comexe]#./pipclient -c 3.內網映射 所謂內網(局域網),就是只有一台主機(可能是代理服務器或路由器)連接到Internet,具有公網地址,假設為A1。別的計算機通過它與Internet連接,假設為A2,只有內網地址,外網計算機顯然無法直接訪問A2。 要讓外網用戶可以訪問Linux服務器,通常有三種解決思路: (1)如果A1是Windows主機 如果A1是Windows主機,可以考慮安裝端口映射工具,如PortTunnel,把外網計算機對A1特定端口的訪問,轉駁到對A2特定端口的訪問。 (2)如果你采用路由器 如果你采用路由器,或具有路由功能的ADSL Modem,可以直接在路由器上進行設置。這裡以AboveCable無線路由器為例進行介紹: 首先在浏覽器地址欄中輸入“192.168.100.100”,回車進入路由器設置界面,輸入密碼即可進入管理界面。展開頁面左側的“重定向規則→虛擬主機”鏈接,然後在右側頁面中依次填上服務端口、服務器IP地址,這樣外網對路由器的特定端口訪問,都會被轉駁到指定服務器的端口。 (3)下載客戶端程序 登錄到http://www.comexe.cn/helptruehost.php下載一個特殊的客戶端程序,不過這需要支付一定的費用、並且帶寬受到限制(通過專門的服務器中轉),它可以實現內網用戶對外提供服務。 4.內置防火牆的配置 在搭建Linux網站時,還有一個很容易疏忽的問題,即是沒有正確配置系統內置的防火牆,這可能會導致“客戶”無法訪問我們的Linux服務器,所以必須對防火牆進行配置。單擊“主菜單→系統設置→安全級別”菜單項,即可打開“安全級別配置”對話框,如圖1所示。選中“定制”選項,然後選擇所需啟用的服務,例如WWW、FTP、郵件(SMTP)等,最後單擊“確定”按鈕即可。二、架設Web服務器 Apache是使用范圍最廣的Web服務器工具套件,這裡我們將詳細介紹如何在Red Hat Linux 9.0環境裡安裝、啟動和配置Apache服務器。 1.安裝Apache服務器 在安裝Red Hat Linux 9.0時,會提示是否安裝Apache服務器。如果不能確定是否已經安裝,可以在終端命令窗口輸入以下命令: [root@ahpeng root] rpm -qa grep httpd 如果結果顯示為“httpd-2.0.40-21”,則說明系統已經安裝Apache服務器。 如果安裝Red Hat Linux 9.0時沒有選擇Apache服務器,則可以在圖形環境下單擊“主菜單→系統設置→添加刪除應用程序”菜單項,在出現的“軟件包管理”對話框裡確保選中 “萬維網服務器”選項,然後單擊“更新”按鈕,按照屏幕提示插入安裝光盤即可開始安裝。 另外,你也可以直接插入第1張安裝光盤,定位到/RedHat/RPMS下的httpd-2.0.40-21.i386.rpm安裝包,然後在終端命令窗口運行以下命令即可開始安裝進程: [root@ahpeng RPMS] rpm -ivh httpd-2.0.40-21.i386.rpm 安裝好Apache服務器,可以在終端命令窗口運行以下命令來啟動Apache服務: [root@ahpeng root] /etc/rc.d/init.d/httpd start 重新啟動Apache服務: [root@ahpeng root] /etc/rc.d/init.d/httpd restart 關閉Apache服務: [root@ahpeng root] /etc/rc.d/init.d/httpd stop 確認Apache服務已經啟動後,我們可以在Web浏覽器裡輸入以下地址,如果可以看到默認的Apache首頁,則說明Apache服務器工作正常。 Htpp://WebServerAddress 此處的WebServerAddress指代Web服務器的IP地址或者域名。即是說WebServerAddress應該用實際的Web服務器的IP地址或者域名來代替。 2.配置httpd.conf文件 在早期Apache服務器版本裡,其配置內容分散在httpd.conf、srm.conf、Access.conf三個文件裡。而新版本的 Apache服務器,則統一在httpd.conf裡進行配置。對於默認安裝的Red Hat Linux來說,該配置文件位於/etc/httpd/conf目錄下,如果安裝的是tar.gz版本,則該文件位於 /usr/local/apache/conf目錄。 利用httpd.conf,我們可以對Apache服務器進行全局配置、主要或預設服務器的參數定義、虛擬主機的設置。httpd.conf是一個文本文件,我們可以用Vi、Kate等文本編輯工具進行修改。通過分析該httpd.conf配置文件,我們不難發現: 該配置文件分為若干個小節,例如Section 1: Global Environment(第一小節:全局環境);Section 2: 'Main' server configuration(第二小節:主服務器配置)等。 每個小節都有若干個配置參數,其表達形式為“配置參數名稱 具體值”,每個配置參數都有詳盡的英文解釋(用#號引導每一個注釋行)。 為了幫助大家理解,這裡給出httpd.conf的最常用配置參數: (1)DocumentRoot 該參數指定Apache服務器存放網頁的路徑,默認所有要求提供HTTP服務的連接,都以這個目錄為主目錄。以下為Apache的默認值: DocumentRoot "/var/www/Html" (2)MaxClients 該參數限制Apache所能提供服務的最高數值,即同一時間連接的數目不能超過這個數值。一旦連接數目達到這個限制,Apache服務器則不再為別的連接提供服務,以免系統性能大幅度下降。本例假設最大連接數是150個: MaxClients 150 (3)Port 該參數用來指定Apache服務器的監聽端口。一般來說,標准的HTTP服務默認端口號是80,一般不要更改這個數值。本例為80端口: Port 80 (4)ServerName 該參數使得用戶可以自行設置主機名,以取代安裝Apache服務器主機的真實名字。此名字必須是已經在DNS服務器上注冊的主機名。如果當前主機沒有已注冊的名字,也可以指定IP地址。本例將服務器名設為Peter.vicp.net: ServerName Peter.vicp.net (5)MaxKeepAliveRequests 當使用保持連接(Persistent Connection)功能時,可以使用本參數決定每次連接所能發出的要求數目的上限。如果此數值為0,則表示沒有限制。建議盡可能使用較高的數值,以充分發揮Apache的高性能,本例設置每次連接所能發出的要求數目上限為100: MaxKeepAliveRequests 100 (6)MaxRequestsPerChild 該參數限制每個子進程(Child Process)在結束前所能處理的請求數目,一旦達到該數目,這個子進程就會被中止,以避免長時間占據Apache(或者Apache服務器所采用的函數庫),防止造成內存或者其他系統資源的超負荷。 需要注意的是,該參數的數值並不包括保持連接所發出的請求數目。舉例說明,如果某個子進程負責某一個請求,該請求隨後帶來保持連接功能所需的10個請求,這時候對於該參數而言,Apache服務器會認為這個子進程只處理了1個要求,而非11個要求。 以下設置最多可以處理10個要求: MaxRequestsPerChild 10 (7)MaxSpareServers 和MinSpareServers 提供Web服務的HTTP守護進程,其數目會隨連接的數目而變動。Apache服務器采用動態調整的方法,維持足夠的HTTP守護進程數目,以處理目前的負載,也就是同時保持一定的空閒HTTP守護進程來等候新的連接請求。 Apache會定期檢查有多少個HTTP守護進程正在等待連接請求,如果空閒的HTTP守護進程多於MaxSpareServers參數指定的值,則Apache會終止某些空閒進程;如果空閒HTTP守護進程少於MinSpareServers參數指定的值,則Apache會產生新的HTTP 守護進程。本例將最高空閒守護進程設置為20個,將最低的空閒守護進程設置為5個: MaxSpareServers 20 MinSpareServers 5 當然這只是Apache的一些基本設置項,大家可以根據自己的實際情況加以靈活的修改,以充分發揮Apache的潛能。如果修改配置文件之後沒能立即生效,可以重啟Apache服務。 注意:修改之前一定要先備份! 3.圖形化配置界面 圖形化配置直觀、簡單,足夠應付Apache服務器的日常管理維護工作。我們可以通過單擊“主菜單→系統設置→服務器設置→HTTP服務器” 菜單項,或者直接在“運行命令”對話框裡輸入“apacheconf”命令並回車,來訪問“Apache配置”對話框。可以看到該配置對話框共有4個標簽頁。 (1)“主”標簽頁 在“服務器名”框中可以輸入服務器的名稱,等同於httpd.conf文件裡的“ServerName”字段。“網主電子郵件地址”框中可以輸入管理員的郵件地址,等同於httpd.conf文件裡的“ServerAdmin”字段。單擊“可用地址”選項組中的“添加”(或者“編輯”)按鈕,我們可以添加或者修改服務器的IP地址和端口。 (2)“虛擬主機”標簽頁 所謂的虛擬主機服務就是指將一台計算機虛擬成多台Web服務器。利用Apache服務器提供的“虛擬主機”服務,我們可以利用一台計算機提供多個Web服務。 用Apache設置虛擬主機服務通常可以采用兩種方案:基於IP地址的虛擬主機和基於名字的虛擬主機。基於IP地址的虛擬主機的實現方法有一個嚴重的不足,每增加一個虛擬主機,就必須增加一個IP地址。所以這裡介紹如何創建基於名字的虛擬主機。 假設一台Apache服務器的IP地址是210.79.81.212,主機名稱為www.companyname.net,同時它擁有兩個別名:sales.companyname.net、marketing.companyname.net。雖然這3個網站的IP地址相同,都指向 210.79.81.212,但是由於架設了基於名字的虛擬主機,所以可以指向不同的網頁。 設置時,請單擊“虛擬主機”標簽頁上的“添加”按鈕,在打開的配置對話框的“主機信息”下拉列表框裡選中“基於名稱的虛擬主機”選項,然後輸入合適的數據IP地址、主機名稱等,記住,還要添加合適的別名,如圖2所示。 “Apache配置”對話框的其他兩個標簽頁的設置內容基本等同於前面所介紹的httpd.conf參數配置,這裡就不再介紹了。三、架設FTP服務器 FTP,即File Transfer Protocol,文件傳輸協議。它是目前Internet上最流行的數據傳送方法之一。利用FTP協議,我們可以在FTP服務器和FTP客戶端之間進行雙向數據傳輸,既可以把數據從FTP服務器上下載到本地客戶端,又可以從客戶端上傳數據到遠程FTP服務器。 1.安裝vsftpd服務器 vsftpd是目前Linux最好的FTP服務器工具之一,其中的vs就是“Very Secure”(很安全)的縮寫,可見它的最大優點就是安全,除此之外,它還具有體積小,可定制強,效率高的優點。 如果選擇完全安裝Red Hat Linux 9.0,則系統會默認安裝vsftpd服務器。我們可以在終端命令窗口輸入以下命令進行驗證: [root@ahpeng root] rpm -qa grep vsftpd 如果結果顯示為“vsftpd-1.1.3-8”,則說明系統已經安裝vsftpd服務器。如果安裝Red Hat Linux 9.0時沒有選擇vsftpd服務器,則可以在圖形環境下單擊“主菜單→系統設置→添加刪除應用程序”菜單項,在出現的“軟件包管理”對話框裡確保選中 “FTP服務器”選項,然後單擊“更新”按鈕,按照屏幕提示插入第3張安裝光盤即可開始安裝。 另外,你也可以直接插入第3張安裝光盤,定位到/RedHat/RPMS下的vsftpd-1.1.3-8.i386.rpm安裝包,然後在終端命令窗口運行以下命令即可開始安裝進程: [root@ahpeng RPMS] rpm -ivh vsftpd-1.1.3-8.i386.rpm 2.啟動/重新啟動/停止vsftpd服務 從Red Hat Linux 9.0開始,vsftpd默認只采用standalone方式啟動vsftpd服務,方法是在終端命令窗口運行以下命令: [root@ahpeng root] /etc/rc.d/init.d/vsftpd start 重新啟動vsftpd服務: [root@ahpeng root] /etc/rc.d/init.d/ vsftpd restart 關閉vsftpd服務: [root@ahpeng root] /etc/rc.d/init.d/ vsftpd stop 確認vsftpd服務已經啟動後,我們可以在任意一台Windows主機的DOS命令窗口裡輸入“ftp FTPAddres”(用實際的FTP服務器IP地址或者域名代替FTPAddres),注意用戶名、密碼都是ftp(ftp是匿名用戶的映射用戶賬號),如下所述: Microsoft Windows XP [版本 5.1.2600] (C) 版權所有 1985-2001 Microsoft Corp. F:Peter>ftp FTPAddress Connected to FTPAddress 220 (vsFTPd 1.1.3) //vsftpd的響應請求 User (FTPAddress:(none)): ftp //輸入用戶賬號ftp 331 Please specify the password. Password: //輸入密碼ftp 230 Login sUCcessful. Have fun. ftp> 3.vsftpd的配置 在Red Hat Linux 9.0裡的vsftpd共有3個配置文件,它們分別是: vsftpd.ftpusers:位於/etc目錄下。它指定了哪些用戶賬戶不能訪問FTP服務器,例如root等。 vsftpd.user_list:位於/etc目錄下。該文件裡的用戶賬戶在默認情況下也不能訪問FTP服務器,僅當vsftpd .conf配置文件裡啟用userlist_enable=NO選項時才允許訪問。 vsftpd.conf:位於/etc/vsftpd目錄下。它是一個文本文件,我們可以用Kate、Vi等文本編輯工具對它進行修改,以此來自定義用戶登錄控制、用戶權限控制、超時設置、服務器功能選項、服務器性能選項、服務器響應消息等FTP服務器的配置。 (1)用戶登錄控制 anonymous_enable=YES,允許匿名用戶登錄。 no_anon_password=YES,匿名用戶登錄時不需要輸入密碼。 local_enable=YES,允許本地用戶登錄。 deny_email_enable=YES,可以創建一個文件保存某些匿名電子郵件的黑名單,以防止這些人使用Dos攻擊。 banned_email_file=/etc/vsftpd.banned_emails,當啟用deny_email_enable功能時,所需的電子郵件黑名單保存路徑(默認為/etc/vsftpd.banned_emails)。 (2)用戶權限控制 write_enable=YES,開啟全局上傳權限。 local_umask=022,本地用戶的上傳文件的umask設為022(系統默認是077,一般都可以改為022)。 anon_upload_enable=YES,允許匿名用戶具有上傳權限,很明顯,必須啟用write_enable=YES,才可以使用此項。同時我們還必須建立一個允許ftp用戶可以讀寫的目錄(前面說過,ftp是匿名用戶的映射用戶賬號)。 anon_mkdir_write_enable=YES,允許匿名用戶有創建目錄的權利。 chown_uploads=YES,啟用此項,匿名上傳文件的屬主用戶將改為別的用戶賬戶,注意,這裡建議不要指定root賬號為匿名上傳文件的屬主用戶! chown_username=whoever,當啟用chown_uploads=YES時,所指定的屬主用戶賬號,此處的whoever自然要用合適的用戶賬號來代替。 chroot_list_enable=YES,可以用一個列表限定哪些本地用戶只能在自己目錄下活動,如果chroot_local_user=YES,那麼這個列表裡指定的用戶是不受限制的。 chroot_list_file=/etc/vsftpd.chroot_list,如果chroot_local_user=YES,則指定該列表(chroot_local_user)的保存路徑(默認是/etc/vsftpd.chroot_list)。 nopriv_user=ftpsecure,指定一個安全用戶賬號,讓FTP服務器用作完全隔離和沒有特權的獨立用戶。這是vsftpd系統推薦選項。 async_abor_enable=YES,強烈建議不要啟用該選項,否則將可能導致出錯! ascii_upload_enable=YES;ascii_download_enable=YES,默認情況下服務器會假裝接受ASCⅡ模式請求但實際上是忽略這樣的請求,啟用上述的兩個選項可以讓服務器真正實現ASCⅡ模式的傳輸。 注意:啟用ascii_download_enable選項會讓惡意遠程用戶們在ASCⅡ模式下用“SIZE/big/file”這樣的指令大量消耗FTP服務器的I/O資源。 這些ASCⅡ模式的設置選項分成上傳和下載兩個,這樣我們就可以允許ASCⅡ模式的上傳(可以防止上傳腳本等惡意文件而導致崩潰),而不會遭受拒絕服務攻擊的危險。 (3)用戶連接和超時選項 idle_session_timeout=600,可以設定默認的空閒超時時間,用戶超過這段時間不動作將被服務器踢出。 data_connection_timeout=120,設定默認的數據連接超時時間。 (4)服務器日志和歡迎信息 dirmessage_enable=YES,允許為目錄配置顯示信息,顯示每個目錄下面的message_file文件的內容。 ftpd_banner=Welcome to blah FTP service,可以自定義FTP用戶登錄到服務器所看到的歡迎信息。 xferlog_enable=YES,啟用記錄上傳/下載活動日志功能。 xferlog_file=/var/log/vsftpd.log,可以自定義日志文件的保存路徑和文件名,默認是/var/log/vsftpd.log。四、架設郵件服務器 郵件服務器是一個網站所必須的服務,在這裡我們可以通過Red Hat Linux 9.0自帶的Sendmail來架設郵局服務器。 1.安裝Sendmail 如果是完全安裝Red Hat Linux 9.0,那麼系統已經內置有Sendmail 8.12.8-4服務器。如果不能確定是否已經安裝sendmail,可以在終端命令窗口輸入如下命令: [root@ahpeng root] rpm -qa grep sendmail 如果結果顯示為“sendmail-8.12.8-4”,則說明系統已經安裝sendmail服務器。如果安裝Red Hat Linux 9.0時沒有選擇Sendmail服務器,則可以在圖形環境下單擊“主菜單→系統設置→添加刪除應用程序”菜單項,在打開的“軟件包管理”對話框中確保選中“郵件服務器”選項,然後單擊“更新”按鈕,按照屏幕提示插入第一張安裝光盤即可開始安裝。 另外,你也可以直接插入第1張安裝光盤,定位到/RedHat/RPMS目錄下的sendmail-8.12.8-4.i386.rpm安裝包,然後在終端命令窗口運行以下命令即可開始安裝進程: [root@ahpeng RPMS] # rpm -ivh sendmail-8.12.8-4.i386.rpm 用類似的方法安裝sendmail-cf.8.12.8-4.i386.rpm、sendmail-doc. 8.12.8-4.i386.rpm,位於第3張安裝光盤的/RedHat/RPMS目錄下。 2.啟動/重新啟動/停止Sendmail服務 安裝Sendmail服務器以後,最簡單的啟動方式是在終端命令窗口運行如下命令: [root@ahpeng root]/etc/rc.d/init.d/sendmail start 應該會出現以下的結果,表明郵件服務器已經啟動成功: 啟動 sendmail: [確定] 啟動 sm-client:[確定] 除以上方式,我們還可以使用帶參數的Sendmail命令控制郵件服務器的運行,例如: [root@ahpeng root]# sendmail -bd -q1h Sendmail的命令參數的含義如下: -b:指定Sendmail在後台運行,並且監聽端口25的請求。 -d:指定Sendmail以Daemon方式運行(守護進程)。 -q:當Sendmail無法將郵件成功地發送到目的地時,它會將郵件保存在隊列裡。該參數指定郵件在隊列裡保存的時間。例子裡的1h表示保留1小時。 在終端命令窗口運行以下命令來重新啟動Sendmail服務: [root@ahpeng root]#/etc/rc.d/init.d/sendmail restart 在終端命令窗口運行以下命令來關閉Sendmail服務: [root@ahpeng root]#/etc/rc.d/init.d/sendmail stop 我們還可以在終端命令窗口運行以下命令來檢測Sendmail服務器的運行狀態: [root@ahpeng root]# /etc/rc.d/init.d/sendmail status 系統應該顯示: sendmail (pid 3251) 正在運行… 3.配置Sendmail Sendmail的配置十分復雜。它的配置文件是sendmail.cf,位於/etc/mail目錄下。由於sendmail.cf的語法深奧難懂,很少有人會直接去修改該文件來對Sendmail服務器進行配置。我們一般通過m4宏處理程序來生成所需的sendmail.cf文件。創建的過程中還需要一個模板文件,系統默認在/etc/mail目錄下有一個sendmail.mc模板文件。 我們可以根據簡單、直觀的sendmail.mc模板來生成sendmail.cf文件,而無需直接編輯sendmail.cf文件。可以直接通過修改sendmail.mc模板來達到定制sendmail.cf文件的目的。這裡介紹創建sendmail.cf文件的步驟: (1)備份原有sendmail.cf文件 在終端命令窗口運行以下命令: cp /etc/mial/sendmail.cf /etc/mail/sendmail.cf.BAK (2)生成sendmail.cf文件 根據sendmail.mc模板文件產生sendmail.cf配置文件,並導出到/etc/mail/目錄下: m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf (3)重啟sendmail服務 [root@ahpeng root] /etc/rc.d/init.d/sendmail restart 很顯然,用m4宏編譯工具創建sendmail.cf文件比較方便,而且不容易出錯,更可以避免某些帶有安全漏洞或者過時的宏所造成的破壞。一個sendmail.mc模板的大致內容如下: divert(-1)dnl …… include('/usr/share/sendmail-cf/m4/cf.m4')dnl VERSIONID('setup for Red Hat Linux')dnl OSTYPE('linux')dnl …… dnl # dnl define('SMART_HOST','smtp.your.provider') dnl # define('confDEF_USER_ID',''8:12'')dnl define('confTRUSTED_USER', 'smmsp')dnl dnl define(′confAUTO_REBUILD′)dnl …… 這裡介紹sendmail.mc模板的語法組成: dnl:用來注釋各項,同時dnl命令還用來標識一個命令的結束。 divert(-1):位於mc模板文件的頂部,目的是讓m4程序輸出時更加精簡一些。 OSTYPE ('OperationSystemType'):定義使用的操作系統類型,顯然這裡應該用linux代替OperationSystemType,注意要用一個反引號和一個正引號把對應的操作系統類型括起來。 define:定義一些全局設置,對於Linux系統,設置了OSTYPE之後,可以定義下面的一些全局參數,如果不定義,就使用默認值。這裡舉兩個簡單例子:define('ALIAS_FILE','/etc/aliases') 定義別名文件(alia file)的保存路徑,默認是/etc/aliases define('STATUS_FILE', '/etc/mail/statistics') sendmail的狀態信息文件。 以上只是sendmai.mc的一些簡單的語法解釋,更多的參數含義及其配置信息可以參見http://www.sendmail.org/m4/tweaking_config.html。 4.為新用戶開電子郵件賬號 在Linux裡為新用戶開設電子郵件賬戶比較簡單,只需在Linux系統裡新增一個用戶即可。單擊“主菜單→系統設置→用戶和組群”菜單項,打開“Red Hat用戶管理器”對話框,單擊“添加用戶”按鈕,在出現的“創建新用戶”對話框裡指定用戶名、登錄口令即可,如圖3所示。 假設我們添加了一個用戶Peter(密碼為peter),這樣該用戶就有了一個郵件地址
[email protected](此處的YourDomain.com用你自己域名代替)。 以上過程也可以在終端命令窗口運行以下命令來實現: [root@ahpeng root]#adduser peter -p peter 5.為電子郵件賬戶設置別名 有一些用戶想使用多個電子郵件地址,是不是需要創建多個郵件賬號呢?我們可以使用別名(alias)來解決這個問題。 比如說,用戶peter想擁有以下3個電子郵件地址:
[email protected]、dearpeter@ YourDomain.com、truepeter@ YourDomain.com。 我們可以通過以下步驟來實現這樣的別名設置: 新增一個賬號peter;然後用vi、或者Kate等文本編輯器打開/etc/aliases,在裡面加上兩行: dearpeter: peter truepeter: peter 保存該/etc/aliases退出。 不過,就這樣還不能讓Sendmail接受新增的別名,我們必須在終端命令窗口運行newaliases命令,以要求Sendmail重新讀取/etc/aliases文件。如果一切無誤,應該可以看到類似以下的回應消息: [root@ahpeng root]# newaliases /etc/aliases: 63 aliases, longest 10 bytes, 625 bytes total 這樣,發給peter的郵件可以使用3個郵件地址,而peter只需要使用一個電子郵件賬號
[email protected]就可以接收所有寄給以上3個地址的電子郵件。 6.指定郵箱容量限制 當一個郵件服務器為許多人提供郵件服務時,無限量的電子郵件將很容易塞滿服務器的硬盤,造成硬盤負擔。如果不想為用戶提供無限空間的郵件暫存空間,可以使用“郵件限額”來給用戶一個有限的暫存空間。 其實,它是利用磁盤配額功能來實現的。電子郵件的暫存空間是在/var/spool/mail目錄下,只要通過磁盤配額設定每一個用戶在這個目錄下能使用的最大空間即可。 7.支持POP和IMAP功能 到現在為止,我們已經可以用Outlook Express發送郵件,或者登錄服務器使用mail、pine命令收取、管理郵件。但是還不能用Outlook Express等客戶端從服務器下載郵件,這是因為Sendmail並不具備POP3(IMAP)的功能,所以我們必須自己安裝。 (1)POP和IMAP服務器安裝 安裝Red Hat Linux 9.0時,可以選擇安裝POP和IMAP服務器,可以在終端命令窗口運行以下命令進行驗證: [root@ahpeng root]# rpm -qa imap imap-2001a-18 如果沒有安裝,可以將第2張安裝光盤放進光驅,然後在終端命令窗口運行以下命令即可開始安裝: [root@ahpeng root]#cd /mnt/cdrom/RedHat/RPMS [root@ahpeng root]#rpm -ivh imap-2001a-18.i386.rpm 由於Red Hat Linux 9.0已經將POP和IMAP打包成一個單獨的套件,安裝好imap-2001a-18.i386.rpm,就會同時安裝這兩個服務器 (2)啟動POP和IMAP服務 要成功啟動POP和IMAP服務器,首先要確定這些服務存在於/etc/services文件,確保以下的服務前面沒有加上#注釋(如果有,必須去除注釋)。 imap 143/tcp imap2 # Interim Mail Access Proto v2 imap 143/udp imap2 pop2 109/tcp pop-2 postOffice # POP version 2 pop2 109/udp pop-2 pop3 110/tcp pop-3 # POP version 3 pop3 110/udp pop-3 修改好/etc/services文件,接下來就要對相應服務配置文件進行定制: 啟動POP3服務:必須修改/etc/xinetd.d/ipop3文件,將其中的“disable=yes”改為“disable=no”,保存該文件。最後必須重新啟動xinetd程序來讀取新的配置文件,使得設定內容生效: [root@ahpeng root]#/etc/rc.d/init.d/xinetd reload 啟動IMAP服務:必須修改/etc/xinetd.d/imap文件,將其中的“disable = yes”改為“disable =no”,保存該文件。最後必須重新啟動xinetd程序來讀取新的配置文件,使得設定內容生效: [root@ahpeng root]#/etc/rc.d/init.d/xinetd reload 設置好以後,就可以在Outlook Express裡面設置好郵件賬號,以後就可以直接利用Sendmail服務器進行收發郵件了,由於郵件服務器就在本地局域網,所以速度很快。五、Linux下的網絡鄰居Samba Windows可以通過網絡鄰居訪問局域網主機,而在Linux下可以通過Samba客戶端訪問局域網內的Windows主機,也可以通過Samba 服務器給Windows主機提供文件、打印機服務。為了方便講述,這裡假設Windows主機的計算機名為Peter,設Linux主機的名稱為 RedHat。 1.安裝Samba組件 如果選擇完全安裝Red Hat Linux 9.0,則系統會默認安裝Samba組件。我們可以在終端命令窗口輸入以下命令進行驗證: [root@ahpeng root] rpm -qa grep samba 如果結果出現以下所示的5個軟件包,則表示已經安裝: samba-swat-2.2.7a-7.9.0 samba-2.2.7a-7.9.0 redhat-config-samba-1.0.4-1 samba-common-2.2.7a-7.9.0 samba-client-2.2.7a-7.9.0 如果沒有安裝過Samba軟件包,則可以插入第1張安裝光盤,然後鼠標依次單擊“主菜單→系統設置→添加/刪除應用程序”菜單項,打開“軟件包管理”對話框,在該對話框中找到“Windows文件服務器”選項,確保該選項處於選中狀態,然後單擊“更新”按鈕即可開始安裝。 你也可以把第1張安裝光盤插入光驅,然後在終端命令窗口輸入以下命令: [root@ahpeng root]# cd /mnt/cdrom/RedHat/RPMS [root@ahpeng RPMS]# rpm -ivh samba* [root@ahpeng RPMS]# rpm -ivh redhat-config-samba-1.0.4-1.noarch.rpm 2.Linux主機訪問Windows主機 安裝好Samba之後,就有了與Windows互相訪問的基礎。這裡先介紹一下如何用字符命令方式訪問Windows宿主機的共享資源。 (1)查詢宿主機的共享資源 可以使用“smbclient –L WindowsHostName”命令(此處的WindowsHostName用Windows主機名代替)。本例是要查詢Windows主機Peter 上的共享資源,可以在終端窗口輸入“smbclient –L Peter”命令,然後回車即可看到Windows主機的共享資源。 (2)連接宿主機的共享目錄 可以使用“smbclient //WindowsHostName/ShareName”命令來連接Windows主機上的某個共享文件夾,如果該共享文件夾需要用戶名和密碼,則可以使用“smbclient //WindowsHostName/ShareName –U UserName”命令。例如要連接Windows主機Peter上的共享目錄Share,我們可以在終端窗口輸入“smbclient //Peter/Share”命令然後回車即可。 如果連接成功,即可出現“smb:>”提示符,在該命令提示符下輸入適當的命令,即可對所連接的共享目錄進行操作。 Smb支持的命令有大約40個命令,可以很方便地對共享目錄進行刪除、重命名、切換目錄等操作。如果要列出共享目錄“Share”下的具體內容,可以使用ls命令。要刪除其下的test.txt文件,可以使用“del test.txt”命令。 (3)映射網絡驅動器 我們知道,Windows下可以將共享目錄映射為網絡驅動器,這樣就可以把共享目錄當成本地文件夾來使用。在Linux下可以借助於 smbmount命令來實現,具體的命令參數是“smbmount //WindowsHostName/ShareName /mnt/smbdir”(此處的ShareName指代Windows共享資源名稱,smbdir指代掛載點名稱)。假設要將Windows主機 Peter下的共享文件夾Share映射為/mnt/WinShare目錄,具體步驟是: 首先在/mnt目錄下創建一個目錄,假設為/mnt/WinShare; 然後打開終端命令窗口,運行“smbmount //Peter/Share /mnt/WinShare”即可; 現在再在文件管理器裡打開/mnt/WinShare目錄可以看到共享目錄的內容!要卸載該映射目錄,可以使用umount命令。 (4)用Nautilus訪問Windows主機 借助Gnome桌面下的文件管理器Nautilus,我們可以用圖形界面來訪問Windows主機,這裡要注意的是Nautilus只是提供訪問Windows主機的圖形界面,具體的底層操作還是借助於Samba客戶端來完成。 在Gnome桌面環境下,單擊“主菜單→網絡服務器”菜單項,即可用Nautilus文件管理器查看工作組列表。雙擊工作組名稱,即可看到其下的Windows主機。 雙擊其中的某台Windows主機圖標,即可看到該主機的共享文件夾,可以看到這和Windows下的網絡鄰居幾乎一樣。 由於Nautilus本身就是Red Hat Linux的文件管理器,所以我們可以任意往Windows共享目錄裡拷貝文件、刪除文件、創建目錄等等(對於windows 2000/XP主機還需要考慮該共享資源的權限設置)。 3.Windows主機訪問Linux主機 要想讓Windows宿主機能夠訪問Linux虛擬機,就必須在Linux虛擬機上啟動Samba服務。在啟動之前,還需要對Samba服務的屬性進行配置,例如指定Linux虛擬機的共享目錄、所在的工作組名稱等。 (1)配置Samba服務器 在以前版本的Red Hat Linux,我們必須直接修改Samba配置文件smb.conf,或者使用SWAT對Samba進行全方位的設置。Red Hat Linux 9.0新引入了一個圖形化的Samba服務器配置工具,可以讓我們很方便地對Samba服務器進行配置。以root用戶身份登錄系統,單擊“主菜單→系統設置→服務器設置→Samba服務器”菜單項,即可打開Samba服務器配置對話框。也可以在終端命令窗口輸入“redhat-config- samba”,來訪問Samba服務器配置對話框。 首先對Samba服務器的基本設置和安全選項進行配置,單擊配置對話框上的“首選項→服務器設置”菜單項,即可打開服務器設置對話框。 基本設置:在對話框的“基本”標簽頁,我們可以指定Linux主機所在的工作組名稱,需要注意的是,此處的工作組名稱不一定非得與Windows主機所在的工作組名稱一致。 安全設置:然後進行Samba服務器安全設置,這裡一共有4個選項。 “驗證模式”代表如果Windows主機不是位於NT域裡,此處應該選擇“共享”驗證模式,這樣只有在連接Samba服務器上的指定共享時才要求輸入用戶名、密碼;“驗證服務器”代表對於“共享”驗證模式,無需啟用此項設置;“加密口令”選項應該選擇“是”,這樣可以防止黑客用嗅探器截獲密碼明文;“來賓賬號”代表當來賓用戶要登錄入 Samba 服務器時,他們必須被映射到服務器上的某個有效用戶。選擇系統上的現存用戶名之一作為來賓Samba賬號。當用戶使用來賓賬號登錄入 Samba 服務器,他們擁有和這個用戶相同的特權。 添加共享目錄:單擊Samba配置對話框工具欄上的“增加”按鈕。在打開的對話框中的“基本”標簽頁上,指定(共享)目錄為某個存在的目錄,例如可以指定/tmp,再指定該目錄的基本權限是只讀還是讀/寫。在“訪問”標簽頁上,可以指定允許所有用戶訪問、或者只允許某些用戶訪問。 (2)啟動Samba服務器 打開終端命令窗口,輸入“/sbin/service smb start”命令,即可出現以下提示信息,表示Samba服務已經啟動。 # /sbin/service smb start 啟動SMB 服務 [確定] 啟動NMB 服務 [確定] 接下來在Windows裡打開“網絡鄰居”,就可以看到我們剛才設置的Samba服務器了!