MyDNS - DNS Server mit MySQL

From Q
Revision as of 21:50, 21 October 2007 by Zulasch (talk | contribs) (Die Seite wurde neu angelegt: == Beschreibung == MyDNS ist ein DNS Server der anders als BIND oder MaraDNS, seine Eintragungen in eine SQL Datenbank anlegt. Zusätzlich verfügt dieses Program übe...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Beschreibung

MyDNS ist ein DNS Server der anders als BIND oder MaraDNS, seine Eintragungen in eine SQL Datenbank anlegt. Zusätzlich verfügt dieses Program über ein Webinterface das die Administration unheimlich erleichtert.
Das Wiki ist in zwei bereiche Aufgeteilt die Benutzung des Programms und die Installation. Ich habe mit absicht die Benutzung zuerst geschrieben.


Arbeiten mit My DNS

http://ip-des-dns-servers Das Webinterface ist simpel aufgebaut, oben sind 2 Menupunkte angeordnet, DNS und System. Auf der Linke seite ist die Zone ion unserm fall SOA zu sehen.

Neue Zone Anlegen

Klick auf "DNS" und "Add New Zone"

Template:Box File

Neue Records Anlegen

Template:Box File


Installation

MySQL Installieren


MySQL Datenbank installieren:
# emerge mysql


Möglicherweise werden hier folgende Fragen gestellt:


# Enable suExec? <-- Yes
# Which web server would you like to reconfigure automatically? <-- apache, apache2
# Do you want me to restart apache now? <-- Yes

nun sollte man ein SQL Passwort setzen:

# mysqladmin -u root password EIGENESPASSWORT

Die MySQL ist nun Fertig installiert.



MyDNS Installieren

MyDNS Programm installieren:
# emerge mydns

Alternativ für andere Distributionen: http://mydns.bboy.net/

Konfiguration

Einrichtung der Datenbank

Jetzt muss eine Datenbank erstellt werden ich wervende dafür folgende Informationen:


DB-Name:      mydns
DB-User:      mydns
DB-Passwort:  mydns-passwort


Datenbank erstellen mit:

# mysql -u root -p
# Enter password: EIGENESPASSWORT


MyDNS Datenbank und MyDNS User erstellen:

REATE DATABASE mydns;
GRANT SELECT, INSERT, UPDATE, DELETE ON mydns.* TO 'mydns'@'localhost' IDENTIFIED BY 'mydns_password';
GRANT SELECT, INSERT, UPDATE, DELETE ON mydns.* TO 'mydns'@'localhost.localdomain' IDENTIFIED BY 'mydns_password';
FLUSH PRIVILEGES;
quit;

hier werden die Tabellen in die DB erstellt
# mydns --create-tables
# Enter password: EIGENESPASSWORT

Noch 2 weitere Spalten in die SOA Tabelle der MyDNS Dantebank erstellen
# mysql -u root -p
# Enter password: EIGENESPASSWORT

ALTER TABLE mydns.soa ADD COLUMN active ENUM('Y','N') NOT NULL;
ALTER TABLE mydns.soa ADD INDEX (active);
ALTER TABLE mydns.soa ADD COLUMN xfer CHAR(255) NOT NULL;
quit;


Config & Skripte

als Nächstes müssen wir einige Konfigurationsdateien erstellen.


Template:Box File

Ganz wichtig ist die Anmeldung an der Datenbank, diese Einträge sollte genau überprüft werden um später Fehlfunkionen zu vermeiden.

Nun Brauchen wir noch ein Start skript.

Template:Box File

Das Skript sollte noch ausführbar gemacht werden, und anschließend gestartet:

# chmod 775 /etc/init.d/mydns
# /etc/init.d/mydns start

für ein Autostart eintrag:

# rc-update add mydns default

MyDNS Webinterface

Das Webinterface ist im Quellpakett mit dabei, wenn nicht einfach manuell downloaden http://mydns.bboy.net/ und in Apache root oder ein belibigen Webverzeichniss Kopieren.

# cp /tmp/mydns-1.1.0/contrib/admin.php /var/www/html/mydns

nun die admin.php editieren Template:Box File

MyDNS Config (Webinterface)

Das MyDNS webinterface ist nicht das selbe das weiter oben installiert wurde. Es lässt sich sehr gut bedienen und ist verständlich aufgebaut. Die installation erfolgt in nur wenige Schritte.

Download: http://www.mydnsconfig.org

nun die Datei entpacken und aufm webserver verschieben.:

# tar xvfz mydnsconfig-<version>.tar.gz
# cd mydnsconfig
# cp -fr * /var/www/html/mydns

Jetzt noch einige Konfigurationsoptionen:
Template:Box File


Hier auch ganz wichtig der Parameter rootpath sollte unbedingt geprüft und angepasst werden!


MyDNS Config (SQL)

Als Letztes noch die MySQL SOA Tabelle anpassen:

# 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;


so jetzt sollte der server unter dem angegebenen Pfad das MyDNS Webinterface anzeigen.


Hinweise

Anmeldung am Webinterface

User: admin Passwort: admin

Bekannte Probleme

es sollte kein anderer Dienst auf Port 53 lauffen sonst kann MyDNS nicht gestartet werden.

mit dem Befehl

# netstat -nap

lässt sich prüfen welce Ports von welcher Anwendung benutzt werden.