Dokumen ini menjelaskan cara menginstal dan mengonfigurasi Jailkit di Server Debian 9 (Stretch). Jailkit adalah seperangkat utilitas untuk membatasi akun pengguna ke file tertentu menggunakan chroot() dan atau perintah tertentu. Menyiapkan shell chroot, shell terbatas pada beberapa perintah tertentu, atau daemon di dalam chroot jail jauh lebih mudah dan dapat diotomatisasi menggunakan utilitas 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, shell atau proses daemon.
1 Catatan Awal
Tutorial ini didasarkan pada server Debian 9, jadi Anda harus menyiapkan penginstalan server Debian dasar sebelum melanjutkan tutorial ini. Sistem harus memiliki alamat IP statis. Saya menggunakan 192.168.0.100 sebagai alamat IP saya dalam tutorial ini dan server1.example.com sebagai nama host.
2 Instal Jailkit
Pertama-tama kita akan mendownload dan menginstal Jailkit. Pada saat penulisan panduan ini, versi Jailkit terbaru yang tersedia adalah 2.20. Saya akan mengunduh dan menginstalnya sebagai berikut:
cd /tmp
wget http://olivier.sessink.nl/jailkit/jailkit-2.20.tar.gz
tar xvfz jailkit-2.20.tar.gz
cd jailkit-2.20
Jailkit membutuhkan beberapa paket sebelum instalasi, kami akan menginstalnya sebagai berikut:
apt-get install build-essential autoconf automake1.11 libtool flex bison debhelper binutils-gold python
Sekarang sistem kita siap untuk menginstal Jailkit, instal sebagai berikut:
echo 5 > debian/compat
./debian/rules binary
cd ..
dpkg -i jailkit_2.20-1_amd64.deb
Ini akan menginstal Jailkit di Server Debian, kita dapat menghapus paket tambahan dari /tmp:
rm -rf /tmp/jailkit*
3 Memenjarakan pengguna
Sekarang kita akan membuat pengguna yang akan dipenjara menggunakan Jailkit sebagai:
adduser srijan
[email protected]:~#adduser srijan
Menambahkan `srijan' pengguna ...
Menambahkan grup baru `srijan' (1001) ...
Menambahkan `srijan pengguna baru ' (1001) dengan grup `srijan' ...
Membuat direktori home `/home/srijan' ...
Menyalin file dari `/etc/skel' ...
Enter new Kata sandi UNIX:<--sandi
Ketik ulang sandi UNIX baru:<--sandi
passwd:sandi berhasil diperbarui
Mengubah informasi pengguna untuk srijan
Masukkan nilai baru, atau tekan ENTER untuk default
Nama Lengkap []:<--ENTER
Nomor Kamar []:<--ENTER
Telepon Kantor []:<--ENTER
Telepon Rumah []:<--ENTER
Lainnya []:<--ENTER
Apakah informasi tersebut benar? [Y/n] <--Y
[dilindungi email]:~#
Dalam kasus saya, saya membuat pengguna srijan, Anda dapat menggunakan nama apa pun.
Selanjutnya kita akan mengecek informasi tentang user srijan di /etc/passwd sebagai:
egrep srijan /etc/passwd[dilindungi email]:/tmp# egrep srijan /etc/passwd
srijan:x:1001:1001:,,,:/home/srijan:/bin/bash
[email dilindungi]:/tmp #
Selanjutnya, kami akan memenjarakan pengguna yang dibuat. Buat direktori /jail untuk lingkungan Jail:
mkdir /jail
Sekarang kami akan menyediakan Jail dengan beberapa lingkungan program default seperti:
jk_init -v /jail netutils basicshell jk_lsh openvpn ssh sftp
Kami juga dapat memberikan nilai lain, daftar lengkap lingkungan Jail dapat diperiksa di file
nano /etc/jailkit/jk_init.ini
Sekarang Penjara sudah siap, cukup tambahkan pengguna di dalam lingkungan:
jk_jailuser -m -j /jail/ srijan
Sekali lagi periksa nilai di /etc/passwd untuk pengguna srijan:
egrep srijan /etc/passwd[dilindungi email]:/tmp# egrep srijan /etc/passwd
srijan:x:1001:1001:,,,:/jail/./home/srijan:/usr/sbin/jk_chrootsh
[ email dilindungi]:/tmp#
Sekarang pengguna kami telah ditambahkan di lingkungan Jailed. Saya akan menghubungkan server Debian dengan terminal bash dengan IP 192.168.0.100:
ssh [email protected][email protected]:~$ ssh [email protected]
Keaslian host '192.168.0.100 (192.168.0.100)' tidak dapat dibuat.
Sidik jari kunci ECDSA adalah 3d:ca:91:67:96:39:15:b4:0f:6e:c8:2c:92:ef:25:d7.
Yakin ingin melanjutkan koneksi (ya/tidak)? ya
sandi [email protected]:
Linux server1 3.2.0-4-amd64 #1 SMP Debian 3.2.60-1+deb7u3 x86_64
Program yang disertakan dengan sistem GNU/Linux Debian adalah perangkat lunak bebas;
istilah distribusi yang tepat untuk setiap program dijelaskan dalam
file individual di /usr/share/doc/*/copyright.
Debian GNU/Linux BENAR-BENAR TIDAK ADA JAMINAN, sejauh
diizinkan oleh hukum yang berlaku.
Koneksi ke 192.168.0.100 ditutup.
[email protected]:~$
Koneksi semakin tertutup karena pengguna tidak memiliki shell logging, mari tambahkan di file konfigurasi untuk Jail:
nano /jail/etc/passwd
root:x:0:0:root:/root:/bin/bash nobody:x:65534:65534:nobody:/nonexistent:/bin/sh #srijan:x:1001:1001:,,,:/home/srijan:/usr/sbin/jk_lsh srijan:x:1001:1001:,,,:/home/srijan:/bin/bash
Ini akan menambahkan bash Prompt untuk srijan pengguna yang dipenjara. Sekarang coba lagi login ssh dengan pengguna srijan dan Anda akan bisa login:
ssh [email protected]
Sekarang periksa konten direktori root, Anda akan melihat isinya seperti ini:
ls /[email protected]:~$ ls /
bin dev etc home lib lib64 usr
[email protected]:~$
4 Menjalankan layanan dan perintah di lingkungan Jailed
Jail dapat digunakan untuk menjalankan layanan di lingkungan Jailed. Misalkan kita ingin menjalankan layanan apapun di lingkungan Jailed maka kita akan menggunakan perintah jk_chrootlaunch untuk itu:
jk_chrootlaunch -j /jail -u srijan -x 'service apache2 start'
Di sini saya memulai layanan Apache. Demikian pula, Anda dapat menjalankan layanan atau daemon apa pun dengannya di lingkungan Jail.
Misalkan kita ingin menjalankan perintah tertentu di lingkungan Jail maka kita akan menggunakan jk_cp. Mari kita uji di lingkungan Jailed ketika kita akan menjalankan cal maka tampilannya sebagai berikut:
cal[dilindungi email]:~$ cal
bash:cal:perintah tidak ditemukan
[dilindungi email]:~$
Artinya lingkungan Jail tidak mengetahui perintah cal, sekarang saya akan menambahkannya di Server Debian sebagai berikut:
jk_cp -v -j /jail/ /usr/bin/cal[email protected]:~# jk_cp -v -j /jail/ /usr/bin/cal
Membuat symlink /jail/usr/bin/cal ke ncal
Menyalin /usr/bin/ncal ke / jail/usr/bin/ncal
Membuat symlink /jail/lib/x86_64-linux-gnu/libncurses.so.5 ke libncurses.so.5.9
Menyalin /lib/x86_64-linux-gnu/libncurses .so.5.9 ke /jail/lib/x86_64-linux-gnu/libncurses.so.5.9
/jail/lib/x86_64-linux-gnu/libtinfo.so.5 sudah ada, tidak akan menyentuhnya
/jail/lib/x86_64-linux-gnu/libc.so.6 sudah ada, tidak akan menyentuhnya
/jail/lib/x86_64-linux-gnu/libdl.so.2 sudah ada, tidak akan menyentuhnya
/jail/lib64/ld-linux-x86-64.so.2 sudah ada, tidak akan menyentuhnya
/jail/lib/x86_64-linux-gnu/libtinfo.so.5 sudah ada, tidak akan menyentuhnya
/jail/lib/x86_64-linux-gnu/libc.so.6 sudah ada, tidak akan menyentuhnya
/jail/lib/x86_64-linux-gnu/libdl. so.2 sudah ada, tidak akan menyentuhnya
/jail/lib64/ld-linux-x86-64.so.2 sudah ada, tidak akan menyentuhnya
Sekali lagi jalankan perintah cal di lingkungan Jailed:
cal[email protected]:~$ cal
April 2019
Su Mo Tu We Th Fr Sa
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
[email protected]:~$
Jadi kita telah menambahkan perintah untuk lingkungan Jailed. Selamat! Sekarang kita telah berhasil mengonfigurasi lingkungan Jail di Debian 9 :)
5 Tautan
- Debian:https://www.debian.org/
- Jailkit: https://olivier.sessink.nl/jailkit/