PowerDNS Server Installatie
Uit MediaServe Wiki
Voor de authoritative DNS servers maken we gebruik van PowerDNS. De huidige pool van servers wordt als volgt gedefiniƫerd:
- ns1.mediaxs.nl
- Amsterdam op silicon.mediaxs.nl
- 85.12.50.132
- 2a01:788:f003:100:5054:ff:feec:e681
- ns2.mediaxs.nl
- Amsterdam op chlorine.mediaxs.nl
- 195.182.43.195
- 2a01:788:f003:100:5054:ff:feba:3d5f
- ns3.mediaxs.nl
- Washington op helium.mediaxs.nl
- 174.36.228.250
- 2607:f0d0:3001:19:5054:ff:fe9f:ac4
Het betreffen PowerDNS servers met MySQL backend. De DNS servers zijn verantwoordelijk voor het hosten van authoritative DNS zones inclusief Reverse DNS zones.
Installatie
We beginnen met de installatie van de MySQL backend:
aptitude install mysql-server mysql-client
Tijdens de installatie vraagt MySQL om een root wachtwoord op te geven, na de installatie zal de MySQL server automatisch opstarten. We gaan nu verder met de installatie van PowerDNS.
aptitude install pdns-server pdns-backend-mysql
Na de installatie wordt PowerDNS automatisch gestart, maar zonder de MySQL backend. We gaan de database als volgt aanmaken.
mysql -u root -p create database `powerdns`; grant all on `powerdns`.* TO 'powerdns'@'localhost' identified by '************'; flush privileges; use `powerdns`;
create table `domains` ( id int auto_increment, name varchar(255) not null, master varchar(128) default null, last_check int default null, type varchar(6) not null, notified_serial INT default null, account varchar(40) default null, primary key (id) );
create unique index `name_index` ON domains(name);
create table `records` ( id INT auto_increment, domain_id int default null, name varchar(255) default null, type varchar(6) default null, content varchar(255) default null, ttl int default null, prio int default null, change_date int default null, primary key(id) );
create index `rec_name_index` on records(name); create index `nametype_index` on records(name,type); create index `domain_id` on records(domain_id);
create table `supermasters` ( ip varchar(39) not null, nameserver varchar(255) not null, account varchar(40) default null );
quit;
En de koppeling vanuit PowerDNS:
cat > /etc/powerdns/pdns.conf << EOF allow-axfr-ips=85.12.50.132,85.12.50.138,10.0.0.132,10.0.0.138,195.182.43.195,174.36.228.250,127.0.0.1 allow-recursion=127.0.0.1,10.0.0.0/24,85.12.50.0/24,174.36.228.248/29,195.182.43.195 config-dir=/etc/powerdns out-of-zone-additional-processing=yes do-ipv6-additional-processing=yes daemon=yes disable-axfr=no guardian=yes launch=gmysql lazy-recursion=no local-address=IPLIST local-ipv6=IPV6LIST local-port=53 log-failed-updates=yes logfile=/var/log/pdns.log master=no module-dir=/usr/lib/powerdns setgid=pdns setuid=pdns slave=yes socket-dir=/var/run version-string=powerdns include=/etc/powerdns/pdns.d EOF
export IPLIST=`ip addr | sed '/^ inet \([0-9\.]*\)\/\(.*\)/!d' | sed 's/^ inet \([0-9\.]*\)\/\(.*\)/\1/' | tr '\n' ',' | sed 's/,$//'` sed -i s/IPLIST/"$IPLIST"/ /etc/powerdns/pdns.conf export IPV6LIST=`ip addr | sed '/^ inet6 \([0-9a-f\:]*\)\/\(.*\)/!d' | sed 's/^ inet6 \([0-9a-f\:]*\)\/\(.*\)/\1/' | sed '/^fe80\:/d' | tr '\n' ',' | sed 's/,$//'` sed -i s/IPV6LIST/"$IPV6LIST"/ /etc/powerdns/pdns.conf
cat >> /etc/powerdns/pdns.d/pdns.local << EOF gmysql-host=127.0.0.1 gmysql-user=powerdns gmysql-password=************ gmysql-dbname=powerdns EOF /etc/init.d/pdns restart
We gaan nu PowerAdmin installeren:
aptitude install apache2 libapache2-mod-php5 php5 php5-common php5-curl php5-dev php5-gd php-pear php5-imap php5-mcrypt php5-mhash php5-ming php5-mysql php5-xmlrpc gettext apache2-mpm-prefork pear install DB pear install pear/MDB2#mysql cd /var/www/ wget -O /var/www/poweradmin.tgz https://www.poweradmin.org/download/poweradmin-2.1.5.tgz tar -zxf poweradmin.tgz mv poweradmin-[0-9\.]* poweradmin rm poweradmin.tgz touch /var/www/poweradmin/inc/config.inc.php chown -R www-data:www-data /var/www/poweradmin/ /etc/init.d/apache2 restart
Volg de procedure via de webserver op /poweradmin/install en verwijder naderhand de install map van de server.
rm /var/www/poweradmin/install -fr
Let erop dat de Zone Templates en SuperMasters van alle DNS servers gelijk zijn ingesteld via de PowerAdmin interface.