Βήμα 1: Εγκατάσταση των εξαρτήσεων
Βήμα 2: Δημιουργία των απαιτούμενων καταλόγων
Βήμα 3 Αντιγραφή εντολών και των εξαρτήσεών τους
Βήμα 4: Δοκιμή του περιβάλλοντος
Αυτό το άρθρο θα σας διδάξει πώς να ρυθμίσετε ένα chroot jail στο Debian. Υποθέτω ότι χρησιμοποιείτε το Debian 7.x. Εάν εκτελείτε το Debian 6 ή 8, αυτό μπορεί να λειτουργήσει, αλλά έχετε κατά νου ότι δεν έχω δοκιμάσει άλλες εκδόσεις του Debian.
Συνδεθείτε στο VPS σας ως χρήστης root. Μπορείτε επίσης να εκτελέσετε τις εντολές με sudo.
Βήμα 1: Εγκατάσταση των εξαρτήσεων
Για να ξεκινήσετε, θα χρειαστεί να εκτελέσετε τις ακόλουθες εντολές για εγκατάσταση, οι οποίες θα επεξηγηθούν αργότερα.
apt-get install binutils debootstrap
Θα χρειαστεί επίσης να επιλέξετε ένα μέρος για να ρυθμίσετε το chroot. Για αυτό το άρθρο, θα χρησιμοποιήσουμε τον /var/chroot
κατάλογο.
Βήμα 2: Δημιουργία των απαιτούμενων καταλόγων
Δημιουργήστε το φάκελο chroot.
mkdir -p /var/chroot
Εξαιρετική! Τα προκαταρκτικά βήματα έχουν ολοκληρωθεί. Τώρα, ας κάνουμε το chroot χρήσιμο.
Βήμα 3 Αντιγραφή εντολών και των εξαρτήσεών τους
Χρειαζόμαστε έναν διερμηνέα εντολών, οπότε ας αντιγράψουμε το bash.
mkdir -p /var/chroot/bin
cp /bin/bash /var/chroot/bin
Κάθε πρόγραμμα έχει τις δικές του εξαρτήσεις και το bash είναι μία από αυτές. Ρίξτε μια ματιά σε αυτά τρέχοντας:
ldd /bin/bash
Θα πρέπει να μοιάζει με αυτό εάν εκτελείτε μια έκδοση 32 bit:
linux-gate.so.1 => (0xb773e000)
libtinfo.so.5 => /lib/i386-linux-gnu/libtinfo.so.5 (0xb7718000)
libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xb7714000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb75c3000)
/lib/ld-linux.so.2 (0xb773f000)
Ας αντιγράψουμε αυτά τα αρχεία. Εάν βλέπετε διαφορετικές εξαρτήσεις, απλώς αντιγράψτε τη διαδρομή μετά το =>
τμήμα.
mkdir -p /var/chroot/lib
mkdir -p /var/chroot/lib/i386-linux-gnu
cp /lib/i386-linux-gnu/libtinfo.so.5 /var/chroot/lib/i386-linux-gnu
cp /lib/i386-linux-gnu/libdl.so.2 /var/chroot/lib/i386-linux-gnu
cp /lib/i386-linux-gnu/libc.so.6 /var/chroot/lib/i386-linux-gnu
Βήμα 4: Δοκιμή του περιβάλλοντος
Τώρα που έχουμε τη ρύθμιση bash - ας το δοκιμάσουμε.
chroot /var/chroot
Ο διερμηνέας εντολών bash θα ανοίξει, αλλά δεν θα υπάρχουν άλλες εντολές για εκτέλεση. Αυτό συμβαίνει επειδή δεν έχουμε αντιγράψει άλλα προγράμματα στον φάκελο chroot. Εάν θέλετε περισσότερες εντολές, πληκτρολογήστε exit
και επαναλάβετε το βήμα 3.
Αυτό είναι το μόνο που χρειάζεται. Τώρα έχετε μια βασική ρύθμιση του chroot. Μπορείτε να δοκιμάσετε εντολές, να φυλακίσετε τους χρήστες σας κ.λπ.
Εάν θέλετε δικτύωση στο chroot, θα χρειαστεί να εκτελέσετε τις παρακάτω εντολές
mkdir -p /var/chroot/etc
cp /etc/resolv.conf /var/chroot/etc
cp /etc/gai.conf /var/chroot/etc