Skip to content
hugotnbx edited this page Apr 15, 2024 · 18 revisions

DNS

named.conf

options {
directory "/var/cache/bind";
// version statement for security to avoid hacking known weaknesses
// if the real version number is revealed
version "not currently available";
allow-query { any; }; > permet a toute adresse ip d'effectué des requêtes au serveur
allow-query-cache { none; };
recursion no; > interdit au serveur d'agir comme un résolveur, il va seulement répondre a une requête si il a l'information et ne va pas allé la chercher pour le demandeur
};

zone "l1-1.ephec-ti.be." { > défini les paramètres pour la zone l1-1
type master; > défini le serveur comme autoritaire pour cette zone
file "/etc/bind/l1-1.zone"; > défini au ce trouve le fichier cette zone
allow-transfer { none; }; > ne permet pas le transfert du fichier de zone vers un autre serveur
dnssec-policy default; > indique que les paramètre par défaut dnssec seront utilisé
inline-signing yes; > indique que les signatures de la zones seront stockés dans un fichier différent du fichier de zone
};

l1-1.zone

$ORIGIN l1-1.ephec-ti.be.
$TTL 86400	; 1 day
@	IN	SOA	ns.l1-1.ephec-ti.be.    mail.l1-1.ephec-ti.be. (
			2001062511 ; serial
                        21600      ; refresh (6 hours)
                        3600        ; retry (15 minutes)
                        604800     ; expire (1 week)
                        86400 )    ; minimum (1 day)

	IN	NS	ns.l1-1.ephec-ti.be.

        IN      MX      10      mail.l1-1.ephec-ti.be.

_acme-challenge         IN      TXT v6vlOJYHoDhuO8IdY8DRpI60UR1nZOUhWa7qrA3aViU
l1-1.ephec-ti.be.       IN      TXT "v=spf1 mx -all"
mail._domainkey         IN      TXT  ( "v=DKIM1; h=sha256; k=rsa; "
          "p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwVnGRrbWN6cavK5MQqTMVcB7JIPsmYre1GA7AhJSDR+vSYhgJOTEFCYxfaaGHTxZMwb9E3PeSanxPoaiXV2ZTY3Hw0y9dHBlnlv6u5hujhlVrslEeaLiqrw8wUrXHdNbKm0MG8UcKq1ewsD+FoQEnVgXQZ9Pi1dAtTAtEOmFYOV7ml5fRXbOluMUtkmsoQ/+n7Zep5Da8jg2Wh"
          "VETj0VGKGczA7sbcBASxChtr2PD2o7icLmh2w6NBsF1fk+D89WRcTnTFZqluFRIY/hsFqXtWTA6wcGq/NFBhtCtrUKLjWEp1sy16Db1J+HwgRVt+fNll4B7JiFu6BItCWVejL06wIDAQAB" )
_dmarc.l1-1.ephec-ti.be.        IN      TXT "v=DMARC1; p=quarantine; rua=mailto:[email protected]; ruf=mailto:[email protected]; sp=none; ri=86400"

github  IN      CNAME   https://github.com/Correba/T206.

ns	IN	A	54.37.8.13
ns      IN      AAAA    2001:41d0:401:3000::f8
www	IN	CNAME	ns
blog	IN	CNAME	ns
mail    IN      A       54.37.8.13
mail    IN      AAAA    2001:41d0:401:3000::f8
louis   IN      A       54.37.11.203
hugo    IN      A       54.37.13.186

RR DS

Pour générer le RR DS pour la zone parente il faut d'abord trouver le fichier KSK. On peut trouver le fichier dans le directory indiquer par le paramètre
directory "/var/cache/bind"; dans options du fichier de configuration de bind. Une fois dans se dossier il nous suffit de trouver le fichier KSK
(fichier qui termine en .key) et de le passer en paramètre a la commande dnssec-dsfromkey. Cette commande retournera un résultat ressemblent a
l1-1.ephec-ti.be. IN DS 54298 13 2 4BF8F751E46DCE4A92DB4A4D7F9A36A65BDCE06A0F875A9E55251A7446C479E6 et qu'il faudra passer a la zone parente.

web

nginx.conf

events {}
http {
log_format log_per_virtualhost '[$host] $remote_addr [$time_local] $status "$request" $body_bytes_sent';

  • $host = le virtual host (page web)
  • $remote_addr = l'addresse ip du client qui effectue la requête
  • $time_local = l'heure locale quand la requête à été effectué
  • $status = le status http envoyé au client
  • $request = la requête envoyé par le client
  • $body_bytes_sent = la body de la réponse envoyé au client
    access_log /dev/stdout log_per_virtualhost; > défini que le format des log sera celui décrit précédemment
    ssl_certificate /etc/letsencrypt/archive/l1-1.ephec-ti.be/fullchain.pem; > le certificat signé
    ssl_certificate_key /etc/letsencrypt/archive/l1-1.ephec-ti.be/privkey.pem; > la clé cryptographique
    server {
    listen 80;
    server_name www.l1-1.ephec-ti.be;
    return 301 https://$host$request_uri;
    }
    server {
    listen 443 ssl; > le numéro de port que le serveur écoute
    server_name www.l1-1.ephec-ti.be; > le nom de la page
    index index.html; > le fichier par défaut pour cette page
    root /var/www/html/www/; > le dossier ou se trouve les fichiers de la page
    location ~* \.php$ { > vérifie que l'extension .php soit presente dans la requête
    fastcgi_pass php:9000; > redirige la requête vers le serveur php
    include fastcgi_params; > indique au serveur d'inclure le fichier de paramètre de fastcgi
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  • $document_root = le dossier ou se trouve les fichiers de la page (root)
  • $fastcgi_script_name = le nom du fichier demandé par le client
    server {
    listen 80; > Réception d'une requête HTTP
    server_name blog.l1-1.ephec-ti.be;
    return 301 https://$host$request_uri; > Redirection vers une requête https
    }
    server {
    listen 443 ssl; > Réception d'une requête HTTPS
    server_name blog.l1-1.ephec-ti.be;
    index index.html;
    root /var/www/html/blog/;
    }

Certificat

Creation

  • Générer les clés et demande de certification: sudo openssl req -nodes -newkey rsa:4096 -keyout certificate/nginx-selfsigned.key -out certificate/nginx-selfsigned.csr
  • Signer la demande de certificat: sudo openssl x509 -signkey certificate/nginx-selfsigned.key -in certificate/nginx-selfsigned.csr -req -days 365 -out certificate/nginx-selfsigned.crt

Visualiser

  • Clés: sudo openssl rsa -noout -text -in certificate/nginx-selfsigned.key
  • Demande de certificats: sudo openssl req -noout -text -in certificate/nginx-selfsigned.csr
  • Certificat signé: openssl x509 -noout -text -in certificate/nginx-selfsigned.crt

mail

Commandes utiles pour le mail

  • docker exec -it mail setup email add [email protected] > création d'une nouvelle adresse mail
  • docker exec -it mail setup email list > liste toutes les adresses mails et leurs alias
  • docker exec -it mail setup alias add [email protected] [email protected] > ajoute un alias à une adresse mail
  • docker exec -it mail setup config dkim > génère une paire de clé privée/publique pour la signature DKIM

Envoyer un mail avec telnet

telnet mail.l1-1.ephec-ti.be 25

EHLO mail.l1-1.ephec-ti.be
MAIL FROM: [email protected]
RCPT TO: [email protected]
DATA
.
QUIT

RR TXT DKIM

Pour obtenir le RR TXT pour le DKIM, il faut d'abord générer la paire de clé privée/publique à l'aide de la commande docker exec -it mail setup config dkim.

On peut ensuite trouver les clés dans le directory /docker-data/dms/config/opendkim.

On trouve le RR TXT ci-dessous qui est à placer dans la zone DNS pour mettre la clé publique à disposition des serveurs qui souhaitent vérifier la signature.

mail._domainkey IN TXT ( "v=DKIM1; h=sha256; k=rsa; " "p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwVnGRrbWN6cavK5MQqTMVcB7JIPsmYre1GA7AhJSDR+vSYhgJOTEFCYxfaaGHTxZMwb9E3PeSanxPoaiXV2ZTY3Hw0y9dHBlnlv6u5hujhlVrslEeaLiqrw8wUrXHdNbKm0MG8UcKq1ewsD+FoQEnVgXQZ9Pi1dAtTAtEOmFYOV7ml5fRXbOluMUtkmsoQ/+n7Zep5Da8jg2Wh" "VETj0VGKGczA7sbcBASxChtr2PD2o7icLmh2w6NBsF1fk+D89WRcTnTFZqluFRIY/hsFqXtWTA6wcGq/NFBhtCtrUKLjWEp1sy16Db1J+HwgRVt+fNll4B7JiFu6BItCWVejL06wIDAQAB" )