Linux系統(tǒng)應用基礎教程 第3版 課件 第10、11章 常用服務器的構建與配置、系統(tǒng)內(nèi)核的裁剪與編譯_第1頁
Linux系統(tǒng)應用基礎教程 第3版 課件 第10、11章 常用服務器的構建與配置、系統(tǒng)內(nèi)核的裁剪與編譯_第2頁
Linux系統(tǒng)應用基礎教程 第3版 課件 第10、11章 常用服務器的構建與配置、系統(tǒng)內(nèi)核的裁剪與編譯_第3頁
Linux系統(tǒng)應用基礎教程 第3版 課件 第10、11章 常用服務器的構建與配置、系統(tǒng)內(nèi)核的裁剪與編譯_第4頁
Linux系統(tǒng)應用基礎教程 第3版 課件 第10、11章 常用服務器的構建與配置、系統(tǒng)內(nèi)核的裁剪與編譯_第5頁
已閱讀5頁,還剩129頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

第十章常用服務器的構建與配置服務器(英文名稱server),也稱伺服器。指一個管理資源并為用戶提供服務的計算機軟件,通常分為文件服務器、數(shù)據(jù)庫服務器、DNS服務器和Web服務器等。運行以上軟件的計算機或計算機系統(tǒng)也被稱為服務器。10.1FTP服務器

文件傳輸是指用戶通過網(wǎng)絡從遠程計算機上下載或上傳文件。例如,用戶在網(wǎng)絡上找到自己需要的資料、免費的軟件等,這時可以下載它們到本地計算機的磁盤上;或者用戶有一些文件需要發(fā)給其他主機的用戶,這時可以將這些文件上傳到指定的計算機。FTP便是從事文件傳輸?shù)挠行Чぞ摺?0.1.1FTP基本原理

FTP是由它所使用的網(wǎng)絡協(xié)議來命名的,即文件傳輸協(xié)議(FileTransferProtocol);它是Internet上的一個主要功能,其主要作用就是將文件從一臺計算機傳遞到另一臺計算機。FTP是一種客戶機/服務器(client/server)模式的應用,在客戶機和服務器之間使用TCP協(xié)議建立連接。FTP的組成及結構如圖10-1所示。圖10-1FTP組成及結構FTP客戶機FTP服務器TCP/IP操作系統(tǒng)操作系統(tǒng)客戶機本地文件服務器遠程文件

在FTP系統(tǒng)中,客戶機與服務器之間建立的是雙重連接,即一個是控制連接,另一個是數(shù)據(jù)連接。服務器的守護進程在21號端口監(jiān)聽是否有客戶機的連接請求,如果有連接請求,則服務器的守護進程將創(chuàng)建一個子進程(即服務器的控制進程),與客戶機的控制進程建立起控制連接,該進程等待來自客戶機的命令,而服務器的守護進程則繼續(xù)監(jiān)聽21號端口看是否有新的連接請求到來。如果客戶機在控制連接上向服務器的控制進程發(fā)出傳送數(shù)據(jù)的命令,則在服務器上將建立一個服務器的數(shù)據(jù)傳輸進程,并向客戶機請求建立數(shù)據(jù)連接,當該連接成功建立后通過它來傳輸數(shù)據(jù);當數(shù)據(jù)傳輸完成后,數(shù)據(jù)傳輸進程自動消亡,服務器控制進程等待用戶新的數(shù)據(jù)傳輸命令或終止連接的命令。

從圖10-1可以看到,F(xiàn)TP不管兩臺計算機的所處的位置如何,也不管兩臺計算機硬件的體系結構和軟件的操作系統(tǒng)有何不同;只要它們都遵循FTP協(xié)議,且都能連接到Internet,那么就可以使用FTP來傳輸文件。10.1.2FTP服務器的安裝與配置文件

在CentOS7Linux操作系統(tǒng)安裝時,若未選擇相應的FTP軟件包,則可以在系統(tǒng)啟動后執(zhí)行yum命令進行安裝,執(zhí)行的命令為: #yum–yinstallvsftpd

若安裝過,則執(zhí)行該命令時顯示如圖10-2所示。圖10-2安裝vsftpd接著用yum命令安裝ftp軟件包,執(zhí)行的命令為: #yum–yinstallftp若未安裝過,則執(zhí)行該命令時顯示如圖10-3所示。圖10-3安裝ftp系統(tǒng)的FTP服務是vsftpd,其安裝時的日志文件保存在/var/log目錄的yum.log文件中。用戶如果需要對FTP的服務進行配置,可以修改/etc/vsftpd目錄下的vsftpd.conf、ftpusers和user_list文件來實現(xiàn)。如果用戶安裝了其它的FTP服務器軟件,如wu-ftpd等也有相應類似的配置文件。 1.vsftpd.conf文件

這個文件中有許多配置項被注釋(用#字符),用戶如果需要可以打開;但有些選項

關系到系統(tǒng)的安全,在確定打開前一定要仔細閱讀其說明。該文件主要內(nèi)容如下:anonymous_enable=YES #允許使用匿名登錄local_enable=YES #允許本地用戶登錄write_enable=YES #允許執(zhí)行FTP的寫命令local_umask=022 #本地掩碼設置為022#anon_upload_enable=YES #本注釋取消則允許匿名登錄用戶上傳文件#anon_mkdir_write_enable=YES#本注釋取消則允許匿名登錄用戶創(chuàng)建目錄dirmessage_enable=YES #當遠程登錄用戶進入某些目錄時發(fā)送消息xferlog_enable=YES #允許上傳與下載connect_from_port_20=YES #允許ftp-data使用20端口#chown_uploads=YES #本注釋取消則允許由不同的用戶有權匿名上傳文件#chown_username=whoever#xferlog_file=/var/log/vsftpd.log #本注釋取消則允許覆蓋默認目錄下的日志文件xferlog_std_format=YES #允許以xferlog格式保存日志文件#idle_session_timeout=600 #本注釋取消則缺省空閑會話超時值為600#data_connection_timeout=120 #本注釋取消則缺省數(shù)據(jù)連接超時值為120#nopriv_user=ftpsecure #本注釋取消則FTP服務器可以作為一個完全隔離和沒有

特權的用戶#async_abor_enable=YES #本注釋取消則允許異步ABOR請求#ascii_upload_enable=YES #本注釋取消則允許ascii上傳#ascii_download_enable=YES #本注釋取消則允許ascii下載#ftpd_banner=WelcometoblahFTPservice. #本注釋取消則顯示指定的登錄歡迎信息#deny_email_enable=YES #本注釋取消則允許指定一個匿名e-mail地址文件#(缺省的禁止e-mail地址文件)#banned_email_file=/etc/vsftpd.banned_emails#chroot_list_enable=YES #本注釋取消則允許列表文件中的用戶使用chroot命令#(缺省的列表文件)#chroot_list_file=/etc/vsftpd.chroot_list#ls_recurse_enable=YES #本注釋取消則允許在ls命令中使用-R選項pam_service_name=vsftpd #FTP服務器名userlist_enable=YES #允許使用userlist文件listen=YES #允許監(jiān)聽tcp_wrappers=YES #允許由inetd生成的服務提供增強的安全性,當該項啟用

為即等于 yes時vsftp服務器會檢查/etc/hosts.allow和 /etc/hosts.deny文件中的設置以確定是否讓發(fā)起請求的

主機連接到FTP服務器;相當于起到簡單的訪問控制列表的作用

文件中l(wèi)ocal_umask項決定了在FTP狀態(tài)下目錄和文件被創(chuàng)建時得到的初始權限;也就是說當umask=022時新建的目錄權限是755(777-022),文件的權限是644(666-022)。 2.ftpusers文件

這個文件列出了不能用作FTP方式登錄服務器的用戶名列表,其內(nèi)容可能如下:#Usersthatarenotallowedtologinviaftprootbindaemonadmlpsyncshutdownhaltmailnewsuucpoperatorgamesnobody

為了系統(tǒng)安全的原因,不允許root用戶與系統(tǒng)內(nèi)置的賬號作為FTP的登錄用戶。尤其是用root用戶賬號直接登錄可能使得遠程用戶通過口令嘗試的方式也登錄到服務器,則服務器的安全性堪憂;另外,F(xiàn)TP傳送的是沒有經(jīng)過加密的口令,這可能導致不法用戶通過網(wǎng)絡監(jiān)聽工具軟件竊取口令。 3.user_list文件

該文件的內(nèi)容如下:#vsftpduserlist#Ifuserlist_deny=NO,onlyallowusersinthisfile#Ifuserlist_deny=YES(default),neverallowusersinthisfile,and#donotevenpromptforapassword.#Notethatthedefaultvsftpdpamconfigalsochecks/etc/vsftpd.ftpusers#forusersthataredenied.rootbindaemonadmlpsyncshutdownhaltmailnewsuucpoperatorgamesnobodymailnewsuucpoperatorgamesnobody同時userlist_deny選項為“YES”(默認缺?。瑒t該用戶在試圖登錄FTP服務器時,將不能夠登錄,甚至連輸入密碼的提示信息都沒有,直接被FTP服務器拒絕。而如果一個用戶名在ftpusers文件中,同時userlist_deny選項為“YES”,則該用戶在試圖登錄FTP服務器時,將能看到輸入密碼的提示,但即使正確輸入密碼仍然不能登錄FTP服務器。參考示例:

假定ftp服務已開啟,在本機以root身份登錄FTP服務器。執(zhí)行命令:[root@myhost1root]#ftplocalhost系統(tǒng)顯示:Trying::1...Connectedtolocalhost(::1).220(vsFTPd3.0.2)Name(localhost:root):331Pleasespecifythepassword.Password:530Loginincorrect.Loginfailed.ftp>從顯示結果可以看到,以root身份登錄時由于其用戶名的userlist_enable選項為YES,同時root也在ftpusers文件中,且userlist_deny選項為“YES”,則權限禁止連輸入密碼的提示信息都沒有,直接導致登錄失敗。userlist_deny選項和user_list文件一起使用能夠有效地阻止root等系統(tǒng)用戶登錄FTP服務器,從而保證了FTP服務器的分級安全性。10.1.3FTP服務的啟動

當Linux系統(tǒng)安裝完成并啟動時,一般系統(tǒng)為了節(jié)省內(nèi)存和提高啟動速度,默認情況下FTP服務是沒有啟動的。如果需要使用FTP,則必須首先啟動FTP服務。在Linux系統(tǒng)的發(fā)行套件中,F(xiàn)TP服務的名稱是vsftpd,如果用戶不是全部安裝所有的Linux軟件包,則可能需要使用安裝光盤或ISO軟件重新安裝該服務。用戶也可以從網(wǎng)絡上下載其他的FTP軟件,如wu-ftpd、bftpd等。如果用戶已經(jīng)安裝了vsftpd服務,則可以有兩種不同的方法來啟動或停止它。 1.設置自啟動方式在終端窗口的字符界面下,鍵入setup命令,利用上下光標鍵選擇Systemservices菜單項并回車;找到vsftpd服務項,按空格鍵或單擊鼠標左鍵選中該服務項前的復選框。當下次系統(tǒng)啟動時,vsftpd服務將自動被運行。 2.命令行啟動或停止如果需要馬上啟動該服務,不需要重新啟動系統(tǒng),只要執(zhí)行服務啟動命令,例如:[root@localhostroot]#systemctlrestartvsftpd.service

正常情況下系統(tǒng)沒有信息顯示;如果需要停止該服務,只要執(zhí)行停止命令,例如:[root@localhostroot]#systemctlstopvsftpd.service

同樣,正常情況下系統(tǒng)沒有信息顯示。10.1.4文件傳輸命令及用法

在FTP服務啟動后就可以進行文件傳輸了,雖然文件傳輸命令和用法隨著操作系統(tǒng)的不同而不同,但基本的命令結構對各種機器都是大同小異的。以下結合參考示例說明文件傳輸命令的格式和具體用法。10.1.4.1ftp命令

該命令是Internet上的文件傳輸程序。在字符終端窗口的命令行提示符下輸入ftp命令和選項或參數(shù)后即可進入FTP模式,并出現(xiàn)“>”提示符。

命令格式: ftp[-pingvd][host] 或 pftp[-ingvd][host]

其中,ftp或pftp為命令名稱;參數(shù)host為要連接服務器端的IP地址或主機名稱;其他的是命令選項,這些選項可以在命令行中、也可以在命令解釋程序中指定。 命令選項及說明:表10-1ftp命令選項及說明命令選項選項說明-p數(shù)據(jù)傳輸采用被動模式。-i在多文件傳輸中,關閉交互模式的提示信息。-n不使用自動登錄。ftp在啟動時會從.netrc文件中讀取信息,試圖自動登錄指定的遠程計算機系統(tǒng);如果該文件不存在,ftp會放棄自動登錄并詢問用戶賬戶名稱和口令。-g禁止本地主機文件名支持特殊字符的擴充特性。-v顯示ftp命令執(zhí)行的詳細過程。-d允許進行調(diào)試。

進入FTP模式后,可以使用的命令有:! debug mdir sendport site$ dir mget put sizeaccount disconnect mkdir pwd statusappend exit mls quit structascii form mode quote systembell get modtime recv suniquebinary glob mput reget tenexbye hash newer rstatus tickcase help nmap rhelp tracecd idle nlist rename typecdup image ntrans reset userchmod lcd open restart umaskclose ls prompt rmdir verbosecr macdef passive runique ?delete mdelete proxy send

其中,許多命令與命令行模式下的命令相同。如果忘記了這些命令名稱,則在FTP模式下任何時候只要鍵入?命令即可顯示。10.1.4.2參考示例參考示例1:登錄到IP地址為的主機,準備進行文件傳輸。[root@localhost/]#ftpConnectedto().220(vsFTPd3.0.2)Name(:root):zxj331Pleasespecifythepassword.Password:230Loginsuccessful.RemotesystemtypeisUNIX.Usingbinarymodetotransferfiles.ftp>以上顯示的信息中要求用戶輸入所登錄到主機的用戶名和口令,其中斜體字并帶下劃線的部分為用戶輸入的信息(以下同此);登錄成功后顯示ftp提示符。參考示例2:列出登錄主機用戶目錄中的內(nèi)容。ftp>ls227EnteringPassiveMode(192,168,122,1,46,223).150Herecomesthedirectorylisting.-rw-r--r--100162Oct0215:22xjdrwxr-xr-x2100010006Aug1511:01下載drwxr-xr-x2100010006Aug1511:01公共drwxr-xr-x2100010006Aug1511:01圖片drwxr-xr-x2100010006Aug1511:01文檔drwxr-xr-x2100010006Aug1511:01桌面drwxr-xr-x2100010006Aug1511:01模板drwxr-xr-x2100010006Aug1511:01視頻drwxr-xr-x2100010006Aug1511:01音樂226DirectorysendOK.ftp>在ftp提示符下,鍵入ls命令即可列出所登錄用戶目錄中的文件,與一般ls命令不同的只是以長格式顯示目錄中的文件信息。

參考示例3:從所登錄的主機用戶目錄中下載文件。 ftp>getxjxjtlocal:xjtremote:xj227EnteringPassiveMode(192,168,122,1,162,96).150OpeningBINARYmodedataconnectionforxj(162bytes).226Transfercomplete.162bytesreceivedin9.9e-05secs(1636.36Kbytes/sec)ftp>

從遠程主機的zxj用戶目錄中下載xj源文件到本地主機的當前目錄并以xjt目標文件名保存;如果不指定目標文件名,則以源文件同名保存。在下載完成時顯示傳輸?shù)男畔⒘?、所花費的時間和平均傳輸速度。

參考示例4:向所登錄的主機用戶目錄中上傳文件。 ftp>putyum.doclocal:yum.docremote:yum.doc227EnteringPassiveMode(192,168,122,1,154,134).150Oktosenddata.226Transfercomplete.58152bytessentin0.00267secs(21755.33Kbytes/sec)ftp>

向遠程主機的zxj用戶目錄中上傳yum.doc源文件,由于沒有指定遠程主機的目標文件名,所以仍以同名文件保存。同樣,在上傳完成時顯示相關的信息。

參考示例5:向遠程主機上傳大文件。 ftp>hashHashmarkprintingon(1024bytes/hashmark).ftp>putNTFS-3G_1@170545.exelocal:NTFS-3G_1@170545.exeremote:NTFS-3G_1@170545.exe227EnteringPassiveMode(192,168,122,1,102,151).150Oktosenddata.#######################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################226Transfercomplete.1121488bytessentin0.0284secs(39445.96Kbytes/sec)ftp>

當傳輸大文件時所花的時間較長,一般需要顯示文件傳輸?shù)倪M度;在這種情況下可以使用hash命令,以便在文件傳輸過程中用“#”顯示傳輸?shù)倪M度。本例是向遠程主機上傳一個NTFS-3G_1@170545.exe軟件。

參考示例6:匿名登錄遠程主機并準備文件傳輸。 [root@zxjroot]#ftpConnectedto().220(vsFTPd3.0.2)Name(:root):anonymous331Pleasespecifythepassword.Password:注意:此處直接回車!230Loginsuccessful.RemotesystemtypeisUNIX.Usingbinarymodetotransferfiles.ftp>

在Internet上廣泛使用的公共文件傳輸服務就是“匿名”(anonymous)文件傳輸服務。采用“匿名”文件傳輸時,一般在服務器上會指定一個公共目錄,CentOS7默認是在/var/ftp下的pub目錄。“匿名”文件傳輸允許任何被允許建立TCP連接的用戶遠程訪問公共目錄中的文件,而其他目錄是禁止訪問的。這個功能可以用于讓用戶從網(wǎng)絡上發(fā)布開發(fā)的軟件或收集共享軟件給其他用戶下載使用。

參考示例7:在匿名登錄下,查看匿名文件傳輸?shù)墓材夸洝? ftp>ls227EnteringPassiveMode(192,168,122,1,84,118).150Herecomesthedirectorylisting.drwxr-xr-x2006Oct302018pub226DirectorysendOK.ftp>

在匿名登錄遠程主機后,執(zhí)行l(wèi)s命令顯示服務器上的公共目錄。

參考示例8:切換到公共目錄中并查看該目錄中的文件。 ftp>cdpub250Directorysuccessfullychanged.ftp>ls227EnteringPassiveMode(192,168,122,1,216,109).150Herecomesthedirectorylisting.-rwxrwxrwx100232Aug2008:02grub-rwxrwxrwx10017763Aug1813:02xfs.doc226DirectorysendOK.ftp> 可以執(zhí)行cd命令來切換到公共目錄。 參考示例9:通過匿名文件傳輸下載文件。

ftp>getgrublocal:grubremote:grub227EnteringPassiveMode(192,168,122,1,51,65).150OpeningBINARYmodedataconnectionforgrub(232bytes).226Transfercomplete.232bytesreceivedin0.00092secs(252.17Kbytes/sec)ftp>

在匿名文件傳輸下,只能從公共目錄下載文件,而禁止從其他目錄下載。

參考示例10:將grub文件以grub.bak上傳。 ftp>putgrubgrub.baklocal:grubremote:grub.bak227EnteringPassiveMode(192,168,122,1,114,191).550Permissiondenied.ftp>

本例是要將/var/ftp/pub目錄中的grub文件以grub.bak上傳到遠程主機的公共目錄中(匿名文件傳輸),但從顯示的信息可以看到,在匿名文件傳輸下是禁止文件上傳的。

以上10個參考示例說明了ftp服務器的基本用法。當FTP服務器配置完成后檢查CentOS7的防火墻端口號是否為21,在CentOS7的Firefox瀏覽器中輸入:

即可通過瀏覽器看到pub目錄,如圖10-4所示;點擊pub即可進入目錄。圖10-4瀏覽器查看pub目錄10.2Web服務器

通常WEB服務器也稱為WWW(WorldWildWeb)服務器,它采用瀏覽器/服務器(Browser/Server)結構。當Web用戶通過瀏覽器(客戶端)連到服務器并發(fā)出HTTP文件請求時,Web服務器將處理該請求并將文件發(fā)送到該瀏覽器上,瀏覽器對HTTP文件進行處理,將其中的視頻、聲音和圖片等多媒體文件從服務器上取回并顯示。主要功能是提供網(wǎng)上多媒體信息瀏覽服務。WWW是Internet上發(fā)展起來的服務,也是發(fā)展最快和目前應用最廣泛的服務。正是因為有了WWW工具,才使得Internet迅速發(fā)展,且用戶數(shù)量飛速增長。 Linux是借助某種Web服務器軟件來實現(xiàn)Web服務的,常用的是Apache服務器軟件。據(jù)統(tǒng)計在Internet上有半數(shù)以上的WWW服務器使用Apache軟件。10.2.1Web服務基本原理

雖然Linux的Web服務器有很多種,但它們的基礎工作原理是相同的,如圖10-5所示。用戶在URL中輸入網(wǎng)址后回車,或者是點擊網(wǎng)址鏈接等,瀏覽器隨即獲取了該事件;瀏覽器與服務端程序建立起TCP連接;瀏覽器將用戶的事件按照HTTP協(xié)議格式打包成數(shù)據(jù)包;瀏覽器按照TCP協(xié)議將數(shù)據(jù)包通過互聯(lián)網(wǎng)發(fā)往服務端程序;服務端程序收包后,以HTTP協(xié)議格式解包并解析數(shù)據(jù);再按提供文件或處理數(shù)據(jù)進行分類處理;然后將結果裝入服務端緩沖區(qū);服務端程序按照HTTP協(xié)議格式將緩沖區(qū)的數(shù)據(jù)打包;服務器通過互聯(lián)網(wǎng)將數(shù)據(jù)包發(fā)送到到客戶端;瀏覽器收包后,以HTTP協(xié)議格式解包并解析;最后在瀏覽器頁面上展示HTTP文件。圖10-5Web服務原理10.2.2Web服務器的安裝與配置文件

在CentOS7Linux操作系統(tǒng)安裝時,若未選擇相應的Web服務器軟件包,則可以在系統(tǒng)啟動后執(zhí)行yum命令進行安裝,執(zhí)行的命令為: #yum–yinstallhttpd

也可以在圖形方式下安裝,進入“應用程序”菜單,選擇“系統(tǒng)工具”菜單項下的“軟件”菜單項并回車,進入的界面如圖10-6所示。選中“ApacheHTTPServer”軟件包,再點擊“應用更改”按鈕即可安裝。圖10-6圖形化安裝Web服務器

系統(tǒng)會自動檢查軟件包的依賴關系。

系統(tǒng)的Web服務是httpd.service,當安裝成功后在在/var目錄下將會新建子目錄,例如/var/www/html為默認網(wǎng)站的根(root)目錄;在/etc目錄下也會新建一個httpd目錄及相應的子目錄,其中/etc/httpd/conf/httpd.conf為主配置文件。這個文件中有許多配置項被注釋(用#字符),用戶如果需要可以打開;但有些選項

關系到系統(tǒng)的安全,在確定打開前一定要仔細閱讀其說明。該文件主要內(nèi)容如下:ServerRoot"/etc/httpd" #存放Web服務配置文件的目錄Listen80 #Apache服務偵聽端口號Includeconf.modules.d/*.conf#存放Apache服務模塊的目錄和文件Userapache #Apache子進程的用戶Groupapache #Apache子進程的組ServerAdminroot@localhost #設置Apache服務管理員郵件地址

#ServerName:80

#拒絕訪問服務器的整個文件系統(tǒng)。須顯式地指定允許訪問的web內(nèi)容。<Directory/>AllowOverridenoneRequirealldenied</Directory>DocumentRoot"/var/www/html" #網(wǎng)站默認的根目錄#放寬對/var/www中內(nèi)容的訪問。<Directory"/var/www">AllowOverrideNone #none不使用.htaccess控制,all允許Requireallgranted #granted表示允許所有訪問,denied表示拒絕所有訪問</Directory> <Directory"/var/www/html"> #網(wǎng)站容器開始標識

OptionsIndexesFollowSymLinks#找不到主頁時,以目錄的方式呈現(xiàn),并允許鏈接到網(wǎng)站根目錄以外

AllowOverrideNoneRequireallgranted</Directory> #容器結束

#定義主頁文件,當訪問到網(wǎng)站目錄時如果有定義的主頁文件,網(wǎng)站會自動訪問<IfModuledir_module>DirectoryIndexindex.html </IfModule><Files".ht*">Requirealldenied</Files>ErrorLog"logs/error_log" #錯誤日志目錄及文件LogLevelwarn #日志級警告<IfModulelog_config_module>#日志格式LogFormat"%h%l%u%t\"%r\"%>s%b\"%{Referer}i\"\"%{User-Agent}i\""combinedLogFormat"%h%l%u%t\"%r\"%>s%b"common

<IfModulelogio_module>LogFormat"%h%l%u%t\"%r\"%>s%b\"%{Referer}i\"\"%{User-Agent}i\"%I%O"combinedio</IfModule>CustomLog"logs/access_log"combined #日志/訪問日志總計</IfModule>

<IfModulealias_module>

ScriptAlias/cgi-bin/"/var/www/cgi-bin/" #服務器腳本目錄

</IfModule><Directory"/var/www/cgi-bin">AllowOverrideNoneOptionsNoneRequireallgranted</Directory>

<IfModulemime_module>

#類型配置文件TypesConfig/etc/mime.types

#AddType允許用戶添加或覆蓋TypesConfig中為特定文件類型指定的MIME配置文件。AddDefaultCharsetUTF-8 #網(wǎng)頁文件的字符編碼

<IfModulemime_magic_module>MIMEMagicFileconf/magic</IfModule>#EnableMMAPoffEnableSendfileon #允許發(fā)送文件IncludeOptionalconf.d/*.conf #配置選項目錄及文件

10.2.3Web服務的啟動

當Linux系統(tǒng)安裝完成并啟動時,默認情況下Web服務是沒有啟動的。如果需要使用Web,則必須首先啟動Web服務。在Linux系統(tǒng)的發(fā)行套件中,Web服務的名稱是httpd.service,如果用戶沒有安裝Linux的服務器模組軟件包,則可能需要使用安裝光盤或ISO軟件重新安裝該服務。如果用戶已經(jīng)安裝了httpd.service服務,則可以有兩種不同的方法來啟動或停止它。 1.設置自啟動方式在終端窗口的字符界面下,鍵入setup命令,利用上下光標鍵選擇Systemservices菜單項并回車;找到httpd.service服務項,按空格鍵或單擊鼠標左鍵選中該服務項前的復選框。當下次系統(tǒng)啟動時,Web服務將自動被運行。 2.命令行啟動或停止如果需要馬上啟動該服務,不需要重新啟動系統(tǒng),只要執(zhí)行服務啟動命令,例如:[root@localhostroot]#systemctlenablehtppd.service[root@localhostroot]#systemctlrestarthtppd.service

正常情況下系統(tǒng)沒有信息顯示;如果需要停止該服務,只要執(zhí)行停止命令,例如:[root@localhostroot]#systemctlstophtppd.service

同樣,正常情況下系統(tǒng)沒有信息顯示。

但可以執(zhí)行l(wèi)sof命令,查看80端口信息確定httpd服務是否啟動,執(zhí)行:[root@localhost~]#lsof-i:80COMMANDPIDUSERFDTYPEDEVICESIZE/OFFNODENAMEhttpd31144root4uIPv63558790t0TCP*:http(LISTEN)httpd31145apache4uIPv63558790t0TCP*:http(LISTEN)httpd31146apache4uIPv63558790t0TCP*:http(LISTEN)httpd31147apache4uIPv63558790t0TCP*:http(LISTEN)httpd31148apache4uIPv63558790t0TCP*:http(LISTEN)httpd31149apache4uIPv63558790t0TCP*:http(LISTEN)httpd33206apache4uIPv63558790t0TCP*:http(LISTEN)httpd40386apache4uIPv63558790t0TCP*:http(LISTEN)httpd40425apache4uIPv63558790t0TCP*:http(LISTEN)httpd40426apache4uIPv63558790t0TCP*:http(LISTEN)

當配置及啟動完成后,可以先測試Apache服務器,打開firefox瀏覽器,在URL中輸入(本書所用的IP地址),盡管此時還沒有在/var/www/html目錄中存放任何網(wǎng)頁文件,但仍可顯示Apache的測試界面,結果如圖10-7所示。圖10-7Apache服務器測試界面10.2.4Web服務命令及用法

在Linux系統(tǒng)中Web服務的命令是httpd,它是Apache超文本傳輸協(xié)議(HTTP)服務器程序。它被設計為作為獨立的守護進程運行。通常,httpd不應直接調(diào)用,而應在基于Unix的系統(tǒng)上通過apachectl命令調(diào)用。10.2.4.1httpd命令

該命令可以啟動Apache服務器的服務,這個功能可以被systemctl命令代替;也可以設置服務的配置選項,這個功能可以通過直接修改/etc/httpd/conf/httpd.conf文件實現(xiàn);但做為熟悉命令的管理員也許使用更方便。若沒有指定任何選項、參數(shù),則httpd會去讀取/etc/httpd/conf/httpd.conf文件,并根據(jù)文件中的設定來啟動服務器。

命令格式: httpd[-Dname][-ddirectory][-ffile][-C"directive"][-c"directive"][-kstart|restart|graceful|graceful-stop|stop][-v][-V][-h][-l][-L][-t][-T][-S][-X] 其中,httpd為命令名稱;-后的字母為選項,其后的為選項參數(shù)。命令選項及說明:表10-2httpd命令選項及說明命令選項選項說明-Dname指定要傳入配置文件(<IfDefinename>區(qū)段)的參數(shù)。-ddirectory指定服務器根目錄,默認為/etc/httpd目錄。-ffile自定義的配置文件,而不是用默認的。-C"directive"讀取配置文件之前先處理指令。-c"directive"讀取配置文件之后再處理指令。-elevel顯示啟動錯誤級別。-Efile將啟動錯誤記錄到文件。-v顯示版本信息。-V顯示編譯設置。-h顯示幫助信息。-l顯示服務器編譯時包含的模塊。-L列出可用的配置指令。-t-DDUMP_VHOSTS顯示已解析的虛擬主機設置。-t-DDUMP_RUN_CFG顯示已解析的運行設置。-S與-t-DDUMP_VHOSTS-DDUMP_RUN_CFG同義。-t-DDUMP_MODULES顯示所有已裝載的模塊。-M與-t-DDUMP_MODULES同義。-t測試配置文件的語法。-T在沒有DocumentRoot(s)檢查的情況下開始。-X進入調(diào)試模式。10.2.4.2參考示例

參考示例1:測試Apache服務器的配置文件是否正確[root@localhost~]#httpd-tAH00558:httpd:Couldnotreliablydeterminetheserver'sfullyqualifieddomainname,usinglocalhost.localdomain.Setthe'ServerName'directivegloballytosuppressthismessageSyntaxOK

命令執(zhí)行后顯示使用localhost.localdomain無法可靠地確定服務器的標準域名。這是因為配置文件中ServerName被注釋(參見10.2.2小節(jié)中的配置文件),而其它語法正確。

參考示例2:顯示服務器編譯設置[root@localhost~]#httpd-VServerversion:Apache/2.4.6(CentOS)Serverbuilt:Aug8201911:41:18Server'sModuleMagicNumber:20120211:24Serverloaded:APR1.4.8,APR-UTIL1.5.2Compiledusing:APR1.4.8,APR-UTIL1.5.2Architecture:64-bitServerMPM:preforkthreaded:noforked:yes(variableprocesscount)Servercompiledwith-DAPR_HAS_SENDFILE-DAPR_HAS_MMAP-DAPR_HAVE_IPV6(IPv4-mappedaddressesenabled)-DAPR_USE_SYSVSEM_SERIALIZE-DAPR_USE_PTHREAD_SERIALIZE-DSINGLE_LISTEN_UNSERIALIZED_ACCEPT-DAPR_HAS_OTHER_CHILD-DAP_HAVE_RELIABLE_PIPED_LOGS-DDYNAMIC_MODULE_LIMIT=256-DHTTPD_ROOT="/etc/httpd"-DSUEXEC_BIN="/usr/sbin/suexec"-DDEFAULT_PIDLOG="/run/httpd/httpd.pid"-DDEFAULT_SCOREBOARD="logs/apache_runtime_status"-DDEFAULT_ERRORLOG="logs/error_log"-DAP_TYPES_CONFIG_FILE="conf/mime.types"-DSERVER_CONFIG_FILE="conf/httpd.conf"

命令執(zhí)行后顯示服務器版本、模塊、編譯器、架構以及編譯的選項和參數(shù)等。參考示例3:編寫一個靜態(tài)網(wǎng)頁文件index.html,測試Apache服務器基本性能。編寫的index.html文件:<html> <head> <title>標題字體與文本字體</title> </head> <body> <h1>1號標題字體</h1> <h2>2號標題字體</h2> <h3>3號標題字體</h3> <h4>4號標題字體</h4> <h5align="center">5號標題字體(居中)</h5> <fontface="黑體"size=3>黑體3號字體</font> <i> <u> <fontface="仿宋體"size=4>仿宋體4號文字(傾斜、下劃線)</font> </u> </i> <fontfaxe="宋體"size=5color=ff0000>宋體5號紅色文字</font> </body></html>保存文件時注意字符代碼選擇UTF-8,這是httpd.conf文件默認的字符代碼,否則網(wǎng)頁顯示可能是亂碼!打開瀏覽器,在URL中輸入結果如圖10-8所示。圖10-8CentOS7下靜態(tài)網(wǎng)頁測試

若要在Windows下訪問Web服務器,則需要配置防火墻規(guī)則,這里只是測試它,所以執(zhí)行如下命令暫時關閉防火墻:#systemctlstopfirewalld在Windows7下打開瀏覽器,在URL輸入02;如圖10-9所示。圖10-9Windows7下靜態(tài)網(wǎng)頁測試

以上對于CentOS7下搭建Web服務器(Apache)做了簡單的介紹的了解,由于實際使用中主要是動態(tài)的網(wǎng)頁,這涉及到Apache、PHP5、MySQL等服務器的安裝與配置,限于篇幅本章不再做詳細的介紹。10.3DNS服務器

由于IP地址難以記憶,所以為網(wǎng)絡中的每臺主機指定一個用戶容易記憶的名字,這個名字就稱為域名(也稱為主機名)。域名服務器的主要功能就是將用戶容易記憶的域名轉換為計算機使用的IP地址,或將IP地址翻譯為域名。10.3.1DNS服務基本原理

整個互聯(lián)網(wǎng)上的域名服務器采用樹形層次結構,樹上的每個節(jié)點都有一個名稱,即“域”,每層用“.”分隔。在互聯(lián)網(wǎng)中域名的“根(“.”)”通常被省略。例如,“.”被省略為?;ヂ?lián)網(wǎng)域名系統(tǒng)結構示意圖如圖10-10所示。圖10-10DNS結構示意圖

圖中的左邊的分支“.arpa.in-addr.XXX”用于反向域名解析,即將IP地址翻譯為域名。

如果一個網(wǎng)絡不與互聯(lián)網(wǎng)相連,則可以任意設置域名服務器;否則必須遵循互聯(lián)網(wǎng)有關規(guī)則,即要向上層的域名服務器申請使用的域名,不然即使能連接上互聯(lián)網(wǎng)也無法正確轉換出域名。10.3.2DNS服務器的安裝與配置文件

在CentOS7Linux操作系統(tǒng)安裝時,若未選擇相應的DNS服務器軟件包,則可以在系統(tǒng)啟動后執(zhí)行yum命令進行安裝,執(zhí)行的命令為: #yum–yinstallbindbind-libsbind-utils

這個命令會將指定的bind軟件包都進行安裝,并自動檢查依賴關系和自動更新依賴包。

系統(tǒng)的DNS服務是named.service,當安裝成功后在/var、/run和/etc目錄下將會新建名為named的子目錄,存放配置的數(shù)據(jù)文件;在/etc目錄下也會新建一個名為named.conf的主配置文件。//named.conf配置文件options{ //域名解析數(shù)據(jù)文件目錄 listen-onport53{;}; listen-on-v6port53{::1;}; directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; statistics-file"/var/named/data/named_stats.txt"; memstatistics-file"/var/named/data/named_mem_stats.txt"; recursing-file"/var/named/data/named.recursing"; secroots-file"/var/named/data/named.secroots"; allow-query{localhost;};

//緩存服務器區(qū) recursionyes;

dnssec-enableyes; dnssec-validationyes;

/*PathtoISCDLVkey*/ bindkeys-file"/etc/named.root.key";

managed-keys-directory"/var/named/dynamic";

pid-file"/run/named/named.pid"; session-keyfile"/run/named/session.key";};

logging{channeldefault_debug{file"data/named.run";severitydynamic;};};

zone"."IN{ typehint; file"named.ca"; //緩存服務器數(shù)據(jù)文件};

include"/etc/named.rfc1912.zones";include"/etc/named.root.key";

首先,將以上文件中的兩個語句按如下修改后保存:

原:listen-onport53{;};->修改:listen-onport53{any;};

原:allow-query{localhost;};->修改:allow-query{any;};

然后,打開/etc/named.rfc1912.zones文件參照其格式修改,以便添加DNS正反向解析規(guī)則://添加的正向解析zone""IN{typemaster;file".zone";allow-update{none;};};

正向解析的目的是將名字翻譯為IP地址;上述代碼是定義一個域名為ns_解析的區(qū)域,域名解析數(shù)據(jù)存放在/var/named/ns_.zone文件中。//添加的反向解析zone"40.168.192."IN{typemaster;file"192.168.40.zone";allow-update{none;};};

反向解析的目的是將IP地址翻譯為名字;上述代碼是定義一個用于反向域名解析的10.168.192.區(qū),域名解析數(shù)據(jù)存放在/var/named/192.168.10.zone文件中。

第三,參照/var/named/named.localhost文件的格式,同目錄下創(chuàng)建.zone文件。$TTL1000@INSOAns.ns_.admin.ns_.( 41000100020002000) INNSnsns INA34www INA35mail INA36

第四,參照/var/named/named.loopback文件的格式,同目錄下創(chuàng)建192.168.40.zone文件。$TTL1000@INSOA..( 41000100020002000)INNS.134INPTR.135INPTR.136INPTRmail..

注意.zone和192.168.40.zone文件的格式,第一行為數(shù)據(jù)包生命周期;@表示當前域,等價于“0.0.127.”;IN表示互聯(lián)網(wǎng);SOA是主服務器域名解析數(shù)據(jù)文件中必須設置的授權記錄;4表示本文件的版本號,第一個1000表示更新時間,第二個1000表示重試時間,第一個2000是指定的終止時間,第二個2000是無法從文件內(nèi)找到所請求域名時,緩存一條命名錯誤的時間(這些時間只是測試時指定的便于較快的響應,具體應用時需根據(jù)網(wǎng)絡設置);A用于正向解析的指定域名與IP地址對應關系,PTR用于反向解析的指定IP地址與名字對應關系,以上這些都屬于資源記錄,更詳細的資源記錄說明請參閱相關文檔。

文件開頭依次定義了DNS服務器名、DNS管理員郵件地址,特別提醒DNS和郵件地址的最后必須有一個“.”

第五,修改文件權限,執(zhí)行命令:#chmod777.zone192.168.40.zone10.3.3DNS服務的啟動

當Linux系統(tǒng)安裝完成并啟動時,默認情況下DNS服務是沒有啟動的。如果需要使用DNS,則必須首先啟動DNS服務。在Linux系統(tǒng)的發(fā)行套件中,DNS服務的名稱是named.service,如果用戶沒有安裝Linux的服務器模組軟件包,則可能需要使用安裝光盤或ISO軟件重新安裝該服務。如果用戶已經(jīng)安裝了named.service服務,則可以有兩種不同的方法來啟動或停止它。 1.設置自啟動方式在終端窗口的字符界面下,鍵入setup命令,利用上下光標鍵選擇Systemservices菜單項并回車;找到named.service服務項,按空格鍵或單擊鼠標左鍵選中該服務項前的復選框。當下次系統(tǒng)啟動時,DNS服務將自動被運行。 2.命令行啟動或停止如果需要馬上啟動該服務,不需要重新啟動系統(tǒng),只要執(zhí)行服務啟動命令,例如:[root@localhostroot]#systemctlenablenamed.service[root@localhostroot]#systemctlrestartnamed.service

正常情況下系統(tǒng)沒有信息顯示;如果需要停止該服務,只要執(zhí)行停止命令,例如:[root@localhostroot]#systemctlstopnamed.service

同樣,正常情況下系統(tǒng)沒有信息顯示。

但可以執(zhí)行systemctl命令,查看named.service服務是否啟動,執(zhí)行: #systemctlstatusnamed.service

結果顯示:●named.service-BerkeleyInternetNameDomain(DNS)Loaded:loaded(/usr/lib/systemd/system/named.service;enabled;vendorpreset:disabled)Active:active(running)since六2019-10-0503:47:48PDT;1min15sagoProcess:6965ExecStart=/usr/sbin/named-unamed-c${NAMEDCONF}$OPTIONS(code=exited,status=0/SUCCESS)Process:6701ExecStartPre=/bin/bash-cif[!"$DISABLE_ZONE_CHECKING"=="yes"];then/usr/sbin/named-checkconf-z"$NAMEDCONF";elseecho"Checkingofzonefilesisdisabled";fi(code=exited,status=0/SUCCESS)MainPID:7054(named)Tasks:7CGroup:/system.slice/named.service└─7054/usr/sbin/named-unamed-c/etc/named.conf10月0503:47:48localhost.localdomainnamed[7054]:networkunreachableresolving...310月0503:47:48localhost.localdomainnamed[7054]:networkunreachableresolving...310月0503:47:48localhost.localdomainnamed[7054]:networkunreachableresolving...310月0503:47:48localhost.localdomainnamed[7054]:networkunreachableresolving...310月0503:47:48localhost.localdomainsystemd[1]:StartedBerkeleyInternetName10月0503:47:48localhost.localdomainnamed[7054]:networkunreachableresolving...310月0503:47:48localhost.localdomainnamed[7054]:networkunreachableresolving...310月0503:47:48localhost.localdomainnamed[7054]:managed-keys-zone:Key20326f...d10月0503:47:49localhost.localdomainnamed[7054]:resolverprimingquerycomplete10月0503:47:49localhost.localdomainnamed[7054]:listeningonIPv4interfacevi...3Hint:Somelineswereellipsized,use-ltoshowinfull.

顯示的結果可以看出named服務處于活動狀態(tài)、運行中。10.3.4DNS服務命令及用法

在Linux系統(tǒng)中DNS服務的命令是nslookup,它是用于查詢Internet域名服務器的程序。Nslookup有兩種模式:交互式和非交互式。交互模式允許用戶查詢名稱服務器以獲取有關各種主機和域的信息,或打印域中的主機列表。非交互模式用于僅打印主機或域的名稱和請求的信息。10.3.4.1nslookup命令

在以下情況下進入交互模式:

1.沒有提供參數(shù)時(將使用默認名稱服務器)

2.當?shù)谝粋€參數(shù)是連字符(-),第二個參數(shù)是

名稱服務器的主機名或Internet地址。

此時出現(xiàn)“>”提示符,等待用戶輸入命令。

當將要查找的主機的名稱或Internet地址作為第一個參數(shù)時,將使用非交互模式。第二個參數(shù)指定域名服務器的主機名或地址。

命令用法:nslookup[-option][name|-][server]

本命令的選項較少,常用的有-query、-timeout、-version等。使用交互式的常用命令列表:表10-3交互式nslookup常用命令及說明

在實際應用中更多地是使用非交互式。命令名稱命令說明host[server]使用當前默認服務器(如果指定)查找主機信息。如果主機是Internet地址,并且查詢類型是A或PTR,則返回主機名。如果host是一個名稱,并且沒有尾隨時間,則使用搜索列表來限定名稱。要查找不在當前域中的主機,請在名稱后加上句點。srverdomain設置服務器,domain為服務器IPlserverdomain將默認服務器更改為domain;lserver使用初始服務器查找有關域的信息,而server使用當前默認服務器。exit退出nslookup。setkeyword[=value]此命令用于更改影響查找的狀態(tài)信息。有效的關鍵字是:all顯示要設置的常用選項的當前值。還顯示有關當前默認服務器和主機的信息。class=value設置類(IN、CH、HS和ANY)的值。默認為IN(theInternetclass)domain=name設置搜索列表。port=value設置TCP/UDP域名服務器端口號。默認端口號為53type=value設置信息查詢的類型,默認為A(正向)。retry=number設置重試次數(shù)。timeout=number設置超時值。10.3.4.2參考示例參考示例1:在CentOS7下測試(正、反向)本章配置的DNS服務器。結果如圖10-9所示。圖10-9CentOS下測試DNS服務器參考示例2:在Windows7下測試(正、反向)本章配置的DNS服務器。結果如圖10-11所示。在windows操作系統(tǒng)下也有nslookup命令,其功能是一樣的,只是在交互式命令上有一些差別。圖10-11Windows7下測試DNS服務器

注意:在Windows下測試需要關閉防火墻,如果只是測試可以暫時關閉(參見Web服務器),如果是實際應用要配置防火墻的規(guī)則。

參考示例3:

以交互式設置服務器。[root@localhost~]#nslookup>server35Defaultserver:35Address:35#53

參考示例4:

以交互式查詢要設置的常用選項的當前值。[root@localhost~]#nslookup>setallDefaultserver:35Address:35#53

Setoptions:novc nodebug nod2search recursetimeout=0 retry=3 port=53 ndots=1

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論