Installieren von MyDNS &MyDNSConfig 3 auf Fedora 10
In diesem Tutorial beschreibe ich, wie man MyDNS und MyDNSConfig 3 auf Fedora 10 installiert und konfiguriert. MyDNS ist ein DNS-Server, der anstelle von Konfigurationsdateien wie zum Beispiel Bind oder djbdns eine MySQL-Datenbank als Backend verwendet. Der Vorteil ist, dass MyDNS die Einträge einfach aus der Datenbank liest und nicht neu gestartet/geladen werden muss, wenn sich DNS-Einträge ändern oder Zonen erstellt/bearbeitet/gelöscht werden. Ein sekundärer Nameserver kann einfach eingerichtet werden, indem eine zweite Instanz von MyDNS installiert wird, die auf dieselbe Datenbank zugreift, oder, um redundanter zu sein, die MySQL-Master/Slave-Replikationsfunktionen verwendet, um die Daten auf den sekundären Nameserver zu replizieren.
MyDNSConfig ist eine einfach zu bedienende webbasierte Schnittstelle zu MyDNS. MyDNSConfig kann alle Arten von DNS-Einträgen erstellen, die in MyDNS verfügbar sind, und fügt Funktionen wie Benutzerverwaltung und Zugriffsrechte hinzu.
Ich gebe keine Garantie dafür, dass dies bei Ihnen funktioniert!
1 Vorbemerkung
In diesem Tutorial verwende ich den Hostnamen server1.example.com mit der IP-Adresse 192.168.0.100. Diese Einstellungen können für Sie unterschiedlich sein, daher müssen Sie sie gegebenenfalls ersetzen.
2 Installation von MySQL
Wir können MySQL wie folgt installieren:
yum install mysql mysql-server
Dann erstellen wir die Systemstart-Links für MySQL (damit MySQL automatisch startet, wenn das System hochfährt) und starten den MySQL-Server:
chkconfig --levels 235 mysqld beim
/etc/init.d/mysqld start
Führen Sie
aus
mysqladmin -u root-Passwort Ihrrootsql-Passwort
mysqladmin -h server1.example.com -u root-Passwort Ihrrootsql-Passwort
um ein Passwort für den Benutzer root festzulegen (ansonsten kann jeder auf Ihre MySQL-Datenbank zugreifen!).
Wenn der letzte Befehl einen Fehler auswirft...
[[email protected] benannt]# mysqladmin -h server1.example.com -u root-Passwort yourrootsqlpassword
mysqladmin:Verbindung zum Server unter „server1.example.com“ fehlgeschlagen
Fehler:„Zugriff verweigert für Benutzer 'root'@'localhost' (mit Passwort:NO)'
[[email protected] named]#
... können wir das Passwort wie folgt setzen:connect to MySQL:
mysql -u root -p
Geben Sie das Passwort für den MySQL-Root-Benutzer ein. Führen Sie dann in der MySQL-Shell Folgendes aus:
mysql> USE mysql;
mysql> UPDATE user SET Password = password('yourrootsqlpassword') WHERE Host = 'server1.example.com' AND User = 'root';
mysql> UPDATE user SET Password = password('yourrootsqlpassword') WHERE Host = '127.0.0.1' AND User = 'root';
Ausführen
mysql> SELECT * FROM user;
um sicherzustellen, dass alle Zeilen, in denen der Benutzer root ist, ein Passwort haben.
Wenn alles in Ordnung aussieht, führen Sie
ausmysql> FLUSH PRIVILEGES;
... und verlassen Sie die MySQL-Shell:
mysql> quit;
3 Installation von Apache2, PHP, phpMyAdmin
MyDNSConfig benötigt einen Webserver mit PHP-Unterstützung; deshalb installiere ich Apache2. Ich installiere auch phpMyAdmin, damit ich später über ein Webinterface auf die Datenbank zugreifen kann (obwohl dies optional ist):
yum install httpd php php-mysql php-mbstring php php-devel php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-eaccelerator php-mcrypt php-mhash php-mssql php-snmp php-soap php-tidy curl curl-devel perl-libwww-perl ImageMagick libxml2 php-cli phpMyAdmin
Wir müssen auch vlogger installieren, der nicht als Fedora-Paket verfügbar ist:
cd /tmp
wget http://n0rp.chemlab.org/vlogger/vlogger-1.3.tar.gz
tar xvfz vlogger-1.3.tar.gz
mv vlogger-1.3/vlogger /usr/sbin/
rm -rf vlogger*
Jetzt konfigurieren wir phpMyAdmin. Wir ändern die Apache-Konfiguration so, dass phpMyAdmin Verbindungen nicht nur von localhost zulässt (durch Auskommentieren der Zeilengruppe
vi /etc/httpd/conf.d/phpMyAdmin.conf
# phpMyAdmin - Web based MySQL browser written in php # # Allows only localhost by default # # But allowing phpMyAdmin to anyone other than localhost should be considered # dangerous unless properly secured by SSL Alias /phpMyAdmin /usr/share/phpMyAdmin Alias /phpmyadmin /usr/share/phpMyAdmin #<Directory /usr/share/phpMyAdmin/> # order deny,allow # deny from all # allow from 127.0.0.1 #</Directory> # This directory does not require access over HTTP - taken from the original # phpMyAdmin upstream tarball # <Directory /usr/share/phpMyAdmin/libraries> Order Deny,Allow Deny from All Allow from None </Directory> # This configuration prevents mod_security at phpMyAdmin directories from # filtering SQL etc. This may break your mod_security implementation. # #<IfModule mod_security.c> # <Directory /usr/share/phpMyAdmin> # SecRuleInheritance Off # </Directory> #</IfModule> |
Dann erstellen wir die Systemstartlinks für Apache und starten es:
chkconfig --levels 235 httpd on
/etc/init.d/httpd start
Jetzt können Sie Ihren Browser auf http://server1.example.com/phpmyadmin/ oder http://192.168.0.100/phpmyadmin/ leiten und sich mit dem Benutzernamen root und Ihrem neuen root-MySQL-Passwort anmelden.
4 MyDNS installieren
Wir können MyDNS wie folgt installieren:
wget http://mydns.bboy.net/download/mydns-mysql-1.1.0-1.i386.rpm
rpm -ivh mydns-mysql-1.1.0-1.i386.rpm
Wenn das System hochfährt, muss MyDNS nach gestartet werden MySQL. Der MySQL-Startlink hat auf Fedora 10 die Priorität 64, also muss der MyDNS-Startlink eine Priorität zwischen 65 und 99 haben. Dazu öffnen wir das MyDNS-Init-Skript...
vi /etc/init.d/mydns
... und ändern
[...] # chkconfig: 345 52 50 [...] |
zu
[...] # chkconfig: 345 65 50 [...] |
Dann erstellen wir die Startup-Links:
chkconfig --levels 235 mydns on
Wir starten MyDNS jetzt nicht, da es zuerst konfiguriert werden muss - dies wird später automatisch vom MyDNSConfig 3-Installer erledigt.
Installieren von MyDNS &MyDNSConfig 3 auf Fedora 10 - Seite 2
5 Installation von MyDNSConfig 3
Wir können MyDNSConfig 3 wie folgt installieren:
cd /tmp
wget http://downloads.sourceforge.net/mydnsconfig/MyDNSConfig-3.0.1.tar.gz?use_mirror=
tar xvfz MyDNSConfig-3.0.1.tar.gz
cd mydnsconfig/install/
php -q install.php
Dadurch wird das MyDNSConfig 3-Installationsprogramm gestartet:
[[email protected] install]# php -q install.php
----------------------- -------------------------------------------------- -------
__ __ _____ _ _ _____ _____ __ _
| \/ | | __ \| \ | |/ ____|/ ____| / _(_)
| \ / |_ _| | | | \| | (___ | | ___ _ __ | |_ _ __ _
| |\/| | | | | | | | . ` |\___ \| | / _ \| '_ \| _| |/ _ ` |
| | | | |_| | |__| | |\ |____) | |___| (_) | | | | | | | (_| |
|_| |_|\__, |_____/|_| \_|_____/ \_____\___/|_| |_|_| |_|\__, |
__/ | __/ |
|___/ | -------------------------------------------------- --
>> Anfängliche Konfiguration
Betriebssystem: Fedora 10 oder kompatibel
Im Folgenden sind einige Fragen für die primäre Konfiguration seien Sie also vorsichtig.
Standardwerte sind in [Klammern] und können mit
Tippen Sie auf "Beenden" (ohne Anführungszeichen), um das Installationsprogramm zu stoppen.
Sprache auswählen (en,de) [en]: <-- ENTER
Installationsmodus (Standard,Experte) [Standard]: <-- ENTER
Vollständiger qualifizierter Hostname (FQDN) des Servers, z. B. server1.domain.tld [server1.example.com]: <-- ENTER
MySQL-Server-Hostname [localhost]: <-- ENTER
MySQL-Root-Benutzername [root]: <-- ENTER
MySQL-Root-Passw ord []: <-- yourrootsqlpassword
MySQL-Datenbank zum Erstellen [dbmydnsconfig]: <-- ENTER
MySQL charset [utf8]: <-- ENTER
MyDNS konfigurieren
Apache konfigurieren
Firewall konfigurieren
MyDNSConfig installieren
MyDNSConfig Port [8080]: <-- ENTER
chown: ungültiger Benutzer : `getmail'
Installieren Crontab
kein crontab für root
Neustarten der Dienste ...
Stoppen httpd: [ OK ]
[Mi Apr 08 01:38:25 2009] [warn] NameVirtualHost *:80 has no VirtualHosts
Starting httpd: [ OK ]
Installation completed.
[[email protected] install]#
Das Installationsprogramm konfiguriert automatisch alle zugrunde liegenden Dienste, sodass keine manuelle Konfiguration erforderlich ist.
Danach erreichen Sie MyDNSConfig 3 unter http://server1.example.com:8080/ oder http://192.168.0.100:8080/. Melden Sie sich mit dem Benutzernamen admin und dem Passwort admin an (das voreingestellte Passwort sollten Sie nach Ihrer ersten Anmeldung ändern):
6 Verwenden von MyDNSConfig 3
Die Registerkarte DNS ist der wichtigste Teil von MyDNSConfig, da Sie dort Zonen und Einträge erstellen können, daher werde ich mich auf diese Registerkarte konzentrieren.
Um eine neue Zone zu erstellen, klicken Sie auf die Schaltfläche Neue DNS-Zone (SOA) hinzufügen:
Jetzt können Sie die Details der Zone eingeben, z. den Domainnamen, den primären Nameserver und die E-Mail-Adresse des Zonenadministrators (bitte beachten Sie, dass Sie das @-Zeichen durch einen Punkt ersetzen müssen!); diese drei Angaben müssen mit einem Punkt enden! Die anderen Angaben können Sie so belassen. Sie können die Zone jetzt speichern oder direkt zur Registerkarte Aufzeichnungen gehen (dadurch werden die Zonendetails automatisch gespeichert):
Auf der Registerkarte „Einträge“ können Sie jetzt alle Arten von DNS-Einträgen erstellen (A, CNAME, MX, NS, TXT usw.) – klicken Sie einfach auf die entsprechende Schaltfläche:
Hier ist zum Beispiel das Formular zum Erstellen von NS-Einträgen (bitte beachten Sie, dass vollständige Hostnamen mit einem Punkt enden müssen!):
Hier ist die Übersicht - wie Sie sehen, habe ich einige weitere Datensätze erstellt:
7 Aktualisieren von MyDNSConfig 3
Wann immer es eine neuere Version von MyDNSConfig 3 gibt, können Sie Ihre MyDNSConfig 3-Installation wie folgt aktualisieren:
mydnsconfig_update.sh
Dadurch wird der Update-Assistent aufgerufen. BITTE BEACHTEN SIE:Sie können auf die neueste stabile Version und auf die SVN-Version upgraden. Es wird dringend empfohlen, auf die neueste stabile Version zu aktualisieren, da die SVN-Version für die Entwicklung verwendet wird und möglicherweise Fehler enthält. SIE WURDEN GEWARNT!!!
8 Upgrade von MyDNSConfig 1.x auf MyDNSConfig 3.x
Es gibt keinen direkten Upgrade-Pfad von MyDNSConfig 1.x auf MyDNSConfig 3.x, aber es ist einfach, die DNS-Einträge von MyDNSConfig 1.x in MyDNSConfig 3.x zu importieren.
In diesem Kapitel gehe ich davon aus, dass Ihr altes MyDNSConfig 1.x die Datenbanktabelle mydns verwendet und dass Ihre neue MyDNSConfig 3-Installation die Datenbank dbmydnsconfig verwendet.
Installieren Sie zuerst MyDNSConfig 3 wie folgt:
cd /tmp
wget http://downloads.sourceforge.net/mydnsconfig/MyDNSConfig-3.0.1.tar.gz?use_mirror=
tar xvfz MyDNSConfig-3.0.1.tar.gz
cd mydnsconfig/install/
php -q install.php
Folgen Sie dem Installationsassistenten. Nachdem die Installation abgeschlossen ist (und BEVOR Sie Einträge in der MyDNSConfig 3-Weboberfläche erstellen!!!), öffnen Sie phpMyAdmin oder eine MySQL-Shell und führen Sie die folgenden MySQL-Abfragen (als MySQL-Root-Benutzer) aus, um die DNS-Einträge von Ihrem alten zu importieren Installation von MyDNSConfig 1.x in MyDNSConfig 3 (stellen Sie sicher, dass Sie die richtigen Datenbanknamen verwenden - Sie müssen `mydns` und `dbmydnsconfig` ersetzen, wenn sich Ihre Datenbanknamen unterscheiden!):
ALTER TABLE `mydns`.`rr` ADD `server_id` int(11) NOT NULL default '1',
ADD `active' enum('N','Y') NOT NULL default 'Y',
ADD `stamp` timestamp NOT NULL default CURRENT_TIMESTAMP,
ADD `serial` int(10) unsigned default NULL;
ALTER TABLE `mydns`.`rr` MODIFY `sys_userid` int(11) unsigned NOT NULL AFTER `id`,
MODIFY `sys_groupid` int(11) unsigned NOT NULL AFTER `sys_userid`,
MODIFY `sys_perm_user` varchar(5) NICHT NULL NACH `sys_groupid`,
ÄNDERN `sys_perm_group` varchar(5) NICHT NULL NACH `sys_perm_user`,
MODIFY `sys_perm_other` varchar(5) NICHT NULL NACH `sys_perm_group `,
MODIFY `server_id` int(11) NOT NULL default '1' AFTER `sys_perm_other`;
INSERT INTO `dbmydnsconfig`.`dns_rr`
SELECT *
FROM `mydns`.`rr`;
UPDATE „dbmydnsconfig“. br />`sys_perm_other` ='',
`server_id` =1;
ALTER TABLE `mydns`.`soa` ADD `server_id` int(11) NOT NULL default '1';
ALTER TABLE `mydns`.`soa` MODIFY `sys_userid` int(11) unsigned NOT NULL AFTER `id`,
MODIFY `sys_groupid` int(11) unsigned NOT NULL AFTER `sys_userid`,
MODIFY `sys_perm_user` varchar(5) NICHT NULL NACH `sys_groupid`,
ÄNDERN `sys_perm_group` varchar(5) NICHT NULL NACH `sys_perm_user`,
MODIFY `sys_perm_other` varchar(5) NICHT NULL NACH `sys_perm_group `,
MODIFY `server_id` int(11) NOT NULL default '1' AFTER `sys_perm_other`;
INSERT INTO `dbmydnsconfig`.`dns_soa`
SELECT *
FROM `mydns`.`soa`;
UPDATE `dbmydnsconfig`.`dns_soa` SET `sys_userid` =1,
`sys_groupid` =0,
`sys_perm_user` ='riud',
`sys_perm_group` ='riud',
`sys_perm_other` ='',
`server_id` =1;
Danach können Sie MyDNSConfig 3 auf Port 8080 erreichen (z. B. http://server1.example.com:8080 oder http://192.168.0.100:8080); Der Standard-Login ist Benutzername admin und Passwort admin.
Bitte beachten Sie, dass diese MySQL-Abfragen dazu führen, dass alle Zonen dem Administrator gehören. Wenn Sie Zonen haben, die jemand anderem gehören sollten, erstellen Sie einen Client für jeden Benutzer in MyDNSConfig 3 und gehen Sie zur Registerkarte DNS und wählen Sie den richtigen Client für die Zonen aus.
9 Links
- MyDNS:http://mydns.bboy.net/
- MyDNSConfig:http://www.mydnsconfig.org/
- Fedora:http://fedoraproject.org/