Installeer DKIM voor DirectAdmin

  1. Voer de onderstaande stappen in de commandline:
    cd /usr/local/directadmin
    ./directadmin set dkim 2
  2. Activeer het in de exim configuratie en exim zelf:
    cd /usr/local/directadmin/custombuild
    ./build update
    ./build exim
    ./build eximconf
  3. Zet het voor de benodigde gebruikers aan in de DirectAdmin paneel onder:
    User Level -> E-Mail Accounts -> Enable DKIM

Of voer de onderstaande commando uit om DKIM voor alle reeds aanwezige domeinnamen aan te zetten:
echo "action=rewrite&value=dkim" >> /usr/local/directadmin/data/task.queue

Opmerking: De dkim=2 instelling, die bij punt 1 is aangegeven, zal DKIM niet voor een nieuwe domeinnaam activeren wanneer deze wordt aangemaakt. Het maakt echter alleen  deze functie beschikbaar voor de gebruiker, dus de gebruiker dient zelf dan DKIM nog aan of uit te zetten. Bij gebruik van dkim=1 zal DKIM automatisch worden geactiveerd als er een nieuwe domeinnaam wordt aangemaakt binnen DirectAdmin.  Gebruik dkim=1 alleen als de domeinnamen de lokale DNS service gebruiken, dus als voorbeeld  geen aparte PowerDNS server. Als er een externe DNS gebruikt wordt, moeten de DKIM TXT regels gecopieerd worden naar de externe DNS, anders worden de uitgaande e-mails wel gesigneerd alleen zal de dns check mislukken, en dat is een ramp omdat je dan helemaal geen DKIM meer hebt.

IPv6 activeren voor DirectAdmin

Stap 1:
Ga naar /usr/local/directadmin/conf/directadmin.conf en plaats de volgende regel erin:
ipv6=1


Stap 2:
Herstart nu directadmin:
/etc/init.d/directadmin restart
of
services directadmin restart


Stap 3:
Voeg je ipv6 ip bij toe.
Ga in het hoofdscherm van DirectAdmin met het Admin account naar IP Management.

In het blok IP kunt u de verkregen IPv6 nummer opgeven.
Het veld netmask kun je de subnetmask invullen, druk op add IP.

directadmin voeg ip adres toe

 


Stap 4:
Eens toegevoegd klik je in het IP Management hoofdscherm op je huidige ipv4 adres.
Onder “Select an IP to Link to …” kies je het toegevoegde ipv6 IP.
Je houdt de vinkjes aangevinkt en klikt op Link.

DirectAdmin selecteer een ip adres die aan een andere ip adres gekoppeld dient te worden

De webserver is nu klaar om alle websites ook te hosten via ipv6.


Stap 5:
DirectAdmin plaatst automatisch de AAAA records van de DNS instellingen voor alle domeinnamen die al ingevoerd zijn.


Stap 6:
Nu dien je na enkele uurtjes te testen of de DNS instellingen zijn gewijzigd door bijvoorbeeld te pingen:

ping -v6  het ipv6 ipadres

PowerDNS

Inleiding

De installatie van PowerDNS is gebasseerd op FreeBSD besturingsysteem.

Controle

Controleer of poort 53 al openstaat voor een andere DNS zoals Named

# sockstat -l

Mocht dit het geval zijn dan dien je eerst deze services te stoppen en te verwijderen voordat je PowerDNS kunt installeren en gebruiken.

Installatie

Installeer MySQL Server indien het nog niet op de server aanwezig is. MySQL Client wordt dan meteen mee geïnstalleerd

# pkg install dns/powerdns

To have your system build the port:

# cd /usr/ports/dns/powerdns/ && make install clean

De volgende instellingen moeten ingesteld worden:

Ga naar rc.conf bestand.

# vi /etc/rc.conf

En stel in dat MySQL automatisch opstart na een reboot.

mysql_enable="YES"

Installeer een database voor PowerDNS

Als eerste moet MySQL gestart worden

# /usr/local/etc/rc.d/mysql-server start

Vervolgens moet de root wachtwoord van MySQL ingesteld worden

# mysql -u root
# SET PASSWORD FOR 'root'@'localhost' = PASSWORD('verzin een uniek wachtwoord');
# SET PASSWORD FOR 'root'@'host_name' = PASSWORD('verzin een uniek wachtwoord');

Log in de MySQL client

# mysql -u root -p

Nu moet er een database genaamd ‘PowerDNS’ aangemaakt worden

# CREATE DATABASE pdns;
# use pdns;

Maak nu de benodigde tabellen, kolommen en indexes

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)
) Engine=InnoDB;

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(10) DEFAULT NULL,
  content               VARCHAR(64000) DEFAULT NULL,
  ttl                   INT DEFAULT NULL,
  prio                  INT DEFAULT NULL,
  change_date           INT DEFAULT NULL,
  disabled              TINYINT(1) DEFAULT 0,
  ordername             VARCHAR(255) BINARY DEFAULT NULL,
  auth                  TINYINT(1) DEFAULT 1,
  PRIMARY KEY (id)
) Engine=InnoDB;

CREATE INDEX nametype_index ON records(name,type);
CREATE INDEX domain_id ON records(domain_id);
CREATE INDEX recordorder ON records (domain_id, ordername);


CREATE TABLE supermasters (
  ip                    VARCHAR(64) NOT NULL,
  nameserver            VARCHAR(255) NOT NULL,
  account               VARCHAR(40) NOT NULL,
  PRIMARY KEY (ip, nameserver)
) Engine=InnoDB;


CREATE TABLE comments (
  id                    INT AUTO_INCREMENT,
  domain_id             INT NOT NULL,
  name                  VARCHAR(255) NOT NULL,
  type                  VARCHAR(10) NOT NULL,
  modified_at           INT NOT NULL,
  account               VARCHAR(40) NOT NULL,
  comment               VARCHAR(64000) NOT NULL,
  PRIMARY KEY (id)
) Engine=InnoDB;

CREATE INDEX comments_domain_id_idx ON comments (domain_id);
CREATE INDEX comments_name_type_idx ON comments (name, type);
CREATE INDEX comments_order_idx ON comments (domain_id, modified_at);


CREATE TABLE domainmetadata (
  id                    INT AUTO_INCREMENT,
  domain_id             INT NOT NULL,
  kind                  VARCHAR(32),
  content               TEXT,
  PRIMARY KEY (id)
) Engine=InnoDB;

CREATE INDEX domainmetadata_idx ON domainmetadata (domain_id, kind);


CREATE TABLE cryptokeys (
  id                    INT AUTO_INCREMENT,
  domain_id             INT NOT NULL,
  flags                 INT NOT NULL,
  active                BOOL,
  content               TEXT,
  PRIMARY KEY(id)
) Engine=InnoDB;

CREATE INDEX domainidindex ON cryptokeys(domain_id);


CREATE TABLE tsigkeys (
  id                    INT AUTO_INCREMENT,
  name                  VARCHAR(255),
  algorithm             VARCHAR(50),
  secret                VARCHAR(255),
  PRIMARY KEY (id)
) Engine=InnoDB;

CREATE UNIQUE INDEX namealgoindex ON tsigkeys(name, algorithm);

ALTER TABLE `records` ADD CONSTRAINT `records_ibfk_1` FOREIGN KEY (`domain_id`)
REFERENCES `domains` (`id`) ON DELETE CASCADE;

Het is geen goed idee om de root wachtwoord te gebruiken voor PowerDNS installatie. Dus we gaan een database gebruiker aanmaken en rechten geven voor de database die we zojuist hebben aangemaakt

# CREATE USER 'pdns'@'localhost' IDENTIFIED by ' ''verzin een uniek wachtwoord'' ';
# GRANT ALL PRIVILEGES ON pdns. * to 'pdns'@'localhost' IDENTIFIED by ' ''verzin een uniek wachtwoord'' ';
# FLUSH PRIVILEGES;
# quit;

Installeer PowerDNS

Installeer PowerDNS via portsnap

# cd /usr/ports/dns/powerdns/ && make install clean

Zorg ervoor dat PowerDNS opstart. Ga naar rc.conf bestand.

# vi /etc/rc.conf

En stel in dat PowerDNS automatisch opstart na een reboot.

pdns_enable="YES"

PowerDNS nu opstarten.

# /usr/local/etc/rc.d/pdns start

Installeer PowerDNS recursor

Installeer PowerDNS recursor via portsnap

# cd /usr/ports/dns/powerdns-recursor/ && make install clean

Zorg ervoor dat PowerDNS recursor opstart. Ga naar rc.conf bestand.

# vi /etc/rc.conf

En stel in dat PowerDNS recursor automatisch opstart na een reboot.

pdns_recursor_enable="YES"

PowerDNS recursor nu opstarten.

# /usr/local/etc/rc.d/pdns-recursor start

Configureer PowerDNS Master Server

Nu PowerDNS is geïnstalleerd, moet er een aantal aanpassingen in het configuratie bestand

# vi /usr/local/etc/pdns/pdns.conf

Haal de commentaar van de volgende regel weg en verander het naar 127.0.0.1:5300. Dit geeft aan PowerDNS door dat de gevraagde queries naar de PowerDNS-recursor gestuurd dient te worden, dat luistert op de poort 5300.

recursor=127.0.0.1:5300

Voeg het onderstaande aan het gedeelte launch toe.

launch=gmysql
gmysql-host=127.0.0.1
gmysql-user=powerdns
gmysql-password=(het gekozen wachtwoord voor de gebruiker powerdns van de MySQL server)
gmysql-dbname=pdns

Extra instellingen

allow-axfr-ips=84.22.100.69/24
allow-recursion=127.0.0.1
daemon=yes
disable-axfr=no
guardian=yes
local-address=127.0.0.1
local-port=53
log-dns-details=on
master=yes
slave=no

De recursor listener moet ingesteld worden op een andere poort dan PowerDNS al gebruikt, namelijk udp poort 53. Je hebt hierboven al de poort 5300 ingesteld, zo deze moeten we hieronder weer gebruiken.

# vi /usr/local/etc/pdns/recursor.conf

Zet de poort op 5300.

local-port=5300

Bovenaan in het bestand staat het kopje loopback 127.0.0.1

# allow-from    If set, only allow these comma separated netmasks to recurse
#
#allow-from=127.0.0.0/8, 10.0.0.0/8, 100.64.0.0/10, 169.254.0.0/16, 192.168.0.0/16, 172.16.0.0/12, ::1/128, fe80::/10
allow-from=127.0.0.0/8

Nu moeten we ervoor zorgen dat de PowerDNS en PowerDNS recursor opnieuw opstart.

# /usr/local/etc/rc.d/pdns restart
# /usr/local/etc/rc.d/pdns-recursor restart

Als je IPTables gebruikt als firewall, dan moet je http en DNS queries wel toestaan. Dit doe je door de volgende regels toe te voegen aan de firewall.

# iptables -A INPUT -m udp -p udp --sport 53 -j ACCEPT
# iptables -A INPUT -m tcp -p tcp --sport 80 -j ACCEPT
# service iptables save

Configureer PowerDNS Slave Server

Nu PowerDNS is geïnstalleerd, moet er een aantal aanpassingen in het configuratie bestand

# vi /usr/local/etc/pdns/pdns.conf

Haal de commentaar van de volgende regel weg en verander het naar 127.0.0.1:5300. Dit geeft aan PowerDNS door dat de gevraagde queries naar de PowerDNS-recursor gestuurd dient te worden, dat luistert op de poort 5300.

recursor=127.0.0.1:5300

Voeg het onderstaande aan het gedeelte launch toe.

launch=gmysql
gmysql-host=127.0.0.1
gmysql-user=powerdns
gmysql-password=(het gekozen wachtwoord voor de gebruiker powerdns van de MySQL server)
gmysql-dbname=pdns

Extra instellingen

allow-axfr-ips=37.252.121.42/24
allow-recursion=127.0.0.1
daemon=yes
disable-axfr=no
guardian=yes
local-address=127.0.0.1
local-port=53
log-dns-details=on
master=no
slave=yes

De recursor listener moet ingesteld worden op een andere poort dan PowerDNS al gebruikt, namelijk udp poort 53. Je hebt hierboven al de poort 5300 ingesteld, zo deze moeten we hieronder weer gebruiken.

# vi /usr/local/etc/pdns/recursor.conf

Zet de poort op 5300.

local-port=5300

Bovenaan in het bestand staat het kopje loopback 127.0.0.1

# allow-from    If set, only allow these comma separated netmasks to recurse
#
#allow-from=127.0.0.0/8, 10.0.0.0/8, 100.64.0.0/10, 169.254.0.0/16, 192.168.0.0/16, 172.16.0.0/12, ::1/128, fe80::/10
allow-from=127.0.0.0/8

Nu moeten we ervoor zorgen dat de PowerDNS en PowerDNS recursor opnieuw opstart.

# /usr/local/etc/rc.d/pdns restart
# /usr/local/etc/rc.d/pdns-recursor restart

Als je IPTables gebruikt als firewall, dan moet je http en DNS queries wel toestaan. Dit doe je door de volgende regels toe te voegen aan de firewall.

# iptables -A INPUT -m udp -p udp --sport 53 -j ACCEPT
# iptables -A INPUT -m tcp -p tcp --sport 80 -j ACCEPT
# service iptables save

Log in de MySQL client, selecteer de pdns database en voeg een regel toe voor supermasters tabel met daarbij het ip adres Master en de hostname van de Slave.

# mysql -u root -p
# mysql> use pdns;
# mysql> insert into supermasters values ('37.252.121.42', 'ns2.markterweele.nl', 'admin');
# mysql> exit;

Aanpassen hostfile op Master en Slave server

Op starten van PowerDNS

# ee /etc/hosts

Volgende twee regels toevoegen:

37.252.121.42  ns1.markterweele.nl
84.22.100.69    ns2.markterweele.nl

Beheer

Op starten van PowerDNS

# /usr/local/sbin/pdns_server &

Zie ook

External links

Nameservers

Het kan zijn dat ns2 of ns3 niet meer replicaten. Dit kan opeens voorkomen. In de error log staat dan een error code 1129

Oorzaak is Nagios, die polt op poort 3006 op de ns1, en deze zal op een gegeven moment de pollende machine in de ban list zetten.

ns1# mysqladmin -u root -p flush-hosts