/etc/hosts.allow et /etc/hosts.deny sont deux fichiers de configuration Linux qui vous permettent de filtrer les adresses IP entrantes vers des services.
Bien souvent oubliés au profit d’un filtrage par le firewall, ces deux fichiers restent très utiles pour sécuriser l’accès aux daemons Linux.
Dans ce tutoriel, je vous explique ce que sont ces fichiers, comment utiliser /etc/hosts.allow et /etc/hosts.deny avec des exemples.
Qu’est-ce que /etc/hosts.allow et /etc/hosts.deny et TCP wrapper
Les fichiers /etc/hosts.allow et /etc/hosts.deny sont couramment utilisés par les TCP wrappers.
Les TCP wrappers fournissent un filtrage de base du trafic réseau entrant. L’accès aux services réseau “enveloppés” s’exécutant sur un serveur Linux depuis d’autres systèmes peut être autorisé ou refusé.
Un service enveloppé TCP est un service qui a été compilé contre la bibliothèque libwrap.a. Utilisez la commande ldd pour déterminer si un service réseau est lié à libwrap.a.
En résumé, avec ces fichiers de configuration vous pouvez filtrer le trafic entrant.
Il vous permet d’autoriser ou interdire une adresse IP ou sous-réseau pour un service (daemon).
On utilise les fichiers à cet escient :
- /etc/hosts.allow : Autoriser une classe d’IP
- /etc/hosts.deny : Interdire une classe IP
Mais la syntaxe est identique pour ces deux fichiers et vous pouvez mélanger leurs contenus.
Comment utiliser /etc/hosts.allow et /etc/hosts.deny
Voici la syntaxe des deux fichiers de configuration :
deamon/service : clients
- daemon/services : Une liste de démons séparés par des virgules, ou le mot clé ALL pour tous les démons
- clients : Une liste de clients séparés par des virgules, ou le mot-clé ALL pour tous les clients. Il peut s’agir d’une adresse IP ou d’un nom d’hôte
- commande : Une commande facultative qui est exécutée lorsqu’un client essaie d’accéder à un démon serveur
La logique d’utilisation est en général de bloquer tout dans /etc/hosts.deny et autoriser les IP dans /etc/hosts.allow
Exemples d’utilisation /etc/hosts.allow et /etc/hosts.deny
Bloquer des adresses IP sur SSH
Voici quelques exemples d’utilisations de /etc/hosts.allow pour autoriser des adresses IP et réseau pour SSH et bloquer le reste.
sshd: <Adresse IP> sshd: 192.168.0.8 sshd: <sous réseau> sshd: 192.168.0.0/24 sshd: <adresse IP>,<sous réseau> sshd: 192.168.0.3, 192.168.0.4 # Bloquer les autres adresses IP sshd: ALL : deny
Cela génère des entrées sshd “refused connect from” dans le journal /var/log/auth.log :
Nov 17 09:11:54 Ubuntu-VM sshd[3782]: refused connect from 10.0.0.15 (10.0.0.15)
Bloquer une adresse IP sur FTP
Par exemple pour autoriser le réseau 192.168.2.* pour le service VSFTPD :
vsftpd: 192.168.2.*
On peut aussi utiliser la syntaxe suivante avec le masque des sous-réseau :
vsftpd: 192.168.2.0/24
Si vous utilisez plutôt proftpd, il suffit de remplacer le nom du service :
proftpd: 192.168.2.0/24
Bloquer toutes les adresses IP à l’exception de
Bloquer tous les services pour tous les hôtes et adresse IP sauf pour exemple.com :
ALL: .exemple.com
Pour interdire toutes les IP à l’exception de 192.168.0.15 pour tous les services :
ALL: ALL EXCEPT 192.168.0.15, 192.168.0.14
Liens
L’article /etc/hosts.allow et /etc/hosts.deny : Comprendre les fichiers de configuration sur Linux est apparu en premier sur malekal.com.
0 Commentaires