hosts.allow et exemple sous Linux
Un système Linux peut utiliser le fichier hosts.allow pour spécifier les adresses IP, les noms d’hôte ou les domaines autorisés à s’y connecter. Cela fonctionne spécifiquement pour les services encapsulés TCP. Le fichier hosts.allow est utilisé conjointement avec hosts.deny pour déterminer si une tentative de connexion est acceptée ou refusée.
Le fichier hosts.allow 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.allow, 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.allow? - Comment modifier et formater le fichier
hosts.allow
hosts.allow et exemple sous Linux
Le fichier hosts.allow contient une liste de règles pour lesquelles les hôtes ou les réseaux sont autorisés à accéder aux services spécifiés à l’intérieur du fichier. Le format accepté 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 autorise tout le trafic vers le service
shd.ALLest utilisé comme un caractère générique.sshd : ALLCette ligne permettrait les connexions de tous les hôtes du réseau
10.Les connexions de tous les autres hôtes peuvent alors être refusées par le fichierhosts.deden. Ce type de configuration fonctionnera comme prévu puisque la ligned’autorisationprécède notre lignede refuscorrespondante dans l’autre fichier, et sera donc déclenchée en premier.sshd : 10.Acceptez 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 accepter ou refuser les connexions.
sshd : some.hostAcceptez 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 acceptera toutes les connexions à n’importe quel service. Cela rendrait toutes les autres règles (y compris celles de
hosts.deny) non pertinentes, car toutes les connexions seront acceptées par cette règle avant d’avoir une chance d’être refusées.ALL : ALLPour n’accepter que les connexions locales, vous pouvez utiliser le caractère générique
LOCAL.sshd : LOCALL’opérateur
EXCEPTpeut être utilisé pour créer une exception dans une règle par ailleurs globale. Par exemple, cette règle autoriserait 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 hosts.allow 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.
