Powerdns
Powerdns on avoimen lähdekoodilla varustettu DNS palvelinohjelmisto.
Sisällysluettelo
Asenna Mysql - tietokantapalvelin
Asennetaan pakettihallinnasta mysql-server ja mysql-client paketit
aptitude install mysql-server mysql-client
Asenna ja konfiguroi PowerDNS
Lisää Source.listiin PowerDNS:än oma source niin saat uudemmat paketit: https://repo.powerdns.com/
sudo apt install install pdns-server pdns-backend-mysql
Määritä asennuksessa käyttäjätunnus ja salasana tietokantaan.
Avaa PowerDNS konfigurointitiedosto pdns.conf
nano /etc/powerdns/pdns.conf
lisää tiedostoon launch kohtaan gmysql:
launch=gmysql
Avaa pdns.local.conf ja määritä se seuraavanlaiseksi:
# Here comes the local changes the user made, like configuration of # the several backends that exists. gmysql-host=127.0.0.1 gmysql-user=root gmysql-password=Qwerty1 gmysql-dbname=pdns
Käynnistä palvelu uudelleen
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 -xvfz poweradmin-2.1.7.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.
DNS Server Cluster
Olet nyt luonut Master DNS palvelin ja nyt luodaan slave DNS palvelin joka kopioi kaiken master palvelimelta. Voit tehdä myös siitä kaksisuuntaisenkin, eli synkronoi molempiin suuntiin.
Käytössämme siis on MASTER = Pääpalvelin ja SLAVE = Varapalvelin
SLAVE: Asenna MySQL ja PowerDNS
Asenna Mysql-server ja PowerDNS Slave DNS palvelimeen
aptitude install mysql-server mysql-client pdns-server pdns-backend-mysql
Avaa powerdns konfigurointi tiedosto pdns.conf:
nano /etc/powerdns/pdns.conf
Etsi kohta launch ja määritä se seuraavanlaiseksi:
launch=qmysql
Avaa pdns.local.conf
nano /etc/powerdns/pdns.d/pdns.local.conf
Määritä se seuraavanlaiseksi:
# Here comes the local changes the user made, like configuration of # the several backends that exists. gmysql-host=127.0.0.1 gmysql-user=root gmysql-password=Qwerty1 gmysql-dbname=pdns
MASTER: MySQL Replication
Konfiguroidaan pääpalvelimeen Mysql replication,
Avaa Mysql-server konfigurointi tiedosto my.conf
nano /etc/mysql/my.conf
Ja lisää [mysqld] alleloppuun
[mysqld] ... server-id = 1 log_bin = /var/log/mysql/mysql-bin.log expire_logs_days = 10 max_binlog_size = 100M binlog_do_db = pdns
Määritä lisäksi bind-address:
bind-address = 0.0.0.0
Tallenna tiedosto ja käynnistä mysql-server uudelleen
service mysql-server restart
Kirjaudu mysql-serveriin terminaalista tai käytä phpmyadminia.
mysql -u root -p
Anna root käyttäjän salasana.
Lupdaan replicatioon käyttäjä dnsslave ja salasanaksi laitetaan Qwerty1. Sallimme vain luetettavasta IP-osoitteesta yhdistämisen.
grant replication slave on *.* to 'pdnsslave'@'23.55.22.5;' identified by 'Qwerty1'; flusht prifileges.
Tarkista onnistuiko
show master status;
Komento pitäisi tulostaa tälläistä:
+------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+------------------+ | mysql-bin.000001 | 106 | pdns | | +------------------+----------+--------------+------------------+ 1 row in set (0.00 sec)
SLAVE: MySQL Replication
Konfiguroidaan varapalvelimeen MySQL Replication.
Avaa my.conf konfigurointi tiedosto:
nano /etc/mysql/my.conf
Lisää [mysqld] alle:
[mysqld] ... server-id=2 master-connect-retry=60 relay-log=slave-relay-bin relay-log-index=slave-relay-bin.index replicate-do-db=pdns
Jos laitat useampia SLAVE palvelimai, muuta vain esimerkiksi server-id=3 jne...
Käynnistä Mysql uudelleen:
service mysql-server restart
Kirjaudu mysql palvelimelle
mysql -u root -p
Anna salasana.
Määritä master palvelin. Muista tiedot pääpalvelimelta. Näet ne sieltä show master status; komennolla.
change master to master_host='22.88.66.22', master_user='pdnsslave', master_password='Qwerty1', master_log_file='mysql-bin.000001',master_log_pos=107;
start slave;
Tarkista toiminta:
show slave status;
Testaa
dig example.org @dns-server1
dig example.org @dns-server2
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 avaimen. Testaa DNSSEC toimivuus: 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