歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Linux資訊 >> 更多Linux

Linux各種服務器的架設

  剛才有空,找了幾篇文章,沒試過,大家作參考。 如果已貼過,幫忙刪掉。 Linux各種服務器的架設1 服務器架設 第一章 架設WWW服務器 Internet下最熱的是WWW服務, 最常用的軟件是Apache軟件,Apache的主要特征是: ¨ 可以運行上所有計算機平台; ¨ 支持最新的HTTP 1.1協議; ¨ 簡單而強有力的基於文件的配置; ¨ 支持通用網關接口CGI; ¨ 支持虛擬主機; ¨ 支持HTTP認證; ¨ 集成Perl腳本編程語言; ¨ 集成的代理服務器; ¨ 具有可定制的服務器日志; ¨ 支持服務器端包含命令(SSI) ¨ 支持安全Socket層(SSL) ¨ 用戶會話過程的跟蹤能力; ¨ 支持FastCGI; ¨ 支持Java Servlets。 Orbita Linux 3.0(英文版)自帶的Apache軟件包采用最新版本:1.3.19-5。傳統上Apache從三個文件中讀取服務器運行配置,都存放在 /etc/httpd/conf 路徑下,這三個文件是Access.conf、httpd.conf和srm.conf。由於Orbita Linux 3.0(英文版)采用的是目前最穩定的Apache版本,服務器運行配置只存儲在一個文件中----httpd.conf文件。其他文件仍然存在,但是只包含注釋,告訴用戶該文件只是由於歷史原因而保留,所有的配置已放入httpd.conf文件。 首先,介紹一下 # 的用法。# 在配置文件中處於一行的開頭,表示該行為注釋,不參與執行。如果你希望使用某個被注釋掉的參數,就必須將其行首的 # 去掉。 編輯文件httpd.conf,查看設置參數: (1)以下參數定義了httpd服務器的一般屬性、端口號(port)、執行者的身份等   ServerType:有standalone 和inetd兩個值可供選擇。這是要你選擇你的Server是單獨啟動(standalone),還是借由互聯網絡伺服程序inetd來啟動。一般我們默認使用單獨啟動就行了。如果你對 ARPA Berkeley Services 不是很了解的話,請不要隨意更改。   Port:分配給你的服務器的端口號。ServerType為standalone時一般都設成80。當然,如果你需要也可以設置成其它的port,但必須小於1024。倘若你分配了一個大於1024的端口號給Web Server,你就必須在你的URL後面跟上端口號才能訪問到你的頁面。比如你分配給你的服務器的端口號是8080,那麼你訪問時需要輸入http://yourdomain:8080。   ServerAdmin:服務器管理員的E-mail 地址,默認的是root@localhost,你可以改為你自己的E-mail地址。   ServerRoot:存放服務器的設置文件、出錯文件和記錄文件的目錄。   BindAddress:允許連接到你的服務器上的虛擬主機的IP地址。你可以設置為一個IP地址或用 * 來表示網絡上的所有虛擬主機。   ErrorLog:存放服務器出錯信息的文件。   TransferLog:用來存放已傳輸過的文件(只包含文件名)的記錄文件。   PidFile:指定存放httpd進程號的文件。   ScoreBoardFile :記錄進程信息的文件。   ServerName:定義服務器的hostname,比如www.computer.swnu.edu.cn 。如果你的機子沒有固定的IP,那就不用寫了。   Timeout:傳輸或接收的延時。大於這個時間服務器會自動斷開鏈接。   KeepAlive:是否讓你的服務器支持斷點續傳功能,可以選 on 或者 off。   MaxKeepAliveRequests:設置續傳功能的數目。內置設成最多100,如果設成0就是不支持續傳功能。當然,數目設得越多就會浪費更多的硬盤空間。   KeepAliveTimeout:等待下一個請求的時間,如果使用者超過這個時間還沒有向你的服務器發出要求,則它就不能再續傳了。同樣的,秒數設得越大硬盤中的垃圾就會越多。


  MaxClients:允許的最大客戶個數,默認的是150。你不必擔心設得過高會浪費CPU、內存資源,因為Apache會周期性地檢查目前Server的load狀態,以調整目前應該運行幾個process。   (2)以下參數主要是用來指定你的文檔的位置   DocumentRoot:指定你(root)存放Html文件的路徑,一般用默認值就行了。比如,你設置的DocumentRoot是/home/httpd/html,服務器的地址是202.98.32.96,則在URL中輸入http://202.202.98.96所看到的文件就?...械膇ndex.html。   UserDir:定義使用者存放html文件的路徑。如果你有一個用戶的主目錄為 /home/wjq ,當在URL中輸入http://yourdomain/~wjq時,系統就會...r所指定的目錄。   DirectoryIndex:用來定義別人連入時所看到的第一個文件,一般都為index.html。   ScriptAlias:定義存放CGI的路徑。比如你設置為 ScriptAlias /cgi-bin/ /home/httpd/cgi-bin/,那麼當有人連到你的頁面時,服務器就到/home/httpd/cgi-bin/路徑下去找尋CGI然後執行,而其顯示的路徑卻是Alias的路徑/cgi-bin/。   AddHandler:用來定義CGI的格式,約定俗成以 .cgi 結尾的文件為CGI文件。   如果你想運行更多格式的HTML文件,那就可以按需要把下面幾個參數前的#去掉。   AddType text/html .shtml AddHandler Server-parsed.shtml:允許使用Server-parsed HTML格式的文件的文件(.shtml)。   AddHandler imap-file map:允許頁面有imagemap。   AddHandler type-map var:允許運行 map 格式的html語法。     (3)以下主要是設置目錄的基本存取權限,以及規范遠端機器是否能連接到你的WWW服務器的相關設置   Options Indexes IncludesNOEXEC FollowSymLinks   AllowOverride None   order allow,deny   allow from all   這部分是以開頭,以結束的。其中開頭的部分表示下面的設定是針對/home/httpd/html目錄的。Options 用於定義在DocumentRoot裡的文件所能執行的操作,這一命令有很多的參數,各參數的功能如下:   None:表示頁面除了看之外不能做任何事。   All:允許進行除看動畫、聽音樂之外的任何操作。   ExecCGI:開啟執行CGI程序的功能。   eXPlicitly:允許看動畫或是聽音樂之類的操作。   FollowSymLinks:開啟一個動態的鏈接,當有客戶訪問到該目錄時會自動的鏈接到另一個相關的目錄中去。   Indexes:如果在目錄中沒有找到index.html文件,就顯示文件列表。   而後是AllowOverride參數,該參數是設定訪問控制的,其後可跟Allow、None、FileInfo、AuthConfig、Limit等選項,不過一般都設為 None ,表示任何人都可以閱讀DocumentRoot內的文件。   order allow,deny 就是定義有allow(允許)和deny(不允許)兩種命令模式,其後的allow from all表示允許網絡上的所有計算機連接到這台服務器。同樣的,你也可以做以下定義:   order allow,deny   deny from all   allow from 202.98.32.96   這就表示只有202.98.32.96的計算機允許連接到你的服務器。   以此類推,我們還可以對其它目錄進行設置。下面給出的就是對/home/httpd/cgi-bin 目錄進行設置的范例:   AllowOverride None   Options ExecCGI   它表示不能對/home/httpd/cgi-bin 進行訪問控制,但允許執行CGI程序,這就表明這是一個用來存放CGI程序的目錄。   通常,這三個配置文件的參數的默認值是不用更改的,但是如果你同時在一台機子上開了幾個Web Server時就要注意:你必須給每一個Web Server分配一個不同的port號並分別指定他們的errorlog文件和pidfile文件。     至此,我們已經配置完了Apache服務器,接下來就是要重新啟動httpd了。 重新啟動httpd,完成服務器的配置   進入Linux終端模式,執行/etc/rc.d/init.d/httpd stop終止httpd 進程,當然你也可以通過查看其pid號碼將其kill;然後執行/etc/rc.d/init.d/httpd start重新啟動剛才配置好的httpd,再進入X windows並啟動Netscape,在URL中輸入localhost或本機的IP地址,如果沒有什麼意外你應該看到一個關於Apache的頁面。這時,你可以將自己的主頁拷貝到/home/httpd/html/目錄中,別人就可以通過浏覽器訪問到你的主頁了。 這樣,一個功能強大的服務器就算架設完成了。 第二章 架設FTP和 TELNET 服務器

  Orbita Linux 3.0(英文版)和以往的版本有一個明顯的區別,就是用xinetd.conf代替原來的inetd.conf,並且直接使用了 firewall服務。出於系統整體安全性增強的考慮,Orbita Linux 3.0(英文版)在默認安裝時沒有啟動老版本中大家比較熟悉的ftp, telnet等服務。 xinetd與inetd的區別: xinetd的默認配置文件是/etc/xinetd.conf,它看起來盡管和老版本的/etc/inetd.conf完全不同,其實只是 以一個腳本的形式將inetd中每一行指定的服務擴展為一個/etc/xinetd.d/下的配置文件。其格式為: service service-name { Socket_type = xxx; //TCP/IP socket type,sUCh as stream,dgram,raw,.... protocol = xxx; //服務使用的協議 Server = xxx; //服務daemon的完整路徑 Server_args = xxx; //服務的參數 Port = xxx; //指定服務的端口號 Wait = xxx; //是否阻塞服務,即單線程或多線程 User = xxx; //服務進程的uid Group = xxx; //gid REUSE = xxx; //可重用標志 Disabled = yes/no; //是否禁用 ...... } 下面說說怎樣使FTP服務與TELNET服務起來: 其實很簡單,找到/etc/xinetd.d/下與它們有關的文件,FTP是wu-ftpd文件,TELNET是telnet文件。編輯它們。把Disabled = yes,改為Disabled=no即可。 然後,重新啟動服務 #/etc/rc.d/init.d/xinetd restart 或:#killall -HUP xinetd 。 這時候,telnet localhost和ftp localhost都應該沒有問題了。 但是,從局域網內的其他機器仍然可能使用不了ftp和telnet服務。這是因為firewall在作祟。這次的firewall其實就是ipchains,配置文件在/etc/sysconfig/ipchains: # Firewall configuration written by lokkit # Manual customization of this file is not recommended. # Note: ifup-post will punch the current nameservers through the # firewall; such entries will *not* be listed here. :input ACCEPT :forward ACCEPT utput ACCEPT -A input -s 0/0 -d 0/0 -i lo -j ACCEPT -A input -p tcp -s 0/0 -d 0/0 0:1023 -y -j REJECT //******** -A input -p tcp -s 0/0 -d 0/0 2049 -y -j REJECT -A input -p udp -s 0/0 -d 0/0 0:1023 -j REJECT //******** -A input -p udp -s 0/0 -d 0/0 2049 -j REJECT -A input -p tcp -s 0/0 -d 0/0 6000:6009 -y -j REJECT -A input -p tcp -s 0/0 -d 0/0 7100 -y -j REJECT 出於安全,ipchains把0-1023端口的入口全部封閉了。所以必須將它們打開。 把上面尾部帶********標記的行中的REJECT修改為ACCEPT,然後重新啟動計算機就行。 (當然你也可以在防火牆的配置中設置--鍵入setup命令,選擇firewall configuration 選項) 你可以在機器啟動時就加入FTP服務與TELNET服務。(setup命令中修改) ftp登錄畫面 telnet登錄畫面 Ftp服務是Internet上的標准服務之一,用來在網絡上傳輸文件。Orbita Linux用wu-ftpd2.6來實現該服務. 提供三種ftp登錄形式: 1、anonymous ftp 2、real ftp 3、guest ftp FTP服務程序由/etc/inetd.conf文件進行控制,而且每當有人連接ftp端口時,它便自動調用(如,端口21和FTP相關聯)。當檢測到某個連接時,ftp守護程序(/usr/sbin/in.ftpd)便被調用,從而開始會話。默認的ftp配置已是比較安全,我們還可以通過編輯一些ftp 相關文件調整訪問權限: /etc/ftpaccess /etc/ftpconversions /etc/ftphosts /var/log/xferlog 利用這些文件,可以控制哪些人、在什麼時間、從什麼地點可以連接到服務器,並且可以建立一個審查跟蹤文件,對他們連接後所做的工作進行檢查。 /etc/ftpaccess文件是這些文件中最重要的一個,因為它包括大部分的配置選項;然而,錯誤地配置其它文件中的任何一個,都可能導致服務被拒絕。 2 關於/etc/ftpaccess的設置 這個配置文件是FTP服務器上最重要的配置文件,它直接關系到你的FTP服務器能否正常工作,還有許多權限上的設置。下面是一個典型的配置實例。

loginfails 3 class local real * class remote anonymous guest * limit remote 100 Any /etc/ftpd/toomany.msg message /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 protected] email [email protected] 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 表示只要輸入的密碼中含有字?quot;@"就可以登錄; 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 protected] email [email protected]:這裡僅是一個示例,實際上可 以包含多個符合規范的E-Mail地址。   20. 格式:deny [IP地址/域名] [說明文件] 功能:這個設置可以限制哪一些IP地址或域名的用戶無法登入FTP服務器。 實例:deny *.com.tw /etc/ftpd/deny.msg:設置凡是域名是以".com.tw"結束的域名,都禁止其訪問。 而將/etc/ftpd/deny.msg的內容顯示給用戶看。   2 設置/etc/ftpuser , 禁止某些用戶登錄 有時我們需要禁止一些用戶使用FTP服務。其實這個設置是十分簡單的,只需要將要禁止的用戶帳號寫入文件/etc/ftpuser中。由於從系統的安全考慮,一般我們是不希望權限過大的用戶和一些與命令名相同的用戶進入FTP服務器。所以在缺省的配置中,一般以下用戶已經被列入了"黑名單"。 root uucp news bin adm nobody lp sync shutdown halt mail   2 設置/etc/ftphosts

禁止某些來自指定機器上的登錄如果你需要拒絕來自某些主機的登錄,一種方法就是在 /etc/ftpaccess中設置deny命令,另一種更加簡單的方法就是在/etc/ftphosts中寫入你要禁止的主機的IP地址或域名。   2 使新的配置生效 到此為止,我們已經能夠根據自己的需要對FTP服務器配置進行必要的修改和調整。而讓我們重新配置後,就必須使其生效。一般的,對/etc/ftpaccess的配置是直接作用於設置後的下一次FTP服務進程。而其它的則要對inetd進程重新啟動。 第三章 架設E-mail服務器   Sendmail是由Eric Allman編寫的程序,後來經過很多人的貢獻,才成為現在的版本。目前幾乎所有的Unix/Linux系統都使用sendmail。sendmail的功能非常強大,Orbita Linux 3.0(英文版)安裝了Sendmail軟件包版本為目前最新的8.11.2-14。Sendmail的強大在於它的靈活性,這種靈活性來源於它的配置文件sendmail.cf。 Sendmail.cf文件具有三方面的功能。 第一、它可以為sendmail設置環境,從而把用戶想要設置的選項以及sendmail需要使用的文件和數據庫的位置通知給sendmail。 第二、配置文件可以定義sendmail用來確定把郵件發送到哪裡的郵件發送器。 第三、配置文件可以指定用來改寫寄件人和收件人的地址以及選擇郵件發送器的規則集。例如,0號規則集用來選擇郵件發送器。 配置說明 sendmail.cf是Sendmail的配置文件,它全權決定了Sendmail的屬性。這個文件定義郵件服務器為哪個域工作。其中的內容為特定宏,大多數人對它都抱有恐懼心理,因為文件中的宏代碼實在是太多。sendmail.cf通常是由一個以mc結尾的文件編譯產生。如Redhat自帶一個 redhat.mc,用戶可以自己修改其中的一些設置,使之適合自己。sendmail.mc 文件內容如下: divert(-1) dnl This is the macro config file used to generate the /etc/sendmail.cf dnl file. If you modify thei file you will have to regenerate the dnl /etc/sendmail.cf by running this macro config through the m4 dnl preprocessor: dnl m4 /etc/sendmail.mc > /etc/sendmail.cf dnl You will need to have the Sendmail-cf package installed for this to work. include(`/usr/lib/Sendmail-cf/m4/cf.m4') define(`confDEF_USER_ID',``8:12'') OSTYPE(`Linux') undefine(`UUCP_RELAY') undefine(`BITNET_RELAY') define(`confAUTO_REBUILD') define(`confTO_CONNECT', `1m') define(`confTRY_NULL_MX_LIST',true) define(`confDONT_PROBE_INTERFACES',true) define(`PROCMAIL_MAILER_PATH',`/usr/bin/procmail') FEATURE(`smrsh',`/usr/sbin/smrsh') FEATURE(`mailertable',`hash -o /etc/mail/mailertable') FEATURE(`virtusertable',`hash -o /etc/mail/virtusertable') FEATURE(redirect) FEATURE(always_add_domain) FEATURE(use_cw_file) FEATURE(local_procmail) MAILER(smtp) MAILER(procmail) FEATURE(`access_db') FEATURE(`blacklist_recipients') dnl We strongly recommend to comment this one out if you want to protect dnl yourself from spam. However, the laptop and users on computers that do dnl not hav 24x7 DNS do need this. FEATURE(`accept_unresolvable_domains') dnl FEATURE(`relay_based_on_MX') 其中注釋或刪除DAEMON_OPTIONS('Port=smtp,Addr=127.0.0.1, Name=MTA')行。 編譯sendmail.mc以產生需要的sendmail.cf文件:# m4 /etc/sendmail.mc > /etc/mail/sendmail.cf。 生成sendmail.cf以後,編輯sendmail.cf。在文件中,查找DS,在其後加入郵件服務器名、域名,這樣可以保證當你以[email protected][email protected]發信時,用戶都可以收到,如下所示: # Alias for this host Cw mail.domain.com domain.com 然後,就可以啟動Sendmail了:# /usr/sbin/Sendmail -bd -q20m。 Sendmail 8.9.x以後的版本,在缺省情況下,都默認不對未驗證的計算機進行轉發(Relay),所以如果要為本機以外的其他計算機進行郵件轉發,這時,應該在相應的配置文件中明確告訴Sendmail要對哪幾個主機進行轉發。如果不考慮驗證,對任何主機都進行轉發的話,可以在sedmail.mc文件中加入一行:FEATURE(promiscuous_relay)。

不過,如果你的計算機是放在公網上的話,建議你不要這樣做,因為這樣做了以後,任何人都可以使用你的計算機進行轉發郵件了,特別是一些別有用心的人或一些兜售客(spammer,垃圾郵件制造者)會利用你的郵件服務器的轉發功能亂發大量的垃圾郵件。 通常情況下,Sendmail不會為郵件服務Relay信息,這樣可以防止一些有惡意的人利用別人的郵件服務器亂發郵件。缺省情況下,Sendmail關閉了Relay功能。如果你要為別的服務器Relay郵件,可以進行如下設置--在access文件中加入要為其Relay信件的機器,格式為: hostname RELAY ipaddress RELAY 如果要為一個域內多個機器Relay信件,則可以在/etc/mail/access文件中直接加入其子網IP或域名,如下所示: # Check the /usr/share/doc/sendmail-8.11.2/README.cf file for a description # of the format of this file. (search for access_db in that file) # The /usr/share/doc/sendmail-8.11.2/README.cf is part of the sendmail-doc # package. # # by default we allow relaying from localhost... localhost.localdomain RELAY localhost RELAY 127.0.0.1 RELAY 10.1.8.2 RELAY orbita.com RELAY dns.orbita.com RELAY 此文件惟一決定了哪些機器、哪個域可以使用郵件服務器轉發郵件。完成後需要進行編譯:#makemap hash access.db < access。 其他配置的文件關系不是很大,可以暫時使用缺省安裝的內容。 命令:/etc/rc.d/init.d/sendmail startrestar 至此,Sendmail應該可以正常工作了。 接下來是測試郵件服務器的郵件發送功能,測試時,首先對本地用戶進行測試,這一步主要測試郵件與名稱查詢服務,如:域為orbita.com,測試時,郵件服務器上發送郵件給[email protected]用戶,再以該用戶接收發送郵件。如果正常,我們再從局域網上的另一台機器使用Outlook等郵件客戶端對服務器進行測試。主要是測試smtp功能。我們在windows客戶機上啟動Outlook軟件,設置帳號, 下一步,添加新郵件 下一步,輸入電子郵件地址, 下一步,輸入pop3和smtp服務器, 下一步,輸入帳號和密碼, 下一步,電擊"完成"按鈕就可以了。 下面我們就可以使用Outlook接收發送郵件了 至此,Sendmail設置以及測試基本完成。 第四章 架設DNS服務器     DNS就是Domain Name System,它的功用是把計算機的名稱轉換為IP 地址。DNS的使用簡化了系統管理員及客戶對主機文件的配置,它能夠把形如www.orbita.com這樣的域名轉換為10.1....S服務器。Orbita Linux 3.0(英文版)采用最新穩定的bind9.1.0-10軟件,在服務端由named這個守護進程來監聽端口,提供響應。在默認的設置中,加入了SSL支持。 當bind軟件安裝後,會產生幾個固定文件,分為兩類,一類是配置文件在/etc目錄下,一類是dns記錄文件在/var/named目錄下。如, /etc/named.conf文件內容來決定要維護的域名資料,定義好/etc/named.conf設置文件後,接下來必須在系統上建立file命令所指定的數據庫文檔,在數據庫文檔中設置SOA記錄,NS記錄,MX項目,A記錄和CNAME記錄等等,加上其他的相關文件,共同設置DNS服務器。 下面是配置說明: 服務器機器是一台Orbita Linux 3.0(英文版)的電腦,IP是10.1.8.21,主機名是dns.orbita.com,負責解析orbita.com這個域。 配置文件如下: *************************************************************************** FILE Name: /etc/hosts AUTHOR: Smith Pan BUILD Time:8/9/2001 *************************************************************************** # Do not remove the following line, or various programs # that require network functionality will fail. 127.0.0.1 localhost.localdomain localhost 10.1.8.21 dns.orbita.com dns *************************************************************************** FILE Name: /etc/resolv.conf AUTHOR: Smith Pan BUILD Time:8/9/2001 *************************************************************************** search nameserver 127.0.0.1

nameserver 10.1.8.21 nameserver 202.96.128.68 *************************************************************************** FILE Name: /etc/named.conf AUTHOR: Smith Pan BUILD Time:8/9/2001 *************************************************************************** // generated by named-bootconf.pl options { directory "/var/named"; /* * If there is a firewall between you and nameservers you want * to talk to, you might need to uncomment the query-source * directive below. Previous versions of BIND always asked * questions using port 53, but BIND 8.1 uses an unprivileged * port by default. */ // query-source address * port 53; }; // // a caching only nameserver config // zone "." IN { type hint; file "named.ca"; }; zone "localhost" IN { type master; file "localhost.zone"; allow-update { none; }; }; zone "0.0.127.in-addr.arpa" IN { type master; file "named.local"; allow-update { none; }; }; zone "8.1.10.in-addr.arpa" { type master; file "8.1.10.in-addr.arpa.zone"; }; zone "orbita.com" { type master; file "orbita.com.zone"; }; key "key" { algorithm hmac-md5; secret "rMLOQQ0nztmLZQnvRAKyMyZPfOK0yTSvGQofyUDOK0jGzbjEOUHoNwEaCvzn"; }; *************************************************************************** FILE Name: /var/named/orbita.com.zone AUTHOR: Smith Pan BUILD Time:8/9/2001 *************************************************************************** $TTL 8640 @ IN SOA orbita.com. master.dns.orbita.com. ( 6;serial 2880;refresh 720;retry 60480;expire 8640;ttl ) @ IN NS dns.orbita.com. dns IN MX 15 dns.orbita.com. @ IN MX 10 orbita.com. www IN A 10.1.8.21 dns IN A 10.1.8.21 @ IN A 10.1.8.21 *************************************************************************** FILE Name: /var/named/8.1.10.in-addr.arpa.zone AUTHOR: Smith Pan BUILD Time:8/9/2001 *************************************************************************** $TTL 8640 @ IN SOA orbita.com. root.localhost ( 6;serial 2880;refresh 720;retry 60480;expire 8640;ttk ) @ IN NS dns.orbita.com. dns IN MX 15 dns.orbita.com. *************************************************************************** 配置完以上文件後,使用如下命令重啟DNS服務: /etc/rc.d/init.d/named restart 我們在局域網內使用浏覽器查看這台機器,就不用再敲10.1.8.21了,只要輸入名字就可以了。 Linux各種服務器的架設2 第五章 架設Squid服務器 1、代理服務器簡介 代理服務器能夠讓多台沒有IP地址的電腦使用其代理功能高速、安全地訪問互聯網資源。當代理服務器客戶端發出一個對外的資源訪問請求,該請求先被代理服務器識別並由代理服務器代為向外請求資源。由於一般代理服務器擁有較大的帶寬,較高的性能,並且能夠智能地緩存已浏覽或未浏覽的網站內容,因此,在一定情況下,客戶端通過代理服務器能更快速地訪問網絡資源。代理服務器應用的常見例子:擁有上百台電腦的局域網通過一台能夠訪問外部網絡資源的代理服務器而也能訪問外部互聯網。OrbitaLinux使用squid軟件來架設代理服務器,版本為2.3.STABLE4-10,支持FTP、gopher和HTTP協議。和一般的代理緩存軟件不同,Squid用一個單獨的、非模塊化的、I/O驅動的進程來處理所有的客戶端請求。

Squid將數據元緩存在內存中,同時也緩存DNS查詢的結果,除此之外,它還支持非模塊化的DNS查詢,對失敗的請求進行消極緩存。Squid支持 SSL,支持訪問控制。由於使用了ICP(輕量Internet緩存協議),Squid能夠實現層疊的代理陣列,從而最大限度地節約帶寬。 Squid由一個主要的服務程序squid,一個DNS查詢程序dnsserver,幾個重寫請求和執行認證的程序,以及幾個管理工具組成。當Squid 啟動以後,它可以派生出預先指定數目的dnsserver進程,而每一個dnsserver進程都可以執行單獨的DNS查詢,這樣一來就大大減少了服務器等待DNS查詢的時間。 2、安裝Squid Proxy Server 1、獲取軟件 你可以通過以下途徑獲取該文件: 從Squi官方站點http://www.squid-cache.org下載該軟件。 從你的linux發行版中獲取該軟件: RPM包的安裝 進入/mnt/cdrom/orbita/RPMS目錄並執行以下命令: #rpm -ivh squid-2.2.STABLE4-8.i386.rpm。 當然,我們也可以在開始安裝系統的過程中安裝該軟件。 源代包的安裝 從http://www.squid-cache.org下載squid...E2-src.tar.gz。 將該文件拷貝到/usr/local目錄。 解開該文件tar xvzf squid-2.3.STABLE2-src.tar.gz。 解開後,在/usr/local生成一個新的目錄squid-2.3.STABLE2,為了方便用命令mv將目重命名為squid : mv squid-2.3.STABLE2 squid 。 進入squid目錄,執行 ./configure 可以用 /configure -prefix = /directory/you/want 指定安裝目錄默認安裝目錄為/usr/local/squid。 執行make all命令,執行make install命令。 安裝結束後,Squid的可執行文件在安裝目錄的bin子目錄下,配置文件在etc子目錄下。 3、配置Squid Orbita Linux 3.0(英文版)中squid的配置文件是/etc/squid/squid.conf,在服務器端修改以下文件內容: http_port 3128 # 默認代理服務器的端口 cache_mem 24 MB # 在內存中開辟出緩沖區 cache_dir /var/spool/squid 2048 16 256 # 開辟硬盤緩沖區 # 各種LOG文件(可以只要access.log) cache_access_log /var/log/squid/access.log cache_log /var/log/squid/cache.log cache_store_log /var/log/squid/store.log pid_filename /var/run/squid.pid # 也可以不要這個進程文件 #自己的DNS服務器 dns_nameservers 10.1.8.2 # 這些都是系統缺省的,核對就行了。如果要設置其他可以看注釋,很簡單的 acl all src 0.0.0.0/0.0.0.0 acl manager proto cache_object acl localhost src 127.0.0.1/255.255.255.255 acl allowed_hosts src 10.1.0.0/255.255.255.0 acl SSL_ports port 443 563 acl Safe_ports port 80 21 443 563 70 210 1025-65535 acl CONNECT method CONNECT http_access allow manager localhost http_access deny manager http_access deny !Safe_ports http_access deny CONNECT !SSL_ports http_access allow localhost http_access deny all # 改為 http_access allow all 允許所有機器存取 icp_access allow all miss_access allow all 設置好以後記得啟動SQUID讓設置生效 /etc/rc.d/init.d/squid start # 可以用的參數 startstoprestart 4、以下是針對浏覽器的基本配置:    Netscape: 從Edit菜單項中選擇Preferences項。在Advanced中Proxies頁,點擊按鈕進入Proxy配置手冊,然後再點擊View按鈕。對每項你的Squid服務器支持的協議項(默認有HTTP,FTP和gopher等)中填入Squid服務器的主機名或IP地址,同時在Port欄中填入 Squid服務器的HTTP端口號(默認為3128)。對你的Squid不支持的協議,可以讓這些欄空著。 接下來 設置完成後,就可以在linux客戶端通過linux代理服務器上網了。  IE: 在工具菜單項中選擇Internet選項,然後點擊連接頁,再按局域網設置按鈕選擇使用代理服務器選項,進入高級項目編輯。然後可以看到與Netscape代理服務器設置類似的界面,按照前面所述的方法分別填入相應項即可。 單擊局域網設置: 接下來,就可以用windows通過linux代理服務器上網了。 第六章 架設Samba服務器 1、何謂samba服務器 Linux如何跟windows95/98/NT相連呢?我們能在網絡鄰居上訪問到linux主機嗎?linux下的Samba為我們做了一切,它在windows和linux 之間起到了一個連接的作用。你可以很方便的通過網上鄰居來訪問到linux的文件和打印機服務。Samba實際上是一組程序,它們讓你的linux機器懂得SMB的通訊協議

Copyright © Linux教程網 All Rights Reserved