Réseau interne documentation - MaximeDanlee/admin2-projet GitHub Wiki
/ | --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
/ | --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
/ | --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.
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
- 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';
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
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.
-
Faire un backup de la config
$ sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.backup -
Installer les dépendances
$ sudo apt-get install software-properties-common python-software-properties -
Ajouter le référentiel pour la version stable de Nginx
$ sudo add-apt-repository ppa:nginx/stable -
Maintenant on upgrade
$ sudo apt-get update -
On installe Nginx
$ sudo apt-get install nginx -
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] ?
- Mettre oui pour utiliser l'ancienne config
source : https://medium.com/@soban1193/upgrading-nginx-to-the-latest-version-on-ubuntu-c0ad9116cf87
- Ouvrez un Terminal.
- Entrez ensuite la commande suivante : sudo apt update. Entrez votre mot de passe utilisateur et validez.
- Pour commencer la mise à jour de votre système Ubuntu, rentrez ensuite la commande sudo apt upgrade.
- 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.
- named-checkconf /etc/bind/named.conf
Permet de vérifier le fichier named.conf
- 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
- nginx -t
permet de vérifier l'état du service nginx - php-fpm7.4 -t
permet de vérifier l'état du service nginx
- named -c /etc/bind/named.conf -g
- named -g
- service nginx start
- service php7.4-fpm start
- service mysql start
-
D'abord vérifier si l'on peut ping chaque serveur avec la commande ping.
-
Tester la commande "dig www.woodytoys.intern" avec l'host
-
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" -
Lancer un navigateur et taper www.woodytoys.intern/
-
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, ...
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 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
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 :
- Oubli du lancement du service Nginx
Solution: service nginx restart - Oubli du lancement du service Php
Solution: service php7.4-fpm restart - 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)
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;
};