[TUTO] Chrooter Apache (Debian Sarge / Lenny / Etch)

Répondre
Kronick
Messages : 3372
Inscription : ven. 12 janv. 2018 17:44

[TUTO] Chrooter Apache (Debian Sarge / Lenny / Etch)

Message par Kronick »

Plop les geekeux !
Image

Voila tout content d'avoir réussi mon chroot, j'en fais profiter
Chroot kesaco :
http://fr.wikipedia.org/wiki/Chroot

Comment ça marce :
Il faut créer un cage qui comprend :
le service à chrooter
TOUS les fichiers qui en dépendent [:kronick:8]

donc, c'est long :D

Que chroot-t-on ?
on peut chrooter des services des utlisateurs, des périphériques. On chroot des services 'exposés'. Aussi pour ne pas qu'un script défaillant d'un site web de vos user ne compromette le serveur entier, mais seulement l'environnement cloisonné.

Des outils pour ça ?
chroot installé par défaut sur la plupart des distros Linux, on en aura besoin.

mod_chroot : pour les feignes extrêmes , je le déconseille. Maitriser le chrooting (utilie toute la vie) c'est construire la cage à la main. Si mod_chroot marche pas, bonjour le débuggage, à la mano, le débuggage, ça va plus vite, et comme le dit tugs "un chrooting t'as pas besoin de module pour le faire [:kronick:6] "

makejail : pareil, c'est un script d'automatisation, mais on s'en fout, on est parti pour tout faire à la main.

alé on est là pour bosser.

1- Créer la cage :
[cpp]mkdir /home/jail
cd /home/jail

mkdir -p :
bin
etc/apache2
dev
usr/lib/i686/cmov
lib/i686/cmov
usr/bin
lib
var/lib
usr/share
var/www
var/log/apache2/
[/cpp]

2- Récupérer les fichiers :
Il faut récupérer tous les fichiers utilisés par le service

[cpp]ldd /usr/sbin/apache2
linux-gate.so.1 => (0xb7fe0000)
libpcre.so.3 => /usr/lib/libpcre.so.3 (0xb7fa9000)
libaprutil-1.so.0 => /usr/lib/libaprutil-1.so.0 (0xb7f8b000)
libapr-1.so.0 => /usr/lib/libapr-1.so.0 (0xb7f5f000)
libpthread.so.0 => /lib/i686/cmov/libpthread.so.0 (0xb7f46000)
libc.so.6 => /lib/i686/cmov/libc.so.6 (0xb7deb000)
libldap_r-2.4.so.2 => /usr/lib/libldap_r-2.4.so.2 (0xb7da8000)
liblber-2.4.so.2 => /usr/lib/liblber-2.4.so.2 (0xb7d9b000)
libdb-4.6.so => /usr/lib/libdb-4.6.so (0xb7c68000)
libpq.so.5 => /usr/lib/libpq.so.5 (0xb7c48000)
libmysqlclient_r.so.15 => /usr/lib/libmysqlclient_r.so.15 (0xb7a5d000)
libsqlite3.so.0 => /usr/lib/libsqlite3.so.0 (0xb79ee000)
libexpat.so.1 => /usr/lib/libexpat.so.1 (0xb79c8000)
libuuid.so.1 => /lib/libuuid.so.1 (0xb79c4000)
librt.so.1 => /lib/i686/cmov/librt.so.1 (0xb79bb000)
libcrypt.so.1 => /lib/i686/cmov/libcrypt.so.1 (0xb7988000)
libdl.so.2 => /lib/i686/cmov/libdl.so.2 (0xb7984000)
/lib/ld-linux.so.2 (0xb7fe1000)
libresolv.so.2 => /lib/i686/cmov/libresolv.so.2 (0xb7970000)
libsasl2.so.2 => /usr/lib/libsasl2.so.2 (0xb7959000)
libgnutls.so.26 => /usr/lib/libgnutls.so.26 (0xb78bc000)
libssl.so.0.9.8 => /usr/lib/i686/cmov/libssl.so.0.9.8 (0xb7875000)
libcrypto.so.0.9.8 => /usr/lib/i686/cmov/libcrypto.so.0.9.8 (0xb7722000)
libkrb5.so.3 => /usr/lib/libkrb5.so.3 (0xb768e000)
libcom_err.so.2 => /lib/libcom_err.so.2 (0xb768b000)
libgssapi_krb5.so.2 => /usr/lib/libgssapi_krb5.so.2 (0xb7661000)
libnsl.so.1 => /lib/i686/cmov/libnsl.so.1 (0xb7647000)
libm.so.6 => /lib/i686/cmov/libm.so.6 (0xb7621000)
libz.so.1 => /usr/lib/libz.so.1 (0xb760c000)
libtasn1.so.3 => /usr/lib/libtasn1.so.3 (0xb75fc000)
libgpg-error.so.0 => /usr/lib/libgpg-error.so.0 (0xb75f8000)
libgcrypt.so.11 => /usr/lib/libgcrypt.so.11 (0xb758f000)
libk5crypto.so.3 => /usr/lib/libk5crypto.so.3 (0xb756b000)
libkrb5support.so.0 => /usr/lib/libkrb5support.so.0 (0xb7563000)
libkeyutils.so.1 => /lib/libkeyutils.so.1 (0xb7560000)

debian-vm:/home/kronickoo# ldd /bin/sh
linux-gate.so.1 => (0xb7f8b000)
libncurses.so.5 => /lib/libncurses.so.5 (0xb7f4b000)
libdl.so.2 => /lib/i686/cmov/libdl.so.2 (0xb7f47000)
libc.so.6 => /lib/i686/cmov/libc.so.6 (0xb7deb000)
/lib/ld-linux.so.2 (0xb7f8c000)
debian-vm:/home/kronickoo# ldd /usr/bin/install
linux-gate.so.1 => (0xb7f5e000)
libselinux.so.1 => /lib/libselinux.so.1 (0xb7f37000)
libacl.so.1 => /lib/libacl.so.1 (0xb7f30000)
libc.so.6 => /lib/i686/cmov/libc.so.6 (0xb7dd4000)
libdl.so.2 => /lib/i686/cmov/libdl.so.2 (0xb7dd0000)
/lib/ld-linux.so.2 (0xb7f5f000)
libattr.so.1 => /lib/libattr.so.1 (0xb7dcb000)

debian-vm:/home/kronickoo# ldd /bin/rm
linux-gate.so.1 => (0xb7f37000)
libc.so.6 => /lib/i686/cmov/libc.so.6 (0xb7dce000)
/lib/ld-linux.so.2 (0xb7f38000)

debian-vm:/home/kronickoo# ldd /bin/mkdir
linux-gate.so.1 => (0xb7f36000)
libselinux.so.1 => /lib/libselinux.so.1 (0xb7f0f000)
libc.so.6 => /lib/i686/cmov/libc.so.6 (0xb7db4000)
libdl.so.2 => /lib/i686/cmov/libdl.so.2 (0xb7daf000)
/lib/ld-linux.so.2 (0xb7f37000)[/cpp]

Et ensuite tout copier dans la cage :
[cpp]cp /lib/libncurses.so.5 lib/[/cpp]

RDV dans 40 minutes [:kronick:7]

EDIT : une librairie également nécéssaire mais non remontée par ldd :
[cpp]cp /lib/libgcc_s.so.1 lib/[/cpp]

3- Une fois les libraries rappatriées, il faut créer les périphériques:
[cpp]mknod -m 666 dev/null c 1 3
mknod -m 644 dev/urandom c 1 9[/cpp]

4- Les infos utilisateur lancant le service
[cpp]cat /etc/passwd | grep www > etc/passwd
cat /etc/group | grep www > etc/group[/cpp]

5- Les fichiers de conf
[cpp]cp -R /etc/apache2 etc/[/cpp]

6- La racine + scripts CGI :
[cpp]cp -R /var/www/ var/[/cpp]

7- les binaires :
[cpp]cp /usr/sbin/apache2* usr/sbin
cp -t bin /bin/mkdir /bin/rm /bin/sh /bin/install
[/cpp]

8- si vous utilisez mod_ssl :
[cpp]cp -R /etc/ssl etc/[/cpp]

9- Librairies générales :
[cpp]cp /lib/libnss_compat* lib/
cp /lib/libnss_dns* lib/
cp /lib/libnss_files* lib/
cp /lib/libnsl* lib/
cp /etc/hosts/ etc/
cp /etc/host.conf etc/
cp /etc/resolv.conf etc/
cp /etc/nsswitch.conf etc/[/cpp]

10- on set le bit immuable :
[cpp]chattr +i etc/hosts
chattr +i etc/host.conf
chattr +i etc/resolv.conf
chattr +i etc/nsswitch.conf
chattr +i etc/passwd
chattr +i etc/group[/cpp]

11- les fichiers de timezone :
[cpp]cp /usr/share/zoneinfo/Europe/Paris etc/localtime[/cpp]

12- les derniers fichiers :
[cpp]cp -R /usr/share/apache2 usr/share/[/cpp]

Ensuite, certains fichiers sont des alias (dans le répertoire etc/ssl par exemple) :
[cpp]root.pem -> /usr/share/ca-certificates/cacert.org/root.crt[/cpp]

Je ne les ai pas modifié, j'imagine qu'il faut aussi modifier l'alias pour qu'il pointe vers le fichier de la cage et non vers le fichier se trouvant au dehors.

13- Modification du script de démarrage pour que chroot modifie le binaire :
[cpp]nano /etc/init.d/apache2
remplacer la ligne APACHE2CTL par
APACHE2CTL="$ENV /usr/sbin/chroot /home/jail/ /usr/sbin/apache2ctl"[/cpp]

14- Gestion du pid :
[cpp]nano etc/apache2/envvars
export APACHE_PID_FILE=/var/run/apache2.pid
[/cpp]
et vous pouvez maintenant démarrer apache :hello:
voila vous avez construit une cage.
On peut le vérifier de la facon suivante :
[cpp]debian-vm:/home/jail/var/log/apache2# lsof | grep /home/jail
bash 14351 root cwd DIR 254,2 4096 71778 /home/jail/var/log/apache2
apache2 15771 root cwd DIR 254,2 4096 71713 /home/jail
apache2 15771 root rtd DIR 254,2 4096 71713 /home/jail
apache2 15771 root txt REG 254,2 361596 71905 /home/jail/usr/sbin/apache2
apache2 15771 root mem REG 254,2 38408 72202 /home/jail/lib/libnss_files.so.2
apache2 15771 root mem REG 254,2 30436 72198 /home/jail/lib/libnss_compat.so.2
apache2 15771 root mem REG 254,2 18364 72287 /home/jail/usr/lib/apache2/modules/mod_status.so
apache2 15771 root mem REG 254,2 8644 72249 /home/jail/usr/lib/apache2/modules/mod_setenvif.so
apache2 15771 root mem REG 254,2 28168 72264 /home/jail/usr/lib/apache2/modules/mod_negotiation.so
apache2 15771 root mem REG 254,2 14528 72224 /home/jail/usr/lib/apache2/modules/mod_mime.so
apache2 15771 root mem REG 254,2 4992 72225 /home/jail/usr/lib/apache2/modules/mod_env.so
apache2 15771 root mem REG 254,2 5856 72233 /home/jail/usr/lib/apache2/modules/mod_dir.so
apache2 15771 root mem REG 254,2 18372 72260 /home/jail/usr/lib/apache2/modules/mod_deflate.so
apache2 15771 root mem REG 254,2 27360 72243 /home/jail/usr/lib/apache2/modules/mod_cgid.so
apache2 15771 root mem REG 254,2 30984 72250 /home/jail/usr/lib/apache2/modules/mod_autoindex.so
apache2 15771 root mem REG 254,2 4552 72247 /home/jail/usr/lib/apache2/modules/mod_authz_user.so
apache2 15771 root mem REG 254,2 6344 72258 /home/jail/usr/lib/apache2/modules/mod_authz_host.so
apache2 15771 root mem REG 254,2 7052 72257 /home/jail/usr/lib/apache2/modules/mod_authz_groupfile.so
apache2 15771 root mem REG 254,2 3916 72226 /home/jail/usr/lib/apache2/modules/mod_authz_default.so
apache2 15771 root mem REG 254,2 5064 72248 /home/jail/usr/lib/apache2/modules/mod_authn_file.so
apache2 15771 root mem REG 254,2 6376 72276 /home/jail/usr/lib/apache2/modules/mod_auth_basic.so
apache2 15771 root mem REG 254,2 10180 72277 /home/jail/usr/lib/apache2/modules/mod_alias.so
apache2 15771 root mem REG 254,2 5744 71773 /home/jail/lib/libkeyutils.so.1
apache2 15771 root mem REG 254,2 27876 71772 /home/jail/usr/lib/libkrb5support.so.0
apache2 15771 root mem REG 254,2 147392 71771 /home/jail/usr/lib/libk5crypto.so.3
apache2 15771 root mem REG 254,2 425220 71770 /home/jail/usr/lib/libgcrypt.so.11
apache2 15771 root mem REG 254,2 11556 71769 /home/jail/usr/lib/libgpg-error.so.0
apache2 15771 root mem REG 254,2 59708 71768 /home/jail/usr/lib/libtasn1.so.3
apache2 15771 root mem REG 254,2 81012 71767 /home/jail/usr/lib/libz.so.1
apache2 15771 root mem REG 254,2 149328 71766 /home/jail/lib/i686/cmov/libm.so.6
apache2 15771 root mem REG 254,2 87800 71765 /home/jail/lib/i686/cmov/libnsl.so.1
apache2 15771 root mem REG 254,2 169076 71764 /home/jail/usr/lib/libgssapi_krb5.so.2
apache2 15771 root mem REG 254,2 8676 71763 /home/jail/lib/libcom_err.so.2
apache2 15771 root mem REG 254,2 607284 71762 /home/jail/usr/lib/libkrb5.so.3
apache2 15771 root mem REG 254,2 1375588 71761 /home/jail/lib/i686/cmov/libcrypto.so.0.9.8
apache2 15771 root mem REG 254,2 285156 71758 /home/jail/lib/i686/cmov/libssl.so.0.9.8
apache2 15771 root mem REG 254,2 642912 71757 /home/jail/usr/lib/libgnutls.so.26
apache2 15771 root mem REG 254,2 91016 71756 /home/jail/usr/lib/libsasl2.so.2
apache2 15771 root mem REG 254,2 67408 71755 /home/jail/lib/i686/cmov/libresolv.so.2
apache2 15771 root mem REG 254,2 9680 71754 /home/jail/lib/i686/cmov/libdl.so.2
apache2 15771 root mem REG 254,2 38296 71753 /home/jail/lib/i686/cmov/libcrypt.so.1
apache2 15771 root mem REG 254,2 30624 71752 /home/jail/lib/i686/cmov/librt.so.1
apache2 15771 root mem REG 254,2 12912 71751 /home/jail/lib/libuuid.so.1
apache2 15771 root mem REG 254,2 151468 71750 /home/jail/usr/lib/libexpat.so.1
apache2 15771 root mem REG 254,2 449956 71749 /home/jail/usr/lib/libsqlite3.so.0
apache2 15771 root mem REG 254,2 2004028 71748 /home/jail/usr/lib/libmysqlclient_r.so.15
apache2 15771 root mem REG 254,2 127724 71747 /home/jail/usr/lib/libpq.so.5
apache2 15771 root mem REG 254,2 1256548 71746 /home/jail/usr/lib/libdb-4.6.so
apache2 15771 root mem REG 254,2 51228 71745 /home/jail/usr/lib/liblber-2.4.so.2
apache2 15771 root mem REG 254,2 265124 71744 /home/jail/usr/lib/libldap_r-2.4.so.2
apache2 15771 root mem REG 254,2 1413540 71743 /home/jail/lib/i686/cmov/libc.so.6
apache2 15771 root mem REG 254,2 116414 71742 /home/jail/lib/i686/cmov/libpthread.so.0
apache2 15771 root mem REG 254,2 170596 71739 /home/jail/usr/lib/libapr-1.so.0
apache2 15771 root mem REG 254,2 121404 71738 /home/jail/usr/lib/libaprutil-1.so.0
apache2 15771 root mem REG 254,2 162088 71737 /home/jail/usr/lib/libpcre.so.3
apache2 15771 root mem REG 254,2 113248 71736 /home/jail/lib/ld-linux.so.2
apache2 15771 root 0r CHR 1,3 71732 /home/jail/dev/null
apache2 15771 root 1w CHR 1,3 71732 /home/jail/dev/null
apache2 15771 root 2w REG 254,2 8346 72291 /home/jail/var/log/apache2/error.log
apache2 15771 root 7w REG 254,2 0 72292 /home/jail/var/log/apache2/other_vhosts_access.log
apache2 15771 root 8w REG 254,2 0 72293 /home/jail/var/log/apache2/access.log
apache2 15773 www-data cwd DIR 254,2 4096 71713 /home/jail
apache2 15773 www-data rtd DIR 254,2 4096 71713 /home/jail
apache2 15773 www-data txt REG 254,2 361596 71905 /home/jail/usr/sbin/apache2
apache2 15773 www-data mem REG 254,2 38408 72202 /home/jail/lib/libnss_files.so.2
apache2 15773 www-data mem REG 254,2 30436 72198 /home/jail/lib/libnss_compat.so.2
apache2 15773 www-data mem REG 254,2 18364 72287 /home/jail/usr/lib/apache2/modules/mod_status.so
apache2 15773 www-data mem REG 254,2 8644 72249 /home/jail/usr/lib/apache2/modules/mod_setenvif.so
apache2 15773 www-data mem REG 254,2 28168 72264 /home/jail/usr/lib/apache2/modules/mod_negotiation.so
apache2 15773 www-data mem REG 254,2 14528 72224 /home/jail/usr/lib/apache2/modules/mod_mime.so
apache2 15773 www-data mem REG 254,2 4992 72225 /home/jail/usr/lib/apache2/modules/mod_env.so
apache2 15773 www-data mem REG 254,2 5856 72233 /home/jail/usr/lib/apache2/modules/mod_dir.so
apache2 15773 www-data mem REG 254,2 18372 72260 /home/jail/usr/lib/apache2/modules/mod_deflate.so
apache2 15773 www-data mem REG 254,2 27360 72243 /home/jail/usr/lib/apache2/modules/mod_cgid.so
apache2 15773 www-data mem REG 254,2 30984 72250 /home/jail/usr/lib/apache2/modules/mod_autoindex.so
apache2 15773 www-data mem REG 254,2 4552 72247 /home/jail/usr/lib/apache2/modules/mod_authz_user.so
apache2 15773 www-data mem REG 254,2 6344 72258 /home/jail/usr/lib/apache2/modules/mod_authz_host.so
apache2 15773 www-data mem REG 254,2 7052 72257 /home/jail/usr/lib/apache2/modules/mod_authz_groupfile.so
apache2 15773 www-data mem REG 254,2 3916 72226 /home/jail/usr/lib/apache2/modules/mod_authz_default.so
apache2 15773 www-data mem REG 254,2 5064 72248 /home/jail/usr/lib/apache2/modules/mod_authn_file.so
apache2 15773 www-data mem REG 254,2 6376 72276 /home/jail/usr/lib/apache2/modules/mod_auth_basic.so
apache2 15773 www-data mem REG 254,2 10180 72277 /home/jail/usr/lib/apache2/modules/mod_alias.so
apache2 15773 www-data mem REG 254,2 5744 71773 /home/jail/lib/libkeyutils.so.1
apache2 15773 www-data mem REG 254,2 27876 71772 /home/jail/usr/lib/libkrb5support.so.0
apache2 15773 www-data mem REG 254,2 147392 71771 /home/jail/usr/lib/libk5crypto.so.3
apache2 15773 www-data mem REG 254,2 425220 71770 /home/jail/usr/lib/libgcrypt.so.11
apache2 15773 www-data mem REG 254,2 11556 71769 /home/jail/usr/lib/libgpg-error.so.0
apache2 15773 www-data mem REG 254,2 59708 71768 /home/jail/usr/lib/libtasn1.so.3
apache2 15773 www-data mem REG 254,2 81012 71767 /home/jail/usr/lib/libz.so.1
apache2 15773 www-data mem REG 254,2 149328 71766 /home/jail/lib/i686/cmov/libm.so.6
apache2 15773 www-data mem REG 254,2 87800 71765 /home/jail/lib/i686/cmov/libnsl.so.1
apache2 15773 www-data mem REG 254,2 169076 71764 /home/jail/usr/lib/libgssapi_krb5.so.2
apache2 15773 www-data mem REG 254,2 8676 71763 /home/jail/lib/libcom_err.so.2
apache2 15773 www-data mem REG 254,2 607284 71762 /home/jail/usr/lib/libkrb5.so.3
apache2 15773 www-data mem REG 254,2 1375588 71761 /home/jail/lib/i686/cmov/libcrypto.so.0.9.8
apache2 15773 www-data mem REG 254,2 285156 71758 /home/jail/lib/i686/cmov/libssl.so.0.9.8
apache2 15773 www-data mem REG 254,2 642912 71757 /home/jail/usr/lib/libgnutls.so.26
apache2 15773 www-data mem REG 254,2 91016 71756 /home/jail/usr/lib/libsasl2.so.2
apache2 15773 www-data mem REG 254,2 67408 71755 /home/jail/lib/i686/cmov/libresolv.so.2
apache2 15773 www-data mem REG 254,2 9680 71754 /home/jail/lib/i686/cmov/libdl.so.2
apache2 15773 www-data mem REG 254,2 38296 71753 /home/jail/lib/i686/cmov/libcrypt.so.1
apache2 15773 www-data mem REG 254,2 30624 71752 /home/jail/lib/i686/cmov/librt.so.1
apache2 15773 www-data mem REG 254,2 12912 71751 /home/jail/lib/libuuid.so.1
apache2 15773 www-data mem REG 254,2 151468 71750 /home/jail/usr/lib/libexpat.so.1
apache2 15773 www-data mem REG 254,2 449956 71749 /home/jail/usr/lib/libsqlite3.so.0
apache2 15773 www-data mem REG 254,2 2004028 71748 /home/jail/usr/lib/libmysqlclient_r.so.15
apache2 15773 www-data mem REG 254,2 127724 71747 /home/jail/usr/lib/libpq.so.5
apache2 15773 www-data mem REG 254,2 1256548 71746 /home/jail/usr/lib/libdb-4.6.so
apache2 15773 www-data mem REG 254,2 51228 71745 /home/jail/usr/lib/liblber-2.4.so.2
apache2 15773 www-data mem REG 254,2 265124 71744 /home/jail/usr/lib/libldap_r-2.4.so.2
apache2 15773 www-data mem REG 254,2 1413540 71743 /home/jail/lib/i686/cmov/libc.so.6
apache2 15773 www-data mem REG 254,2 116414 71742 /home/jail/lib/i686/cmov/libpthread.so.0
apache2 15773 www-data mem REG 254,2 170596 71739 /home/jail/usr/lib/libapr-1.so.0
apache2 15773 www-data mem REG 254,2 121404 71738 /home/jail/usr/lib/libaprutil-1.so.0
apache2 15773 www-data mem REG 254,2 162088 71737 /home/jail/usr/lib/libpcre.so.3
apache2 15773 www-data mem REG 254,2 113248 71736 /home/jail/lib/ld-linux.so.2
apache2 15773 www-data 0r CHR 1,3 71732 /home/jail/dev/null
apache2 15773 www-data 1w CHR 1,3 71732 /home/jail/dev/null
apache2 15773 www-data 2w REG 254,2 8346 72291 /home/jail/var/log/apache2/error.log
apache2 15773 www-data 7w REG 254,2 0 72292 /home/jail/var/log/apache2/other_vhosts_access.log
apache2 15773 www-data 8w REG 254,2 0 72293 /home/jail/var/log/apache2/access.log
lsof 17447 root cwd DIR 254,2 4096 71778 /home/jail/var/log/apache2
grep 17448 root cwd DIR 254,2 4096 71778 /home/jail/var/log/apache2
lsof 17449 root cwd DIR 254,2 4096 71778 /home/jail/var/log/apache2[/cpp]

[cpp]debian-vm:/var/www/var/log/apache2# ls -l /proc/15771/fd
total 0
lr-x------ 1 root root 64 2009-09-06 01:18 0 -> /var/www/dev/null
l-wx------ 1 root root 64 2009-09-06 01:18 1 -> /var/www/dev/null
l-wx------ 1 root root 64 2009-09-06 01:18 2 -> /var/www/var/log/apache2/error.log
lrwx------ 1 root root 64 2009-09-06 01:18 3 -> socket:[36571]
lrwx------ 1 root root 64 2009-09-06 01:18 4 -> socket:[36572]
lr-x------ 1 root root 64 2009-09-06 01:18 5 -> pipe:[36582]
l-wx------ 1 root root 64 2009-09-06 01:18 6 -> pipe:[36582]
l-wx------ 1 root root 64 2009-09-06 01:18 7 -> /var/www/var/log/apache2/other_vhosts_access.log
l-wx------ 1 root root 64 2009-09-06 01:18 8 -> /var/www/var/log/apache2/access.log[/cpp]


voilou merci tugs pour sa disponibilité et ses explications, et le tuto dont je me suis inspiré :
http://www.hsc.fr/ressources/breves/chroot.html.fr
:hello:
aujourdh'ui je dois vérifier si je peux toujours accéder à PHP et MySql :d
SI il y a une configuration supplémentaire pour intéger PHP et MySql je l'ajouterais içi [:kronick:9]



EDIT : j'arrive pas à faire marcher l'option restart pour le moment (/etc/init.d/apache2 restart) je vais voir pourquoi :bounce:
EDIT2 : c'est bon le restart marche, j'ai fait pour m'assurer :
[cpp]cp -Rp /var/log/apache2 var/log[/cpp]
lwan
Messages : 3
Inscription : ven. 12 janv. 2018 17:44

[TUTO] Chrooter Apache (Debian Sarge / Lenny / Etch)

Message par lwan »

T'es trop un bogoss !
fighting_falcon
Messages : 656
Inscription : ven. 12 janv. 2018 17:44

[TUTO] Chrooter Apache (Debian Sarge / Lenny / Etch)

Message par fighting_falcon »

et t'as scripté tout ça j'espère ??

parce que les jails c'est gentil (j'en ai fait plein à une époque : apache, tomcat, bind, ftp), mais faut surveiller les mises à jour (des services ET des libs) pour à chaque fois mettre à jour la jail ...

bref c'est chiant à la longue
donc une bonne machine virtuelle et zou ...
Kronick
Messages : 3372
Inscription : ven. 12 janv. 2018 17:44

[TUTO] Chrooter Apache (Debian Sarge / Lenny / Etch)

Message par Kronick »

je suis en train de mettre en place un script oui, par contre je suis assez d'accord pour ce qui est des mises à jour, c'est très chiant.
La VM n'empêche pas le path traversal, tu priviligerais donc de dédier une VM par service ?
fighting_falcon
Messages : 656
Inscription : ven. 12 janv. 2018 17:44

[TUTO] Chrooter Apache (Debian Sarge / Lenny / Etch)

Message par fighting_falcon »

La VM n'empêche pas le path traversal, tu priviligerais donc de dédier une VM par service ?
on est tout à fait d'accord, et donc oui ;)
Après tout, ne disait-on pas, il y a quelque temps, un serveur -- virtuel -- par service ?? :D
Kronick
Messages : 3372
Inscription : ven. 12 janv. 2018 17:44

[TUTO] Chrooter Apache (Debian Sarge / Lenny / Etch)

Message par Kronick »

par contre dans le cadre d'une connexion à une base de données par ex, si path traversal il y a, on peut toujours chopper les infos de connexion à la base qui se trouve sur une autre serveur. Donc dédier un serveur par service n'aura pas servi à grand chose, si ?
:jap:
fighting_falcon
Messages : 656
Inscription : ven. 12 janv. 2018 17:44

[TUTO] Chrooter Apache (Debian Sarge / Lenny / Etch)

Message par fighting_falcon »

oui, mais ça sera toujours le cas que tu sois en jail, VM ou direct sur la machine ...
chour@mih-fr
Messages : 732
Inscription : ven. 12 janv. 2018 17:44

[TUTO] Chrooter Apache (Debian Sarge / Lenny / Etch)

Message par chour@mih-fr »

Je me pose une question : est-ce que ce problème est vraiment caractéristique de Linux ? Parce que sous Unix (que ce soit AIX ou n'importe lequel autre), pas besoin de créer de jail, un compte dédié, et zou ! Oracle lancé par le user oracle:dba, avec une install dans un fs dédié (/apps/oracle ou /soft/oracle), avec les droits qui vont bien (un 764 par exemple) ...

Par contre, une chose, à ma connaissance, impossible à faire, c'est de lancé un exécutable écoutant sur un port < à 1024 par un autre utilisateur que root. J'ai le cas avec des serveurs web sur les ports 80/443 qui ne peuvent démarrer que sous root, et non le compte web attitré.

Kronick
Messages : 3372
Inscription : ven. 12 janv. 2018 17:44

[TUTO] Chrooter Apache (Debian Sarge / Lenny / Etch)

Message par Kronick »

merci pour ce retour, à la base j'imagine qu'une jail sert à limiter la casse en fait. A part ça si une faille permet de naviguer sur le serveur c'est pas top :/
ne peut-on pas sinon locker un utilisateur lancant un process ? (www-data) en l'occurence. ainsi pas besoin de taper des grands coups de LDD et comme l'a justement dit falcon, on peut faire des mises à jour sans devoir tout refaire ensuite ?
chour@mih-fr
Messages : 732
Inscription : ven. 12 janv. 2018 17:44

[TUTO] Chrooter Apache (Debian Sarge / Lenny / Etch)

Message par chour@mih-fr »

Je pense que tout dépend de la politique de sécurité qui est adoptée.

Pour moi, la sécurité est surtout à mettre en place dans le code que l'on écrit, et dans l'infrastructure réseau, non pas sur les serveurs.

C'est un peu comme un prisonnier dans une prison : soit on met des gardes tout autour de l'enceinte, soit on laisse l'enceinte telle quelle et on attache 1 boulet à 1 jambe de chaque prisonnier.
Je préfère la première solution, afin de faciliter l'exploitation du serveur. C'est non négligeable en terme de coût.
fighting_falcon
Messages : 656
Inscription : ven. 12 janv. 2018 17:44

[TUTO] Chrooter Apache (Debian Sarge / Lenny / Etch)

Message par fighting_falcon »

entièrement d'accord avec chour@mih-fr
c'est aussi pour ça que j'ai abandonné les jail ...

Sous Debian, la politique par défaut c'est "tout est accessible à tous", en gros "chmod -R o+r /"
C'est bien si on est baba cool, moins bien si on veut monter un serveur qui peut se faire attaquer (humour hein ...)

Chez Mandriva, ils ont créés un système, en perl, pour réaffecter les droits sur toute l'arborescence, avec différents niveaux de config, de tout accessible à tous, à la paranoya où l'utilisateur lambda ne verra même pas toutes les commandes dispos sur le système en faisant "tab tab"

Je l'ai repris et adapter pour mes serveurs sous Debian, / est en root:man 751 (group man sinon un cron qui met à jour les pages plantes ...)
Pareil pour /tmp en 2773
Beaucoup de dossiers sont "exécutables" (ie on peut y rentrer) mais pas "lisibles" (on ne peut pas en afficher le contenu) pour le commun des mortels
etc ...



Pour les services et les ports < 1024, sur tous les GNU/Linux que je connais, ces services démarrent effectivement en root pour ouvrir le port, mais "fork" ensuite en tant qu'un utilisateur non privilégié ...
Répondre