MyDNS 설치 · 7 min read · Jan 10, 2026

MySQL 기반 DNS 서버 실행: MyDNS - 페이지 2

2 MyDNS에 웹 인터페이스 설치하기

다음 단계에서는 Debian Sarge를 사용한다고 가정합니다. 기본 Debian Apache 문서 루트는 /var/www이므로 여기에서 웹 인터페이스를 설치하겠습니다. 또한 호스트 이름이 ns1.example.com이라고 가정합니다.

2.1 phpMyAdmin

phpMyAdmin은 이 튜토리얼의 시작 부분에서 설치되었습니다 (apt-get install mysql-server mysql-client libmysqlclient12-dev phpmyadmin), 따라서 http://ns1.example.com/phpmyadmin에서 접근할 수 있어야 합니다. 그런 다음 데이터베이스 mydns를 선택하고, rrsoa 테이블을 볼 수 있어야 합니다. 데이터베이스 구조/필드 등에 대한 설명은 여기에서 확인하세요: http://mydns.bboy.net/doc/html/mydns_8.html#SEC8

2.2 원본 MyDNS 웹 인터페이스

원본 MyDNS 웹 인터페이스를 설치하려면 (MyDNS 소스와 함께 제공되며 여전히 /tmp 디렉토리에 있어야 함) 다음을 수행합니다:

cp /tmp/mydns-1.0.0/contrib/admin.php /var/www

그런 다음 /var/www/admin.php를 편집하고 스크립트의 첫 부분에서 변수를 구성합니다. 예를 들어 다음과 같이:

| /*************************************************************************** CONFIGURABLE OPTIONS ***************************************************************************/ /* 다음 네 변수를 SQL 서버의 호스트 이름, 해당 서버에 접근하는 데 사용되는 사용자 이름 및 비밀번호, ** MyDNS 데이터가 있는 데이터베이스의 이름으로 설정하십시오. */ $dbhost = "localhost"; $dbuser = "mydns"; $dbpass = "mydns_password"; $dbname = "mydns"; /* 이 스크립트는 기본적으로 MySQL을 사용합니다. PostgreSQL을 사용하려면 '$use_pgsql'을 '1'로 설정하십시오. */ $use_pgsql = 0; /* 다음 두 변수는 이 스크립트에 SOA 테이블의 이름과 RR 테이블의 이름을 알려줍니다. */ $soa_table_name = "soa"; $rr_table_name = "rr"; /* 다음 두 값은 존 브라우저와 리소스 레코드 편집기에서 페이지당 표시되는 레코드 수를 구성합니다. */ $zone_group_size = 25; $rr_group_size = 20; /* 이 스크립트는 클라이언트가 해당 존의 레코드를 수정할 때마다 존의 일련 번호를 자동으로 업데이트할 수 있습니다. ** '$auto_update_serial'을 '1'로 설정하면 이 옵션이 활성화됩니다. */ $auto_update_serial = 1; /* 이 스크립트는 A 레코드를 수정, 추가 또는 삭제할 때 PTR 레코드를 자동으로 업데이트할 수 있습니다. 이 기능을 활성화하려면 '$auto_update_ptr'을 '1'로 설정하십시오. 이를 활성화하면 '$default_ns' 및 '$default_mbox'의 값을 아래에 입력해야 하므로 ** 새로운 SOA 레코드가 올바른 정보를 갖게 됩니다. */ $auto_update_ptr = 1; /* 이 옵션이 0이 아니면 이 스크립트는 레코드의 TTL이 존 최소값 아래로 설정되면 불평하지 않습니다. 아래의 $ttl_min이 0이 아니면 해당 값은 여전히 ** 확인됩니다. */ $ignore_minimum_ttl = 1; /* 다음 값들은 이 스크립트가 SOA 및 RR 레코드에 대한 최소 값을 강제하는 데 사용됩니다. 스크립트는 클라이언트가 ** 이 숫자보다 낮은 값을 입력하는 것을 방지합니다. */ $ttl_min = 300; $refresh_min = 300; $retry_min = 300; $expire_min = 86400; /* 다음 두 변수는 새로운 SOA 레코드의 기본 네임서버와 새로운 SOA 레코드의 기본 관리자 메일박스를 지정합니다. ** 새로운 존이 생성될 때마다 자동으로 채워집니다. */ $default_ns = "ns1.example.com."; $default_mbox = "admin.example.com."; /* 다음 배열은 새로운 SOA 레코드에 대한 기본 레코드를 지정합니다. SOA가 삽입될 때마다 자동으로 삽입됩니다. ** 각 레코드의 형식은 (name, type, aux, data)입니다. */ $default_records = array( array("", "NS", 0, "ns1.example.com."), /* array("", "MX", 10, "mail.example.com.") */ ); /* ** 다음 다섯 값은 새로운 존이 생성될 때마다 기본 값으로 사용됩니다. */ $default_ttl = 86400; $default_refresh = 28800; $default_retry = 7200; $default_expire = 604800; $default_minimum_ttl = 86400; /* ** 나머지 변수들은 미용적 변경을 활성화합니다. */ $fontsize = 12; /* 기본 글꼴 크기 (픽셀) */ $font_color = "#663300"; /* 글꼴 색상 */ $page_bgcolor = "white"; /* 페이지 배경 색상 */ $help_bgcolor = "#FFFFCC"; /* 메인 화면 도움말 상자 배경 색상 */ $soa_bgcolor = "#FFFF99"; /* SOA 편집기 배경 색상 */ $list_bgcolor_1 = "#FFFFCC"; /* 목록 항목 #1 배경 */ $list_bgcolor_2 = "#FFFFAA"; /* 목록 항목 #2 배경 */ $query_bgcolor = "#FFFFCC"; /* 검색 쿼리 입력 배경 색상 */ $query_fgcolor = "black"; /* 검색 쿼리 입력 글꼴 색상 */ $input_bgcolor = "white"; /* 텍스트 입력 상자 배경 색상 */ $input_fgcolor = "black"; /* 텍스트 입력 상자 글꼴 색상 */ /** 구성 가능한 옵션의 끝 *****************************************/ |

올바른 데이터베이스 세부정보를 입력했는지 확인하십시오. 또한 $auto_update_serial$auto_update_ptr를 1로 설정하고 $default_ns$default_mbox에 값을 지정하여 변경 시 일련 번호가 자동으로 증가하고 PTR 레코드도 자동으로 생성되도록 설정했습니다. 그러나 물론, 이는 귀하가 원하는 동작에 따라 다릅니다.

이제 http://ns1.example.com/admin.php에서 웹 인터페이스에 접근할 수 있습니다.

2.3 MyDNSConfig 설치

MyDNSConfig는 제가 PHP로 작성한 인터페이스입니다. 원본 MyDNS 웹 인터페이스는 필드 설명이 없기 때문에 초보자에게 다루기 어렵다는 것을 알게 되었습니다 (인터페이스의 디자인이 Bind의 존 파일과 유사하기 때문에 Bind 세계에서 온 경우에는 관리하기 쉽습니다).

MyDNSConfig는 http://www.mydnsconfig.org에서 다운로드할 수 있습니다.

이제 mydnsconfig-.tar.gz를 /tmp에 다운로드했다고 가정해 보겠습니다. 그런 다음 다음과 같이 설치합니다:

cd /tmp
tar xvfz mydnsconfig-.tar.gz
cd mydnsconfig
cp -fr
/var/www*

그런 다음 /var/www/lib/config.inc.php를 조정해야 합니다. 제 것은 다음과 같습니다:

| |

올바른 데이터베이스 세부정보를 입력했는지 확인하십시오! MyDNSConfig가 새로운 DNS 레코드를 생성할 때 자동으로 역 DNS 레코드 (PTR 레코드)을 생성하도록 하려면 $conf[‘auto_create_ptr’]을 1로 설정하고 $conf[‘default_ns’]에 기본 네임서버를 지정하십시오 (끝에 점을 잊지 마세요!) 그리고 $conf[‘default_mbox’]에 관리자 이메일 주소를 지정하십시오 (끝에 점을 잊지 마세요, 그리고 “@” 기호는 점으로 바꿔야 합니다!).

다음으로, mydns 데이터베이스의 rr 및 soa 테이블을 변경하고 MyDNSConfig에 필요한 새 테이블을 생성해야 합니다:

mysql -u root -p
비밀번호 입력:

Use mydns;

ALTER TABLE rr ADD sys_userid INT NOT NULL,
ADD sys_groupid INT NOT NULL AFTER sys_userid,
ADD sys_perm_user VARCHAR( 5 ) NOT NULL AFTER sys_groupid,
ADD sys_perm_group VARCHAR( 5 ) NOT NULL AFTER sys_perm_user,
ADD sys_perm_other VARCHAR( 5 ) NOT NULL AFTER sys_perm_group;

ALTER TABLE soa ADD sys_userid INT NOT NULL,
ADD sys_groupid INT NOT NULL AFTER sys_userid,
ADD sys_perm_user VARCHAR( 5 ) NOT NULL AFTER sys_groupid,
ADD sys_perm_group VARCHAR( 5 ) NOT NULL AFTER sys_perm_user,
ADD sys_perm_other VARCHAR( 5 ) NOT NULL AFTER sys_perm_group;

CREATE TABLE sys_user (
userid int(11) NOT NULL auto_increment,
sys_userid int(11) NOT NULL default ‘0’,
sys_groupid int(11) NOT NULL default ‘0’,
sys_perm_user varchar(5) NOT NULL default ‘’,
sys_perm_group varchar(5) NOT NULL default ‘’,
sys_perm_other varchar(5) NOT NULL default ‘’,
username varchar(100) NOT NULL default ‘’,
passwort varchar(100) NOT NULL default ‘’,
modules varchar(255) NOT NULL default ‘’,
startmodule varchar(255) NOT NULL default ‘’,
app_theme varchar(100) NOT NULL default ‘default’,
typ varchar(20) NOT NULL default ‘user’,
active tinyint(4) NOT NULL default ‘1’,
name varchar(100) NOT NULL default ‘’,
vorname varchar(100) NOT NULL default ‘’,
unternehmen varchar(100) NOT NULL default ‘’,
strasse varchar(100) NOT NULL default ‘’,
ort varchar(100) NOT NULL default ‘’,
plz varchar(10) NOT NULL default ‘’,
land varchar(50) NOT NULL default ‘’,
email varchar(100) NOT NULL default ‘’,
url varchar(255) NOT NULL default ‘’,
telefon varchar(100) NOT NULL default ‘’,
fax varchar(100) NOT NULL default ‘’,
language varchar(10) NOT NULL default ‘de’,
groups varchar(255) NOT NULL default ‘’,
default_group int(11) NOT NULL default ‘0’,
PRIMARY KEY (userid)
) TYPE=MyISAM AUTO_INCREMENT=2 ;

INSERT INTO sys_user (userid, sys_userid, sys_groupid, sys_perm_user, sys_perm_group, sys_perm_other, username, passwort, modules, startmodule, app_theme, typ, active, name, vorname, unternehmen, strasse, ort, plz, land, email, url, telefon, fax, language, groups, default_group) VALUES (1, 1, 0, ‘riud’, ‘riud’, ‘’, ‘admin’, ‘21232f297a57a5a743894a0e4a801fc3’, ‘admin,designer,resellers,sites,dns’, ‘dns’, ‘default’, ‘admin’, 1, ‘’, ‘Administrator’, ‘’, ‘’, ‘’, ‘’, ‘’, ‘’, ‘’, ‘’, ‘’, ‘en’, ‘1,2’, 1);

quit;

이제 http://ns1.example.com에서 MyDNSConfig에 접근할 수 있습니다. 기본 로그인 사용자 이름은 admin, 비밀번호도 admin입니다. 첫 로그인 후 System -> Edit user에서 비밀번호를 변경하십시오.

2.4 dig를 사용하여 레코드 테스트하기

여기에서 설명한 세 가지 웹 인터페이스 중 하나를 사용하여 DNS 레코드를 생성한 후, dig를 사용하여 레코드를 테스트할 수 있습니다. test.com. (끝에 점을 잊지 마세요!) 존을 생성했다고 가정하고 A 레코드 www를 생성했습니다. 다음을 실행하면:

dig @localhost www.test.com

출력은 다음과 같아야 합니다:

| :~# dig @localhost www.test.com ; <> DiG 9.2.4 <> @localhost www.test.com ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12658 ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;www.test.com. IN A ;; ANSWER SECTION: www.test.com. 86400 IN A 1.2.3.4 ;; Query time: 20 msec ;; SERVER: 1.2.3.4#53(localhost) ;; WHEN: Fri Dec 16 14:14:19 2005 ;; MSG SIZE rcvd: 45 |

원본 MyDNS 웹 인터페이스 또는 MyDNSConfig에서 PTR 레코드의 자동 생성을 활성화한 경우, 역 DNS 레코드도 확인할 수 있습니다. www.test.com1.2.3.4를 가리키면,

dig @localhost -x 1.2.3.4

다음과 같은 결과가 표시되어야 합니다:

| ~# dig @localhost -x 1.2.3.4 ; <> DiG 9.2.4 <> @localhost -x 1.2.3.4 ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 46572 ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;4.3.2.1.in-addr.arpa. IN PTR ;; ANSWER SECTION: 4.3.2.1.in-addr.arpa. 86400 IN PTR www.test.com. ;; Query time: 15 msec ;; SERVER: 1.2.3.4#53(localhost) ;; WHEN: Fri Dec 16 14:21:05 2005 ;; MSG SIZE rcvd: 69 |

Share: X/Twitter LinkedIn

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.