9
votes

FreeBSD: La prison ne peut pas définir sécurité.jail.sysvipc_allowed

Il y a un problème lorsque j'y introche une base de données PostgreSQL dans une prison FreeBSD.

J'ai trouvé un article sur le problème. J'ai essayé son conseil mais je n'avais pas de chance et je ne sais pas pourquoi. Il y a le lien: PostgreSQL en prison . P>

Je lis également la documentation PostgreSQL sur Ressources du noyau : p>

Si vous utilisez des Jails FreeBSD en activant SYSCTL code> sécurité.jail.sysvipc_allowed code>, postmasters exécutant dans différents Les prisons doivent être gérées par différents utilisateurs de système d'exploitation. Cela améliore la sécurité car elle empêche les utilisateurs non racinaux d'interférer avec mémoire partagée ou sémaphores dans différentes prisons, et permet de Code de nettoyage IPC PostgreSQL pour fonctionner correctement. (Dans FreeBSD 6.0 et plus tard, le code de nettoyage IPC ne détecte pas correctement les processus dans Autres prisons, empêchant le fonctionnement des post-matrices sur le même port dans différentes prisons.) p> BlockQuote>

Qu'est-ce que j'ai fait: p>

  • j'ai édité /etc/rc.conf code> (sur la machine hôte) et ajouté la ligne jail_sysvipc_allow = "oui" code> li> li>
  • dans la machine de prison /etc/sysctl.conf code>, i ajoutez la ligne sécurité.jail.sysvipc_allowed = 1 code> li> ul>

    J'ai redémarré la machine de prison plusieurs fois. Je n'ai pas redémarré la machine hôte et je ne veux pas. P>

    J'espère que quelqu'un peut me donner une solution ou des conseils. Merci beaucoup. P>

    Ceci est le message lorsque je redémarre la prison: p> xxx pré>

    ou lorsque je exécute SYSCTL manuellement: (en prison) p>

       root@xxxxx:/home/xxxx# sysctl -a | grep 'sysvipc'
       security.jail.param.allow.sysvipc: 0
       security.jail.sysvipc_allowed: 1
    


4 commentaires

Quelle version FreeBSD utilisez-vous? Quelle version postgreSQL?


En outre, est-ce que cela vous cause un problème spécifique? Voulez-vous simplement améliorer l'isolement inter-prison? Avez-vous des problèmes de départ de PG dans une prison? Quel est le fond? Incluez les commandes que vous exécutez et les erreurs qu'ils produisent, tout comme vous avez pour la tentative de solution que vous avez écrite. S'il vous plaît mettre à jour votre question.


Même problème ici, avec FreeBSD-9.1, compilé il y a deux jours ..


Mau Sois-tu frappé ce bogue: FreeBSD.org/cgi/Query -pr.cgi? PR = bin / 173469


5 Réponses :


2
votes

Le SYSCTL Security.jail.sysvipc_allowed doit être réglé sur l'hôte , pas dans la prison. Mais si vous définissez jail_sysvipc_allow = "oui" dans l'hôte rc.conf , cela devrait la définir pour vous, voir /etc/rc.d/jail < / code>.

Vous devez vérifier sur l'hôte si la valeur de Security.jail.sysvipc_allowed passe à 1 si vous démarrez la prison. Sinon, il y a probablement quelque chose qui ne va pas dans votre RC.conf. Essayez de paramétrer sécurité.jail.sysvipc_allowed manuellement sur l'hôte .


0 commentaires

3
votes

J'ai trouvé le problème après l'aide de mon coéquipier.

Parce que j'utilise /etc/jail.conf, je dois ajouter une ligne "allecter.sysvipc" pour activer la mémoire de partage système.

dans la machine hôte, xxx


0 commentaires

18
votes

solution trouvée. Ce qui suit fonctionne pour moi. Sur l'hôte strong>, faire:

root@host# jls
   JID  IP Address      Hostname                      Path
     3  -               some.jail                     /usr/jails/somejail


2 commentaires

Cela pose un risque de sécurité car si une autre prison partage la mémoire et est pwned, ils peuvent gâcher le reste de la mémoire de partage des Jails, des sémaphores, etc. Depuis FreeBSD 11, vous pouvez bloquer la mémoire partagée, les sémaphores, etc. avec sysvshsem = nouveau , sysvshmem = nouveau . Pour une explication et des commandes plus approfondies, voir blog.tyk. NU / Blog / FreeBsd-Jails-and-SYSV-IPC ou archive.fo/p10cr si indisponible.


Je voulais dire sysvshm = nouveau , sysvsem = nouveau et sysvmsg = nouveau si vous avez besoin de la mémoire partagée partagée, des sémaphores et des files d'attente de messages partagées de noms, respectivement.



6
votes

Il existe de nouvelles fonctionnalités de prison dans la granularité spéciale, nous avons besoin d'autoriser le changement sysvipc_allowed pour chaque prison placez ceci dans /etc/rc.conf:

jail_example_parameters="allow.sysvipc=1"

p>


0 commentaires

0
votes

Mon système requis Modding /etc/rc.conf Avant de redémarrer la prison, sinon elle définirait à la fois l'hôte et la prison sur 0. Je l'ai fait pas em> besoin de définir Security.jail.sysvipc_allowed = 1 dans /etc/sysctl.conf.

/etc/rc.conf:
jail_sysvipc_allow="YES"


0 commentaires