Installer des applications sous Linux
Installer des applications sous Linux
Linux
Description de la ressource
Propriétés Description
Intitulé long Fiches techniques de manipulation d’outils sous Linux
Formation BTS SIO 1ère année
concernée
Matière MTI
Présentation Vous trouverez dans cette documentation de l'assistance pour manipuler les
outils suivants :
Généralités sur Linux (Version Ubuntu basée sur Debian)
Serveur DNS
Serveur Web Apache
SGBD MySQL
Serveur FTP ProFTPd
Cryptage SSL/TLS avec Open SSL
1
Contenu
DOCUMENTATION TECHNIQUE : Installer des applications sous Linux 1
Description de la ressource................................................................................................................ 1
FICHE 1 : LINUX, QUELQUES GENERALITES 3
PRESENTATION................................................................................................................................ 3
UTILISATION DU SHELL................................................................................................................... 3
ARBORESCENCE DES FICHIERS.................................................................................................... 3
CONFIGURATION RESEAU.............................................................................................................. 5
1 Configuration de l'adressage statique (IP fixe).................................................................................5
2 Configuration de l'adressage dynamique (DHCP)...........................................................................5
3 Configuration du routage................................................................................................................. 5
4 Configuration du client DNS............................................................................................................. 5
PAQUETAGES ET SERVICES........................................................................................................... 5
UTILISATION DES FICHIERS DE CONFIGURATION.......................................................................6
EDITEUR VI........................................................................................................................................ 7
FICHE 2 : DNS 8
PRESENTATION................................................................................................................................ 8
PROCEDURES................................................................................................................................... 8
CONFIGURATION SERVEUR DNS................................................................................................... 8
1 Serveur Autorité............................................................................................................................... 9
2 Serveur secondaire ou esclave...................................................................................................... 11
3 Serveur de zone délégué............................................................................................................... 11
4 Test des configurations.................................................................................................................. 12
CLIENT ET TEST............................................................................................................................. 12
Source.............................................................................................................................................. 13
FICHE 3 : SERVEUR WEB APACHE 14
PRESENTATION.............................................................................................................................. 14
PROCEDURES................................................................................................................................. 14
SERVEUR WEB, REPERTOIRES VIRTUELS, SITES MULTIPLES................................................15
1 - Installation et répertoires.............................................................................................................. 15
2 - Fichier [Link]................................................................................................................... 15
SECURISATION DES ACCES (.htaccess).......................................................................................18
Sources internet................................................................................................................................ 19
FICHE 4 : SERVEUR DE BASE DE DONNEES MYSQL 20
PRESENTATION.............................................................................................................................. 20
PROCEDURES................................................................................................................................. 20
MYSQL SANS INTERFACE GRAPHIQUE.......................................................................................20
MIGRATION DE BASE DE DONNEES............................................................................................21
FICHE 5 : SERVEUR FTP (ProFTP) 23
PRESENTATION.............................................................................................................................. 23
PROCEDURES................................................................................................................................. 23
CONFIGURATION DE BASE........................................................................................................... 24
Configuration du service................................................................................................................... 25
Configuration des partages............................................................................................................... 25
PROFTP ET AUTHENTIFICATION DEPORTEE..............................................................................27
CLIENT FTP..................................................................................................................................... 27
ANNEXE : Script pour la création de la base....................................................................................28
Source internet.................................................................................................................................. 29
FICHE 6 : CONNEXION ET ECHANGES CRYPTES AVEC SSL/TLS 30
PRESENTATION.............................................................................................................................. 30
PROCEDURE................................................................................................................................... 31
MISE EN PLACE D'UN CERTIFICAT AVEC OpenSSL....................................................................32
CONFIGURATION D'APACHE AVEC SSL/TLS...............................................................................33
CONFIGURATION DE ProFTP AVEC SSL/TLS...............................................................................34
Sources............................................................................................................................................. 35
2
FICHE 1 : LINUX, QUELQUES GENERALITES
PRESENTATION
Principes
Avant toute installation, vous devez :
mettre à jour les paquetages lors de la première utilisation de l'OS : apt-get update
utiliser un compte système : sudo commande | sudo su
avant tout paramétrage, faire une copie de sauvegarde des fichiers de configuration qui
seront modifiés
Après toute modification, vous devez recharger le service (service nom_service reload) ou le
redémarrer complètement ce qui interrompt les connexions établies sur le serveur (service
nom_service restart).
UTILISATION DU SHELL
Environnement shell
Sous Linux, l'utilisation de la ligne de commande se fait dans un environnement riche (le shell) qui
propose des fonctions de complétion (il complète) grâce à la touche tabulation.
Mode administrateur
Les commandes d'administration qui doivent être exécutées en mode administrateur seront préfixées
par la commande sudo.
On peut aussi passer complètement en mode superutilisateur en tapant sudo su. Il y a un risque car
les manipulations opérées le sont sans demande de confirmation.
On peut lancer un processus autonome déconnecté du shell en finissant la commande par & :
root@monLinux:/# gedit /etc/[Link] &
Contrairement à Windows, Linux ne propose pas un ensemble de lettres de lecteur pour les
différentes partitions.
À la place, on trouve une arborescence unique (/) à laquelle sont rattachés les différentes partitions,
lecteurs physiques (disquette, CDROM, etc) et lecteurs USB.
Pour qu’un lecteur soit visible dans cette arborescence, il faut qu’il y ait été raccroché (monté) par la
commande mount. Ce terme de monter un lecteur vient de l’époque où il fallait d’abord installer
physiquement le disque avant de le mettre en route.
L’outil de navigation en interface graphique est nommé nautilus.
Pour manipuler les droits et propriétaires, on peut l’utiliser en mode superutilisateur.
3
L'arborescence
On trouvera principalement dans cette arborescence :
Lieu Contenu
/init.d Endroit où se trouvent les principales applications (un peu équivalent au Program
Files de Windows)
/media Montage des répertoires pointant sur des unités de stockage et lecteurs disque amovibles
Apparaît parfois sous le nom /mount ou /mnt dans d'autres distributions
/home Stockage des répertoires de travail des utilisateurs (équivalent de c:\Documents and
settings)
/var Fichiers et données variables (données dynamiques, fichiers temporaires, pages web, etc)
pour les applications
4
CONFIGURATION RESEAU
Pour obtenir une adresse IP d'un serveur DHCP, ou pour renouveler un bail, on utilisera la commande
dhclient nom_carte
3 Configuration du routage
La configuration du routage (et donc de la passerelle par défaut pour un poste) utilise la commande
route.
Ajouter une ligne dans la table
route add adresse_réseau [netmask valeur_masque] [gateway adresse_passerelle] [metric valeur]
La configuration des serveurs DNS que le client devra interroger se fait dans le fichier /etc/[Link]
PAQUETAGES ET SERVICES
Gestion de paquetages
L'installation d'applications système (DNS, DHCP, serveur Web, etc) sous Linux nécessite les droits
administrateur.
La commande « apt-get » est le gestionnaire de paquetages (on pourra aussi utiliser l'équivalent
aptitude ou le logiciel en interface graphique synaptic).
Il permet diverses manipulations selon les options utilisées, parmi lesquelles :
update : met à jour les dépôts de paquetages
install paquetage1[paquetage2 paquetage3 …] : installer un ou plusieurs paquetages
remove paquetage1[paquetage2 paquetage3 …] : supprime un ou plusieurs paquetages. Les
fichiers ne sont pas supprimés, y compris les configurations de l'installation
autoremove : supprime les paquetages installés automatiquement et qui n'ont plus d'utilité,
ou les éléments supprimés par l'option remove et qui sont encore présents dans le système
5
Gestion des services
Une fois les paquetages installés, les applications systèmes (ou services) présents dans /etc/init.d
peuvent être :
démarrés : start
arrêtés : stop
re-démarrés (ils sont d'abord arrêtés, puis démarrés) : restart
leurs fichiers de configuration peuvent être rechargés (évite l'interruption du service pour les
utilisateurs déjà connectés) : reload
Exemple :
# /etc/init.d/apache2 restart
# /etc/init.d/bind9 reload
On peut aussi connaître le statut (running, failed, stopped, etc) d'un service en utilisant l'option status:
# /etc/init.d/mysql status
Contrairement à Windows où les configurations des services se passent par interface graphique et
sont stockées dans la base de registres, Linux utilise encore des fichiers texte.
Voici quelques éléments pour comprendre leur fonctionnement et utiliser au mieux une approche
modulaire.
Contenu/Syntaxe
Un fichier de configuration est éditable à partir d'un utilitaire en mode texte (vi, vim, nano, pico ou
autre, voir annexe pour quelques commandes) ou un éditeur plus complet si on dispose d'une
interface graphique (par exemple gedit sous Ubuntu).
Les éléments de syntaxe suivants sont très courant
Elément Usage
# Commentaire textuel qui donne des explications sur les options
<intitulé> Encadre une description complexe (même principe que pour les balises HTML
…. ou la structure d'enregistrement en algorithmique)
</intitulé>
Approche modulaire
Pour éviter d'encombrer un fichier de configuration, on a recours à une externalisation (comme on le
fait pour le CSS qui sort la mise en page du HTML).
On crée donc des fichiers externes qui ne prennent en compte qu'une partie de la configuration, et on
y fait appel dans un fichier central grâce à la clause include
6
Exemple pour DNS
Le fichier de base du service Bind est [Link] dont le contenu est :
include "/etc/bind/[Link]"; #options de configuration du serveur
include "/etc/bind/[Link]"; #zones gérées par le serveur
include "/etc/bind/[Link]-zones"; #zones par défaut (localhost, résolution inverse, etc)
EDITEUR VI
Pour manipuler les fichiers systèmes, qui sont des fichiers texte, il est nécessaire de recourir à un
éditeur de texte.
Même quand aucune interface graphique n'est disponible (et les linuxiens purs de durs diront qu'en
toute circonstance...), un outil rudimentaire bien qu'offrant d'innombrables possibilités permet toute
manipulation sur un fichier texte : l'éditeur vi.
Le mode commande (auquel on revient en appuyant Echap) propose diverses actions dont les plus
utiles sont présentées ci-dessous :
action commande remarques
insérer du texte i Passe l'éditeur en mode insertion. Taper à
nouveau i (ou Echap) pour repasser en mode
commande
attention : les flèches sont désactivées pour
les déplacements
quitter vi :q
Des versions un peu plus riches sont disponibles, qui proposent des menus accessibles à partir du
clavier : vim, nano, pico.
7
FICHE 2 : DNS
PRESENTATION
Le service DNS est le cœur des applications internet / intranet. En fournissant la possibilité d'utiliser
des noms symboliques (FQDN - Fully Qualified Domain Name) à la place d'adresses IP, il a permis le
déploiement de multiples applications accessibles de manière souple pour des utilisateurs. Son
système repose sur une structure arborescente
partant d'une racine (« . »),
se déclinant en domaines de référence rattachés à cette racine (TLD – Top Level
Domain : .fr, .com, .net...)
détaillée en domaines privés (ac-caen, google, laposte...) rattachés à ces TLD
enregistrant des associations entre des noms de machines dans un domaine (www par
exemple) et l'adresse IP correspondante
PROCEDURES
[Link]-zones Zones par défaut (local host, résolution inverse, etc) : décrit les zones
(nom, type, fichier de configuration, etc)
[Link] Fichier dans lequel déclarer les zones gérées par le serveur
Installation du secondaire
1. Installer le paquetage bind9
2. Déclarer la zone dans [Link] avec le type «slave»
3. Vérifier la validité de la configuration du service : named-checkconf
4. Recharger le fichier de configuration ou redémarrer le service
5. Paramétrer un client pour qu'il utilise ce serveur secondaire, faire un ping sur un FQDN
MODE OPERATOIRE
CONFIGURATION SERVEUR DNS
8
Les serveurs délégués : ils sont les hébergeurs faisant autorité sur des sous-zones (exemple
[Link]). Ils doivent être déclarés au niveau supérieur ([Link]).
Sous Linux, l'outil responsable de la gestion de DNS est BIND (version 9 à ce jour), qui installe le
service named.
1 Serveur Autorité
[Link]
On écrira dans ce fichier la déclaration des zones directes (sens FQDN→IP) et inverses (sens
IP→FQDN). On portera une attention particulière aux points-virgules.
pour chaque zone qu'il gère ( exemple pour une zone nommée [Link])
zone "[Link]" IN {
type master; #serveur maître
file "[Link]"; #nom du fichier qui décrit la zone
allow-update { any; }; #possibilité de mise à jour en réseau vers les secondaires
};
9
Les fichiers de zone et de zone inverse
On trouvera ensuite, conformément à ce qui a été indiqué dans [Link], autant de fichiers
que de zones ou de zones inverse.
Un fichier de zone comporte les éléments suivants :
Enregistrement Rôle
NS Déclare les noms des machines qui sont serveur de noms (principal ou
secondaires) pour la zone
Remarque : Ces noms devront en plus être associés à une adresse par un
enregistrement A.
A Déclare les associations entre FQDN et adresse IP. On parle d'un hôte
Remarques :
un nom non terminé par un point est complété par la zone décrite dans le SOA
un nom terminé par un point est un FQDN
PTR Enregistrement inverse qui associe le nom FQDN à une adresse IP de machine
dans le réseau IP déclaré dans le SOA.
Utilisé pour les systèmes de cartographie de réseau ou pour l'administration
distante
Exemple
#Fichier [Link] décrivant la zone [Link]
#SOA : start of authority + nom de zone + nom de l'administrateur
@ IN SOA [Link] [Link] (
42 ; numéro de série important pour les secondaires (actualisé à chaque modification)
3H ; temps de rafraîchissement des secondaires (3 herues)
15M ; temps d'attente entre deux tentatives de mise à jour pour les secondaires (15 min)
1W ; durée de vie d'une information (1 week)
1D ) ; temps avant la déclaration d'invalidité permanente du principal (1 day)
IN NS [Link]. ; déclaration serveurs de noms principaux et secondaires
btsinfo NS [Link]. ;délégation d'autorité pour la sous-zone [Link]
; le serveur aura pour nom [Link]
MX 10 smtp ; pointeur pour le serveur de messagerie avec numéro d'ordre
MX 20 mail ; deuxième pointeur, serveur secondaire
dns A [Link] ; association pour le nom de machine [Link]
www A [Link] ; déclaration d'association pour le nom de machine www
srvinfo A [Link] ; association pour la machine srvinfo
smtp IN A [Link] ; association pour le nom smtp
mail IN A [Link] ; association pour pour le nom mail
console CNAME srvinfo ;alias pour le nom de machine srvinfo
www6 IN AAAA ::1 ;association pour une adresse IPv6
10
Et pour la résolution inverse :
#Fichier [Link] décrivant la zone [Link]
#SOA : start of authority + nom de zone + nom de l'administrateur
@ IN SOA [Link] root. [Link] (
42 3H 15M 1W 1D )
IN NS [Link] ; déclaration serveurs de noms par nom DNS
152 IN PTR www ; association le numéro 253 vers le nom de machine www
153 PTR srvinfo ; association pour le numéro 153 vers la machine srvinfo
253 PTR smtp ; association pour le numéro 253 vers le nom smtp
Un serveur secondaire est ni plus ni moins qu'un serveur BIND qui a déclaré dans son fichier
[Link] qu'il était esclave pour une zone déterminée (la terminologie Windows est
secondaire).
zone "[Link]" IN {
type slave; #serveur esclave
masters {[Link] ;} #adresse des serveurs maîtres
file "[Link]"; #nom du fichier si on veut en conserver une copie en local
allow-update { none; }; #impossibilité de mise à jour en réseau vers d'autres secondaires
};
Un serveur de zone délégué est un serveur DNS qui a l'autorité sur un sous ensemble d'une zone
principale. Par exemple, la zone .[Link]. a délégué la responsabilité de nombreuses sous-zones :
[Link], [Link], etc.
Pour chaque sous-zone, une inscription a été faite dans le fichier de zone principale, et chaque
délégation renvoie vers un nouveau serveur SOA pour la sous zone.
Cet enregistrement au niveau supérieur est indispensable pour éviter tout ajout non désiré (on ne peut
pas décider librement de créer une sous-zone, il faut qu'on nous ait donné une délégation).
puis
nom_dns_du_serveur_délégué_education IN A adresse_ip_education
nom_dns_du_serveur_délégué_impots IN A adresse_ip_impots
Pour le serveur délégué, il s'agit ni plus ni moins qu'un maître pour la zone [Link] ou
[Link].
11
4 Test des configurations
Avant de lancer un serveur suite à une modification, on peut prendre la précaution de tester les
configurations des fichiers.
Commande Rôle
CLIENT ET TEST
On paramètrera les clients pour qu'ils aillent s'informer auprès de leur serveur DNS (qui peut être le
secondaire ou le principal).
Sous Windows
Dans les propriétés de la carte, indiquer le serveur DNS principal ou préféré
Sous Linux
Dans l'environnement graphique, utiliser « Adresses Automatiques uniquement » pour donner une
valeur manuelle à la partie DNS (ici, copie d'écran sous ubuntu 10.10)
12
Test
On teste le bon fonctionnement du serveur DNS en tapant :
ping nomFQDN : prouve que la résolution fonctionne
ping -a adresseIP : si la résolution DNS inverse fonctionne, donne le nom FQDN de la
machine possédant l'adresse interrogée
nslookup nomFQDN : interroge le serveur DNS pour connaître l'adresse IP correspondant au
nom FQDN
nslookup adresseIP : interroge le serveur DNS pour savoir si un enrtegistrement inverse est
associé à l'adresse IP et récupère alors le FQDN correspondant
nslookup -type=champ nomDomaine : interroge le champs particulier (NS, MX, RT, etc) pour
le domaine spécifié
dig @adresseServeur nomzone champ (sous Linux) : permet d'interroger le contenu d'une
zone en demandant les informations associées à un champ particulier (NS, MX, RT, etc)
Source
13
FICHE 3 : SERVEUR WEB APACHE
PRESENTATION
Serveur HTTP
Un serveur Web est une machine hébergeant le service réseau HTTP (HyperText Transfert Protocol).
Le protocole HTTP permet au serveur de retourner, à la demande d'un client :
Les entêtes : nom du serveur, versions du protocole supportées, autres fonctions
accessibles...,
Des pages HTML et les éléments qui leurs sont liés (CSS, scripts côté client, images
appelées par <img>, modules incorporés par <embed> comme du flash ou du streaming,
etc)
Des pages HTML résultant de l'exécution de pages de script côté serveur (PHP, ASP,
JSP,...).
Apache
Le serveur Web le plus utilisé dans le monde (source journal du net ici) est un outil libre développé
dans l'environnement Linux/UNIX : le serveur Apache de l'Apache Software Foundation
([Link]) qui se décline en d'innombrables versions (dont Tomcat pour l'exécution de script
côté serveur en Java : servlet).
Il permet la mise en place d'un serveur web (pages HTML) avec exécution de scripts PHP, JSP ou
ASP.
Il peut sécuriser limiter l'accès aux pages (.htaccess), créer des hôtes virtuels (plusieurs noms de site
différents sur une seule exécution du service) ou des sites indépendants (sur des ports différents).
L'installation du service standard ne permet pas la sécurisation SSL.
PROCEDURES
Installation du service
1. Installer des paquetages apache2 (et, pour les versions d'Ubuntu avant 10.04, installer
manuellement les paquetages apache2.2-common et apache2-utils) pour la version de base
2. Pour ajouter des fonctions d'authentification, la gestion du multi-processing et la possibilité de
changer le service en mode root : installer les paquetages apache2-mpm-prefork,
libapache2-mod-chroot, libapache2-mod-auth-pam, libapache2-mod-auth-sys-group
3. Tester depuis une machine cliente ([Link]
[Link] Indique les ports sur lesquels le serveur écoute (défaut HTTP:80, HTTPS:443).
Permet la création d'hôtes virtuels (un seul serveur apache, plusieurs sites sous des
noms différents)
[Link] C'est l'ancien fichier de configuration. Il peut être intéressant d'y insérer les
paramétrages spécifiques pour améliorer la lisibilité (vérifier qu'il est appelé par
« include » dans [Link])
14
Installation du PHP
Pour prendre en charge PHP, Apache doit être complété par un interpréteur.
1. Installer le module php5, qui installera les dépendances php5-common, php5-gd, php5-cli
et libapache2-mod-php5
2. Redémarrer le serveur apache
3. Tester en déposant ou créant un fichier avec du code PHP dans le répertoire /var/www
Remarque : pour des raisons évidentes de sécurité, le compte « root » n'est pas autorisé à établir des
connexions à la base depuis d'autres machines que localhost.
On devra donc procéder comme suit sur le SGBD
1. Créer un utilisateur MySQL avec mot de passe (create user nomutil identified by
'motPasse' ;)
2. Lui donner le droit de se connecter depuis toute machine (grant usage on *.* to
'nomutil'@'%')
3. Lui donner éventuellement les droits nécessaires sur la base de données particulière
MODE OPERATOIRE
SERVEUR WEB, REPERTOIRES VIRTUELS, SITES MULTIPLES
1 - Installation et répertoires
Un serveur web correspond à un service en écoute sur le port 80 (port standard pour le protocole
HTTP).
L'installation d'Apache (apt-get install apache2) entraîne l'installation du service /etc/init.d/apache2.
Le fichier principal de la configuration est /etc/apache2/[Link] qui fait lui-même appel à
d'autres fichiers externalisés.
Les pages Web sont stockées par défaut dans /var/www.
2 - Fichier [Link]
Généralités
Ce fichier comporte dans sa version standard plus de 200 lignes (dont beaucoup de commentaires).
Il est conseillé de travailler sur une copie du fichier d'installation dans lequel on supprimera tous les
éléments inutilisés.
Bien entendu, il est prudent de savoir ce que contiennent les directives avant de les activer, supprimer
ou modifier, comme cela est rappelé dans les premiers commentaires :
# Do NOT simply read the instructions in here without understanding
# what they do. They're here only as hints or reminders. If you are unsure
# consult the online docs. You have been warned.
Remarque : Les commentaires du fichier source présenté plus loin ont été supprimés, seules les
directives principales et basiques sur lesquelles on intervient en général sont présentées.
15
Structure du fichier
Il y a trois grandes sections dans ce fichier :
1. globale : définit les paramètres du service (durée de session, connexions simultanées, etc)
2. site standard (fichiers dans [Link]) : paramétrage manuel du service standard
(répertoires, droits d'accès, etc)
3. hôtes virtuels (fichiers dans sites-enabled/) : paramétrage de sites accessibles sous des
noms ou adresse IP virtuelles
Dans cette première section, on paramètre la façon dont le service HTTP prendra en charge les
demandes de connexion.
On y précise aussi les inclusions pour ce qui est du reste de la configuration (cela évite d'avoir un
fichier unique de 900 lignes comme le [Link] de la version 1 de Apache).
Fichier [Link]
NameVirtualHost *:80 ;Gestion du serveur avec prise en charge d'hôtes virtuels sur le port 80
Listen 80 ; port d'écoute (80 est la valeur par défaut).
<IfModule mod_ssl.c> ; paramétrage si prise en charge de SSL (remplacé par TLS)
Listen 443
</IfModule>
<IfModule mod_gnutls.c> ; paramétrage si prise en charge de TLS
Listen 443
</IfModule>
On trouvera dans cette section les directives pour le site principal (c'est à dire pour une installation
sans hôte virtuel).
À cet endroit, on définit les caractéristiques du site, les sous répertoires accessibles, et les options de
sécurité qui s'y appliquent.
On peut mettre ces directives dans le fichier [Link], ou dans le fichier [Link] (non
recommandé).
En cas d'utilisation d'hôtes virtuels, il est préférable de renseigner ces informations dans le fichier
[Link] du sous-dossier sites-enabled.
16
Principales directives
Directive Usage
Order Ordre dans lequel sont appliquées les règles de sécurité (Deny et Allow)
ServerName Nom du serveur tel qu'il devra être tapé dans la barre d'adresse du navigateur
N'a d'intérêt au niveau général que si on gère des hôtes virtuels sur le serveur
Principes
La configuration standard (dans [Link]) ne permet d'avoir, pour un serveur apache, qu'un seul
site web.
On peut choisir d'utiliser un serveur physique différent (ou autant de machines virtuelles) pour chaque
site hébergé.
On peut aussi décider de gérer des sites accessibles par des noms différents (noms FQDN ou
adresse IP) depuis un même serveur Apache.
On aura alors recours à la définition d'hôtes virtuels.
Remarque : il ne faut pas confondre un hôte virtuel et un sous-répertoire (ou répertoire virtuel
dans IIS) : ce dernier est accessible par [Link] comme cela est
utilisé pour les "pages perso" des hébergeurs gratuits par exemple, ou pour l'accès à [Link]-
[Link]/rostand. Le répertoire virtuel est géré par la directive Alias dans la configuration Apache.
17
Fichier default dans le dossier sites-available
Le fichier permet de créer des hôtes virtuels qui seront accessibles par [Link]
Un hôte virtuel se comporte comme un nouveau serveur web et peut donc reprendre les directives
indiquées plus haut (DocumentRoot, Listen, Directory, etc.).
#Définition d'un hôte virtuel sur la même adresse pour un second site de nom « [Link] »
<VirtualHost [Link]:80>
DocumentRoot /var/www/SiteCommercial ; chemin où sont stockées les pages du site
ServerName [Link] ;nom du site virtuel
#Déclaration des options de sécurité du répertoire virtuel
</VirtualHost>
L'accès à l'hôte virtuel nécessite bien entendu de pouvoir l'atteindre grâce à un FQDN, donc grâce à
un enregistrement DNS ou un renseignement dans le fichier hosts ou lmhosts (Voir fiche DNS).
Par défaut, un serveur Web ne permet pas la sécurisation des informations autrement que par les
droits d'accès accordés à l'utilisateur qui exécute le processus. Il n'est donc pas possible de réaliser
de sécurité en fonction des utilisateurs.
Avec Apache (mais aussi avec IIS), une connexion authentifiée va autoriser d'affiner les accès en
fonction des utilisateurs grâce à un fichier nommé .htaccess situé dans chaque répertoire pour lequel
on voudra limiter l'accès spécifiquement.
Ces fichiers définissent les utilisateurs autorisés pour le répertoire courant et tous les répertoires,
jusqu'à rencontrer un nouveau fichier .htaccess plus bas dans l'arborescence.
Pour cela, chaque répertoire (éventuellement dans les hôtes virtuels) sera paramétré pour prendre en
compte ces fichiers grâce à la directive
18
Exemple de fichier de recours aux fichiers .htaccess
<Directory "MonRepertoire">
#Déclaration des options de sécurité du répertoire
AllowOverride AuthConfig ; Les fichiers d'authentification .htaccess s'ils existent
; remplacent les droits du dossier
</Directory>
<VirtualHost [Link]:80>
DocumentRoot /var/www/SiteCommercial
ServerName [Link] ; nom du site virtuel
<Directory /var/www/SiteCommercial> ; Gestion de la sécurité spécifique à l'hôte virtuel
AllowOverride AuthConfig
</Directory>
</VirtualHost>
Sources internet
19
FICHE 4 : SERVEUR DE BASE DE DONNEES MYSQL
PRESENTATION
PROCEDURES
Installation du service
1. Installer le paquetage mysql-server
2. Au cours de l'installation, penser à donner un mot de passe à l'utilisateur root (et penser à
s'en souvenir)
3. Vérifier la connexion : mysql -u nomUtilisateur [-p] [nomBaseDonnees]
(-p permet de saisir un mot de passe, on peut se connecter directement à la base de données
voulue)
MODE OPERATOIRE
Il ne s'agit pas ici de faire un cours sur le langage SQL mais de présenter les principales commandes
d'utilisation en dehors de l'interface graphique phpmyadmin.
Après l'installation du service, on intervient dans MySql par la console en ligne de commande.
Se connecter à MySQL
La commande mysql tente une connexion avec le compte root sans mot de passe.
Elle devrait normalement déboucher sur un échec.
Syntaxe
mysql -u nomUtil [-p] [nom_base_de_donnees]
Permet la connexion sous un nom d'utilisateur, avec demande du mot de passe.
On peut aussi directement utiliser une base de données.
Exemple
mysql -u uGSB -p bazGSB
20
Objets
Pour connaître/créer les objets d'un serveur MySQL, on a recours aux commandes suivantes :
Commande Explication
CREATE DATABASE Crée un conteneur de base de données (il n'y a pas de tables)
nomBase
SHOW TABLES Liste les tables contenues dans une base de données
CREATE TABLE nom_table Crée une table (il faudra aussi décrire ses champs et leurs
propriétés, ainsi que les contraintes)
ALTER TABLE nom_table Modifie la structure de la table (type d'un champ, ajout de colonne,
ajout de contrainte d'intégrité, etc).
Principes
La migration d'une base de données consiste à prendre un contenu (structure et données) et à le
transférer dans un environnement différent : par exemple une base existant sous Acces que l'on
souhaite transférer vers un environnement Serveur améliorant les performances et la
Deux bases en parallèle, recopie à l'identique : les deux bases doivent disposer d'un
environnement graphique sou Windows permettant l'utilisation d'une source de données
ODBC
1. Créer une base N dans le nouvel environnement,
2. Connecter l'ancienne et la nouvelle par un lien ODBC et des tables liées
3. Procéder par SQL : Create table [Link] as select * from
[Link]
→ les tables source et destination seront exactement identiques (Structures / Données)
4. Créer les requêtes permettant de regénérer les contraintes d'intégrité :Alter table nomTable
add constraint typeContrainte DetailContrainte
21
Deux bases en parallèles, structures différentes, insertion de données. L'environnement de
l'ancienne base doit disposer d'un environnement permettant la connexion ODBC, il doit
exister un pilote ODBC pour accéder à l'ancien SGBD
1. Faire du reverse engeneering sur l'ancienne base (par exemple avec AMC Designor)
2. Apporter les modifications à la structure de la base
3. Générer le script de création dans le nouvel environnement
4. Implanter la base (structure) dans le nouvel environnement grâce au script
5. Les contraintes d'intégrité seront existantes dans la nouvelle base
6. Connecter l'ancienne et la nouvelle
7. Procéder par SQL, en pensant à l'ordre de réalisation des insertions du fait des contraintes
d'intégrité : Insert into [Link] (liste_des_champs) as select liste des champs
from [Link]
Script d'insertion
1. Faire du reverse engeneering sur l'ancienne base, adapter éventuellement, générer le script,
pour le nouvel environnement, l'implanter
2. Sur l'ancienne base, créer un fichier qui contiendra les données à insérer (ordres SQL,
données au format XML, fichier CSV, ...). On vérifiera dans le script que l'ordre de réalisation
des insertions respecte les contraintes d'intégrité (insert into (liste champs) values (liste
valeurs)).
-> le script peut être généré par des fonctions d'export du SGBD, ou par une programmation
dans un langage (VBA, PHP, autre)
-> Access ou MySQL ont des fonctions permettant de générer automatiquement ce script (en
SQL, en XML ou d'autres formats)
3. Exécuter le script ou importer le fichier de données dans la nouvelle base .
22
FICHE 5 : SERVEUR FTP (ProFTP)
PRESENTATION
Partage de fichiers
L'informatique en réseau a permis en particulier le partage de données communes (par le réseau, par
messagerie, en interaction, etc).
Lorsque ces données sont stockées sur un site central sous forme de fichiers constitués (PDF, Doc,
Exe, etc), il est nécessaire de créer un service de partage qui permettra à des utilisateurs d'y
accéder par le réseau, de manière anonyme ou authentifiée.
Cette fonction vient en surcouche du SGF (Système de Gestion de Fichiers : NTFS, FAT, Extended,
etc) du disque de la machine qui héberge les fichiers.
Fonction de partage
La fonction de partage de fichiers stockés sur un disque dur réalise tout ou partie des éléments
suivants :
rendre l'objet accessible sur le réseau (partager)
partager de façon masquée : il faut connaître l'existence du partage pour y accéder
authentifier les utilisateurs
définir de droits d'accès sur les fichiers ou dossiers, à des utilisateurs ou des groupes
Le serveur peut-être installé en tant qu'outil autonome, pour le simple partage de fichiers.
Il peut aussi être complété par une fonction d'authentification avec une base de données.
PROCEDURES
Installation
4. Installer le paquetage proftpd
5. Choisir une installation « Indépendamment » (le service sera lancé seul, sans passer par le
gestionnaire de service inet qui lui alloue moins de ressources)
6. Vérifier le fonctionnement à partir d'un navigateur (ou d'un client FTP, port 21) :
[Link] (s'authentifier avec le compte administrateur). Vous devez voir le
dossier /home de l'utilisateur.
23
Les principaux fichiers sont (dans /etc/proftpd):
Fichier Usage
[Link] Définit les principales caractéristiques techniques du service FTP : nom de la machine
vu sur le réseau, durée de session, nombre de connexions simultanées, modules
appelés (SGBD, sécurité, etc), répertoires partagés (pour compte anonyme ou
compte authentifiés), éléments de sécurité, ports d'écoute, etc
[Link] Définit les options pour la mise en relation avec une base de données (MySQL ou
PostGreSQL) : SGBD, mode d'authentification, compte de connexion à la base, tables
utilisées
[Link] Définit les options de connexion à un annuaire par le protocole LDAP : nom de
connexion, domaine, localisation du serveur, etc
[Link] Définit les options de configuration pour l'usage d'une connexion sécurisée : certificat,
forcer l'authentification, etc
[Link] Précise les modules à charger lors du démarrage du service : base de données,
sécurité, quotas, etc
MODE OPERATOIRE
Le monde libre propose de multiples déclinaisons du protocole FTP sous forme de services : wuFTP,
ProFTP, …
Nous étudierons ici les grandes lignes de ProFTP qui a la réputation d'être un peu complexe
d'administration (mais proche d'Apache), « couplable » avec de l'authentification (MySQL ou LDAP),
gérant des droits de partage par utilisateur ou groupe, mieux sécurisé vis a vis des failles que wuFTP
par exemple.
CONFIGURATION DE BASE
Fichier [Link]
Ce fichier définit le comportement du service (modules appelés, type d'adressage IP, nom du serveur,
etc), mais aussi les listes de partage que l'on met en place et les droits d'accès associés.
Il fait appel à d'autres fichiers externes pour préciser certaines valeurs.
24
Configuration du service
ServerName "Serveur Partage" ; nom du serveur tel qu'il est vu dans l'explorateur client
ServerType standalone ; serveur qui est lancé sans l'intermédiaire
;du gestionnaire de service inet (meilleure performance)
DeferWelcome on ;n'affiche le message d'accueil qu'après authentification
DefaultServer on ; le serveur prendra en charge les demandes de
; machines non référencées dans les configurations
TimeoutNoTransfer 600 ;temps sans transfert avant fermeture de connexion authentifiée
TimeoutStalled 600 ; temps sans transfert avant fermeture connexion
TimeoutIdle 1200 ;temps sans échange (transfert, contrôle) avant fermeture
#Include /etc/proftpd/[Link] ; pour gérer les hôtes virtuels dans un fichier externe
Répertoire de connexion
Par défaut sur ProFTPd, les utilisateurs se retrouvent à la connexion dans le dossier
/home/nomUtilisateur.
On peut le redéfinir par la directive DefaultRoot qui bloque en outre l'utilisateur et l'empêche de
remonter l'arborescence (on dit que l'utilisateur est chrooté). On utilisera la valeur « ~ » qui
correspond à /home/nomUtilisateur, ou un dossier que l'on a choisi (par ex. /var/www pour les pages
Web d'Apache).
25
Attribution de droits
La limitation des droits d'utilisation des dossiers s'effectue par la directive Limit :
<Limit liste_actions>
Order Allow Deny ; ordre de traitement des droits
AllowUser monCompte ; autorise l'accès pour l'utilisateur monCompte
DenyAll ; refuse l'accès à tous les autres
</Limit>
Les principales actions que l'on peut restreindre par LIMIT sont décrites dans le tableau ci-dessous :
Options Explication
On peut redéfinir des droits à un niveau inférieur du dossier de connexion grâce à la directive
Directory :
<Directory /var/RessourcesBTS> ; spécifications pour le dossier /var/ressourcesBTS
<Limit WRITE> ; droit d'écriture
Order Allow Deny ; ordre de traitement des droits
AllowGroup gpProfs ; réservé aux enseignants
DenyAll ; refuse l'accès en écriture à tous les autres
</Limit>
<Limit READ> ; droit de lecture
Order Allow Deny ; ordre de traitement des droits
AllowAll ; autorisé à tout le monde
</Limit>
</Directory>
26
</Anonymous>
Par défaut, l'authentification des utilisateurs par ProFTP se fait par les comptes existant sous Linux.
Il est possible de reporter sur un système plus souple cette authentification : un fichier de comptes et
groupes (non traité), un annuaire (non traité), ou une base de données.
Pour ce faire, on devra activer certains modules et renseigner certains paramètres dans les fichiers de
configuration, après avoir installé les modules correspondant.
Fichier [Link]
Dans ce fichier, on se contente d'inclure le paramétrage relatif à SQL présent dans un autre fichier.
#Include /etc/proftpd/[Link] ; si on utilise un serveur LDAP
Include /etc/proftpd/[Link] ; à dé-commenter pour l'utilisation d'une base de données
Fichier [Link]
Le fichier indique les modules à charger parmi ceux présents dans le dossier /usr/lib/proftpd.
Dans le cas de l'utilisation d'une base de données MySQL, on dé-commentera les lignes suivantes :
LoadModule mod_sql.c ; prise en charge de l'authentification par un SGBD
LoadModule mod_sql_mysql.c ; nom du SGBD avec lequel on est en contact
Fichier [Link]
C'est ici qu'on décrira le type d'authentification, le nom des tables et les champs dans lesquels on ira
vérifier les informations d'authentification transmises
<IfModule mod_sql.c> ;paramétrages à prendre en compte si le module SQL est activé
SQLBackend mysql ; nom du SGBD qui contient les tables des comptes
#
#SQLEngine on
SQLAuthenticate users* groups* ; indique le niveau de droits (utilisateurs, groupes, les deux)
#
SQLAuthTypes Crypt Plaintext ; mode de gestion des mots de passe crypté et/ou en clair
#SQLAuthTypes Backend Crypt ; si on veut que ce soit MySQL qui fasse l'authentification
#
SQLConnectInfo proftpBDD@localhost root mproot ; coordonnées d'un compte MySQL
;(à adapter)
#
SQLUserInfo ftpuser userid passwd uid gid homedir shell ;tables pour les comptes d'utilisateur
; et champs étudiés
SQLUserWhereClause "LoginAllowed = 'true'" ; n'accepte que les comptes actifs
SQLGroupInfo ftpgroup groupname gid members ;table/champs étudiés pour groupes
#
SQLLogFile /var/log/proftpd/[Link] ; lieu de stockage des journaux
</IfModule>
CLIENT FTP
Exemples :
[Link]
[Link]
[Link]
Eléments de la ligne de commande FTP (voir plus de possibilités sur comment ça marche)
Commande Utilisation Exemples
ftp Passe en mode ligne de ftp
commande et réalise ftp [Link]
éventuellement la connexion ftp monCompte@[Link]
put / get Envoie / Récupère un document put fichierChezMoi //envoie le fichier vers le
serveur
put fich1 fich2 //envoie le fichier et le renomme
get fichierDistant // récupère le fichier du serveur
get ficDist ficLoc //récupère le fichier et le
renomme
! Exécute une commande sur la !cd .. //se déplace dans l'arborescence locale
machine locale ! md nomDossier ///crée un dossier en local
Source internet
29
FICHE 6 : CONNEXION ET ECHANGES CRYPTES AVEC SSL/TLS
PRESENTATION
Clé de cryptage
Pour partager des messages de manière confidentielle, deux extrémités d'une communication doivent
disposer d'un secret (une clé) qui permettra de coder un message (on parle de chiffrement) à
l'émission, et de le décoder (ou encore décrypter) à l'arrivée.
Si c'est la même clé qui permet le cryptage/décryptage, on dira qu'elle est symétrique.
Si on veut un niveau de sécurité accru, on réalisera l'encryptage par le biais d'une clé distribuée à tous
les émetteurs potentiels (cette clé est publique), et seul le destinataire possèdera la clé capable de
réaliser le déchiffrement (la clé est donc privée). On parle alors d'un cryptage asymétrique.
Certificat
Dans le cas d'un accès à un serveur public sécurisé (par exemple pour gérer ses comptes ou payer
en ligne), il est difficile de distribuer la clé publique à l'avance.
Le principe est alors de déposer, sur le serveur, un objet qui remplira les objectifs suivants :
crypter l'information envoyée vers le serveur avec la clé publique contenue dans le certificat
garantir l'intégrité des données transférées grâce à des techniques de hachage
garantir l'identité du serveur en précisant toutes les coordonnées de l'entreprise qui le met à
disposition et, éventuellement, de l'organisme qui en garantit la validité (indispensable pour
le paiement en ligne)
indiquer tous les algorithmes de cryptage supportés par le serveur
30
Cet élément est un fichier textuel nommé certificat. Divers formats existent, donc le standard de
l'Union Internationale des Télécoms (Certificat X.509).
SSL/TLS
Parmi les outils susceptibles de garantir le cryptage, SSL (Secure Socket Layer : Couche de socket
sécurisé), défini par la société Netscape en 1994 (V.1) et déployé publiquement en version 2 (1995)
s'est imposé comme la technique de sécurisation des échanges en environnement internet.
Il s'applique à tous les protocoles de la couche application puisqu'il se positionne plus bas dans le
modèle OSI (couche 5 : Session).
Il supporte les certificats X.509.
TLS (Transport Layer Security) est le nom du protocole depuis 2001, qui remplace la version 3.1 de
SSL. Il est maintenant définit par l'IETF (Internet Engineering Task Force) qui se charge de définir les
techniques utilisées sur Internet.
La mise en place d'un service sécurisé par TLS permettra d'éviter que l'on puisse exploiter le contenu
en cas d'interception des échanges entre le client et le serveur.
PROCEDURE
La démarche est commune quel que soit le service que l'on souhaite sécuriser.
Seuls les fichiers à modifier changent d'un service à l'autre.
31
MODE OPERATOIRE
MISE EN PLACE D'UN CERTIFICAT AVEC OpenSSL
Il propose notamment des commandes pour la création de clé secrète (gendh, genrsa, ...) ou la
génération de certificat (x509).
32
La création va donc passer par deux étapes :
Création d'un certificat générique (on devra renseigner les coordonnées de l'entreprise)
openssl req -new -key nom_cle -out nom_certif_generic.csr
Exemple : création d'un certificat dans un dossier spécifique à partir de la clé RSA
cd /etc/ssl
mkdir mesCertifs
cd mesCertifs
openssl req -new -key ../mesCles/[Link] -out [Link]
openssl x509 -req -days 365 -in [Link] -signkey ../mesCles/[Link] -out
[Link]
On peut aussi choisir de stocker le certificat directement dans le répertoire du service qu'il concerne
(par exemple dans /etc/apache2/mesCertifs)
Il ne reste plus qu'à configurer les services susceptibles de s'appuyer sur ce certificat.
On peut alors voir dans /etc/apache2/mods_enabled/[Link] que la ligne ci-dessous est dé-
commentée
LoadModule ssl_module /usr/lib/apache2/modules/mod_ssl.so
Dans le fichier [Link] de Apache, on vérifiera que le serveur écoute sur le port standard 443 (ou
sur un autre port si on souhaite faire une configuration personnalisée).
Dans le fichier /etc/apache2/sites-enabled/000-Default (ou dans [Link]), on ajoutera un hôte
virtuel pour cette écoute :
#on adaptera le numéro de port conformément à ce qui a été écrit dans [Link]
<VirtualHost *:443>
DocumentRoot /var/www
SSLEngine on ; active le SSL
SSLCertificateFile /etc/ssl/mesCertifs/[Link] ; chemin du certificat X509
SSLCertificateKeyFile /etc/ssl/mesCles/[Link] ; chemin de la clé privée
</VirtualHost>
Il faudra redémarrer Apache, qui indiquera si une erreur éventuelle est rencontrée (dans le chemin,
dans le nom du fichier, dans le contenu du certificat, etc).
33
Contrôle depuis un navigateur
Dans la barre de navigation du navigateur, on tapera [Link]
Du fait que le certificat que nous avons créé n'est pas garanti par un organisme officiel, le navigateur
mettre en garde sur le manque de confiance accordée à un certificat signée par son créateur.
On doit vérifier qu'un cadenas fermé au bas du navigateur atteste d'une navigation sécurisée.
Pour commencer, on devra indiquer dans le fichier /etc/proftpd/[Link] qu'il faut activer TLS
LoadModule mod_tls.c
On ira ensuite préciser au fichier [Link] d'inclure le fichier de configuration de tls en dé-
commentant la ligne suivante :
Include /etc/proftpd/[Link]
</IfModule>
Il faudra bien entendu redémarrer le service proftpd qui indiquera si une erreur est rencontrée (dans
le chemin, dans le nom du fichier, dans le contenu du certificat, etc).
34
On rencontrera la même mise en garde que pour HTTP du fait de l'auto-signature du certificat.
Sources
35
A master (or primary) DNS server hosts the original read-write copies of zone records and is solely responsible for modifying these records. The master is defined by the Start of Authority (SOA) record for the domain, and it contains the authoritative information required to operate a DNS service. In contrast, a slave (or secondary) server holds read-only copies of the zone records, which it obtains from the master server. The slave server increases fault tolerance and load distribution, updating its records through zone transfers initiated by the master or by regular polling for updated serial numbers in the SOA record. This relationship ensures data redundancy and consistent domain resolution across multiple servers .
DNS servers are classified into different roles: primary, secondary, and delegated. The primary server hosts the authoritative zone file and is responsible for updating this data. Secondary servers replicate the primary server's data to provide redundancy and load balancing. Delegated servers manage sub-zones and must be recognized at the upper level zone records to guide queries appropriately. Each role has specific responsibilities to maintain DNS service efficiency and reliability .
To integrate MySQL authentication with ProFTPd, several steps are involved. First, the MySQL database and the 'proftpd-mod-mysql' package need to be installed. An appropriate database for ProFTPd is then set up, including creating relevant tables like ftpgroup and ftpuser, and inserting user authentication data. The 'sql.conf' file is configured with the details of the MySQL database and connection credentials. This file must be included in the 'proftpd.conf' with 'Include sql.conf', and the necessary SQL modules should be loaded through 'modules.conf'. These configurations ensure that ProFTPd can authenticate users directly against entries in the MySQL database .
In BIND9, the master server, also known as the primary server, is defined in the DNS configuration files as 'type master'. It hosts the file describing the zone and is the only server authorized to modify it. Secondary servers are configured as 'type slave' and receive updates from the master server, ensuring redundancy and load distribution. It is essential to update the version number in the main file for the secondary servers to synchronize correctly .
Integrating MySQL into ProFTPd for user authentication involves several steps: installing the 'proftpd-mod-mysql' package, creating a database schema with 'ftpuser' and 'ftpgroup' tables, configuring 'sql.conf' with database credentials and query statements, and modifying 'proftpd.conf' to load SQL modules. This setup provides a scalable way to manage user accounts and enhances security and flexibility in authentication processes .
ProFTPd implements file sharing security and connection control through several configuration directives in its configuration file, 'proftpd.conf'. It allows modular loading, including security modules for authentication like MySQL or LDAP. The 'ServerType' directive determines whether the server runs in standalone mode, providing better resource management, and directives like 'DeferWelcome' control when banners are presented, improving security against unauthorized users. Controls such as 'DenyFilter' restrict access to certain file paths using regex. Connection timeouts (TimeoutNoTransfer, TimeoutStalled, TimeoutIdle) manage idle connections finely. ProFTPd also utilizes user and group permissions, restricting users to specific directories with 'DefaultRoot', ensuring they cannot traverse the file system arbitrarily, and uses logging settings for transfer and system authentication events to monitor and audit activities effectively .
DNS reverse resolution is the process of mapping an IP address back to a domain name, using PTR records. Contrary to forward resolution (Domain-to-IP) that employs 'A' and 'AAAA' records, reverse resolution configures specific reverse zones in 'in-addr.arpa' for IPv4 and 'ip6.arpa' for IPv6, where PTR records link IPs like '192.168.0.152' to domain names, providing reverse DNS lookup capabilities. Correct reverse mapping is necessary for network applications relying on reverse lookup .
When setting up a zone delegation in DNS architecture, critical decision factors include ensuring proper delegation at the parent zone level, which involves creating NS records that point to the authoritative nameserver for the subzone. It's essential to articulate exact correspondence between the parent zone's delegation records and the subzone's own SOA records to prevent resolution failures. The NS records must coincide with A or AAAA records for the server addresses. Security considerations also play a role, such as using secure updates to prevent unauthorized changes to the delegation and ensuring the subzone's server is properly configured to handle its authoritative roles. These careful configurations help maintain a robust and reliable DNS hierarchy .
The Start of Authority (SOA) record is crucial in a DNS zone file as it defines the authoritative information for the zone, including the domain name, the primary nameserver, and the contact email of the domain administrator. It specifies the serial number, which helps in synchronizing changes across secondary servers by ensuring they know when to update records. Additionally, it sets the timing parameters for refreshing the zone information, retries on failed transfers, expiration time of the zone, and the minimum TTL. This record is essential for the coherence and reliability of DNS updates and distribution .
A secondary DNS server uses several strategies to synchronize with its master server. It regularly polls the master server for updates, comparing the serial number in the Start of Authority (SOA) records to determine if a zone transfer is needed. Zone transfers, defined in its configuration file, are pulled based on configurations set in the 'named.conf.local' file where it is designated as a 'slave' type for specific zones. The polling interval, retry timing, and expiration of the zone information are managed by SOA record timing parameters, ensuring timely updates and coherence across DNS records without manual intervention .