Cara membuat pengguna ssh yang sudah di-jailbreak dengan Jailkit di Debian/Ubuntu
Hai, hari ini kita akan membuat pengguna Jailkit ssh di kotak Debian Wheezy. Jailkit adalah seperangkat alat untuk membatasi akun pengguna ke file tertentu menggunakan chroot() atau perintah tertentu. Memulai chroot shell, shell command-limited, atau daemon di dalam chroot jail jauh lebih mudah dan dapat diotomatisasi menggunakan alat ini.
Jailkit diketahui digunakan dalam peralatan keamanan jaringan dari beberapa perusahaan keamanan TI terkemuka, server Internet dari beberapa organisasi perusahaan besar, server Internet dari penyedia layanan Internet, serta banyak perusahaan kecil dan pengguna pribadi yang perlu mengamankan cvs, sftp , memiliki cangkang, digunakan. atau proses daemon
1. Instal JailKit
Pertama, kita download dan install Jailkit.
$ cd /tmp
$ wget http://olivier.sessink.nl/jailkit/jailkit-2.17.tar.gz
$ tar xvfz jailkit-2.17.tar.gz
$ cd jailkit-2.17

Catatan: Silakan ganti jailkit-2.17 dengan versi yang ingin Anda instal.
Karena Jailkit memerlukan sejumlah paket sebelum instalasi, kami akan menginstalnya sebagai berikut:
$ sudo apt-get install build-essential autoconf automake1.9 libtool flex bison debhelper binutils-gold python

Sekarang sistem kita siap untuk menginstal Jailkit, instal sebagai berikut:
$ ./debian/rules binary
$ cd ..
$ dpkg -i jailkit_2.17-1_i386.deb

menginstal Jailkit di server Debian, kita dapat menghapus paket tambahan dari /tmp:
$ rm -rf /tmp/jailkit*
2. Konfigurasi lingkungan penjara
Harus ada direktori tempat seluruh lingkungan jailbreak akan diluncurkan. Mari kita lakukan di /opt/jail. Itu bisa apa saja.
$ sudo mkdir /opt/jail
Root harus memiliki direktori ini. Jadi biarkan saja
$ sudo chown root:root /opt/jail
3. Aktifkan program agar tersedia di dalam penjara
Semua program yang harus ada di jail harus disalin ke dalamnya menggunakan perintah jk_init.
Contoh
$ sudo jk_init -v /opt/jail netutils basicshell jk_lsh openvpn ssh sftp

Nama-nama seperti baseshell, editor, netutils adalah grup yang berisi banyak program. Setiap grup adalah satu set executable, library, dll. yang perlu disalin ke dalam shell. Sebagai contoh, basicshell menyediakan banyak program seperti bash, ls, cat, chmod, mkdir, cp, cpio, date, dd, echo, egrep dll di jail.
Lihat /etc/jailkit/jk_init.ini untuk daftar lengkap bagian yang dapat diinisialisasi.
4. Buat pengguna yang akan dipenjara
Perlu pengguna untuk dimasukkan ke dalam penjara. Ayo buat satu
$ sudo adduser arun
Perhatikan bahwa ini adalah pengguna biasa yang dibuat pada sistem file yang sebenarnya dan bukan di dalam jailbreak.
Pada langkah selanjutnya, pengguna ini harus dipenjara di dalam penjara.
Pada titik ini, jika Anda melihat /etc/passwd, Anda akan melihat entri di bagian akhir yang terlihat seperti ini.
arun:x:1006:1005:,,,:/home/arun:/bin/bash
Ini adalah pengguna baru kami, dan bagian terakhir dari /bin/bash menunjukkan bahwa pengguna memiliki akses shell normal ke sistem saat masuk.
5. Penjarakan pengguna
Sekarang saatnya untuk memenjarakan pengguna.
$ sudo jk_jailuser -m -j /opt/jail/ arun
Dengan melakukan ini, pengguna arun sekarang dipenjara.
Sekarang jika Anda melihat /etc/passwd, entri terakhir akan terlihat seperti ini
arun:x:1006:1005:,,,:/opt/jail/./home/arun:/usr/sbin/jk_chrootsh
Perhatikan bahwa 2 bidang terakhir yang mewakili pengguna rumahan dan tipe shell telah diubah. Direktori home pengguna sekarang berada di lingkungan jail di /opt/jail. Shell pengguna sekarang menjadi program khusus yang disebut jk_chrootsh yang menyediakan shell yang sudah di-jailbreak.
Ini adalah shell khusus yang disebut jk_chrootsh yang melakukan jailbreak pada pengguna setiap kali mereka masuk.
Pengaturan penjara sekarang hampir selesai. Tetapi jika Anda mencoba terhubung ke id melalui ssh, itu akan gagal seperti ini:
$ ssh arun@localhost

Sambungan harus ditutup. Ini karena pengguna sebenarnya memiliki cangkang terbatas.
6. Berikan bash shell kepada pengguna yang dipenjara
Sekarang, yang perlu kita lakukan adalah menyediakan shell bash yang tepat untuk pengguna, tetapi di dalam jail.
Buka file berikut
$ sudo nano /opt/jail/etc/passwd
File kata sandi ada di dalam penjara. Ini akan terlihat seperti ini
root:x:0:0:root:/root:/bin/bash
arunp:x:1006:1001:arun pyasi,001,,:/home/arunp:/usr/sbin/jk_lsh

Ubah /usr/sbin/jk_lsh menjadi /bin/bash
root:x:0:0:root:/root:/bin/bash
arun:x:1006:1005:,,,:/home/arun:/bin/bash
Simpan file dan keluar.
7. Masuk penjara
Jadi sekarang saatnya masuk penjara lagi
$ ssh arun@localhost

Sekarang kami memiliki bash shell yang berfungsi penuh tetapi di dalam penjara. Sekarang periksa lingkungan dengan bergerak. Lingkungan root / jail /opt/jail berasal dari sistem file asli. Tapi hanya kita yang tahu itu, bukan pengguna yang dipenjara.
juga Hanya perintah yang disalin melalui bagian jk_cp yang akan tersedia di penjara ini. Jika login gagal, periksa /var/log/auth.log untuk pesan kesalahan.
Sekarang jalankan beberapa perintah jaringan seperti wget atau yang serupa.
$ wget http://www.google.com/
Jika Anda mengalami kesalahan berikut:
$ wget http://www.google.com/
--2012-06-23 12:56:43-- http://www.google.com/
Resolving www.google.com (www.google.com)... failed: Name or service not known.
wget: unable to resolve host address `www.google.com'
Perbaiki dengan menjalankan 2 perintah berikut:
$ sudo jk_cp -v -j /opt/jail /lib/x86_64-linux-gnu/libnss_files.so.2
$ sudo jk_cp -v -j /opt/jail /lib/x86_64-linux-gnu/libnss_dns.so.2
Lokasi persis libnss_files.so dan libnss_dns.so bisa berbeda, jadi periksalah.
8. Pelaksanaan program atau pelayanan di Lapas
Penyiapan sekarang selesai. Penjara berguna untuk melaksanakan program atau layanan di lingkungan terbatas/aman. Gunakan perintah jk_chrootlaunch untuk meluncurkan program atau daemon di dalam jailbreak.
$ sudo jk_chrootlaunch -j /opt/jail -u arun -x /some/command/in/jail
Utilitas jk_chrootlaunch dapat digunakan untuk meluncurkan proses tertentu di dalam jailbreak dengan hak pengguna tertentu. Jika daemon tidak dimulai, periksa /var/log/syslog untuk pesan kesalahan.
Untuk menjalankan program di dalam jail, pertama-tama program harus benar-benar disalin di dalam jail menggunakan perintah jk_cp.
jk_cp – Alat untuk menyalin file termasuk izin dan pustaka ke jailbreak
Hasil
Akhirnya, kami telah membuat ssh yang sudah di-jailbreak di server Debian/Ubuntu kami dengan bantuan Jailkit. Ini terbatas pada perintah tertentu, atau daemon di dalam chroot jail dengan alat otomatis. Untuk informasi lebih lanjut tentang berbagai perintah kit, lihat dokumentasi di situs web olivier. Jika Anda memiliki pertanyaan atau pertanyaan, silakan komentar.