MyDNS with MyDNSConfig Control Panel and DNSMasq on Ubuntu 6.10
このチュートリアルでは、MyDNSとMyDNSConfigをインストールして構成する方法について説明します。 MyDNSは、Bindやdjbdnsなどの構成ファイルの代わりにMySQLデータベースをバックエンドとして使用するDNSサーバーです。利点は、MyDNSがデータベースからレコードを読み取るだけであり、DNSレコードが変更されたとき、またはゾーンが作成/編集/削除されたときに、再起動/再ロードする必要がないことです。セカンダリネームサーバーは、同じデータベースにアクセスするMyDNSの2番目のインスタンスをインストールするか、より冗長にするために、MySQLマスター/スレーブレプリケーション機能を使用してデータをセカンダリネームサーバーにレプリケートすることで簡単にセットアップできます。
MyDNSConfigは、MyDNSへの使いやすいWebベースのインターフェイスです。 MyDNSConfigは、MyDNSで使用可能なすべてのタイプのDNSレコードを作成でき、ユーザー管理やアクセス権限などの機能を追加します。
このセットアップはUbuntu6.10を使用しますが、DebainEtchでも機能するはずです。
MyDNSConfigは、PHPで記述されたMyDNSへのWebベースのインターフェースです。これには、PHPが有効になっているWebサーバーとMySQLデータベースサーバーが必要です。 Apache、PHP、およびMySQLがすでにインストールされている場合は、この手順をスキップできます。
MySQLとApacheWebサーバーのインストール:
apt-get install libdbd-mysql-perl libdbi-perl libmysqlclient15off libnet-daemon-perl libplrpc-perl mysql-client mysql-client-5.0 mysql-server mysql-common apache2 phpmyadmin libapache2-mod-php5
MySQLルートパスワードを設定します:
mysqladmin -u root password yourrootsqlpassword
yourrootsqlpasswordを任意のパスワードに置き換えます。
MyDNSConfigのインストール
UbuntuユニバースリポジトリのMyDNSパッケージを使用します。次の手順に進む前に、ユニバースリポジトリが/etc/apt/sources.listで有効になっていることを確認してください。
MySQLにログインして、データベースを作成します。
mysql -u root -p
CREATE DATABASE mydns;
GRANT SELECT、INSERT、UPDATE、DELETEONmydns。*TO'mydns'@'localhost' IDENTIFIED BY'mydnspassword';
GRANT SELECT、INSERT、UPDATE、DELETEONmydns。* TO'mydns' @'localhost.localdomain' IDENTIFIED BY'mydnspassword';
FLUSH PRIVILEGES;
quit;
上記のコマンドのmydnspasswordという単語を、選択したパスワードに置き換えます。
MyDNSConfigのダウンロード:
cd / tmp
wget http://mesh.dl.sourceforge.net/sourceforge/mydnsconfig/MyDNSConfig-1.1.0.tar.gz
tar xvfz MyDNSConfig-1.1.0.tar.gz
cd MyDNSConfig-1.1.0
MyDNSConfigをインストールします:
mkdir / usr / share / mydnsconfig
cp -rf interface / * / usr / share / mydnsconfig /
ln -s / usr / share / mydnsconfig / web / / var / www / mydnsconfig
MyDNSConfig SQLデータベースをインストールします:
mysql -u root -p mydns < install/mydnsconfig.sql
上記のコマンドはパスワードを要求します。MySQLrootユーザーのパスワードを入力してください。
MyDNSConfig構成を編集します:
vi /usr/share/mydnsconfig/lib/config.inc.php
ファイルは次のようになります:
<?php /* Copyright (c) 2005, Till Brehm, Falko Timme, projektfarm Gmbh All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of ISPConfig nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ ini_set('register_globals',0); $conf["app_title"] = "MyDNSConfig"; $conf["app_version"] = "1.1.0"; $conf["rootpath"] = "/usr/share/mydnsconfig"; $conf["fs_div"] = "/"; // File system divider, \\ on windows and / on linux and unix $conf["classpath"] = $conf["rootpath"].$conf["fs_div"]."lib".$conf["fs_div"]."classes"; $conf["temppath"] = $conf["rootpath"].$conf["fs_div"]."temp"; /* Database Settings */ $conf["db_type"] = 'mysql'; $conf["db_host"] = 'localhost'; $conf["db_database"] = 'mydns'; $conf["db_user"] = 'mydns'; $conf["db_password"] = 'mydnspassword'; /* External programs */ $conf["programs"]["wput"] = $conf["rootpath"]."/tools/wput/wput"; /* Themes */ $conf["theme"] = 'grey'; $conf["html_content_encoding"] = 'text/html; charset=iso-8859-1'; $conf["logo"] = 'themes/default/images/mydnsconfig_logo.gif'; /* Default Language */ $conf["language"] = 'en'; /* Auto Load Modules */ $conf["start_db"] = true; $conf["start_session"] = true; /* DNS Settings */ $conf["auto_create_ptr"] = 1; // Automatically create PTR records? $conf["default_ns"] = 'ns1.example.com.'; // must be set if $conf['auto_create_ptr'] is 1. Don't forget the trailing dot! $conf["default_mbox"] = 'admin.example.com.'; // Admin email address. Must be set if $conf['auto_create_ptr'] is 1. Replace "@" with ".". Don't forget the trailing dot! $conf["default_ttl"] = 86400; $conf["default_refresh"] = 28800; $conf["default_retry"] = 7200; $conf["default_expire"] = 604800; $conf["default_minimum_ttl"] = 86400; ?>
その後、MyDNSConfigインストーラーを/tmpディレクトリから削除します。
cd / tmp
rm -rf MyDNSConfig-1.1.0 /
rm -f MyDNSConfig-1.1.0.tar.gz
MyDNSのインストール
次に、UbuntuからMyDNSパッケージをインストールします。 MyDNSに必要なすべてのテーブルを含むmydnsという名前のデータベースをすでに作成しているため、次の設定ではデータベースを作成しないことを選択できます。
apt-get install mydns-mysql
-> localhost
-> mydns
-> no
-> mydns
-> mydnspassword
MyDNSがTCPでもリッスンし、ゾーン転送を許可するようにMyDNS構成ファイルを変更します。
vi /etc/mydns.conf
allow-tcp = yes allow-axfr = yes
これで、MyDNSとMyDNSConfigの基本的なインストールが完了しました。 MyDNSConfigインターフェイスにログインするには、Webブラウザを開き、次のURLを入力して入力します。
http://<your_ip_address>/mydnsconfig/
MyDNSConfigのデフォルトのユーザー名とパスワードは次のとおりです。
ユーザー名:admin
パスワード:admin
[システム]>[ユーザー]でログインした後、パスワードを変更することを忘れないでください。
DNSMasqのインストール
MyDNSには、MyDNSが対象としないDNSレコードを解決できるDNSリゾルバーが含まれていません。次のステップでは、DNSリゾルバーをインストールして構成し、DNSMasqをキャッシュしてローカルDNSリゾルバーとして機能し、DNSMasqを使用して外部ドメインを解決するようにMyDNSを構成します。サーバーで外部ドメインを解決したくない場合は、この部分をスキップできます。
IP 127.0.0.1でDNSリゾルバーを作成します:
apt-get install dnsmasq
これにより、dnsmasqUbuntuパッケージがインストールされます。次に、DNSMasqとMyDNSの構成ファイルを編集して、両方のパッケージがすべてのIPアドレスの同じポートでリッスンしないようにする必要があります。
vi /etc/dnsmasq.conf
listen-address=127.0.0.1 no-dhcp-interface= bind-interfaces
次に、mydns.confファイルを編集して、MyDNSをしないに構成します。 127.0.0.1でリッスン:
vi /etc/mydns.conf
no-listen = 127.0.0.1 recursive = 127.0.0.1
次に、/etc/resolv.confを編集します:
vi /etc/resolv.conf
DNSMasq DNS-CacheがすべてのローカルDNSクエリにも使用されるように、最初の行として次の行を追加します。
nameserver 127.0.0.1
- FalkoTimmeによるMyDNSConfig1.0チュートリアル
- MyDNSホームページ
- MyDNSConfigホームページ
- DNSMasqホームページ