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
hosts [Le 07/09/2016, 18:38] – [hostname] TravellingFroggyhosts [Le 02/09/2026, 19:52] (Version actuelle) – explication hostname | espaces insécables | réécriture explication hosts | suppr conseil au pif | màj liens | suppr lien mort krodelabestiole
Ligne 1: Ligne 1:
 {{tag> pare-feu réseau sécurité}} {{tag> pare-feu réseau sécurité}}
  
-----+====== Les fichiers hosts et hostname ====== 
 + 
 +===== hostname =====
  
-====== Les fichiers Hosts et hostname ====== +Le fichier ''/etc/hostname'' contient le [[:réseau#nom d'hôte]] de l'ordinateur. Celui-ci est utilisé pour identifier la machine sur un [[:réseau]], et apparaît dans l'[[:terminal#L'invite de commande (prompt)|invite de commande]] (//prompt//) du [[:terminal]].
-===== Les fichiers ===== +
-==== hostname ====+
  
-**Le fichier /etc/hostname** contient le nom du PC. Il faut le modifier [[sudo|avec les droits administrateur]] en l'éditant avec votre éditeur préféré ou en tapant : +Sa modification requiert les [[:permissions administrateur]] en l'[[:tutoriel:comment_modifier_un_fichier|éditant]] avec votre éditeur préféré, ou en entrant depuis un [[:terminal]]\_: 
-<code> sudo echo nouveau_nom_du_pc > /etc/hostname</code> +<code>sudo sh -c "echo nouveau_nom_du_pc > /etc/hostname"</code>
 Un redémarrage est nécessaire pour la prise en compte. Un redémarrage est nécessaire pour la prise en compte.
-De façon temporaire on peut simplement utiliser la commande du même nom : 
-<code> sudo hostname nouveau_nom_du_pc</code>  
-Attention à garder la cohérence avec le fichier de configuration de Samba, cf. [[:samba_smb.conf#parametres_generaux_de_global|samba_smb.conf paramètres généraux [global]]] 
  
-===== hosts =====+De façon temporaire on peut simplement utiliser la commande ''[[man>hostname]]''\_: 
 +<code>sudo hostname nouveau_nom_du_pc</code>
  
-**Le fichier hosts** est utilisé sous tous les systèmes d’exploitations lors de l’accès à Internet, ce fichier est consulté avant l’accès au serveur DNS. C’est un simple fichier qui contient sur la même ligne une adresse IP et parfois le nom de domaine.\\+<note important> 
 +Attention à garder la cohérence avec le fichier de configuration de [[:Samba]], cf. //[[:samba_smb.conf#Paramètres généraux de [global]]]//. 
 +</note>
  
-Ce fichier permet de bloquer l’accès à un site Internet, de le rediriger, de bloquer les pubs et d’améliorer l’accès à des sites en fonction de la configuration de celui-ci. Il peut être utile pour protéger votre ordinateur, empêcher un enfant (par exemple) d’accéder à un site particulier.\\ +===== hosts =====
-Ce fichier peut aussi servir à définir les noms des machines sur un réseau local (ou pas), cf. [[:tutoriel/comment_configurer_son_reseau_local#renseigner_le_fichieretchosts|renseigner_le_fichier etc hosts]]+
  
-Le fichier hosts est l’ancêtre des [[dns|DNS]] utilisé dans [[wpfr>ARPANET]] - servant à adresser les adresses des réseaux.+Le fichier ''/etc/hosts'' est consulté par tous les systèmes d'exploitations lors de l'accès à Internet, avant l'accès au serveur [[:DNS]], afin de résoudre une [[:reseau#adresse IP]]. C'est un simple fichier qui associe, en les déclarant sur une même ligne, une [[:reseau#adresse IP]] à un [[:web#nom de domaine]]. Le fichier ''hosts'' est l'ancêtre des [[:DNS]] utilisé sur [[wpfr>ARPANET]].
  
-  * **Voir également [[Moblock]], pour bloquer à partir de liste peerguardian.**+Ce fichier permet de\_: 
 +  * définir les [[:réseau#nom d'hôte|noms des machines]] sur un [[:réseau]] (privé ou public) 
 +  * bloquer l'accès à un site Internet 
 +  * le rediriger 
 +  * bloquer les publicités 
 +  * dans une certaine mesure améliorer l'accès à certains sites. 
 +Il peut être utile pour protéger un ordinateur, empêcher un enfant (par exemple) d'accéder à un site particulier.\\
  
-===== Trouver et modifier le fichier Hosts  ===== +<note important> 
-Le fichier se trouve dans ''/etc/hosts''. +La modification du fichier ''hosts'' n'est cependant utile ni fonctionnelle que pour la machine sur laquelle il se trouve, et facilement contournable. Pour définir (ou bloquer) plus largement des [[:web#nom de domaine|noms de domaine]], que ce soit sur Internet ou sur un réseau privé, on préférera généralement utiliser d'autres méthodes, qui s'appliqueront à plusieurs machines (voir [[:zeroconf#mDNS]], [[:smb|NetBIOS]], les [[:dns#gerer_son_propre_serveur_dns|serveurs DNS]], le projet [[https://pi-hole.net/|Pi-hole]], ou [[:Moblock|PeerGuardian]]).
- +
-Pour l'ouvrir dans un éditeur graphique, tapez <code> sudo xdg-open /etc/hosts</code> +
- +
-<note important>Après l'avoir modifié, tapez <code>sudo /etc/init.d/networking restart</code> pour que les changements soient pris en compte par le service réseau.+
 </note> </note>
  
-===== Utiliser le fichier Hosts pour bloquer des sites web  =====+==== Trouver et modifier le fichier hosts  ====
  
-En définissant, comme adresse IP une adresse autre, on peut éviter d'aller sur certains sites web : par exemple, pour ne pas afficher le contenu de publicité.+Le fichier hosts se trouve dans ''/etc/''. Son [[:chemins|chemin]] est donc ''/etc/hosts''.
  
-La plupart du temps c'est l'adresse de la boucle locale (i.e. votre ordinateur) qui est utilisé (en tout cas dans les fichiers et exemples ci-après). +<note warning> 
-==== D'autres fichiers hosts ==== +Avant modification, comme pour tout fichier du [[:système]], il est prudent d'en faire une copie de sauvegarde (ici datée de la veille)\_: 
- +<code>sudo cp -av /etc/hosts /etc/hosts.bak.$(date -d "yesterday" '+%Y-%m-%d')</code> 
-<note>A priori de trop grosses listes et/ou non adaptées peuvent ralentir votre accès au réseau (et internet). Faire des test (via la commande ping par exemple). +</note> 
- +<note warning> 
-Dans tous les cas et dans une perspective de sécurité, l'utilisation d'un [[pare-feu]] est préférable.+Les deux premières lignes de ''hosts'' sont //cruciales//. N'y touchez pas si vous ne savez pas exactement ce que vous faites -- au risque de rendre la machine inutilisable.
 </note> </note>
  
-  * http://www.mvps.org/winhelp2002/hosts.txt +Pour modifier le fichier ''hosts'', il faut les [[:permissions administrateur]].
-conseillé+
  
-  * http://rlwpx.free.fr/WPFF/hosts.htm +En ligne de commande\_: 
-Il bloque pas mal de site, c'est même un peu trop!+<code>sudo nano /etc/hosts</code> 
 +Pour enregistrer\_: ''Ctrl''+''O'' puis ''Entrée''. Pour quitter\_: ''Ctrl''+''X''.
  
-  * http://accs-net.com/hosts/hostsforlinux.html +En mode graphique\_: 
-pas testé.+  - Copier le fichier (sans changer son nom) dans le [[:arborescence#répertoire personnel]] (et pas dans un de ses sous-répertoires)\_:<code>cp -v /etc/hosts ~</code> 
 +  - Modifier cette copie avec votre éditeur de texte favori. 
 +  - L'enregistrer (toujours sans changer son nom). 
 +  - Le déplacer dans ''/etc/'' (c'est la seule opération qui requiert les [[:permissions administrateur]])\_:<code>sudo mv -v ~/hosts /etc/hosts</code>
  
-  * http://someonewhocares.org/hosts/ +<note>La modification de ''/etc/hosts'' est instantanément appliquée par le système.</note>
-  * http://sourceforge.net/projects/adzhosts/ +
-//AdZHosts est un fichier HOSTS régulièrement tenu à jour. +
-Il est disponible pour tous les OS et Smartphones. +
-Son but est d'interdire l'accès aux sites qui diffusent de la pub et de bloquer l'accès aux sites intrusifs sur votre PC et votre smartphone. +
-Ce n'est pas simplement votre navigateur qui est protégé de ces pubs mais bien toute la machine.//+
  
 +==== Utiliser le fichier hosts pour bloquer des sites web  ====
  
-Pour windows il y a [[http://www.javacoolsoftware.com/spywareblaster.html|spywareblaster]] - (gratuit, licence ?) et [[http://www.safer-networking.org/fr/home/index.html|Spybot S & D]] (libre...) qui ont des listes à leur disposition. ( il serait utile de les récupérer et de faire partager). +En définissant comme [[:reseau#adresse IP]] une adresse autre, on peut empêcher l'accès à certains sites web, ou bloquer les publicités.
  
-Il est théoriquement possible de convertir des listes peerguardian pour mettre à jour hosts - mais autant utiliser [[Moblock]] qui fait déjà cela automatiquement.+La plupart du temps c'est l'adresse de la boucle locale ''127.0.0.1'' qui est utilisée, cependant il est conseillé d'utiliser ''0.0.0.0'' à la place car il n'y a pas d'attente de //timeout//. Résultat\_: beaucoup moins de lenteurs. De plus, de cette façon, le fichier ''hosts'' n'interfère pas avec les serveurs Web qui peuvent être hébergés en local.
  
 +<note warning>//A priori//, de trop grosses listes et/ou non adaptées peuvent ralentir l'accès au réseau. Faire des test (via la commande [[:faq_reseau#tests_vers_une_machine_distante|ping]] par exemple).
  
-==== Pré-requis ====+**[[https://www.freedesktop.org/software/systemd/man/latest/systemd-resolved.service.html|systemd-resolved]]** est utilisé comme [[https://doc.ubuntu-fr.org/zesty#changements_apportes_depuis_la_version_precedente|résolveur DNS par défaut]] et un trop gros fichier hosts (plusieurs Mo) peut bloquer complètement l'accès à internet. 
 +</note>
  
 +<note>
 +Pour aller plus loin et dans une perspective de sécurité, l'utilisation d'un [[:pare-feu]] ou d'un [[:proxy]] peut être préférable.
  
-savoir utiliser les [[:tutoriel:console_commandes_de_base|commandes de bases]].\\+Voir aussi l'utilisation de [[:configuration_serveur_dns_dhcp#bloquer_un_domaine_avec_dnsmasq|dnsmasq]]. 
 +</note>
  
-Penser à sauvegarder le précédent avec :\\ +=== Divers fichiers hosts ===
-<code>cd /etc/</code> +
-<code>cp hosts hosts.backup</code>+
  
 +On trouve sur le web des fichiers ''hosts'' listant des [[:web#nom_de_domaine|noms de domaine]] à bloquer. On peut les utiliser et les inclure dans son propre fichier ''/etc/hosts'' pour bloquer de très nombreux [[:web#nom de domaine|domaines]]. Cependant pour être efficace, ces listes devraient être mises à jour en permanence au moyen d'un utilitaire (voir les scripts proposés avec ces listes).
  
-==== Installation et mise à jour automatique  ====+Cette liste n'est pas exhaustive. Les liens sont classés par ordre alphabétique.
  
-Je vous propose une méthode simple de mise à jour automatique mensuel du fichier host.+  * [[https://www.encrypt-the-planet.com/downloads/hosts|Encrypt The Planet]] 
 +  * [[https://filterlists.com/|Filter Lists]] 
 +  * [[https://winhelp2002.mvps.org/hosts.txt|MVPS.org]] 
 +  * [[http://rlwpx.free.fr/WPFF/hosts.htm|rlwpx.free.fr]] 
 +  * [[https://someonewhocares.org/hosts/|Someonewhocares.org]]
  
-Dans une console : +D'autres listes et sources sont disponibles sur GitHub\_: 
-<code>sudo touch /etc/cron.monthly/hosts ; sudo xdg-open /etc/cron.monthly/hosts</code>+  * [[https://github.com/mitchellkrogza/Badd-Boyz-Hosts]] (bloque principalement les sites interdits aux mineurs) 
 +  * [[https://github.com/notracking/hosts-blocklists]] 
 +  * [[https://github.com/StevenBlack/hosts]] 
 +  * [[https://github.com/Ultimate-Hosts-Blacklist/Ultimate.Hosts.Blacklist]] (fournit également un fichier [[:denyhosts|hosts.deny]])
  
-Collez-y le code ci-dessous ("ubuntu" est à changer par le nom de votre machine) : +===== Voir aussi =====
-<code>#!/bin/bash +
-wget --directory-prefix=/tmp  http://winhelp2002.mvps.org/hosts.txt ||exit +
-mv /tmp/hosts.txt /etc/hosts +
-echo "127.0.1.1 ubuntu" >> /etc/hosts +
-echo "::1 ip6-localhost ip6-loopback" >> /etc/hosts +
-echo "fe00::0 ip6-localnet" >> /etc/hosts +
-echo "ff00::0 ip6-mcastprefix" >> /etc/hosts +
-echo "ff02::1 ip6-allnodes" >> /etc/hosts +
-echo "ff02::2 ip6-alllrouters" >> /etc/hosts</code> +
- +
-Fermez l’éditeur de texte puis exécutez : +
-<code>sudo chmod +x /etc/cron.monthly/hosts</code> +
- +
-et voilà la mise à jour est automatique ! +
- +
-Remarque : +
- +
-- ce script ne modifie rien si il n’arrive pas à télécharger +
- +
-- ce script s'adapte en ajoutant les lignes par défaut du fichier de Ubuntu +
- +
-- ce script est exécuté automatiquement tout les mois sans intervention de l'utilisateur +
- +
-- il est possible de l’exécuter n’importe quand avec "sudo /etc/cron.monthly/hosts" +
-==== Désinstallation ==== +
- +
-Il faut tout simplement supprimer le fichier hosts qui a été remplacé et remettre l’original précieusement sauvegardé :)\\ +
- +
-==== Site en rapport ==== +
- +
- +
-  * Autre lien pour script automatique : [[http://fl4t.blogspot.com/2009/05/script-pour-linuxien-adzhosts.html]]\\ +
-  * Le fil de discussion [[http://forum.ubuntu-fr.org/viewtopic.php?pid=2575813#p2575813]]\\ +
-  * Introduction et personnalisation de l’hosts [[http://kerio.probb.fr/securiser-un-peu-plus-son-ordinateur-f9/le-fichier-hosts-securiser-et-ameliorer-t473.htm]]\\ +
- +
-===== Remplacer les messages d’erreurs "Impossible de charger l'URL" lors de la navigation ===== +
- +
-Vous l’aurez certainement remarqué, le fait de blacklister un site dans le fichier HOST provoque des erreurs d’affichage assez désagréables lors de la navigation. +
- +
-En effet, le fichier HOST redirige l’adresse du site indésirable vers l'adresse 127.0.0.1, c'est-à-dire votre ordinateur. Votre ordinateur n’est donc pas capable de répondre à la requête, car aucun serveur HTTP n’est actif ou dans le cas contraire, votre serveur HTTP ne peut servir l’URL demandée car elle n'existe pas sur votre ordinateur. +
- +
-La méthode de contournement consiste à lancer un serveur HTTP bidon qui va répondre à toute les requêtes en envoyant comme réponse un code HTML défini par l'utilisateur. +
- +
-==== Installation ====  +
- +
-- Installer les dépendances +
- +
-<code>sudo apt-get install libcurl4-gnutls-dev </code> +
- +
-- Télécharger et décompresser l’archive (le lien semble mort le 03/01/2014) +
- +
-<code>wget http://fab.homelinux.org/nullsrvd/nullsrvd.tar.gz +
-tar xzvf nullsrvd.tar.gz</code> +
- +
-- Compiler +
- +
-<code>cd nullsrvd +
-make</code> +
- +
-- Installer  +
- +
-<code>sudo make install</code> +
- +
-==== Utilisation ====  +
- +
-Le serveur nullsrvd est un démon, c’est-à-dire que celui-ci se lance tout seul dès le démarrage de la machine +
- +
-=== Arrêt / Démarrage === +
- +
-<code>sudo service nullsrvd start|stop</code> +
- +
-=== Consultation de la log === +
- +
-<code>cat /var/log/nullsrvd/nullsrvd.log</code> +
- +
-=== Changer le code HTML renvoyé par nullsrvd === +
- +
-[[:tutoriel:comment_modifier_un_fichier|Editer le fichier]] /etc/nullsrvd/response.html +
- +
-=== Changer le chemin d'accès du fichier HTML renvoyé par nullsrvd === +
- +
-[[:tutoriel:comment_modifier_un_fichier|Editer le fichier]] /etc/default/nullsrvd +
- +
-=== Rajouter des entrées hosts utilisateur === +
- +
-Si vous souhaitez que nullsrvd rajoute des entrées au fichier hosts après l'installation d'un nouveau fichier issu d’AdzHosts,  +
-[[:tutoriel:comment_modifier_un_fichier|éditer le fichier]] /etc/nullsrvd/user.hosts +
- +
-==== Désinstallation ====  +
- +
-Penser à arrêter nullsrvd avant sa désinstallation. +
- +
-<code>sudo make uninstall</code> +
- +
-==== Problèmes / Remarques ====  +
- +
-S’adresser à [[http://forum.ubuntu-fr.org/profile.php?id=45561|darunia]] +
- +
-===== Héberger simultanément un site local et une page spéciale de blocage ===== +
-Si vous hébergez un site sur votre ordinateur, il sera accessible à l’adresse 127.0.0.1, mais vous ne voulez pas forcément que ce soit ce site qui s’affiche pour une url bloquée par le fichier hosts. +
- +
-La première chose à faire est une page en php qui va analyser l'adresse et rediriger vers votre site si l'adresse appartient à une liste définie (localhost, votre ip locale, le nom de la machine…) et rediriger vers une page bloquant l’accès au site pour toutes les autres adresses (soit celles contenues dans le fichier host). +
-==== La page index.php ==== +
- +
-La page index.php sera la page chargée par défaut si vous indiquer uniquement un nom de domaine sans indiquer de fichier, c'est donc celle la qui va analyser l'adresse +
- +
-<code> +
-<!DOCTYPE html>  +
-<html> +
-    <head> +
-        <meta charset="utf-8" /> +
-        <title>index.php</title> +
-    </head> +
- +
-    <body> +
-   +
- +
-<?php +
-$monUrl = "http://".$_SERVER['HTTP_HOST']."/"; +
-switch ($monUrl) +
-{ +
-case "http://127.0.0.1/": +
-include ('./mapagedaccueil.php'); +
-break; +
- +
-case "http://192.168.1.95/": +
-include ('./mapagedaccueil.php'); +
-break; +
- +
-case "http://localhost/": +
-include ('./mapagedaccueil.php'); +
-break; +
- +
-default: +
-include ('./bloque.php'); +
- +
-} +
-  +
-?>  +
-  +
-    </body> +
-</html> +
-</code> +
- +
-Cette page va donc récupérer l’adresse courante avec  %% $_SERVER['HTTP_HOST'] %% et inclure la page qui convient. Bien sûr, il faut remplacer 192.168.1.95 par votre adresse ip locale et rajouter si besoin d’autres %% case %% si vous voulez que d’autres adresses affichent votre site. Elle affichera soit la page bloque.php que nous verrons au chapitre suivant soit votre page d’accueil, qui s’appelait index.php avant de suivre ce tuto et que vous devez renommer en mapagedaccueil.php ou un autre nom mais il faudra adapter la page index.php et y mettre le même nom. +
- +
-==== La page bloque.php ==== +
- +
-C’est cette page qui s’affichera pour toute les adresses qui ne sont pas précisément recensées. Elle s’affichera donc pour les url contenues dans le fichier host. +
-Elle indique le nom du site, affiche un sens interdit, explique que la page est bloquée et redirige vers une autre page après quelques secondes. +
- +
-<code> +
-<!DOCTYPE html> +
-<html> +
-    <head> +
-        <meta charset="utf-8" /> +
-        <title>Page bloque par le fichier host</title> +
- +
-    </head> +
- +
-<img src="./sens-interdit.jpg" alt="sens interdit" /> +
- +
-    <body> +
-     +
- +
-  +
- +
-<? +
-$monUrl = "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; +
-echo "<h1> La page que vous tentez de charger </p>"  .$monUrl." est bloquée.</h1> </p>"; +
- +
- +
-echo "vous allez etre redirigez vers duckduckgo dans 5s</p>"; +
- +
-header ("Refresh: 5;URL=https://duckduckgo.com/"); +
- +
- +
- +
-?>  +
-  +
-    </body> +
-</html> +
-</code> +
-Vous pouvez adapter le temps avant la redirection en secondes, changez l'adresse... +
-Vous pouvez maintenant afficher une page différente en fonction que se soit l'adresse du site local ou une autre même si elle possède la même adresse ip dans votre fichier host. +
- +
- +
-===== Liens ===== +
- +
-  * [[http://fr.wikipedia.org/wiki/Hosts|Hosts - sur wikipedia]] et [[http://en.wikipedia.org/wiki/Hosts_file|wikipedia en]] +
-  * [[http://lelogiciellibre.net/tutoriaux/fichier-hosts.php|Le fichier hosts sur le logiciellibre]].+
  
 +  * [[wpfr>hosts]] sur Wikipédia
  
 ---- ----
 +//[[:Contributeurs]] : [[:utilisateurs:Fl4t]], [[:utilisateurs:PsychedÉric]], [[:utilisateurs:gb1yop]], [[https://forum.ubuntu-fr.org/profile.php?id=45561|darunia]], [[:utilisateurs:anonyme68]], [[:utilisateurs:krodelabestiole]].//
  
-//Contributeurs principaux : [[:utilisateurs:fl4t|Fl4t]], [[:utilisateurs:psychederic|PsychedÉric]], [[:utilisateurs:gb1yop]], [[http://forum.ubuntu-fr.org/profile.php?id=45561|darunia]], [[:utilisateurs:anonyme68|anonyme68]] (suppression de paragraphes et des scripts étranges pour une meilleure clarté).// 
- 
-//Basé sur [[http://forum.ubuntu-fr.org/viewtopic.php?id=350476|forum]].//