Dengan rilis OpenSSH 4.9p1, Anda tidak lagi harus bergantung pada peretasan pihak ketiga atau pengaturan chroot yang rumit untuk membatasi pengguna ke direktori home mereka atau memberi mereka akses ke layanan SFTP.
sunting / etc / ssh / sshd_config (/ etc / sshd_config pada beberapa distribusi) dan setel opsi-opsi berikut:
Subsystem sftp internal-sftp
Match Group sftp
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
Pastikan arahan “Match” ada di akhir file. Ini memberitahu OpenSSH bahwa semua pengguna dalam grup sftp harus chroot ke direktori home mereka (yang% h wakili dalam perintah ChrootDirectory
Untuk setiap pengguna yang ingin Anda chroot, tambahkan mereka ke grup sftp dengan menggunakan:
# usermod -G sftp joe
# usermod -s /bin/false joe
# chown root:root /home/joe
# chmod 0755 /home/joe
Perintah usermod di atas akan menambahkan user joe ke grup sftp dan mengatur shell mereka ke / bin / false sehingga mereka benar-benar tidak pernah mendapatkan akses shell. Perintah chown dan chmod akan mengatur izin yang diperlukan untuk direktori. Dengan izin ini ditetapkan, pengguna akan diizinkan untuk mengunggah dan mengunduh file, tetapi tidak dapat membuat direktori atau file di direktori root
Chroot akun shell sedikit lebih rumit karena mengharuskan file perangkat tertentu dan shell tersedia di direktori home pengguna. Perintah-perintah berikut ini akan mengatur sistem chroot yang sangat mendasar di Mandriva Linux:
# mkdir /chroot
# cd /chroot
# mkdir {bin,dev,lib}
# cp -p /bin/bash bin/
# cp -p /lib/{ld-linux.so.2,libc.so.6,libdl.so.2,libtermcap.so.2} lib/
# mknod dev/null c 1 3
# mknod dev/zero c 1 5
# chmod 0666 dev/{null,zero}
# mkdir -p /chroot/home/joe
Dengan hal di atas, pengguna joe dapat ssh in dan akan dibatasi untuk chroot. Sayangnya, ini tidak banyak membantu, tetapi memberi Anda gambaran bagaimana hal itu dapat diatur. Bergantung pada apa yang ingin Anda berikan, Anda perlu menginstal perpustakaan dan binari tambahan.
Membuat chroot
Instal paket dchroot dan debootstrap.
Sebagai administrator (mis. Menggunakan sudo), buat direktori baru untuk chroot. Dalam prosedur ini, direktori /var/chroot
akan digunakan. Untuk melakukannya, ketikkan sudo mkdir /var/chroot
ke dalam baris perintah.
Sebagai administrator, buka
/etc/schroot/schroot.conf
di editor teks. Ketik cd /etc/schroot
, diikuti oleh gksu gedit schroot.conf
. Ini akan memungkinkan Anda untuk mengedit file.
Tambahkan baris berikut ke dalam schroot.conf
dan kemudian simpan dan tutup file. Ganti
your_username
dengan nama pengguna Anda.
[lucid] description = Ubuntu Lucid location = / var / chroot priority = 3 pengguna = your_username groups = sbuild root-groups = root
Buka terminal dan ketik:
sudo debootstrap --variant=buildd --arch i386 lucid /var/chroot/ \
http://mirror.url.com/ubuntu/
Ini akan membuat 'instalasi' dasar Ubuntu 10.04 (Lucid Lynx) di chroot. Mungkin perlu beberapa saat untuk mengunduh paket. Catatan: Anda dapat mengganti jernih dengan versi Ubuntu pilihan Anda. Catatan: Anda harus mengubah yang di atas mirror.url.com
dengan URL cermin arsip yang valid untuk Anda. Seharusnya chroot dasar telah dibuat. Ketik sudo chroot /var/chroot
untuk mengubah ke shell root di dalam chroot.
Menyiapkan chroot
Ada beberapa langkah dasar yang dapat Anda ambil untuk mengatur chroot, menyediakan fasilitas seperti resolusi DNS dan akses /proc
.
Catatan: Ketik perintah-perintah ini di shell yang berada di luar chroot.
Ketik yang berikut untuk memasang sistem /proc
file di chroot (diperlukan untuk mengelola proses):
sudo mount -o bind /proc /var/chroot/proc
Ketik yang berikut untuk mengizinkan resolusi DNS dari dalam chroot (diperlukan untuk akses Internet):
sudo cp /etc/resolv.conf /var/chroot/etc/resolv.conf
Sangat sedikit paket diinstal secara default di chroot (bahkan sudo tidak diinstal). Gunakan apt-get install package_name
untuk menginstal paket.