Utenti carcerati [ Chroot + SSH + PAM ]

Analizziamo come ingabbiare gli utenti dentro un ambiente Chroot, limitandone l’uso di comandi messi a disposizione dal sistema.

Prerequisiti:

Debootstrap ~> Bootstrap a basic Debian system

OpenSSH ~> OpenSSH SSH client (remote login program)

Libpam-chroot ~> Chroot Pluggable Authentication Module for PAM

1) Installazione DEBOOTSTRAP & OPENSSH

Da linea di comando ( Terminale ) lanciate il seguente comando :

# apt-get install deboostrap openssh-server

2) Installazione Sistema Debian con DEBOOTSTRAP

Per prima cosa bisogna creare una directory nella root principale ( / ) :

# cd /

# mkdir carcere

La cartella che abbiamo creato conterrà il sottosistema Debian o Ubuntu. Ora possiamo installare il sottosistema tramite il comando debootstrap :

# debootstrap –variant=minbase jaunty /carcere

Con questo comando gli stiamo dicendo di installare la versione minimale di Ubuntu Jaunty (9.04)  dentro la cartella che voi avete creato nella root. Se volete informazioni sulle opzioni, lanciate man debootstrap.


3) Aggiungiamo PROC e SYSFS dentro il file FSTAB:

Aprite con un editor di testo il file fstab che si trova all’interno di /etc :

# vi /etc/fstab

Alla fine di questo file dovete aggiungere le seguenti righe :

proc-chroot     /carcere/proc    proc    defaults        0       0

sysfs-chroot     /carcere/sys    sysfs    defaults        0       0

4) Aggiungiamo DEVPTS dentro il file FSTAB del sottosistema:

Con un editor di testo editiamo il file FSTAB dentro /carcere/etc:

# vi /carcere/etc/fstab

Aggiungiamo la seguente riga

devpts  /dev/pts        devpts  defaults        0       0

5) Compilazione & Installazione di LIBPAM-CHROOT :

Abilitate i repository sorgenti nel file /etc/apt/sources.list. Aggiornate la lista dei pacchetti :

# apt-get update

Aggiornata la lista scaricate il sorgente del file libpam-chroot:

# apt-get source libpam-chroot

# apt-get build-dep libpam-chroot

Entrate dentro la cartella libpam-chroot e sostituite nel file Makefile la seguente stringa :

CFLAGS=-fPIC -O2 -Wall -Werror -pedantic

con questa :

CFLAGS=-fPIC -O2 -Wall -Werror -pedantic -fno-stack-protector

Perfetto! Lanciate questi comandi :

# dpkg-buildpackage -uc -us

# dpkg -i libpam-chroot-[nuova-versione-del-pacchetto].deb

5) Montaggio PROC e SYSFS più copia dei file Hosts, Locale, Passwd & Group:

# mount proc-chroot

# mount sysfs-chroot

# cp  /etc/hosts /carcere/etc/

# cp  /etc/passwd /carcere/etc/

# cp  /etc/group /carcerce/etc/

# cp /etc/default/locale /carcere/etc/

6) Aggangio della home di ogni utente dentro il carcere:

Ora dovete decidere quali utenti devono essere secondo voi i “carcerati” o le  “guardie”. Ovviamente l’utente amministratore sarà una “guardia”. Se avete deciso quali ruoli assegnare, potete procedere con lo spostamento delle home di ogni utente carcerato. NON SPOSTATE LA HOME DELLA GUARDIA ( utente amministratore ).

# mv /home/nome_utente_carcerato /carcere/home/

Ora andate a modificare il file /etc/security/chroot.conf aggiungendo una riga per ogni utente carcerato, Esempio :

NOME_UTENTE_CARCERATO             /carcere

Una volta aggiunti gli utenti carcerati, non dobbiamo dimenticarci di aggiungere una riga per la guardia ( utente amministratore ), ma al posto della sua home va messo lo Slash ( / ).  Sempre all’interno del file /etc/security/chroot.conf aggiungete :

NOME_UTENTE_GUARDIA             /

7) Attiviamo CHROOT dentro PAM.D :

Modificate il file /etc/pam.d/common-session aggiungendo la seguente riga :

session   required  pam_chroot.so

8) Ultimo passo :

Siamo alla fine del documento e prima di verificare se l’accesso tramite SSH, dovremo entrare, con il comando chroot, dentro la cartella carcere e montare il dispositivo devpts. Chroottiamoci dentro carcere :

# chroot /carcere /bin/bash

Una volta dentro lanciate il comando per montare il devpts e dopo uscite:

# mount devpts

# exit

Perfetto! Se tutto è andato per il verso giusto, allora potrete fare la prova a loggarvi in SSH con l’utente carcerato. Per verificare se l’utente è stato ingabbiato, una volta loggati verificate se esiste la cartella /carcere. Se non esiste allora siete stati INCARCERATI!

Annunci

4 Risposte to “Utenti carcerati [ Chroot + SSH + PAM ]”

  1. porca puttana! hai superato te stesso nella lunghezza e completezza di questo articolo ! quasi quasi copio e incollo sul mio ahahha si si dai! non sarai più unicoooooooooooo ahahahahahaha

  2. Tnk ;)! Comunque presto ne arriverà un altro più potente di questo 😀 :D.

  3. Te l’avevo detto che mi battevi sul tempo… vabbè però, tu parti avvantaggiato! 🙂
    Complimenti, guida bellissima.
    Come al solito!

  4. Grazie Pmate ;)! Ne sto preparando una che scommetto resterai a bocca aperta 😀 😀 :D!

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger hanno fatto clic su Mi Piace per questo: