前言:
公司要求在伺服器上搭建dns server,方便客戶端裝置軟體的初始化引數可以寫死網域名稱,通過這種方式簡化客戶端的設定工作量(公司產品形態決定了客戶端數量比較大,300+以上的情況比較普遍,而且實施不方便)。作業系統環境:rhel 6.5 x86_64
軟體環境:
首先,需要伯克利大學網際網路網域名稱工具(berkeley internet name domain),簡稱bind,可以使用yum或rpm安裝。因為我手中有足夠的rpm包,我選擇的是rpm安裝。
關於chroot:
從名字能看得出,是change root。為了安全,bind需要的配置檔案實際放在:
因為新版本的 rhel或centos 6.x 已經將 chroot 所需要使用到的路徑,使用 mount --bind 的功能進行了目錄鏈結,例如,我們需要的 /var/named 在啟動指令碼中通過 mount --bind /var/named /var/named/chroot/var/named 進行目錄繫結!所以在操作過程中,無需切換工作目錄至 /var/named/chroot/ ,使用正規的目錄即可。啟動指令碼的內容參見下圖:
修改/var/named/chroot/下的檔案的優點很突出:如果umount後,原本非/var/named/chroot/下的檔案不發生改變(無論你在chroot/下的檔案中做什麼),安全性非常好。所以,我們在學習配置過程中是可以忽略這部分知識的,等到配置過程都掌握後,在生產系統的配置過程中,一定是配置chroot/下的檔案,也就是說,生產系統中下面的操作過程是針對chroot/下的對應檔案,這點一定要注意。
檔案配置與呼叫關係:
①首先配置的是/etc/named.conf,這是bind的主配置檔案,看名稱就知道這個配置檔案的重要性啦。修改這兩處為any;要注意的是directory "/var/named",這說明zone文件的路徑;
②修改後,實際上就可以執行service named start。但是發現服務啟動失敗,怎麼辦呢?
要觀察/var/log/messages日誌,發現啟動named的時候,有open: /etc/named.conf :permission denied錯誤提示;我是root使用者登入的沒問題。再cat /etc/passwd發現named組的存在,好了,執行chown :named /etc/named.conf,然後再啟動named,啟動成功。
③觀察/etc/named.conf檔案,在檔案的末尾,有這麼一句,說明還要呼叫這個包含性質的檔案:
接下來配置/etc/named.rfc1912.zones。前面的不用管,只要增加下圖中紅框內的一段,並儲存退出:
這一段是什麼呢,是我希望的伺服器使用istv.com這個網域名稱的zone檔案。
這個named.istv.com就是bind需要的zone檔案,下面要配置這個檔案。
④我們知道了需要配置上面說的這個zone檔案,那麼這個檔案在**呢,不知道不要緊,繼續從bind主配置檔案找線索:
從bind主配置檔案中,有這麼一段描述,說明了了directory是 /var/named/ 這個路徑。
⑤cp /var/named/named.localhost /var/named/named.istv.com,先建立這個檔案。
上面是我編輯好的,最重要的是第二個@後面這一段,前面的可以不改;ns代表網域名稱,a代表位址,翻譯成中文,這樣就非常好理解了。實際上,第二段中最重要的是最後一句,用來說明www.istv.com的ip位址。大家注意到com後面的.,這代表著完整主機名稱fqdn。
⑥chown :named /var/named/named.istv.com經過實際操作證明,也是必不可少的。
⑦最後,要想讓named程序開機自啟動,需要執行chkconfig --level 2345 named on
上面的配置中,只是配置了正向解析,反向解析沒有去配置,因為我們只是想通過安裝這台dns server,終端裝置可以在區域網內訪問我們自己的istv.com這個網域名稱,也就是說使用dns伺服器解析網域名稱所對應的ip位址------正向解析。
關於配置檔案的校驗:
bind提供了有兩個校驗工具,使用者可以在配置完檔案後,對檔案進行手動校驗。問題來了,校驗的工具在**?關鍵還是思路,我們可以依靠搜尋引擎,也可以利用搜尋引擎+自己的思考。在/usr/sbin/路徑下有兩個命令,乙個是named-checkconf,另外乙個是named-checkzone,看名稱就能猜到是什麼用的。對頭,分別是主配置檔案和zone檔案。
ok,我們現在知道了命令在哪兒和命令是什麼了,命令的用法,使用者自己看提示就知道了,這裡不詳細說明了。
實際上,在/etc/init.d/named檔案中,有這麼一句:
這說明什麼呢,在啟動指令碼中已經包含了這兩個校驗命令,可以透過named的restart並配合上面介紹的日誌檔案,實現同樣的目的。
定時檢查dns服務:
#!/bin/bash
service named status &> /dev/null
if [ $? -ne 0 ]
then
echo "at time: `date` :named is stop .">> /var/log/messages
service named start
else
echo "named is running ."
fi②在crontab計畫任務中,增加dns_check.sh的定時執行.
關於dns測試命令:
配置ok了,程式啟動也順利ok了,接下來就要對結果進行一下測試,當然在使用pc瀏覽器訪問伺服器不方便的情況下,也是可以通過命令列去
①最簡單的host命令。
②nslookup命令。
這個命令的用法就比較豐富了,這裡我只用最簡單的,不廢話,直接給圖。
③主流的dig命令。
更加豐富的使用方法和更加豐富的查詢結果,沒有仔細學習,用法差不多,繼續直接給圖。
①鳥哥的linux私房菜,繁體版
② ③
如何在區域網內對話 如何監控記錄區域網內的郵件收發
本文將介紹如何用wsg上網行為管理閘道器來記錄區域網內的郵件收發內容。郵件收發主要有兩種方式 客戶端郵件,比如outlook,foxmail,thundbird等客戶端。網頁郵件,國內比較普遍的是qq和163的網頁郵件。1.客戶端郵件的監控 wfilter可以監控到客戶端傳送和接收郵件的正文和附件內...
偵聽區域網內密碼
只需在前面的網路嗅探程式基礎上,新增對搜尋出的埠號進行的增加功能即可 如下 在decodeippacket中新增 switch ntohs ptcphdr destinationport break case80 case 8080 break void getftp char pdata.dwor...
偵聽區域網內密碼
只需在前面的網路嗅探程式基礎上,新增對搜尋出的埠號進行的增加功能即可 如下 在decodeippacket中新增 switch ntohs ptcphdr destinationport break case80 case 8080 break void getftp char pdata.dwor...