GNU/Linux >> Tutoriels Linux >  >> Linux

Comment exécuter les services DNS et FTP dans une prison chroot

Comme son nom l'indique, une opération chroot modifie le répertoire racine apparent d'un processus en cours d'exécution et de ses enfants. Il vous permet d'exécuter un programme (processus) avec un répertoire racine autre que /. Le programme ne peut pas voir ni accéder aux fichiers en dehors de l'arborescence de répertoires désignée.

Par exemple, vous pouvez exécuter un programme et spécifier son répertoire racine comme /home/oracle/jail. Dans ce cas, le répertoire racine du programme est en fait /home/oracle/jail. Le programme ne serait pas au courant des fichiers situés au-dessus de ce répertoire dans la hiérarchie, ni ne serait en mesure d'y accéder. Ce répertoire racine artificiel est appelé une prison chroot. Son but est de limiter l'accès au répertoire d'un attaquant potentiel. La prison chroot verrouille un processus donné et tout ID utilisateur qu'il utilise afin que l'utilisateur ne voie que le répertoire dans lequel le processus s'exécute. Pour le processus, il semble qu'il s'exécute dans le répertoire racine.

Exécuter les services DNS et FTP dans une prison chroot

Deux services sont mis en place pour tirer parti des prisons chroot. Vous pouvez configurer DNS pour que named s'exécute dans une prison. Le serveur FTP vsftpd peut démarrer automatiquement les prisons chroot pour les clients.

DNS dans la prison chroot

Le paquet bind-chroot vous permet de configurer named pour qu'il s'exécute dans une prison chroot. Lorsque vous installez ce package, le fichier /var/named/chroot est créé et devient le répertoire de la prison chroot pour tous les fichiers BIND.

  • Le répertoire /var/named devient /var/named/chroot/var/named.
  • Les fichiers/etc/named* deviennent des fichiers /var/named/chroot/etc/named*.

L'installation de ce paquet définit également la variable shell ROOTDIR sur /var/named/chroot dans le fichier /etc/sysconfig/named. L'avantage d'exécuter named dans une prison chroot est que si un pirate pénètre dans votre système via un exploit BIND, l'accès du pirate au reste de votre système est limité aux fichiers situés sous le répertoire de la prison chroot.

Clients FTP en prison chroot

Par défaut, les utilisateurs anonymes sont placés dans une prison chroot. Lorsqu'un utilisateur anonyme se connecte à un serveur vsftpd, le répertoire personnel de l'utilisateur est /var/ftp. Cependant, tout ce que l'utilisateur voit est /.

Par exemple, un répertoire nommé /var/ftp/upload apparaît comme /upload pour un utilisateur anonyme. Cela interdit aux utilisateurs anonymes d'accéder à tous les fichiers situés au-dessus de /var/ftp dans la hiérarchie des répertoires.

Les utilisateurs locaux qui accèdent à un serveur vsftpd sont placés dans leur répertoire personnel. Vous pouvez activer des options dans le fichier /etc/vsftpd/vsftpd.conf pour placer les utilisateurs locaux dans une prison chroot, où le répertoire racine artificiel est le répertoire personnel de l'utilisateur. Les options suivantes existent dans le fichier de configuration vsftpd pour implémenter une prison chroot pour les utilisateurs locaux :

  • chroot_list_enable
  • chroot_local_user
  • chroot_list_file

Lorsqu'un utilisateur local se connecte au serveur vsftpd, la directive chroot_list_enable est vérifiée. Si cette directive est définie sur YES, le service vérifie le /etc/vsftpd/chroot_list file (par défaut) ou un autre fichier spécifié par le chroot_list_file directives.

Une autre directive est alors vérifiée, chroot_local_user . Si cette directive est définie sur YES, alors la chroot_list devient une liste d'utilisateurs à NE PAS chrooter. Si cette directive est définie sur NO, l'utilisateur est placé dans une prison chroot dans son répertoire personnel.


Linux
  1. Comment supprimer un répertoire et un dossier sous Linux ?

  2. CentOS / RHEL :Comment définir la prison chroot pour vsftp uniquement pour des utilisateurs spécifiques

  3. CentOS / RHEL :Comment configurer la prison chroot SFTP

  4. Comment puis-je exécuter dos2unix sur un répertoire entier ?

  5. linux :comment exécuter une commande dans un répertoire donné

Comment exécuter tous les scripts dans un répertoire sous Linux

Comment télécharger et charger un répertoire distant dans sFTP

Comment restreindre l'accès au répertoire et aux sous-répertoires sur Nginx

Comment créer et exécuter un script shell dans Ubuntu 22.04

Comment écrire et exécuter un programme C sous Linux

Comment installer et configurer le serveur DNS sous Linux