Powerdns
Powerdns on avoimen lähdekoodilla varustettu DNS palvelinohjelmisto. Sitä on todella helppo käyttää ja asentaa. Käytämme itsekin tätä nimipalvelinohjelmistoa palveluissamme.
Sisällysluettelo
Asentaminen
Asenna PowerDNS ja MariaDB-tietokantapalvelin
sudo apt-get install software-properties-common sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8 sudo add-apt-repository 'deb [arch=amd64,i386,ppc64el] http://mirror.netinch.com/pub/mariadb/repo/10.2/ubuntu xenial main' sudo apt update sudo apt install mariadb-server sudo add-apt-repository 'deb [arch=amd64] https://repo.powerdns.com/ubuntu xenial-auth-41 main' wget https://repo.powerdns.com/FD380FBB-pub.asc sudo apt-key add FD380FBB-pub.asc sudo apt update && sudo apt install pdns-server pdns-backend-mysql
sudo apt-get install software-properties-common sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8 sudo add-apt-repository 'deb [arch=amd64,i386,ppc64el] http://mirror.netinch.com/pub/mariadb/repo/10.3/ubuntu bionic main' sudo apt update sudo apt install mariadb-server sudo add-apt-repository 'deb [arch=amd64] http://repo.powerdns.com/ubuntu bionic-auth-41 main' wget https://repo.powerdns.com/FD380FBB-pub.asc sudo apt-key add FD380FBB-pub.asc sudo apt update && sudo apt install pdns-server pdns-backend-mysql
Luo tietokantapalvelimelle käyttäjätili ja tietokanta powerdns:sää varten
mysql -u root -p
CREATE USER 'pdns'@'localhost' IDENTIFIED BY 'salasana'; CREATE DATABASE pdns; GRANT ALL PRIVILEGES ON pdns.* TO 'pdns'@'localhost'; FLUSH PRIVILEGES;
Luo PowerDNS-palvelimelle tietokanta ohjeen mukaisesti: https://doc.powerdns.com/md/authoritative/backend-generic-mysql/#Default Schema
Konfiguroi PowerDNS:n tietokantayhteys
launch+=gmysql # gmysql parameters gmysql-host=127.0.0.1 gmysql-port=3306 gmysql-dbname=pdns gmysql-user=pdns gmysql-password=salasana gmysql-dnssec=yes # gmysql-socket=
Luo palvelimelle tietokantaan taulut ohjeen mukaisesti: https://doc.powerdns.com/md/authoritative/backend-generic-mysql/#Default Schema
Käynnistä palvelu uudelleen
sudo service pdns restart
Asenna ja konfiguroi Poweradmin
Asennetaan webpalvelimeksi Apache2 ja PHP5
aptitude install apache2 php5 php5-curl php5-dev php5-gd php-pear php5-imap php5-mcrypt php5-mysql php5-xmlrpc gettext
Asenna lisäksi kaksi PEAR pakettia
pear install DB pear install pear/MDB2#mysql
Lataa PowerDNS
http://sourceforge.net/projects/poweradmin/
Esimerkiksi:
cd /tmp wget http://heanet.dl.sourceforge.net/project/poweradmin/poweradmin-2.1.7.tgz
Pura tiedosto
tar -xvzf poweradmin-*.tgz
Siirrä se /var/www/poweradmin hakemistoon tai muuhun webhakemistoon. Vaihdetaan samalla nimeä...
mv /tmp/poweradmin-2.1.7 /var/www/poweradmin
Luodaan config.inc.php tiedosto
touch /var/www/poweradmin/inc/config.inc.php
Määritetään poweradmin hakemistoon omistusoikeudet
chown www-data:www-data -R /var/www/poweradmin
Tarkista Apachen konfiguraatiosta että juurihakemisto on /var/www.
nano /etc/apache2/sites-available/000-default.conf
TAI
nano /etc/apache2/sites-available/default
Tiedostossa pitäisi olla:
DocumentRoot /var/www/
Käynnistä muutoksen jälkeen Apache2 uudelleen
service apache2 restart
Web UI
Siirry selaimessa IP-osoitteesi/poweradmin
1. Aloita asennus siirtymällä Poweradminissa install/ linkistä.
2. Määritä kieli, englanti
3. Lue ohjeet
4. Määritä tietokantasi käyttäjänimi, tietokannan käyttäjänimen salasana, tietokantapalvelimen tyyppi, tietokantapalvelimen isäntänimi, tietokantapalvelimen portti jota tietokanta kuuntelee, tietokannan nimi, ja Poweradminin järjestelmävalvojan salasana.
5. Luo uusi poweradmin käyttäjä.
6. Aloita asennus
Asennuksen lopuksi poista installer hakemisto.
rm -R /var/www/poweradmin/installer
Kirjaudu sisälle.
PowerDNS Master-Slave
Asennetaan molempiin palvelimiin PowerDNS ja MariaDB-palvelin.
sudo apt-get install software-properties-common sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8 sudo add-apt-repository 'deb [arch=amd64,i386,ppc64el] http://mirror.netinch.com/pub/mariadb/repo/10.2/ubuntu xenial main' sudo apt update sudo apt install mariadb-server sudo add-apt-repository 'deb [arch=amd64] https://repo.powerdns.com/ubuntu xenial-auth-40 main' wget https://repo.powerdns.com/FD380FBB-pub.asc sudo apt-key add FD380FBB-pub.asc sudo apt update && sudo apt install pdns-server pdns-backend-mysql
Luo tietokantapalvelimelle käyttäjätili ja tietokanta powerdns:sää varten
mysql -u root -p
CREATE USER 'pdns'@'localhost' IDENTIFIED BY 'salasana'; CREATE DATABASE pdns; GRANT ALL PRIVILEGES ON pdns.* TO 'pdns'@'localhost'; FLUSH PRIVILEGES;
Luo PowerDNS-palvelimelle tietokanta ohjeen mukaisesti: https://doc.powerdns.com/md/authoritative/backend-generic-mysql/#Default Schema
Konfiguroi PowerDNS:n tietokantayhteys
sudo nano /etc/powerdns/pdns.d/pdns.local.gmysql.conf
launch+=gmysql # gmysql parameters gmysql-host=127.0.0.1 gmysql-port=3306 gmysql-dbname=pdns gmysql-user=pdns gmysql-password=XXXXXXX gmysql-dnssec=yes # gmysql-socket=
Master -palvelin konfiguraatio
Konfiguroit PowerDNS -Master palvelin
sudo nano /etc/powerdns/pdns.d/pdns.local.conf
Vaihda allow-axfr-ips ja also-notify kohtaan Slave palvelinten IP-osoitteet. Tähän IP-osoitteeseen lähetetään myös päivitysilmoitus, että slave tietää päivittää uudet tiedot masterilta.
allow-axfr-ips=192.168.22.1 also-notify=192.168.22.1 disable-axfr=no master=yes slave=no version-string=
Slave -palvelin konfiguraatio
Konfiguroi PowerDNS -Slave palvelin
sudo nano /etc/powerdns/pdns.d/pdns.local.conf
allow-recursion=0.0.0.0/0 daemon=yes disable-axfr=yes guardian=yes local-address=0.0.0.0 local-port=53 log-dns-details=on master=no slave=yes slave-cycle-interval=60 version-string=
Käynnistä PowerDNS uudelleen
Luodaan slave-zonet
Luodaan Slave-palvelimelle zonet seuraavalla komennolla. 192.168.1.10 on master-palvelimen IP-osoite.
sudo pdnsutil create-slave-zone taisto.org 192.168.1.10
Lisäjuttuja
DNSSEC käyttöön verkkotunnukselle
DNSSEC käyttöönotto on todella helppoa ja onnistuu yhdellä komennolla.
sudo pdnsutil secure-zone example.org
Tämän lisäksi sinun tulee ilmoittaa tämä välittäjälle että määrittää DNSSECin asetukset heidän järjestelmään. Viestintäviraston järjestelmä osaa hakea suoraan DS tietueet. Testaa DNSSEC toimivuus: https://dnssec-debugger.verisignlabs.com/ tai https://dnscheck.ripe.net/
Näet DNSSEC DS tietueet seuraavalla komennolla. S
sudo pdnsutil show-zone example.org
Otat sieltä (SHA256 digest) riviltä pitkän litannian. Esimerkki tulostuksesta
DS = example.org. IN DS <serial> 8 2 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ; ( SHA256) digest)
Poista DNSSEC käytöstä. Poistathan myös verkkotunnuksen juuresta DNSSEC käytöstä!
sudo pdnsutil disable-dnssec example.org
Konfiguroi .fi domainille
Kaikki rekisteröijät kuten Viestintävirasto ei tue uusimpia algoritmeja. Siksi voi suositella käyttämään algoritmia 8 eli RSHA256.
Konfiguroidaan PowerDNS:sään:
default-ksk-algorithms=rsasha256 default-ksk-size=2048 default-zsk-algorithms=rsasha256 default-zsk-size=1024
Ja sitten ajetaan
sudo pdnsutil secure-zone domain.fi
Sitten välittäjän tulee päivittää tiedot nimipalvelimelle.
Testaa DNSSEC toimivuus
Tämä voidaan testata vaikka dig komennolla
dig example.org +dnssec +multi
Tai käyttää testaussivuja
https://dnssec-debugger.verisignlabs.com/
GeoDNS
GeoDNS:n avulla voidaan vastata eri tietueita riippuen lähde-osoitteesta. Tämä on hyödyllistä erityisesti jos verkkosivulla on käyttäjiä eri puolilla maapalloa ja sivusto on useilla sijainneissakin saatavilla eri IP:llä. GeoDNS osaa näin vastata pyyntöihin sijaintikohtaisesti.
Asenna PowerDNS palvelimelle
sudo apt install pdns-backend-geoip libgeoip-dev libyaml-cpp-dev
Luo tiedosto /etc/powerdns/pdns.d/pdns.local.geoip.conf
launch+=geoip geoip-database-files=/usr/share/GeoIP/GeoIP.dat,/usr/share/GeoIP/GeoIPv6.dat geoip-zones-file=/etc/powerdns/geo.yml #geoip-dnssec-keydir=
Luo tiedosto sitten /etc/powerdns/geo.yml ja liitä alla oleva konffi tiedostoon. Kirjaa tänne verkkotunnuksen tietueet. Ole tarkkana ettet muuta ollenkaan synktaksia ja välilyöntejä. YAML on todella tarkka näistä joten älä muuta tätä.
domains:
- domain: geo.example.org
ttl: 60
records:
geo.example.org:
- soa: ns.example.org. geoman.example.org. 1 7200 3600 86400 60
- ns: ns.example.org.
deu.geo.example.org:
- a: 192.0.0.2
- txt: Guten Tag
esp.geo.example.org:
- a: 192.0.0.10
- txt: Muy buenos dias
- loc: 40 8 43.041 N 3 21 42.539 W 714m 10m 100m 10m
"*.geo.example.org":
- a: 127.0.0.53
- txt: I don't know exactly where you are
services:
www.geo.example.org: '%co.geo.example.org'
Käynnistä PowerDNS uudelleen
sudo service pdns restart
Testaa GeoDNS:sää eri sijainneista dig komennolla
dig www.geo.example.org @ns.example.org
Debug
Tarkista kaikki zonet
sudo pdnsutil check-all-zones