Cette fonctionnalité permet de controler quel serveur à accès à quelle machine
Les paramètres se configurent dans les fichiers /etc/hosts.allow et /etc/hosts.deny. Le fichier hosts.allow est prioritaire sur hosts.allow
Pour vérifier si un service réseau est rattaché au controle d'accès. Lancer la commande suivantes par exemple pour le demon sshd
strings -f /usr/sbin/sshd | grep hosts_access
Pour interdire l'accès SSH et logger:
sshd : 10.0.0.2 \ : spawn /bin/echo $(/bin/date) %h access denied >> /var/log/sshd.log \ : deny
la directive spawn permet de lancer une commande système comme dans le cas présent echo
%h affiche le hostname du client
Voir EXPANSIONS dans le man hosts.allow
man hosts.allow
Ne pas oublier le “\” en fin de ligne
Pour interdire l'accès à tous les services sauf vsftpd en provenance du réseau 10.0.0.0
ALL EXCEPT vsftpd: 10.0.0. : deny
Pour refuser l'accès et envoyer un message de rejet
vsftpd : 10.0.0.2 \ : twist /bin/echo "Go away !"
la directive twist permet de lancer une commande système a envoyer au client comme dans le cas présent echo
Exemple de simples directives
sshd : 10.0.0.2 : deny sshd : 10.0.0.254 : allow
Pour interdire l'accès depuis les machines du réseau 10.0.0.0 vers tous les services sauf pour 10.0.0.254
ALL: 10.0.0.* EXCEPT 10.0.0.254
Pour interdire l'accès à tous les services sauf vsftpd en provenance du réseau 10.0.0.0
ALL EXCEPT vsftpd: 10.0.0.