Réseau interne documentation - MaximeDanlee/admin2-projet GitHub Wiki

Documentation

Résolveur

/
|
--etc
    |
    --bind
         |
         --named.conf                     // include tout les named.conf
         --named.conf.default_zones       // zone par défault comme la zone racine "."
         --named.conf.local               // ajouter "forward" pour nouvelle zone (ici SOA)
         --named.conf.options             // autoriser les clients

SOA

/
|
--etc
    |
    --bind
         |
         --named.conf                     // include tout les named.conf
         --named.conf.local               // ajouter nouvelle zone
         --named.conf.options             // autoriser les clients
         --master
               |
               -- woodytoys.be            // dns : RR
               -- 0.168.192.in-addr.arpa  // reverse

Web interne

/
|
--etc
    |
    --nginx
         |
         | --html
         |    |--erp
         |          | --index.php
         |    
         nginx.conf //
           

nginx.conf: Ce fichier permet de mettre en place les différents sites web, indiquer sur quel port écoute le serveur, la location des pages index, les logs du serveur, le nom du serveur, les différentes routes, les clés ssl, ...

index.php/html: Ces fichiers sont les pages principales du serveur, la page qui sera lancée en premier.

Ajout, modification et suppression

Dans le cas où il faut ajouter un site internet il faut :

  • Créer le dossier qui contiendra les fichiers html, css, ... (mkdir etc/nginx/html/nom du fichier)
  • Placer les fichiers html dans le dossier (/etc/nginx/html/nom du fichier/index.html)
  • rajouter un serveur dans le fichier etc/nginx/nginx.conf
  • rajouter un RR dans le soa
  • Créer un nouvel utilisateur dans la base de données (si des permissions spécifiques veulent être appliquées sur le nouveau site web)
------------------------------------------
server {
   server_name "nom du site web";
   location /nom du dossier/ {
       root   /etc/nginx/html/nom du dossier;
       index  index.html index.htm index.php;
   }
}
------------------------------------------
nom du serveur (ex: www, erp, ...)      IN      A	172.16.128.4

Ajout d'un nouvelle utilisateur Mysql :

  • CREATE USER 'example_user'@'adresse_ip_user' IDENTIFIED WITH mysql_native_password BY 'password';
  • GRANT ALL ON example_database.* TO 'example_user'@'adresse_ip_user';

Ajout d'un nouveau poste utilisateur :

Mise en place du serveur dns pour le nouveau poste:

  • Aller dans le fichier /etc/resolv.conf
  • ensuite remplacer l'adresse ip local par l'adresse ip du dns.
search openstacklocal
nameserver 172.16.128.3
options ndots:0

Mise à jour

de bind (résolveur, soa) :

Pour mettre à jour le système, entrez les commandes suivantes :

systemctl stop named
apt update
apt-get install --only-upgrade bind9
systemctl start named

Lors d'une mise à jour du fichier de zone, il faut incrémenter le numéro de série de ce fichier. Pour faire cela, il suffit d'incrémenter, dans la section SOA du fichier, le nombre "serial". De cette façon, si d'autres serveurs utilisent les ressource records de ce serveur il seront mise à jour.

de Nginx:

  1. Faire un backup de la config
    $ sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.backup

  2. Installer les dépendances
    $ sudo apt-get install software-properties-common python-software-properties

  3. Ajouter le référentiel pour la version stable de Nginx
    $ sudo add-apt-repository ppa:nginx/stable

  4. Maintenant on upgrade
    $ sudo apt-get update

  5. On installe Nginx
    $ sudo apt-get install nginx

  6. Après nginx demande si on veut garder l'ancienne config

Configuration file '/etc/nginx/nginx.conf'
 ==> Modified (by you or by a script) since installation.
 ==> Package distributor has shipped an updated version.
   What would you like to do about it ?  Your options are:
    Y or I  : install the package maintainer's version
    N or O  : keep your currently-installed version
      D     : show the differences between the versions
      Z     : start a shell to examine the situation
 The default action is to keep your current version.
*** nginx.conf (Y/I/N/O/D/Z) [default=N] ?

  1. Mettre oui pour utiliser l'ancienne config

source : https://medium.com/@soban1193/upgrading-nginx-to-the-latest-version-on-ubuntu-c0ad9116cf87

des postes utilisateurs:

  1. Ouvrez un Terminal.
  2. Entrez ensuite la commande suivante : sudo apt update. Entrez votre mot de passe utilisateur et validez.
  3. Pour commencer la mise à jour de votre système Ubuntu, rentrez ensuite la commande sudo apt upgrade.
  4. Une confirmation peut être nécessaire pour le téléchargement des nouveaux paquets. Appuyez sur la touche “o” de votre clavier, puis sur Entrée.

Test des services commandes :

Résolveur:

  • named-checkconf /etc/bind/named.conf
    Permet de vérifier le fichier named.conf

SOA:

  • named-checkconf /etc/bind/named.conf
    Permet de vérifier le fichier named.conf
  • named-checkzone woodytoys.intern /etc/bind/master/woodytoys.intern
    Permet de vérifier le fichier de zone

Web:

  • nginx -t
    permet de vérifier l'état du service nginx
  • php-fpm7.4 -t
    permet de vérifier l'état du service nginx

Démarrage des services , commandes :

Résolveur:

  • named -c /etc/bind/named.conf -g

SOA:

  • named -g

Web:

  • service nginx start
  • service php7.4-fpm start

Mysql :

  • service mysql start

Troubleshooting

  1. D'abord vérifier si l'on peut ping chaque serveur avec la commande ping.

  2. Tester la commande "dig www.woodytoys.intern" avec l'host

  3. Si cela ne fonctionne pas, tester la commande dig @172.16.128.2 www.woodytoys.intern"
    3.1 Si cela fonctionne le problème vient du résolveur, il faut donc vérifier les forwards du résolveur avec la commande:
    "named-checkconf /etc/bind/named.conf"
    3.2 Si cela fonctionne pas le problème vient du SOA, il faut donc vérifier le named.conf et le fichier de zone avec les commandes:
    "named-checkconf /etc/bind/named.conf"
    "named-checkzone woodytoys.intern /etc/bind/master/woodytoys.intern"

  4. Lancer un navigateur et taper www.woodytoys.intern/

  5. Vérifier d'abord que tous les services sont lancés (voir commandes démarrage de service)
    5.1 Ensuite vérifier les logs

Il y a différent type de message dans les logs: débogage , info , avis , avertissement , erreur (il s'agit des logs par défaut ), critique , alerte ou émergence . Il peut y avoir des logs pour une erreur au lancement du service, un accès interdit, un fichier introuvable, ...

Fichiers à vérifier :

Pour le serveur Mysql :
Vérifier que vous autorisez les connexions à distance dans le fichier ("/etc/mysql/mysql.conf.d/mysqld.cnf", bind adress : 0.0.0.0)

Pour le serveur nginx:
Vérifier le fichier "/etc/nginx/nginx.conf"

Pour le SOA et résolveur:
vérifier le fichier "/etc/bind/named.conf" et le fichier de zone pour le SOA.

Logs:

Logs de bind :

  • "/var/lib/bind/bind.log"

logs de nginx:

  • /var/log/nginx
  • /etc/nginx/main_error.log
  • /etc/nginx/error.log

Logs de Mysql:

  • /var/log/mysql

logs de php :

  • /var/log/php

Erreurs fréquentes

Nginx :

Il est possible que vous n'arriviez pas à vous connecter au site web
exemple: Failed to connect to erp.woodytoys.intern port 80: Connection refused

vérifier si tous les services sont lancés

  • service --status-all

Solution :

  1. Oubli du lancement du service Nginx
    Solution: service nginx restart
  2. Oubli du lancement du service Php
    Solution: service php7.4-fpm restart
  3. Faute de frappe dans le fichier nginx.conf (pour la location des fichiers index ou le nom du serveur)
    Solution: vi nginx.conf => modification du fichier
    Dans le navigateur, nous pouvons rencontrer l'erreur 404 Not Found, il se peut qu'il y ait un problème avec le fichier de configuration. Pour vérifier cela, il faut ouvrir le fichier nginx.conf et vérifiez si le site utilise le chemin correct pour le dossier racine.
------------------------------------------
server {
   server_name "nom du site web";
   location /nom du dossier/ {
       root   /etc/nginx/html/nom du dossier;
       index  index.html index.htm index.php;
   }
}
------------------------------------------

NGINX donne error 500 lorsqu'il y a une erreur côté serveur qui empêche NGINX de renvoyer une réponse correcte. Cela peut être dû à de nombreuses raisons différentes telles qu'un script défectueux, des fichiers manquants référencés par le code, des autorisations de fichier inadéquates, etc. Le mieux pour résoudre ce problème est de redémarrer le service, si ça ne va toujours pas il faut aller voir les logs nginx (/var/log/nginx)

Bind:

Erreur fréquente est l'oubli de rendre le service bind9 accessible en ligne (error : connection timed out; no servers could be reached ). Pour solutionner cette erreur il suffit d'ajouter la ligne suivante dans le fichier named.conf.options :

listen-on port 53 { any; };

Autre erreur fréquente est l'oubli d'autoriser le réseau à faire une requête dans le serveur ( error : REFUSED). Pour solutionner cette erreur il faut ajouter l'adresse ip du réseau dans le fichier named.conf.options :

allow-query {
        	172.16.0.0/16;
        };
⚠️ **GitHub.com Fallback** ⚠️