automatikus másodlagos DNS szerver

  • Eredeti: http://noe.wikidot.com/automat…ndary-dns-for-ispcp-howto
    Átírtam, hogy i-MSCP-vel működjön.


    [size=x-large]1. i-MSCP szerveren[/size]


    [size=large]1.1. domain list előállítása[/size]


    Hozzuk létre a /var/www/imscp/gui/public/domainlist.php fájlt az alábbi tartalommal:

    PHP
    1. <?phprequire 'imscp-lib.php';$cfg = iMSCP_Registry::get('config');$db = iMSCP_Registry::get('db');$count_query = " SELECT COUNT(`domain_id`) AS cnt FROM `domain`";$query = " SELECT `domain_name` FROM `domain` ORDER BY `domain_id` ASC";$rs = execute_query($db, $count_query);$records_count = $rs->fields['cnt'];$rs = execute_query($sql, $query); if ($rs->rowCount() == 0) { echo "//NO DOMAINS LISTED"; } else { echo "//$records_count HOSTED DOMAINS LISTED ON $cfg->SERVER_HOSTNAME [$cfg->BASE_SERVER_IP]\n"; echo "//CONFIGURATION FOR MAIN DOMAIN\n"; echo "zone \"$cfg->BASE_SERVER_VHOST\"{\n"; echo "\ttype slave;\n"; echo "\tfile \"/var/cache/bind/$cfg->BASE_SERVER_VHOST.db\";\n"; echo "\tmasters { $cfg->BASE_SERVER_IP; };\n"; echo "\tallow-notify { $cfg->BASE_SERVER_IP; };\n"; echo "};\n"; while (!$rs->EOF){ echo "zone \"".$rs->fields['domain_name']."\"{\n"; echo "\ttype slave;\n"; echo "\tfile \"/var/cache/bind/".$rs->fields['domain_name'].".db\";\n"; echo "\tmasters { $cfg->BASE_SERVER_IP; };\n"; echo "\tallow-notify { $cfg->BASE_SERVER_IP; };\n"; echo "};\n"; $rs->moveNext(); } }echo "//END DOMAINS LIST\n";?>


    Állítsuk be a tulajdonosát:

    Code
    1. chown vu2000:vu2000 -R /var/www/imscp/gui/public/domainlist.php


    Védjük meg a fájlt a külvilágtól, hogy csak a másodlagos DNS szerver használhassa, ehhez hozzuk létre a /var/www/imscp/gui/public/.htaccess fájlt az alábbi tartalommal:

    Code
    1. <Files domainlist.php> Order Deny,Allow Deny from all Allow from SECONDARY_DNS_IP_CIME</Files>


    [size=large]1.2. BIND9 módosítása[/size]


    Lépjünk be a bind9 config könyvtárába és hozzunk létre egy kulcsot a bind9 közötti kommunikációjához:

    Code
    1. cd /etc/binddnssec-keygen -a hmac-md5 -b 128 -n HOST TRANSFER


    Felgyorsíthatjuk a generálást, ha elkezdünk gépelni össze-vissza a parancs kiadása után.


    Ha elkészült a kulcs, adjuk ki az alábbi parancsot, hogy láthassuk a base64 kódolt kulcsot:

    Code
    1. cat Ktransfer.*.key | rev | cut -d' ' -f1 | rev


    Szükségünk lesz a következő lépésnél.


    Adjuk hozzá az alábbit a /etc/bind/named.conf.options fájl végéhez (options {} rész után)

    Code
    1. ////SECONDARY NS//key "TRANSFER" { algorithm hmac-md5; secret "<base64 kódolt kulcs>";};server SECONDARY_DNS_IP_CIME { keys { TRANSFER; };};


    Majd indítsuk újra a BIND9-et:

    Code
    1. service bind9 restart


    [size=x-large]2. Másodlagos DNS szerveren[/size]


    [size=large]2.1. BIND9 módosítása[/size]


    Adjuk hozzá a /etc/bind/named.conf.local fájl végéhez az alábbit:

    Code
    1. include "/etc/bind/named.conf.backup";


    Majd adjuk hozzá az alábbit a /etc/bind/named.conf.options fájl végéhez (options {} rész után)

    Code
    1. ////SECONDARY NS//key "TRANSFER" { algorithm hmac-md5; secret "<base64 kódolt kulcs>";};server IMSCP_SZERVER_IP_CIME { keys { TRANSFER; };};


    Majd indítsuk újra a BIND9-et:

    Code
    1. service bind9 restart


    Teszteljük, hogy le tudjuk-e kérdezni a domain listát:

    Code
    1. /usr/bin/wget --no-check-certificate https://IMSCP-URL/domainlist.php -O -


    Ha megjelennek a DNS-zóna definíciók, akkor minden remekül működik és ideje beállítani, hogy automatikusan frissüljön a domain-ek listája. Ehhez hozzuk létre a /etc/cron.d/imscp_dns_update fájtl az alábbi tartalommal:

    Code
    1. */5 * * * * root /usr/bin/wget --no-check-certificate https://IMSCP-URL/domainlist.php -O /etc/bind/named.conf.backup && /etc/init.d/bind9 reload && /usr/bin/logger "i-MSCP: Backup zones updated\!"


    A létrehozása után 5 percenként frissülnek a DNS-zónák az éles szerverről. Ha mindent jól csináltunk, akkor a /var/cache/bind/ könyvtárban megjelennek a <domain>.db fájlok.


    Lehet örülni :)


  • Ezt megcsináltam, és utána kell még valamit csinálni a másodlagos névszerverrel?
    http://forum.i-mscp.net/Thread…ry-DNS-after-installation


    Ha azt végigcsináltad, akkor odáig jutottál el, hogy a primary DNS szerver (i-MSCP) engedi a másodlagos DNS szervernek a zóna-transfert.


    Ezután a másodlagos DNS szerveren definiálni kell a zónákat, hogy áttöltse a tartalmukat. Ehhez van egy jobb, teljesebb leírás itt: http://forum.i-mscp.net/Thread…ervice?pid=11995#pid11995

  • Ha azt végigcsináltad, akkor odáig jutottál el, hogy a primary DNS szerver (i-MSCP) engedi a másodlagos DNS szervernek a zóna-transfert.


    Ezután a másodlagos DNS szerveren definiálni kell a zónákat, hogy áttöltse a tartalmukat. Ehhez van egy jobb, teljesebb leírás itt: http://forum.i-mscp.net/Thread…ervice?pid=11995#pid11995


    Köszi, azt hittem egy kicsit egyszerűbb lesz megcsinálni a másodlagos dns-t. Miért lehet másodlagos dns-t beállítani, ha ilyen bonyolult megcsinálni működőképesre.


  • Köszi, azt hittem egy kicsit egyszerűbb lesz megcsinálni a másodlagos dns-t. Miért lehet másodlagos dns-t beállítani, ha ilyen bonyolult megcsinálni működőképesre.


    ha igénybe másodlagos DNS szolgáltatás másnál, az egyszerűbb :)


    Amúgy egyáltalán nem bonyolúlt, szavakban:


    Elsődleges:
    1. Copy-paste-val létrehozod a fórumban szereplő scriptet. Ha ezt meghívod böngészőval, akkor megjeleníti a zónadefiníciókat.
    2. Megvéded ezt a fájlt, hogy más ne érje el, csak a másodlagos DNS szervert.


    Másodlagos DNS szerver:
    1. Először is kell egy file, amibe gyűjtöd a zónadefiníciókat.
    2. Megadod a bind-nak, hogy ezt a fájlt is töltse be.
    3. Beállítasz a CRON-ban egy scriptet, hogy automatikusan kérje le a zónadefiníciókat