hosts.deny et exemple sous Linux
Le fichier hosts.deny peut être utilisé sur un système Linux pour refuser les tentatives de connexion à partir d’une ou plusieurs adresses IP, noms d’hôte ou domaines. Il peut fonctionner avec n’importe quel service encapsulé TCP sur votre système. Le fichier hosts.deny est utilisé conjointement avec hosts.allow pour déterminer si une tentative de connexion est acceptée ou refusée.
Le fichier hosts.deny n’est qu’un fichier de configuration en texte brut avec une syntaxe assez simple. Dans ce tutoriel, vous verrez un exemple du fichier hosts.deny, car nous vous montrons comment formater le fichier pour différents scénarios possibles.
Dans ce tutoriel, vous allez apprendre :
- À quoi sert le fichier
hosts.deny? - Comment modifier et formater le fichier
hosts.deny
hosts.deny et exemple sous Linux
Le fichier hosts.deny contient une liste de règles pour lesquelles les hôtes ou les réseaux se voient refuser l’accès aux services spécifiés à l’intérieur du fichier. Le format est d’énumérer une règle par ligne. Ci-dessous, nous montrerons divers exemples de règles que vous pouvez utiliser dans le fichier.
Lorsqu’une connexion est tentée, le fichier
hosts.allow est consulté pour voir si elle sera autorisée ou non. Si c’est autorisé, le fichier hosts.deny est consulté par la suite, pour voir s’il existe une règle qui refuse spécifiquement la connexion. La syntaxe habituelle est la suivante. Chaque valeur est séparée par deux points
:.service : host/networkVous pouvez également fournir une
option, mais ce n’est pas aussi courant. Nous couvrirons ci-dessous d’autres choix de niche. D’autres options peuvent être ajoutées si nécessaire, chacune étant séparée par un autre deux-points.service : host/network [: <option>: <option>: ...]La ligne suivante refuserait tout le trafic vers le service
sshd.ALLest utilisé comme un caractère générique.sshd : ALLComme mentionné précédemment, les règles à l’intérieur du fichier
hosts.allowse déclenchent avant cette règle. Par conséquent, la règleALLpeut être utilisée comme un fourre-tout pour les connexions qui n’ont pas déjà été explicitement acceptées.Cette ligne refuserait les connexions de tous les hôtes du réseau
10.Les connexions de tous les autres hôtes peuvent être acceptées par le fichierhosts.allowou, si aucune règle ne s’applique aux autres hôtes, leurs connexions seront autorisées.sshd : 10.Refuser les connexions à partir d’une adresse IPv4 et IPv6 particulière :
sshd : 10.10.136.241 sshd : [2a02:2149:88f1:4c00:9991:9daa:b580:aee1]Notez que l’adresse IPv6 doit être placée entre
crochets [ ].Plutôt que d’utiliser des adresses IP, vous pouvez également spécifier des noms d’hôte à partir desquels refuser les connexions.
sshd : some.hostRefusez les connexions de tous les hôtes utilisant le nom de domaine .linuxconfig.org.
sshd : .linuxconfig.orgVous pouvez également utiliser un caractère générique pour le service et le champ hôte/réseau. Cela refusera toutes les connexions à un service. Cela ne doit être utilisé que si vous avez déjà des règles à l’intérieur de
hosts.allowpour autoriser les connexions de tous les hôtes ou réseaux à partir desquels vous devez recevoir des communications.ALL : ALLPour refuser uniquement les connexions locales, le caractère générique
LOCALpeut être utilisé.sshd : LOCALL’opérateur
EXCEPTpeut être utilisé pour créer une exception dans une règle par ailleurs globale. Par exemple, cette règle refuserait toutes les connexions à partir du nom de domaine .linuxconfig.org, à l’exception d’un hôte.sshd : .linuxconfig.org EXCEPT terminal.linuxconfig.org
Réflexions finales
Dans ce tutoriel, nous avons vu comment formater le fichier hosts.deny avec diverses règles de filtrage sur un système Linux. Cela peut être un moyen efficace de filtrer le trafic pour les services encapsulés TCP, bien qu’il soit tombé en désuétude avec l’essor du puissant pare-feu iptables/nftables intégré au noyau Linux.
