GNU/Linux >> Tutoriels Linux >  >> Cent OS

Comprendre les wrappers TCP (/etc/hosts.allow &/etc/hosts.deny) sous Linux

Les wrappers TCP fournissent un filtrage de base du trafic réseau entrant. L'accès aux services réseau "encapsulés" exécutés sur un serveur Linux à partir d'autres systèmes peut être autorisé ou refusé. Un service encapsulé TCP est un service qui a été compilé avec la bibliothèque libwrap.a. Utilisez la commande ldd pour déterminer si un service réseau est lié à libwrap.a. L'exemple suivant détermine le nom de chemin absolu du service sshd, puis répertorie les bibliothèques partagées liées au service sshd, en utilisant la commande grep pour rechercher la bibliothèque libwrap :

# which sshd
/sbin/sshd
# ldd /sbin/sshd | grep libwrap
	libwrap.so.0 => /lib64/libwrap.so.0 (0x00007f1fea580000)

Fichiers de configuration

Les wrappers TCP s'appuient sur deux fichiers de configuration comme base pour le contrôle d'accès :

  • /etc/hosts.allow
  • /etc/hosts.deny

Lorsqu'un client tente de se connecter à un service réseau sur un système distant, ces fichiers sont utilisés pour déterminer si l'accès client est autorisé ou refusé. Utilisez /etc/hosts.allow et /etc/hosts.deny pour définir des règles qui autorisent ou refusent de manière sélective l'accès des clients aux démons du serveur sur le système local. Le format des entrées est le suivant pour les deux fichiers :

daemon_list : client_list [: command]

Une description de chaque champ suit :

  • daemon_list :Une liste de démons séparés par des virgules, ou le mot-clé ALL pour tous les démons
  • client_list  :Une liste de clients séparés par des virgules ou le mot-clé ALL pour tous les clients
  • commande  :Une commande facultative qui est exécutée lorsqu'un client tente d'accéder à un démon de serveur

Pour autoriser l'accès client, ajoutez le nom d'hôte ou l'adresse IP du client dans /etc/hosts.allow. Pour refuser l'accès au client, ajoutez son nom ou son adresse IP dans /etc/hosts.deny.

Le fichier /etc/hosts.allow est lu en premier et est lu de haut en bas. Si une paire démon-client correspond à la première ligne du fichier, l'accès est accordé. Si la ligne ne correspond pas, la ligne suivante est lue et la même vérification est effectuée. Si toutes les lignes sont lues et qu'aucune correspondance ne se produit, le fichier /etc/hosts.deny est lu, en commençant par le haut. Si une correspondance de paire démon-client est trouvée dans le fichier de refus, l'accès est refusé. Si aucune règle pour la paire démon-client n'est trouvée dans l'un ou l'autre fichier, ou si aucun fichier n'existe, l'accès au service est accordé.

Étant donné que les règles d'accès dans hosts.allow sont appliquées en premier, elles ont priorité sur les règles spécifiées dans hosts.deny. Par conséquent, si l'accès à un service est autorisé dans hosts.allow, une règle refusant l'accès à ce même service dans hosts.deny est ignorée. Voici quelques exemples d'entrées dans le fichier /etc/hosts.allow :

1. Pour autoriser les clients du sous-réseau 192.168.2 à accéder au FTP (le démon est vsftpd) :

# vi /etc/hosts.allow
vsftpd : 192.168.2.*

2. Pour autoriser tous les clients à accéder à ssh, scp et sftp (le démon est sshd) :

# vi /etc/hosts.allow
sshd : ALL

3. Placez l'entrée suivante dans le fichier /etc/hosts.deny pour refuser le service FTP à tous les clients à l'exception du sous-réseau 192.168.2.* (cela suppose que l'entrée précédente de vsftpd:192.168.2.* existe dans /etc/hosts. autoriser):

# vi /etc/hosts.deny
vsftpd : ALL

4. Utilisez la syntaxe .domain pour représenter tous les hôtes d'un domaine donné. L'exemple suivant autorise les connexions à vsftpd à partir de n'importe quel hôte du domaine example.com (si l'entrée se trouve dans /etc/hosts.allow) :

# vi /etc/hosts.allow
vsftpd : .example.com

Si cette entrée apparaît dans /etc/hosts.deny, la connexion est refusée.

TCP Wrapper (hosts.allow &hosts.deny) Options de commande sous Linux


Cent OS
  1. Comment Linux gère-t-il plusieurs séparateurs de chemins consécutifs (/home////nom d'utilisateur///fichier) ?

  2. Créer un fichier Hosts spécifique à l'utilisateur pour compléter /etc/hosts ?

  3. Comment /etc/motd est-il mis à jour ?

  4. Comprendre le fichier /etc/xinetd.conf sous Linux

  5. Comprendre le répertoire /etc/skel sous Linux

Configuration Linux :Comprendre les répertoires *.d dans /etc

Comprendre le fichier /etc/inittab sous Linux

Comprendre le fichier /etc/fstab sous Linux

Comprendre le fichier de configuration /etc/profile sous Linux

Pourquoi < ou > sont-ils nécessaires pour utiliser /dev/tcp

Différence entre /etc/hosts et /etc/resolv.conf