GNU/Linux >> Znalost Linux >  >> Panels >> Panels

Instalace MyDNS a ovládacího panelu MyDNSConfig na CentOS 5.1

Instalace MyDNS a ovládacího panelu MyDNSConfig na CentOS 5.1

V tomto tutoriálu popíšu, jak nainstalovat a nakonfigurovat MyDNS a MyDNSConfig na CentOS 5.1. MyDNS 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. 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 předpokladů

Nejprve povolíme úložiště RPMforge na našem systému CentOS, protože některé balíčky, které se chystáme instalovat v průběhu tohoto tutoriálu, nejsou dostupné v oficiálních repozitářích CentOS 5.1:

rpm -Uhv http://apt.sw.be/packages/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm

MyDNSConfig je webové rozhraní pro MyDNS napsané v PHP. To vyžaduje webový server s povoleným PHP a databázový server MySQL. Pokud již máte nainstalovaný Apache, PHP a MySQL, můžete tento krok přeskočit. Zde také nainstalujeme phpMyAdmin, abyste měli k dispozici webové rozhraní k databázi MySQL v případě potřeby:

yum install httpd mysql-server php php-mysql php-mbstring phpmyadmin

Spusťte MySQL:

chkconfig --levels 235 mysqld na
/etc/init.d/mysqld start

Poté nastavte hesla pro kořenový účet MySQL:

mysqladmin -u heslo root yourrootsqlpassword
mysqladmin -h server1.example.com -u root password yourrootsqlpassword

Nyní nakonfigurujeme phpMyAdmin. Změnili jsme konfiguraci Apache tak, aby phpMyAdmin umožňoval připojení nejen z localhostu (zakomentováním stanzy ):

vi /etc/httpd/conf.d/phpmyadmin.conf
#
#  Web application to manage MySQL
#

#<Directory "/usr/share/phpmyadmin">
#  Order Deny,Allow
#  Deny from all
#  Allow from 127.0.0.1
#</Directory>

Alias /phpmyadmin /usr/share/phpmyadmin
Alias /phpMyAdmin /usr/share/phpmyadmin
Alias /mysqladmin /usr/share/phpmyadmin

Dále změníme autentizaci v phpMyAdmin z cookie na http:

vi /usr/share/phpmyadmin/config.inc.php
[...]
/* Authentication type */
$cfg['Servers'][$i]['auth_type'] = 'http';
[...]

Poté vytvoříme spouštěcí odkazy systému pro Apache a spustíme jej:

chkconfig --levels 235 httpd na
/etc/init.d/httpd start

Nyní můžete svůj prohlížeč nasměrovat na http://server1.example.com/phpmyadmin/ nebo http://192.168.0.100/phpmyadmin/ a přihlásit se pomocí uživatelského jména root a vašeho nového hesla root MySQL.

3 Instalace MyDNSConfig

Přihlaste se do MySQL a vytvořte databázi:

mysql -u root -p

CREATE DATABASE mydns;
GRANT SELECT, INSERT, UPDATE, DELETE ON mydns.* TO 'mydns'@'localhost' IDENTIFIKOVANÉ PODLE 'mydnspassword';
GRANT SELECT, INSERT, UPDATE, DELETE ON mydns.* NA 'mydns'@'localhost.localdomain' IDENTIFIKOVANÉ PODLE 'mydnspassword';
FLUSH PRIVILEGES;
quit;

Nahraďte slovo mydnspassword ve výše uvedených příkazech heslem dle vašeho výběru.

Stáhněte si MyDNSConfig:

cd /tmp
wget http://mesh.dl.sourceforge.net/sourceforge/mydnsconfig/MyDNSConfig-1.1.0.tar.gz
tar xvfz MyDNSConfig-1.1.0.tar.gz
cd MyDNSConfig-1.1.0

Nainstalujte MyDNSConfig:

mkdir /usr/share/mydnsconfig
cp -rf interface/* /usr/share/mydnsconfig/
ln -s /usr/share/mydnsconfig/web/ /var/www/html/mydnsconfig

Nainstalujte databázi MyDNSConfig MySQL:

mysql -u root -p mydns < install/mydnsconfig.sql

Výše uvedený příkaz vyžaduje heslo, zadejte heslo uživatele root MySQL.

Upravte konfiguraci MyDNSConfig; prosím ujistěte se, že jste vyplnili správná nastavení databáze:

vi /usr/share/mydnsconfig/lib/config.inc.php
<?php
/*
Copyright (c) 2005, Till Brehm, Falko Timme, projektfarm Gmbh
All rights reserved.
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
    * Redistributions of source code must retain the above copyright notice,
      this list of conditions and the following disclaimer.
    * Redistributions in binary form must reproduce the above copyright notice,
      this list of conditions and the following disclaimer in the documentation
      and/or other materials provided with the distribution.
    * Neither the name of ISPConfig nor the names of its contributors
      may be used to endorse or promote products derived from this software without
      specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
ini_set('register_globals',0);
$conf["app_title"] = "MyDNSConfig";
$conf["app_version"] = "1.1.0";

$conf["rootpath"]            = "/usr/share/mydnsconfig";
$conf["fs_div"]                = "/"; // File system divider, \\ on windows and / on linux and unix
$conf["classpath"]            = $conf["rootpath"].$conf["fs_div"]."lib".$conf["fs_div"]."classes";
$conf["temppath"]            = $conf["rootpath"].$conf["fs_div"]."temp";

/*
        Database Settings
*/

$conf["db_type"]        = 'mysql';
$conf["db_host"]        = 'localhost';
$conf["db_database"]        = 'mydns';
$conf["db_user"]        = 'mydns';
$conf["db_password"]        = 'mydnspassword';

/*
        External programs
*/
$conf["programs"]["wput"]    = $conf["rootpath"]."/tools/wput/wput";

/*
        Themes
*/
$conf["theme"]            = 'grey';
$conf["html_content_encoding"]    = 'text/html; charset=iso-8859-1';
$conf["logo"]             = 'themes/default/images/mydnsconfig_logo.gif';
/*
        Default Language
*/
$conf["language"]                = 'en';

/*
        Auto Load Modules
*/
$conf["start_db"]                = true;
$conf["start_session"]    = true;
/*
        DNS Settings
*/
$conf["auto_create_ptr"] = 1; // Automatically create PTR records?
$conf["default_ns"] = 'ns1.example.com.'; // must be set if $conf['auto_create_ptr'] is 1. Don't forget the trailing dot!
$conf["default_mbox"] = 'admin.example.com.'; // Admin email address. Must be set if $conf['auto_create_ptr'] is 1. Replace "@" with ".". Don't forget the trailing dot!
$conf["default_ttl"] = 86400;
$conf["default_refresh"] = 28800;
$conf["default_retry"] = 7200;
$conf["default_expire"] = 604800;
$conf["default_minimum_ttl"] = 86400;
?>

Poté odeberte instalační program MyDNSConfig z adresáře /tmp:

cd /tmp
rm -rf MyDNSConfig-1.1.0/
rm -f MyDNSConfig-1.1.0.tar.gz

Instalace MyDNS a ovládacího panelu MyDNSConfig na CentOS 5.1 – Strana 2

4 Instalace MyDNS

Dále si stáhneme balíček mydns-mysql rpm z http://mydns.bboy.net/download/ a nainstalujeme jej následovně:

wget http://mydns.bboy.net/download/mydns-mysql-1.1.0-1.i386.rpm
rpm -ivh mydns-mysql-1.1.0-1.i386.rpm

Otevřete konfigurační soubor MyDNS /etc/mydns.conf, vyplňte správné údaje o databázi, povolte přenosy zón nastavením allow-axfr na yes, povolte TCP (allow-tcp =yes) a zadejte rekurzivní resolver (tj. nameserver, např. od vašeho ISP; např. rekurzivní =213.191.92.86), aby služba MyDNS mohla odpovídat na dotazy na domény, pro které není autoritativní:

vi /etc/mydns.conf
##
##  /etc/mydns.conf
##  Wed Jan 18 17:18:48 2006
##  For more information, see mydns.conf(5).
##


                                # DATABASE INFORMATION

db-host = localhost             # SQL server hostname
db-user = mydns                 # SQL server username
db-password = mydnspassword        # SQL server password
database = mydns                # MyDNS database name


                                # GENERAL OPTIONS

user = nobody                   # Run with the permissions of this user
group = nobody                  # Run with the permissions of this group
listen = *                      # Listen on these addresses ('*' for all)
no-listen =                     # Do not listen on these addresses


                                # CACHE OPTIONS

zone-cache-size = 1024          # Maximum number of elements stored in the zone cache
zone-cache-expire = 60          # Number of seconds after which cached zones expires
reply-cache-size = 1024         # Maximum number of elements stored in the reply cache
reply-cache-expire = 30         # Number of seconds after which cached replies expire


                                # ESOTERICA

log = LOG_DAEMON                # Facility to use for program output (LOG_*/stdout/stderr)
pidfile = /var/run/mydns.pid    # Path to PID file
timeout = 120                   # Number of seconds after which queries time out
multicpu = 1                    # Number of CPUs installed on your system
recursive = 213.191.92.86                       # Location of recursive resolver
allow-axfr = yes                # Should AXFR be enabled?
allow-tcp = yes                 # Should TCP be enabled?
allow-update = no               # Should DNS UPDATE be enabled?
ignore-minimum = no             # Ignore minimum TTL for zone?
soa-table = soa                 # Name of table containing SOA records
rr-table = rr                   # Name of table containing RR data
soa-where =                     # Extra WHERE clause for SOA queries
rr-where =                      # Extra WHERE clause for RR queries

Dále vytvořte spouštěcí odkazy systému pro MyDNS a spusťte MyDNS:

chkconfig --levels 235 mydns na
/etc/init.d/mydns start

Nakonec musíme opravit spouštěcí odkazy systému pro MyDNS. MyDNS závisí na MySQL, takže MyDNS se musí spustit po spuštění MySQL, jinak selže. Výchozí spouštěcí odkazy pro MyDNS umožňují spuštění před MySQL, což je špatně, takže to opravíme následovně:

cd /etc/rc.d/rc3.d
mv S52mydns S99mydns
cd /etc/rc.d/rc4.d
mv S52mydns S99mydns
cd /etc/rc. d/rc5.d
mv S52mydns S99mydns

MySQL používá spouštěcí odkazy S64mysql, takže přejmenování spouštěcích odkazů MyDNS z S52mydns na S99mydns zajistí, že se MyDNS spustí po MySQL.

Základní instalace MyDNS a MyDNSConfig je nyní dokončena. Chcete-li se přihlásit do rozhraní MyDNSConfig, otevřete webový prohlížeč a zadejte následující URL:

http://<your_ip_address>/mydnsconfig/

Nahraďte IP adresou vašeho serveru.

Výchozí uživatelské jméno a heslo pro MyDNSConfig jsou:

Uživatelské jméno:admin
Heslo:admin

Nezapomeňte si po přihlášení změnit heslo v části Systém> Uživatelé.

5 Použití MyDNSConfig

V této kapitole ukážu, jak používat MyDNSConfig vytvořením příkladu zóny test.com a záznamu A www.test.com.

První přihlášení:

Klikněte na tlačítko Přidat novou zónu:

Formulář na záložce SOA má přednastavené výchozí hodnoty. Vyplňte test.com. (poznamenejte si prosím poslední tečku!) v poli Origin a v případě potřeby proveďte změny v ostatních polích. Pole Přenosy zón může zůstat prázdné, což znamená, že jakýkoli server se může připojit k našemu serveru MyDNS a zahájit přenos zóny; pokud vyplníte IP adresu, může se připojit pouze tento systém:

Poté, co kliknete na Uložit, najdete svou novou zónu uvedenou na stránce Zones (SOA). Klikněte na test.com. odkaz pro přechod na vlastnosti zóny:

Dále klikněte na kartu Záznamy:

Poté kliknutím na tlačítko Přidat nový záznam vytvořte záznam (A/MX/CNAME/...):

Chcete-li vytvořit záznam A www.test.com, vyplňte www do pole Název, jako Typ vyberte A, do pole Data zadejte IP adresu www.test.com (např. 1.2.3.4) a zadejte TTL ( v sekundách). Pole Preference/Priorita může zůstat prázdné pro záznamy A; je potřeba pro záznamy MX:

Po kliknutí na Uložit najdete www.test.com v seznamu záznamů pro zónu test.com:

Už je to tak – nejsou potřeba žádné restarty. Nyní můžete vyzkoušet, zda služba MyDNS dokáže vyřešit adresu www.test.com:

dig @localhost www.test.com

Pokud vše půjde dobře, výstup by měl vypadat nějak takto:

[[email protected] ~]# dig @localhost www.test.com

; <<>> DiG 9.5.0a6 <<>> @localhost www.test.com
; (Byl nalezen 1 server)
;; globální možnosti:  printcmd
;; Dostal jsem odpověď:
;; ->>HEADER<<- opcode: QUERY, stav: NOERROR, id: 55393
;; příznaky: qr aa rd ra; DOTAZ: 1, ODPOVĚĎ: 1, AUTORITA: 0, DALŠÍ: 0

;; SEKCE OTÁZKY:
;www.test.com. IN      A

;; SEKCE ODPOVĚDI:
www.test.com. 86400   IN      A       1.2.3.4

;; Čas dotazu: 24 ms
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; KDY: Po prosinec  3 23:47:14 2007
;; MSG SIZE  rcvd: 46

[[email protected] ~]#

  • MyDNS:http://mydns.bboy.net
  • MyDNSConfig:http://www.mydnsconfig.org
  • CentOS:http://www.centos.org

Panels
  1. MyDNS s ovládacím panelem MyDNSConfig a DNSMasq na Ubuntu 6.10

  2. Jak se dostanu k ovládacímu panelu?

  3. Jak mohu znovu odeslat přihlašovací údaje prostřednictvím ovládacího panelu?

  1. Jak mohu použít ovládací panel jako prodejce?

  2. Jak aktualizuji kontaktní informace prostřednictvím ovládacího panelu?

  3. Jak přizpůsobím vzhled ovládacího panelu svým zákazníkům?

  1. Instalace PostgreSQL a phpPgAdmin v CentOS

  2. Jak se přihlásit do ovládacího panelu Conetix

  3. Jak odstranit databázi MSSQL nebo MySQL v ovládacím panelu Plesk