Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Le chroot pour les nuls

7 réponses
Avatar
David BERCOT
Bonjour,

Tout d'abord, voici mes connaissances en la mati=C3=A8re et mon besoin...

Jusqu'=C3=A0 aujourd'hui, je n'ai utilis=C3=A9 des environnements chroot=C3=
=A9s que
deux ou trois fois, pour des tests en milieu ferm=C3=A9. Je n'ai donc pas
creus=C3=A9 la partie "r=C3=A9seau" et ouverture vers l'ext=C3=A9rieur.

Maintenant, sur un mat=C3=A9riel un peu sp=C3=A9cial (un NAS pour ne pas le
nommer) qui tourne sur un Linux sp=C3=A9cifique, je voudrais mettre un
Debian chroot=C3=A9 pour installer facilement (via apt) mes applications :
Apache, Postfix/Dovecot, Samba, serveur NFS, etc... J'ai donc besoin que
ce Debian communique totalement avec l'ext=C3=A9rieur.

J'ai donc cr=C3=A9=C3=A9 et install=C3=A9 cet environnement, puis mis un se=
rveur SSH
que j'ai param=C3=A9tr=C3=A9 sur un port sp=C3=A9cifique. De mon LAN, j'arr=
ive bien =C3=A0
me connecter sur ce "Debian".

Mais voici donc mes questions : au niveau r=C3=A9seau, comment est configur=
=C3=A9
cet environnement chroot=C3=A9 (pas de fichier 'interfaces') ? Si j'appelle
un service qui tourne sur la machine h=C3=B4te, j'imagine que ce sera
celle-ci qui aura la priorit=C3=A9 ? Comment un firewall configur=C3=A9 sur=
mon
environnement chroot=C3=A9 aura un impact sur la machine h=C3=B4te ? Est-ce=
que
les services que je vais installer sur ce "Debian" (Samba, NFS, Apache)
seront op=C3=A9rationnels au red=C3=A9marrage de mon NAS ?

Merci d'avance.

David.

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers debian-user-french-REQUEST@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmaster@lists.debian.org
Archive: http://lists.debian.org/20101226170050.6c9f797c@debian-david

7 réponses

Avatar
Basile Starynkevitch
On Sun, 26 Dec 2010 17:00:50 +0100
David BERCOT wrote:

Bonjour,

Tout d'abord, voici mes connaissances en la matière et mon besoin...

Jusqu'à aujourd'hui, je n'ai utilisé des environnements chrootés que
deux ou trois fois, pour des tests en milieu fermé. Je n'ai donc pas
creusé la partie "réseau" et ouverture vers l'extérieur.



A ma conaissance, les interfaces réseaux sont communes à
l'environnement chrooté et au système le contenant. En particulier,
parce que les appels systèmes de communication réseau (notamment
accept, connect, listen, ...) ne passent pas par le système de
fichiers. Contrairement à sa réputation (ou à Plan9 ou Hurd qui eux o nt
poussé "au bout" cette idée), tout n'est pas fichiers sous Linux. En
particulier, pas l'interface réseau.

Donc les ports et services sont communs (donc partagés) à
l'environnement chrooté et au système hôte. Par exemple, un service w eb
qui tourne sous le chroot sera commun au système hôte, et un service
DNS sur le système hôte sera visible du chroot.


Maintenant, sur un matériel un peu spécial (un NAS pour ne pas le
nommer) qui tourne sur un Linux spécifique, je voudrais mettre un
Debian chrooté pour installer facilement (via apt) mes applications :
Apache, Postfix/Dovecot, Samba, serveur NFS, etc... J'ai donc besoin que
ce Debian communique totalement avec l'extérieur.




Pourquoi ne pas installer un Debian honnête sur ce NAS? C'est peut-être
un peu risqué (j'ignore les détails des chargeurs -équivalent de BIOS-
sur un Linux/ARM!) mais ça devrait être naturel. Il faut se documenter
précisément!

Bonnes fêtes et bonne année à tous!

PS. Dans le même genre d'idée, je me demande si je pourrais faire
tourner une application codée en C ou C++ sur mon téléphone Sony
Ericcson Xperia X10 sous Android 1.6 (n'ayant pas Windows, je ne sais
pas le mettre à jour en Android 2.1). En théorie, ça serait possible.
(Mais en pratique, j'ai peur de perdre mon téléphone pour l'usage
principal que j'en fait: téléphoner!).

--
Basile STARYNKEVITCH http://starynkevitch.net/Basile/
email: basile<at>starynkevitch<dot>net mobile: +33 6 8501 2359
8, rue de la Faiencerie, 92340 Bourg La Reine, France
*** opinions {are only mine, sont seulement les miennes} ***

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Avatar
mouss
Le 26/12/2010 17:00, David BERCOT a écrit :
Bonjour,

Tout d'abord, voici mes connaissances en la matière et mon besoin...

Jusqu'à aujourd'hui, je n'ai utilisé des environnements chrootés que
deux ou trois fois, pour des tests en milieu fermé. Je n'ai donc pas
creusé la partie "réseau" et ouverture vers l'extérieur.

Maintenant, sur un matériel un peu spécial (un NAS pour ne pas le
nommer) qui tourne sur un Linux spécifique, je voudrais mettre un
Debian chrooté pour installer facilement (via apt) mes applications :
Apache, Postfix/Dovecot, Samba, serveur NFS, etc... J'ai donc besoin que
ce Debian communique totalement avec l'extérieur.




la "norme" est d'utiliser des chroots différents pour les différentes
applications: 1 pour apache, 1 pour postfix, 1 pour dovecot, ...

Bien sûr, il faut régler le problème des accès entre applis. ainsi, si
postfix utilise une authentification dovecot, il faut que dovecot puisse
créér sa socket chez postfix, ... etc.

Tout ça va faire du boulot! "mount -t bind" (utilisé avec précaution)
peut aider.

il faut se demander si la virtualisation (xen par exemple) n'est pas de
mise ici...

J'ai donc créé et installé cet environnement, puis mis un serveur SSH
que j'ai paramétré sur un port spécifique. De mon LAN, j'arrive bien à
me connecter sur ce "Debian".

Mais voici donc mes questions : au niveau réseau, comment est configuré
cet environnement chrooté (pas de fichier 'interfaces') ? Si j'appelle
un service qui tourne sur la machine hôte, j'imagine que ce sera
celle-ci qui aura la priorité ? Comment un firewall configuré sur mon
environnement chrooté aura un impact sur la machine hôte ? Est-ce que
les services que je vais installer sur ce "Debian" (Samba, NFS, Apache)
seront opérationnels au redémarrage de mon NAS ?





un chroot n'a aucun effet sur les communications entre processus (que ce
soit via réseau, mémoire partagée, ...) sauf si ces communications
utilisent le système de fichier (socket unix par exemple). un chroot
modifie simplement la "position" du répertoire '/' (le process voit un
'/' qui n'est pas la racine du système de fichiers).



--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Avatar
David BERCOT
Le Sun, 26 Dec 2010 18:12:24 +0100,
mouss a écrit :
un chroot n'a aucun effet sur les communications entre processus (que
ce soit via réseau, mémoire partagée, ...) sauf si ces com munications
utilisent le système de fichier (socket unix par exemple). un chroot
modifie simplement la "position" du répertoire '/' (le process voit un
'/' qui n'est pas la racine du système de fichiers).



OK. Avec vos deux mails (celui-ci et celui de Basile), j'y vois un peu
plus clair...
Ca devrait donc être assez facile. Maintenant, je n'ai plus qu'à
paramétrer tout ça pour démarrer automatiquement lors du d émarrage du
NAS.

Merci et bonne soirée.

David.

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Avatar
Basile Starynkevitch
On Sun, 26 Dec 2010 18:32:24 +0100
David BERCOT wrote:

OK. Avec vos deux mails (celui-ci et celui de Basile), j'y vois un peu
plus clair...
Ca devrait donc être assez facile. Maintenant, je n'ai plus qu'à
paramétrer tout ça pour démarrer automatiquement lors du démarra ge du
NAS.



Il est probable que certaines arborescences doivent être communes au
chroot et au système hôte. Un montage bind (qui est un peu un lien
symbolique pour les montages) pourrait être nécessaire

Si par exemple on lance le chroot dans /debian il pourrait être
nécessaire de mettre dans le /etc/fstab du système hôte

/proc /debian/proc none bind 0 0
/dev /debian/dev none bind 0 0

--
Basile STARYNKEVITCH http://starynkevitch.net/Basile/
email: basile<at>starynkevitch<dot>net mobile: +33 6 8501 2359
8, rue de la Faiencerie, 92340 Bourg La Reine, France
*** opinions {are only mine, sont seulement les miennes} ***

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Avatar
François Boisson
Le Sun, 26 Dec 2010 18:42:29 +0100
Basile Starynkevitch a écrit:

Il est probable que certaines arborescences doivent être communes au
chroot et au système hôte. Un montage bind (qui est un peu un lien
symbolique pour les montages) pourrait être nécessaire

Si par exemple on lance le chroot dans /debian il pourrait être
nécessaire de mettre dans le /etc/fstab du système hôte

/proc /debian/proc none bind 0 0
/dev /debian/dev none bind 0 0




Voilà typiquement les répliques de répertoires que je met pour avoir un chroot
transparent

/home /var/squeeze/home none bind 0 0
/tmp /var/squeeze/tmp none bind 0 0
proc /var/squeeze/proc proc defaults 0 0
/var/run /var/squeeze/var/run none bind 0 0
/dev /var/squeeze/dev none bind 0 0

/home et proc sont évidents. /dev permet aux chroots de connaitre les
périphériques. /tmp et /var/run permettent d'utiliser les douilles UNIX (cups,
Xorg, etc) des processus non chrootés.

Je suggère la lecture de

http://www.debian-fr.org/installation-chroot-32-bits-transparent-t14673.html

François Boisson

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Avatar
Pascal Ognibene
--001636831cda4e777104988e5ba2
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Le 26 décembre 2010 17:24, Basile Starynkevitch net> a
écrit :

On Sun, 26 Dec 2010 17:00:50 +0100




...



PS. Dans le même genre d'idée, je me demande si je pourrais fai re
tourner une application codée en C ou C++ sur mon téléphon e Sony
Ericcson Xperia X10 sous Android 1.6 (n'ayant pas Windows, je ne sais
pas le mettre à jour en Android 2.1). En théorie, ça serai t possible.
(Mais en pratique, j'ai peur de perdre mon téléphone pour l'usa ge
principal que j'en fait: téléphoner!).




Oui, c'est possible. Il te faudra pour cela utiliser le NDK ( native
Development Kit) disponible sur le site de Google Android.
Et probablement faire aussi un peu de Java, car en Android 1.6 le cycle de
vie de l'application est obligatoirement géré à partir de ja va (le main() si
tu veux), avec des appels JNI pour les parties C/C++. A partir d'android 2. 3
uniquement on peut gérer l'intégralité d'une application en C/C++.

Pascal

--001636831cda4e777104988e5ba2
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<br><br><div class="gmail_quote">Le 26 décembre 2010 17:24, Basile S tarynkevitch <span dir="ltr">&lt;<a href="mailto: et"></a>&gt;</span> a écrit :<br><blockquote c lass="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); ma rgin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="im">On Sun, 26 Dec 2010 17:00:50 +0100<br></div></blockquote> <div><br>...<br> </div><blockquote class="gmail_quote" style="bord er-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-l eft: 1ex;">
<div class="im"></div>
<br>
PS. Dans le même genre d&#39;idée, je me demande si je pourrais f aire<br>
tourner une application codée en C ou C++ sur mon téléphone Sony<br>
Ericcson Xperia X10 sous Android 1.6 (n&#39;ayant pas Windows, je ne sais<b r>
pas le mettre à jour en Android 2.1). En théorie, ça serait possible.<br>
(Mais en pratique, j&#39;ai peur de perdre mon téléphone pour l&# 39;usage<br>
principal que j&#39;en fait: téléphoner!).<br></blockquote><div>< br>Oui, c&#39;est possible. Il te faudra pour cela utiliser le NDK ( native Development Kit) disponible sur le site de Google Android.<br>Et probablem ent faire aussi un peu de Java, car en Android 1.6 le cycle de vie de l&#39 ;application est obligatoirement géré à partir de java (le m ain() si tu veux), avec des appels JNI pour les parties C/C++. A partir d&# 39;android 2.3 uniquement on peut gérer l&#39;intégralité d& #39;une application en C/C++.<br>
<br>Pascal </div></div>

--001636831cda4e777104988e5ba2--

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/AANLkTi=8Yp7L794tGLw6rsyX0SEMDr3Nj+
Avatar
mouss
Le 29/12/2010 16:27, François Boisson a écrit :
Le Sun, 26 Dec 2010 18:42:29 +0100
Basile Starynkevitch a écrit:

Il est probable que certaines arborescences doivent être communes au
chroot et au système hôte. Un montage bind (qui est un peu un lien
symbolique pour les montages) pourrait être nécessaire

Si par exemple on lance le chroot dans /debian il pourrait être
nécessaire de mettre dans le /etc/fstab du système hôte

/proc /debian/proc none bind 0 0
/dev /debian/dev none bind 0 0




Voilà typiquement les répliques de répertoires que je met pour avoir un chroot
transparent

/home /var/squeeze/home none bind 0 0
/tmp /var/squeeze/tmp none bind 0 0
proc /var/squeeze/proc proc defaults 0 0
/var/run /var/squeeze/var/run none bind 0 0
/dev /var/squeeze/dev none bind 0 0

/home et proc sont évidents. /dev permet aux chroots de connaitre les
périphériques.



monter /dev dans le chroot me gène un pneu...
ça donne accès aux devices tels que /dev/sda1, ...

/tmp et /var/run permettent d'utiliser les douilles UNIX (cups,
Xorg, etc) des processus non chrootés.



là encore, je dirais que ça dépend. postfix, dovecot, apache, samba, ...
n'ont pas besoin de partager le /tmp et /var/run du système.

Je suggère la lecture de

http://www.debian-fr.org/installation-chroot-32-bits-transparent-t14673.html

François Boisson




--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/