Instalace MyDNS-NG &MyDNSConfig 3 na Debian Lenny
V tomto tutoriálu popíšu, jak nainstalovat a nakonfigurovat MyDNS-NG a MyDNSConfig 3 na Debian Lenny. MyDNS-NG (založené na MyDNS původně napsané Donem Moorem -http://mydns.bboy.net/) je DNS server, který používá databázi MySQL jako backend místo konfiguračních souborů, jako jsou například Bind nebo djbdns. Výhodou je, že MyDNS jednoduše načte záznamy z databáze a nemusí se restartovat/znovu načítat při změně DNS záznamů nebo vytvoření/editaci/mazání zón. Sekundární jmenný server lze snadno nastavit instalací druhé instance MyDNS, která přistupuje ke stejné databázi, nebo, aby to bylo redundantnější, používá funkce replikace MySQL master/slave k replikaci dat na sekundární jmenný server.
MyDNSConfig je snadno použitelné webové rozhraní pro MyDNS-NG. MyDNSConfig může vytvářet všechny typy záznamů DNS, které jsou dostupné v MyDNS, a přidává funkce, jako je správa uživatelů a přístupová oprávnění.
Neposkytuji žádnou záruku, že to pro vás bude fungovat!
1 předběžná poznámka
V tomto tutoriálu používám název hostitele server1.example.com s IP adresou 192.168.0.100. Tato nastavení se pro vás mohou lišit, takže je musíte v případě potřeby nahradit.
2 Instalace MySQL
MySQL můžeme nainstalovat následovně:
aptitude install mysql-client mysql-server
Budou vám položeny následující otázky:
Nové heslo pro uživatele "root" MySQL:<-- yourrootsqlpassword
Opakujte heslo pro uživatele "root" MySQL:<-- yourrootsqlpassword
3 Instalace Apache2, PHP, phpMyAdmin
MyDNSConfig potřebuje webový server s podporou PHP; proto nainstaluji Apache2. Instaluji také phpMyAdmin, abych mohl později přistupovat k databázi přes webové rozhraní (ačkoli je to volitelné):
aptitude install apache2 apache2.2-common apache2-doc apache2-mpm-prefork apache2-utils libapache2-mod-php5 php5 php5-common php5-gd php5-mysql php5-imap phpmyadmin php5-cli php-pear php-auth php5-mcrypt mcrypt php5-imagick imagemagick vlogger
Uvidíte následující otázku:
Webový server pro automatické překonfigurování:<-- apache2
Poté spusťte následující příkaz pro povolení modulů Apache suexec, rewrite, ssl, actions a include:
a2enmod suexec rewrite ssl actions include
Zabezpečte phpMyAdmin odstraněním souboru /etc/phpmyadmin/htpasswd.setup...
rm -f /etc/phpmyadmin/htpasswd.setup
... a odeberte nebo okomentujte následující sekci v /etc/phpmyadmin/apache.conf:
vi /etc/phpmyadmin/apache.conf
[...] # # Authorize for setup # <Files setup.php> # # For Apache 1.3 and 2.0 # <IfModule mod_auth.c> # AuthType Basic # AuthName "phpMyAdmin Setup" # AuthUserFile /etc/phpmyadmin/htpasswd.setup # </IfModule> # # For Apache 2.2 # <IfModule mod_authn_file.c> # AuthType Basic # AuthName "phpMyAdmin Setup" # AuthUserFile /etc/phpmyadmin/htpasswd.setup # </IfModule> # Require valid-user # </Files> [...] |
Poté restartujte Apache:
/etc/init.d/apache2 restart
Nyní máte přístup k phpMyAdmin pod http://server1.example.com/phpmyadmin/ nebo http://192.168.0.100/phpmyadmin/.
4 Instalace MyDNS
Než nainstalujeme MyDNS, musíme nainstalovat několik předpokladů:
aptitude install g++ libc6 gcc gawk make texinfo libmysqlclient15-dev
MyDNS není k dispozici v repozitářích Debian Lenny, proto si ji musíme sestavit sami následovně:
cd /tmp
wget http://heanet.dl.sourceforge.net/sourceforge/mydns-ng/mydns-1.2.8.27.tar.gz
tar xvfz mydns-1.2.8.27.tar.gz
cd mydns-1.2.8
./configure
make
make install
Dále vytvoříme start/stop skript pro MyDNS:
vi /etc/init.d/mydns
#! /bin/sh # # mydns Start the MyDNS server # # Author: Philipp Kern <[email protected]>. # Based upon skeleton 1.9.4 by Miquel van Smoorenburg # <[email protected]> and Ian Murdock <[email protected]>. # set -e PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin DAEMON=/usr/local/sbin/mydns NAME=mydns DESC="DNS server" SCRIPTNAME=/etc/init.d/$NAME # Gracefully exit if the package has been removed. test -x $DAEMON || exit 0 case "$1" in start) echo -n "Starting $DESC: $NAME" start-stop-daemon --start --quiet \ --exec $DAEMON -- -b echo "." ;; stop) echo -n "Stopping $DESC: $NAME" start-stop-daemon --stop --oknodo --quiet \ --exec $DAEMON echo "." ;; reload|force-reload) echo -n "Reloading $DESC configuration..." start-stop-daemon --stop --signal HUP --quiet \ --exec $DAEMON echo "done." ;; restart) echo -n "Restarting $DESC: $NAME" start-stop-daemon --stop --quiet --oknodo \ --exec $DAEMON sleep 1 start-stop-daemon --start --quiet \ --exec $DAEMON -- -b echo "." ;; *) echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2 exit 1 ;; esac exit 0 |
Potom skript uděláme spustitelným a vytvoříme pro něj odkazy pro spuštění systému:
chmod +x /etc/init.d/mydns
výchozí nastavení mydns update-rc.d
Instalace MyDNS-NG &MyDNSConfig 3 na Debian Lenny – strana 2
5 Instalace MyDNSConfig 3
MyDNSConfig 3 můžeme nainstalovat následovně:
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
Tím se spustí instalační program MyDNSConfig 3:
server1:/tmp/mydnsconfig/install# php -q install.php
----------------------- -------------------------------------------------- -------
__ __ _____ _ _ _____ _____ __ _
| \/ | | __ \| \ | |/ ____|/ ____| / _(_)
| \ / |_ _| | | | \| | (___ | | ___ _ __ | |_ _ __ _
| |\/| | | | | | | | | | | | . ` |\___ \| | / _ \| '_ \| __| | ` |
| | | | |_| | |__| | |\ |____) | |___| (_) | | | | | | | (_| |
|_| |_|\__, |_____/|_| \_|_____/ \_____\___/|_| |_|_| |_|\__, |
__/| __/|
| ___/| ___/
-------------------------------- -------------------------------------------------- --
>> Počáteční konfigurace
Operační systém: Debian Lenny/Sid nebo kompatibilní
Následovat bude několik otázek pro primární konfiguraci buďte opatrní.
Výchozí hodnoty jsou v [závorkách] a lze je přijmout
Klepnutím na „konec“ (bez uvozovek) zastavíte instalátor.
Vyberte jazyk (en,de) [en]: <-- ENTER
Režim instalace (standardní, expertní) [standardní]: <-- ENTER
Úplný kvalifikovaný název hostitele (FQDN) serveru, např. server1.domain.tld [server1.example.com]: <-- ENTER
Název hostitele serveru MySQL [localhost]: <-- ENTER
Uživatelské jméno kořene MySQL [root]: <-- ENTER
MySQL roo t heslo []: <-- heslo yourrootsql
MySQL databázi k vytvoření [dbmydnsconfig]: <-- ENTER
Znaková sada MySQL [utf8]: <-- ENTER
Konfigurace MyDNS
Konfigurace Apache
Konfigurace Firewall
Instalace MyDNSConfig
MyDNSConfig Port [8080]: <-- ENTER
Instalace Crontab
žádný crontab pro root
Restartování služeb ...
Restartování webového serveru: apache2 ... čekání .
Instalace dokončena.
server1:/tmp/mydnsconfig/install#
Instalační program automaticky nakonfiguruje všechny základní služby, takže není potřeba žádná ruční konfigurace.
Poté můžete přistupovat k MyDNSConfig 3 pod http://server1.example.com:8080/ nebo http://192.168.0.100:8080/. Přihlaste se pomocí uživatelského jména admin a hesla admin (po prvním přihlášení byste měli změnit výchozí heslo):
6 Použití MyDNSConfig 3
Karta DNS je nejdůležitější součástí MyDNSConfig, protože zde můžete vytvářet zóny a záznamy, takže se zaměřím na tuto kartu.
Chcete-li vytvořit novou zónu, klikněte na tlačítko Přidat novou zónu DNS (SOA):
Nyní můžete vyplnit detaily zóny, např. název domény, primární jmenný server a e-mailovou adresu správce zóny (vezměte prosím na vědomí, že znak @ musíte nahradit tečkou!); tyto tři detaily musí končit tečkou! Ostatní detaily můžete nechat tak, jak jsou. Nyní můžete uložit zónu nebo přejít přímo na kartu Záznamy (tím se automaticky uloží podrobnosti zóny):
Na záložce záznamy nyní můžete vytvářet všechny druhy DNS záznamů (A, CNAME, MX, NS, TXT atd.) - stačí kliknout na příslušné tlačítko:
Zde je například formulář pro vytváření záznamů NS (pamatujte prosím, že pokud napíšete celé názvy hostitelů, musí končit tečkou!):
Zde je přehled – jak vidíte, vytvořil jsem několik dalších záznamů:
7 Aktualizace MyDNSConfig 3
Kdykoli bude k dispozici novější vydání MyDNSConfig 3, můžete svou instalaci MyDNSConfig 3 aktualizovat následovně:
mydnsconfig_update.sh
Tím se zobrazí průvodce aktualizací. UPOZORNĚNÍ:Můžete upgradovat na nejnovější stabilní verzi a na verzi svn. Důrazně se doporučuje upgradovat na nejnovější stabilní verzi, protože verze svn se používá pro vývoj a může obsahovat chyby. BYLI JSTE VAROVÁNI!!!
8 Upgrade z MyDNSConfig 1.x na MyDNSConfig 3.x
Neexistuje žádná přímá cesta k upgradu z MyDNSConfig 1.x na MyDNSConfig 3.x, nicméně je snadné importovat DNS záznamy z MyDNSConfig 1.x do MyDNSConfig 3.x.
V této kapitole předpokládám, že váš starý MyDNSConfig 1.x používá databázovou tabulku mydns a že vaše nová instalace MyDNSConfig 3 používá databázi dbmydnsconfig.
Nejprve nainstalujte MyDNSConfig 3 následovně:
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
Postupujte podle pokynů průvodce instalací. Po dokončení instalace (a PŘED vytvořením jakýchkoli záznamů ve webovém rozhraní MyDNSConfig 3!!!), otevřete phpMyAdmin nebo MySQL shell a spusťte následující dotazy MySQL (jako kořenový uživatel MySQL), abyste importovali DNS záznamy ze svého starého Instalace MyDNSConfig 1.x do MyDNSConfig 3 (ujistěte se, že používáte správné názvy databází – pokud se názvy vaší databáze liší, musíte nahradit `mydns` a `dbmydnsconfig`!):
ALTER TABLE `mydns`.`rr` PŘIDAT `id_serveru` int(11) NOT NULL výchozí '1',
PŘIDAT `aktivní` enum('N','Y') NOT NULL výchozí 'Y',
PŘIDAT časové razítko `samp` NOT NULL default CURRENT_TIMESTAMP,
ADD `serial` int(10) unsigned default NULL;
ALTER TABLE `mydns`.`rr` MODIFY `sys_userid` int(11) unsigned NENÍ NULL ZA `id`,
MODIFY `sys_groupid` int(11) unsigned NENÍ NULL AFTER `sys_userid`,
MODIFY `sys_perm_user` varchar(5) NENÍ NULL ZA `sys_groupid`,
MODIFY `sys_perm_group` varchar(5) NENÍ NULL AFTER `sys_perm_user`,
MODIFY `sys_perm_other` varchar(AFTER) NOT NULL `,
MODIFY `server_id` int(11) NOT NULL výchozí '1' ZA `sys_perm_other`;
INSERT INTO `dbmydnsconfig`.`dns_rr`
SELECT *
FROM `mydns`.`rr`;
AKTUALIZACE `dbmydnsconfig`.`dns_rr` SET `sys_userid` =1,
`sys_groupid` =0,
`sys_perm_user` ='riud',
`sys_perm_group` ='riud',
`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 NENÍ NULL ZA `id`,
MODIFY `sys_groupid` int(11) unsigned NENÍ NULL AFTER `sys_userid`,
MODIFY `sys_perm_user` varchar(5) NENÍ NULL ZA `sys_groupid`,
MODIFY `sys_perm_group` varchar(5) NENÍ NULL AFTER `sys_perm_user`,
MODIFY `sys_perm_other` varchar(AFTER) NOT NULL `,
MODIFY `server_id` int(11) NOT NULL výchozí '1' ZA `sys_perm_other`;
INSERT INTO `dbmydnsconfig`.`dns_soa`
SELECT *
FROM `mydns`.`soa`;
AKTUALIZACE `dbmydnsconfig`.`dns_soa` SET `sys_userid` =1,
`sys_groupid` =0,
`sys_perm_user` ='riud',
`sys_perm_group` ='riud',
`sys_perm_other` ='',
`server_id` =1;
Poté můžete přistupovat k MyDNSConfig 3 na portu 8080 (např. http://server1.example.com:8080 nebo http://192.168.0.100:8080); výchozí přihlašovací jméno je uživatelské jméno admin a heslo admin.
Vezměte prosím na vědomí, že tyto dotazy MySQL způsobují, že všechny zóny jsou ve vlastnictví správce. Pokud máte zóny, které by měl vlastnit někdo jiný, vytvořte klienta pro každého uživatele v MyDNSConfig 3 a přejděte na kartu DNS a vyberte správného klienta pro zóny.
9 odkazů
- MyDNS-NG:http://www.mydns.pl/
- MyDNSConfig:http://www.mydnsconfig.org/
- Debian:http://www.debian.org/