天天看點

Linux mint 14下的powerDNS+mysql+powerAdmin搭建個性DNS域名解析伺服器

最近小編我在自己的pc上安裝了linux mint 14桌面版作業系統,就像試試這個桌面版的作業系統能不能實作伺服器系統的性能,整好我最近在嘗試使用一種新的搭建dns伺服器的方法(不使用bind),powerDns+mysql+powerAdmin,這種dns伺服器易于管理,因為有web頁面可一直接添加、修改、更新和删除域或者記錄,于是小編我就開始動手做了。

setp 1:準備工作,你需要下載下傳相應的軟體包啦,PowerDNS,Mysql,PowerAdmin,但是很是慶幸啊,這個桌面版的mint是基于ubuntu開發而來的,安裝軟體的方式和ubuntu是一緻的,ubuntu的軟體倉庫可是各種的軟體都有啊,小編我是着實體驗了一把傻瓜似的安裝享受,但是要提醒的是你的現更新以下本地的軟體清單庫,不然你要搜尋安裝的軟體可能不存在的

#apt-get update

step 2:安裝mysql,因為powerDns的域和記錄等資訊都是記錄在mysql資料庫中的,所有mysql是必不可少的

# apt-get -y install mysql-server mysql-client

又因為mysql預設是綁定自己環回位址的,這樣我們在外界管理是管理不到的,我們可以修改一下mysql的配置檔案以取消位址綁定,這裡我們可以使用sed編輯器來修改,當然也可以直接用vi編輯器

# sed -i -e 's/bind-address/#bind-address/' /etc/mysql/my.cnf

啟動mysql

# service mysql start

之後可以檢視一下mysql的啟動狀态,如果發現3306端口啟動了就說明mysql啟動沒問題了

# netstat -tupln |grep mysql

# apt-get -y install pdns-server pdns-backend-mysql

<a href="http://wnqcmq.blog.51cto.com/attachment/201304/1/5200614_1364835957hSEm.jpg"></a>

下載下傳打開之後找到如下頁面

<a href="http://wnqcmq.blog.51cto.com/attachment/201304/1/5200614_13648359765glM.jpg"></a>

可以看到相關mysql配置修改 etc/powerdns/pdns.conf檔案内容,将原有”#launch=gmysql“的”#“去掉,并且添加以下内容

gmysql-host=127.0.0.1

gmysql-user=powerdns //這裡的user是安裝powerDns時系統生成的 gmysql-password=123456

gmysql-dbname=dnsdb //powerDns的資料庫名在後面要使用mysql建立

step 4:建立powerDns資料庫dnsdb(名字可以任意取,但是要和上面提到的pdns.conf配置檔案的内容一緻)

打開mysql

cmq-ThinkPad-R400 cmq # mysql -u root -p

Enter password:

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 51

Server version: 5.5.29-0ubuntu0.12.10.1 (Ubuntu)

Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql&gt;

#建立一個名為dnsdb的資料庫用于存儲PowerDNS的資料。

mysql&gt; <b>create database dnsdb;</b>

#給使用者pdnsuser(這個使用者要使用useradd建立)授予操作dnsdb資料庫的全部權限。

<b>mysql&gt; GRANT ALL ON dnsdb.* TO 'pdnsuser'@'localhost' IDENTIFIED BY '123456';</b>

<b>mysql&gt; GRANT ALL ON dnsdb.* TO 'pdnsuser'@'localhost.localdomain' IDENTIFIED BY '123456';                      </b>

<b>mysql&gt; FLUSH PRIVILEGES;</b>

#建立相應的表,用以存放域、記錄等,讀者可能會想,我哪知道資料字典的格式啊,别擔心,官方文檔是有地,直接複制粘貼就是了

<a href="http://wnqcmq.blog.51cto.com/attachment/201304/1/5200614_1364836203XbSM.jpg"></a>

先切換到dnsdb

mysql &gt; use dnsdb;

建立域表

mysql &gt; CREATE TABLE domains (

id INT auto_increment,

name VARCHAR(255) NOT NULL,

master VARCHAR(128) DEFAULT NULL,

last_check INT DEFAULT NULL,

type VARCHAR(6) NOT NULL,

notified_serial INT DEFAULT NULL,

account VARCHAR(40) DEFAULT NULL,

primary key (id)

);

建立記錄表

mysql &gt; CREATE TABLE records (

id INT auto_increment,domain_id INT DEFAULT NULL,

name VARCHAR(255) DEFAULT NULL,

type VARCHAR(6) DEFAULT NULL,

content VARCHAR(255) DEFAULT NULL,

ttl INT DEFAULT NULL,

prio INT DEFAULT NULL,

change_date INT DEFAULT NULL,

primary key(id)

建立supermesters

mysql &gt; CREATE TABLE supermasters (

ip VARCHAR(25) NOT NULL,

nameserver VARCHAR(255) NOT NULL,

account VARCHAR(40) DEFAULT NULL

當然官方操作文檔還提供了相應的優化機制,就是建立一些索引

mysql &gt; CREATE INDEX rec_name_index ON records(name);

mysql &gt; CREATE INDEX nametype_index ON records(name,type);

mysql &gt; CREATE INDEX domain_id ON records(domain_id);

插入幾條測試記錄

INSERT INTO domains (name, type) values ("test.com", "NATIVE");

INSERT INTO records (domain_id, name, content, type,ttl,prio)

VALUES (1,"test.com","localhost [email protected] 1","SOA",86400,NULL);

VALUES (1,"test.com","dns-us1.powerdns.net","NS",86400,NULL);

VALUES (1,"test.com","dns-eu1.powerdns.net","NS",86400,NULL);

VALUES (1,"www.test.com","199.198.197.196","A",120,NULL);

VALUES (1,"mail.test.com","195.194.193.192","A",120,NULL);

VALUES (1,"localhost.test.com","127.0.0.1","A",120,NULL);

VALUES (1,"test.com","mail.test.com","MX",120,25);

step 5:重新啟動powerDns

#service pdns retstart

step 6:測試,解析方式有很多host、nslookup、dig等等

cmq-ThinkPad-R400 cmq # host www.test.com

www.test.com is an alias for test.blockdos.com.

test.blockdos.com is an alias for test.3dnsgeo.com.

test.3dnsgeo.com has address 50.23.225.49

test.3dnsgeo.com has address 174.36.85.72

成功啦鄉親們!!!!

# apt-get -y install apache2 libapache2-mod-php5 php5 php5-common \

php5-curl php5-dev php5-gd php-pear php5-imap gettext   \

php5-mcrypt php5-mhash php5-ming php5-mysql \ php5-xmlrpc

# pear install DB

# pear install pear/MDB2#mysql

将下載下傳完的poweradmin-2.1.6.tgz解壓縮

# tar -xvzf poweradmin-2.1.6.tgz

# mv poweradmin-2.1.6 /var/www/dnsadmin

修改使用者和使用者組

# chown -R www-data:www-data /var/www/dnsadmin

<a href="http://wnqcmq.blog.51cto.com/attachment/201304/1/5200614_13648362116fsp.jpg"></a>

預設選擇英文之後點選“go to step 2”,一直點到“go to step 4”(就是第三頁)輸入MySQL中root使用者(注意是root使用者)、密碼、位址、端口、資料庫名稱,最後一個輸入框是是指定以後登入Poweradmin時管理者(admin)的密碼(最後測試登入web頁面會用到,讀者要記着啊)。

<a href="http://wnqcmq.blog.51cto.com/attachment/201304/1/5200614_1364836224g6kT.jpg"></a>

第4頁指定為PowerDNS建立的MySQL使用者的資訊,輸入在第4步中為建立的MySQL使用者(還記得我們建立的pdnsuser)、密碼以及SOA、NS記錄。

<a href="http://wnqcmq.blog.51cto.com/attachment/201304/1/5200614_1364836232d7hA.jpg"></a>

第五頁是授權

<a href="http://wnqcmq.blog.51cto.com/attachment/201304/1/5200614_13648362439TsF.jpg"></a>

然後到了第六頁,它提示說沒法建立config.inc.php,這可麻煩大了,如果這個檔案沒法建立那麼我們下面的工作就沒法完成了,這是為什麼呢,主要是因為mint這個系統的權限問題,我們目前登入的使用者都是普通使用者,沒法輕易建立檔案,那麼我們可以在終端下切換到root使用者下使用vi來手工建立就是了,頁面上提示的很清楚,可以手工建立,并且内容已經附上了

<a href="http://wnqcmq.blog.51cto.com/attachment/201304/1/5200614_1364836258dM2g.jpg"></a>

mint下的vim是以下這種形式(小編我開始可是真是不習慣,讀者你可以用别名替代以下的啦)

# vim.tiny /var/www/dnsadmin/inc/config.inc.php 将以下内容添加進去儲存退出即可

繼續到達第七頁

又有提示了:you should (must!) remove the directory "install/" from the Poweradmin root directory. You will not be able to use Poweradmin if it exists. 意思就是你必須删除”install/“檔案夾不然你就無法使用Poweradmin的管理界面,這個檔案夾在哪呢,其實就是/var/www/dnsadmin/install/把它删除就是了

# rm -rf /var/www/dnsadmin/install/

接下來就是測試Poweradmin的管理界面的時刻了,在浏覽器中打開http://127.0.0.0/dnsadmin/ 輸入管理使用者(admin)以及密碼(第1步“Poweradmin administrator password”中輸入的内容)。

<a href="http://wnqcmq.blog.51cto.com/attachment/201304/1/5200614_13648362651WKb.jpg"></a>

登入之後就是這個樣子了

<a href="http://wnqcmq.blog.51cto.com/attachment/201304/1/5200614_1364836269Moqh.jpg"></a>

那麼開始使用吧,你能清楚的看到很多的菜單選項,如果想建立一個新域的話就點選“Add master zone”小編我這裡添加了一個“zzutest.cn”的玩玩

<a href="http://wnqcmq.blog.51cto.com/attachment/201304/1/5200614_136483627820cI.jpg"></a>

可以選擇域的類型,我選的是主域之後點選”Add zone”就是了,然後回到“Index”頁面點選“List zones”就會看到下面的内容(小編原來在mysql資料庫中添加的域也會顯示出來)

<a href="http://wnqcmq.blog.51cto.com/attachment/201304/1/5200614_1364836283wobi.jpg"></a>

那麼如何能添加主機記錄呢,請看下圖,單擊小編滑鼠訓示的位置就是域的視圖模式了

<a href="http://wnqcmq.blog.51cto.com/attachment/201304/1/5200614_1364836289cndj.jpg"></a>

<a href="http://wnqcmq.blog.51cto.com/attachment/201304/1/5200614_13648362954axe.jpg"></a>

找到“Add record”按鈕的上面就可以添加相應的主機記錄了比如小編添加了一個

zzutest.cn NS abc.net

然後單擊“Add record”按鈕就會添加成功了

<a href="http://wnqcmq.blog.51cto.com/attachment/201304/1/5200614_1364836303AcGM.jpg"></a>

然後添加一條主機記錄啦

www.zzutest.cn A 202.197.189.111

<a href="http://wnqcmq.blog.51cto.com/attachment/201304/1/5200614_1364836309MLL6.jpg"></a>

這就是我的phpMyadmin的管理頁面啦,左邊可以看到本機所有的mysql資料庫啦,可以展開dnsdb看看

<a href="http://wnqcmq.blog.51cto.com/attachment/201304/1/5200614_136483631310Q2.jpg"></a>

左側的這些表是不是很熟悉啊,這些都是小編在前面手工建立的啦,web管理界面資訊标明的很清晰啦,小編我就不一一介紹啦,在接下來的一篇部落格小編我會給讀者介紹另一種dns伺服器軟體的使用的,敬請關注哈

本文轉自 chenming421  51CTO部落格,原文連結:http://blog.51cto.com/wnqcmq/1168904