Ero sivun ”Powerdns” versioiden välillä
Rivi 16: | Rivi 16: | ||
Luo '/etc/apt/sources.list.d/pdns.list' tiedosto ja lisää alla oleva sinne | Luo '/etc/apt/sources.list.d/pdns.list' tiedosto ja lisää alla oleva sinne | ||
− | sudo add-apt-repository 'deb [arch=amd64] https://repo.powerdns.com/ubuntu xenial-auth- | + | sudo add-apt-repository 'deb [arch=amd64] https://repo.powerdns.com/ubuntu xenial-auth-40 main' |
Lisätään avain | Lisätään avain |
Versio 2. marraskuuta 2017 kello 18.16
Powerdns on avoimen lähdekoodilla varustettu DNS palvelinohjelmisto.
Sisällysluettelo
Asenna Mysql - tietokantapalvelin
Asennetaan pakettihallinnasta mysql-server ja mysql-client paketit
sudo apt install mysql-server mysql-client
Vaihtoehtoisesti voit asentaa MariaDB:n.
Asenna ja konfiguroi PowerDNS
Lisää Source.listiin PowerDNS:än oma source niin saat uudemmat paketit: https://repo.powerdns.com/
Luo '/etc/apt/sources.list.d/pdns.list' tiedosto ja lisää alla oleva sinne
sudo add-apt-repository 'deb [arch=amd64] https://repo.powerdns.com/ubuntu xenial-auth-40 main'
Lisätään avain
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
Määritä asennuksessa käyttäjätunnus ja salasana tietokantaan.
Avaa PowerDNS konfigurointitiedosto pdns.conf
sudo nano /etc/powerdns/pdns.d/pdns.local.gmysql.conf
lisää tiedostoon launch kohtaan gmysql:
# MySQL Configuration # # Launch gmysql backend launch+=gmysql # gmysql parameters gmysql-host=127.0.0.1 gmysql-port=3306 gmysql-dbname=pdns gmysql-user=root gmysql-password=Qwerty1 gmysql-dnssec=yes # gmysql-socket=
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 -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 (vanha-ohje)
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.
Vaihtoehtoisesti voit tehdä MariaDB:llä Calera clusterin.
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
sudo apt 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 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