GNU/Linux >> Belajar Linux >  >> Debian

Cara Membuat Pengguna ssh yang Dipenjara dengan Jailkit di Debian/Ubuntu

Halo, hari ini kita akan membuat pengguna ssh yang dipenjara dengan Jailkit di kotak Debian Wheezy. 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. Memasang JailKit

Pertama, kita akan mendownload dan menginstal 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:Harap ganti jailkit-2.17 dengan versi jailkit yang akan Anda instal.

Karena Jailkit memerlukan beberapa paket sebelum penginstalannya, 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

Ini akan menginstal Jailkit di Server Debian, kita dapat menghapus paket tambahan dari /tmp:

$ rm -rf /tmp/jailkit*

2. Mengonfigurasi lingkungan penjara

Perlu ada direktori tempat seluruh lingkungan penjara akan diatur. Mari kita lakukan di /opt/jail. Ini bisa apa saja.

$ sudo mkdir /opt/jail

Root harus memiliki direktori ini. Jadi, tunjukkan.

$ sudo chown root:root /opt/jail

3. Mengaktifkan program agar tersedia di dalam jail

Semua program yang perlu tersedia di jail perlu disalin di dalamnya menggunakan perintah jk_init.
Contoh

$ sudo jk_init -v /opt/jail netutils basicshell jk_lsh openvpn ssh sftp

Nama-nama seperti basicshell , editors , netutils adalah grup yang berisi banyak program. Setiap grup adalah satu set file yang dapat dieksekusi, perpustakaan, dll untuk disalin ke dalam shell. Misalnya, bagian basicshell menyediakan banyak program seperti bash, ls, cat, chmod, mkdir, cp, cpio, date, dd, echo, egrep dll di dalam jail.

Untuk daftar lengkap bagian yang dapat diatur, lihat /etc/jailkit/jk_init.ini.

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 di sistem file yang sebenarnya dan bukan di dalam jail.
Pada langkah selanjutnya pengguna ini akan dipenjara di dalam penjara.

Pada titik ini jika Anda melihat /etc/passwd Anda akan melihat entri di akhir yang terlihat seperti ini

arun:x:1006:1005:,,,:/home/arun:/bin/bash

Ini adalah pengguna baru kami dan bagian terakhir /bin/bash menunjukkan bahwa pengguna memiliki akses shell normal pada sistem, jika dia masuk.

5. Penjarakan pengguna

Sekarang waktunya memasukkan pengguna ke dalam penjara.

$ sudo jk_jailuser -m -j /opt/jail/ arun

Dengan melakukan ini, pengguna arun sekarang telah 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 bagian terakhir yang menunjukkan pengguna rumahan dan tipe shell telah berubah. Direktori home pengguna sekarang berada di dalam lingkungan jail di /opt/jail. Shell pengguna sekarang menjadi program khusus yang disebut jk_chrootsh yang akan menyediakan shell yang sudah di-jail.

Shell khusus yang disebut jk_chrootsh inilah yang membawa pengguna ke dalam penjara, setiap kali dia masuk ke sistem.

Pengaturan penjara sekarang hampir selesai. Tetapi jika Anda mencoba menghubungkan ke id dari ssh, itu akan gagal seperti ini :

$ ssh arun@localhost

Sambungan harus ditutup. Hal ini terjadi karena pengguna sebenarnya memiliki shell yang terbatas.

6. Berikan bash shell kepada pengguna di dalam penjara

Sekarang, hal penting yang perlu kita lakukan adalah menyediakan shell bash yang tepat kepada pengguna, tetapi di dalam jail.
Buka file berikut

$ sudo nano /opt/jail/etc/passwd

Ini adalah file kata sandi 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 ke penjara

Jadi sekarang waktunya login ke jail lagi

$ ssh arun@localhost

Sekarang kita memiliki bash shell yang berfungsi penuh tetapi di dalam jail. Sekarang periksa lingkungan dengan bergerak. Akar / dari lingkungan yang dipenjara adalah /opt/jail dari sistem file yang sebenarnya. 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 coba jalankan beberapa perintah jaringan seperti wget atau yang serupa.

$ wget http://www.google.com/

Jika Anda mendapatkan kesalahan seperti ini :

$ 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 yang tepat dari libnss_files.so dan libnss_dns.so dapat bervariasi, jadi periksalah.

8. Menjalankan program atau layanan di penjara

Sekarang pengaturan selesai. Jail berguna untuk menjalankan program atau layanan di lingkungan terbatas/aman. Untuk meluncurkan program atau daemon di dalam jail, gunakan perintah jk_chrootlaunch.

$ sudo jk_chrootlaunch -j /opt/jail -u arun -x /some/command/in/jail

Utilitas jk_chrootlaunch dapat digunakan untuk meluncurkan proses tertentu di dalam lingkungan jail dengan hak istimewa dari pengguna tertentu. Jika daemon gagal untuk memulai, periksa /var/log/syslog untuk pesan kesalahan.

Untuk menjalankan program di dalam jail, program pertama-tama harus disalin sepenuhnya di dalam jail menggunakan perintah jk_cp.

jk_cp - utilitas untuk menyalin file termasuk izin dan perpustakaan ke dalam penjara

Kesimpulan

Akhirnya, kami telah membuat ssh jailed yang berfungsi dengan bantuan Jailkit di Server Debian/Ubuntu kami. Itu terbatas pada beberapa perintah tertentu, atau daemon di dalam chroot jail dengan utilitas otomatis. Untuk informasi lebih lanjut tentang berbagai perintah jailkit, lihat dokumentasi di situs web olivier. Jika Anda memiliki pertanyaan atau pertanyaan, silakan beri komentar.


Debian
  1. Cara Membuat Pengguna Sudo Di CentOS, Ubuntu &Debian

  2. Cara Membuat Pengguna Sudo di Debian

  3. Bagaimana Cara Membuat Pengguna Baru Dengan Akses Ssh?

  1. Siapkan shell yang dipenjara dengan jailkit di ubuntu

  2. Cara Membuat dan Menghapus Pengguna di Ubuntu 16.04

  3. Cara Mengatur Kunci SSH di Debian

  1. Cara membuat Pengguna SSH yang Dipenjara dengan Jailkit di Debian 9 (Peregangan)

  2. Cara Install SSH Server di Ubuntu / Debian dengan OpenSSH

  3. Cara Membuat dan Menghapus Pengguna di Debian 9