Outils pour utilisateurs

Outils du site


informatique:linux:powerdns

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
informatique:linux:powerdns [2024/04/12 07:49] – [Introduction] benoitinformatique:linux:powerdns [2024/04/12 11:00] (Version actuelle) – [Installation] benoit
Ligne 11: Ligne 11:
 Installation :  Installation : 
  
-  apt-get install pdns-server pdns-tools pdns-backend-mysql pdns-recursor+  apt-get install pdns-server pdns-recursor dnsdist pdns-tools pdns-backend-mysql mariadb-client mariadb-server lua-sql-mysql
  
 +Description des composants installés : 
 +  * **pdns-server** : Serveur DNS privé
 +  * **pdns-recursor** : Serveur DNS pour les requêtes recursives vers internet
 +  * **dnsdist** : Loadbalancer DNS pouvant utiliser des ACL
 +  * **pdns-tools** : Utilitaire pour PowerDNS
 +  * **pdns-backend-mysql** : Module pour utiliser MariaDB en backend
 +  * **mariadb-client, mariadb-server** : Client et Serveur de base de données MariaDB
 +  * **lua-sql-mysql**
 +
 + 
 ===== Configuration ===== ===== Configuration =====
-Se rendre dans le répertoire et sauvegarder les fichiers de conf originaux et créer des nouveau:  
-  cd /etc/powerdns 
-  mv pdns.conf pdns.conf.orig 
-  mv recursor.conf recursor.conf.orig 
-  touch pdns.conf recursor.conf 
-  chown root:pdns pdns.conf 
  
-Editer le fichier de configuration :  +==== Base de données ==== 
-  vim /etc/powerdns/pdns.conf+ 
 +Créer la base de données :  
 +  mysql 
 +  create database powerdns; 
 +  GRANT ALL PRIVILEGES on powerdns.* to 'pdns'@'localhost' IDENTIFIED BY 'xxxxxxxxxxxx'; 
 +  FLUSH PRIVILEGES; 
 +  QUIT; 
 + 
 +Créer le fichier de structure de base de données :  
 +  vim schema_powerdns.sql 
 + 
 +Insérer le contenu suivant :  
 +  CREATE TABLE domains ( 
 +    id                    INT AUTO_INCREMENT, 
 +    name                  VARCHAR(255) NOT NULL, 
 +    master                VARCHAR(128) DEFAULT NULL, 
 +    last_check            INT DEFAULT NULL, 
 +    type                  VARCHAR(8) NOT NULL, 
 +    notified_serial       INT UNSIGNED DEFAULT NULL, 
 +    account               VARCHAR(40) CHARACTER SET 'utf8' DEFAULT NULL, 
 +    options               VARCHAR(64000) DEFAULT NULL, 
 +    catalog               VARCHAR(255) DEFAULT NULL, 
 +    PRIMARY KEY (id) 
 +  ) Engine=InnoDB CHARACTER SET 'latin1';
      
 +  CREATE UNIQUE INDEX name_index ON domains(name);
 +  CREATE INDEX catalog_idx ON domains(catalog);
 +  
 +  
 +  CREATE TABLE records (
 +    id                    BIGINT 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,
 +    disabled              TINYINT(1) DEFAULT 0,
 +    ordername             VARCHAR(255) BINARY DEFAULT NULL,
 +    auth                  TINYINT(1) DEFAULT 1,
 +    PRIMARY KEY (id)
 +  ) Engine=InnoDB CHARACTER SET 'latin1';
 +  
 +  CREATE INDEX nametype_index ON records(name,type);
 +  CREATE INDEX domain_id ON records(domain_id);
 +  CREATE INDEX ordername ON records (ordername);
 +  
 +  
 +  CREATE TABLE supermasters (
 +    ip                    VARCHAR(64) NOT NULL,
 +    nameserver            VARCHAR(255) NOT NULL,
 +    account               VARCHAR(40) CHARACTER SET 'utf8' NOT NULL,
 +    PRIMARY KEY (ip, nameserver)
 +  ) Engine=InnoDB CHARACTER SET 'latin1';
 +  
 +  
 +  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) CHARACTER SET 'utf8' DEFAULT NULL,
 +    comment               TEXT CHARACTER SET 'utf8' NOT NULL,
 +    PRIMARY KEY (id)
 +  ) Engine=InnoDB CHARACTER SET 'latin1';
 +  
 +  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 CHARACTER SET 'latin1';
 +  
 +  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,
 +    published             BOOL DEFAULT 1,
 +    content               TEXT,
 +    PRIMARY KEY(id)
 +  ) Engine=InnoDB CHARACTER SET 'latin1';
 +  
 +  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 CHARACTER SET 'latin1';
 +  
 +  CREATE UNIQUE INDEX namealgoindex ON tsigkeys(name, algorithm);
 +
 +==== PowerDNS ====
 +
 +Sauvegarde le fichier de conf par défaut, créer un nouveau et l'éditer :
 +  mv /etc/powerdns/pdns.conf /etc/powerdns/pdns.conf.orig
 +  touch /etc/powerdns/pdns.conf
 +  chown root:pdns /etc/powerdns/pdns.conf
 +  vim /etc/powerdns/pdns.conf
 +
 Insérer le contenu suivant :  Insérer le contenu suivant : 
-  # Allow zonetransfers only to these subnets +  # Backend MySQL
-  allow-axfr-ips=127.0.0.0/8,::1 +
-  # Allow recursive queries +
-  allow-recursion=127.0.0.1 +
-  # Disable zonetransfers but do allow TCP queries +
-  disable-axfr=no +
-  # Seconds to store packets in the PacketCache +
-  cache-ttl=20 +
-  # Which backends to launch and order to query them in (here is MySQL)+
   launch=gmysql   launch=gmysql
-  # Log under a specific facility +  # Listening IP 
-  logging-facility=0 +  local-address=127.0.0.1 
-  # Amount of logging. Higher is more. Do not set below 3 +  # Listening IP (pdns-recursor will forward DNS queries du this port) 
-  loglevel=4 +  local-port=54 
-  # +  # MariaDB Backend Config 
-  out-of-zone-additional-processing=yes +  gmysql-host=127.0.0.1 
-  # Seconds to store query results in the QueryCache +  gmysql-port=3306 
-  query-cache-ttl=20 +  gmysql-dbname=powerdns 
-  # +  gmysql-user=pdns 
-  recursive-cache-ttl=150 +  gmysql-group=client 
-  recursor=127.0.0.1:54+  gmysql-password=eiur546fTEd6gEaFr 
 +  gmysql-dnssec=no 
 +  gmysql-innodb-read-committed=yes 
 +  gmysql-timeout=10 
 + 
 +===== pdnsutil ===== 
 + 
 +==== Zone/Domaine ==== 
 + 
 +Créer une zone :  
 +  pdnsutil create-zone domain.local 
 + 
 +Ajouter un enregistrement Type A :    
 +  pdnsutil add-record domain.local www A 60 127.0.0.1
informatique/linux/powerdns.1712908140.txt.gz · Dernière modification : de benoit