MyDNS - DNS Server mit MySQL
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"
Neue Records Anlegen
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.
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.
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.