Bagaimana cara memenjarakan pengguna yang terhubung melalui SSH

Di dunia kita ada banyak, banyak rahasia… Sejujurnya saya rasa saya tidak bisa belajar cukup untuk mengetahui sebagian besar darinya, dan ini diberikan oleh fakta sederhana bahwa Linux memungkinkan kita untuk melakukan begitu banyak, tetapi begitu banyak hal yang sulit bagi kita untuk mengetahui semuanya.

Kali ini saya akan menjelaskan kepada Anda cara melakukan sesuatu yang sangat berguna, sesuatu yang perlu dilakukan oleh banyak administrator jaringan atau sistem, dan merasa sulit untuk tidak menemukan cara yang cukup sederhana untuk mencapainya:

Bagaimana menghubungkan pengguna kandang melalui SSH

kandang? … WTF!

Ya, jika karena alasan apapun kita harus memberikan akses SSH kepada teman kita ke komputer (atau server) kita, kita harus selalu menjaga keamanan dan stabilitas komputer atau server kita.

Kebetulan baru-baru ini kami ingin memberikan Perseus SSH akses ke server kami, tetapi kami tidak dapat memberinya jenis akses apa pun karena kami memiliki konfigurasi yang sangat sensitif di sana (kami telah mengumpulkan banyak hal, paket yang telah kami instal secara individual, dll. .) Apakah saya mencoba membuat perubahan sekecil apa pun ke server, ada kemungkinan semuanya akan sia-sia hehe.

Kemudian, Cara membuat pengguna dengan hak istimewa yang sangat terbatas, sedemikian rupa sehingga dia bahkan tidak bisa keluar dari kandangnya (rumah)?

Mari kita mulai dengan mengunduh penjara, alat yang memungkinkan kita melakukan ini:

Semua perintah berikut dijalankan sebagai root

1. Pertama kita harus mengunduh server JailKit kita.

wget http://ftp.desdelinux.net/jailkit-2.14.tar.gz

2. Kemudian kita harus mengekstrak paket dan masuk ke folder yang baru saja muncul:

tar xzf jailkit-2.14.tar.gz && cd jailkit-2.14

3. Kemudian kami melanjutkan untuk mengkompilasi dan menginstal perangkat lunak (Saya meninggalkan Anda tangkapan layar):

./configure
make
make install

. / Configure

membuat

make install

4. Siap, ini sudah terpasang. Sekarang kita melanjutkan untuk membuat kandang yang akan berisi pengguna di masa mendatang, dalam kasus saya, saya membuatnya di: / opt / dan menyebutnya "jail", jadi jalurnya adalah: / opt / jail :

mkdir /opt/jail
chown root:root /opt/jail

5. Kandang sudah dibuat, tetapi tidak memiliki semua peralatan yang diperlukan sehingga pengguna yang akan datang dapat bekerja tanpa masalah. Maksud saya, sampai saat ini kandang dibuat, tapi itu hanya kotak kosong. Sekarang kita akan memasukkan beberapa alat yang dibutuhkan pengguna yang dikurung di dalam sangkar:

jk_init -v /opt/jail basicshell
jk_init -v /opt/jail editors
jk_init -v /opt/jail extendedshell
jk_init -v /opt/jail netutils
jk_init -v /opt/jail ssh
jk_init -v /opt/jail sftp
jk_init -v /opt/jail jk_lsh

6. Siap, kandangnya ada dan sudah memiliki alat untuk digunakan pengguna ... sekarang kita hanya perlu ... pengguna! Mari buat pengguna kira dan kami akan memasukkannya ke dalam kandang:

adduser kira
jk_jailuser -m -j /opt/jail kira

Catatan: Jalankan perintah berikut di terminal dan itu akan memiliki hasil yang mirip dengan yang ditunjukkan pada tangkapan layar:

cat /etc/passwd | grep jk_chroot

Jika Anda memperhatikan bahwa tidak ada yang seperti tangkapan layar yang muncul, Anda pasti telah melakukan sesuatu yang salah. Tinggalkan komentar di sini dan saya akan dengan senang hati membantu Anda.

7. Dan voila, pengguna sudah dikurung ... tetapi, dia SANGAT dikurung, bahwa dia tidak dapat terhubung dengan SSH, karena ketika dia mencoba untuk menghubungkan server tidak membiarkannya:

8. Untuk memungkinkan pengguna terhubung, kita harus melakukan satu langkah lagi.

Kita harus mengedit file etc / passwd dari sangkar, yaitu, dalam kasus ini / opt / jail / etc / passwd , di dalamnya kita mengomentari baris pengguna yang kita buat, dan menambahkan yang baru seperti:

kira: x: 1003: 1003 :: / home / kira: / bin / bash

Artinya, kami akan memiliki file seperti ini passwd:

root: x: 0: 0: root: / root: / bin / bash
#kira: x: 1003: 1003: ,,,: / opt / jail /./ home / kira: / usr / sbin / jk_lsh
kira: x: 1003: 1003 :: / home / kira: / bin / bash

Perhatikan tanda baca duplikat dan lainnya, penting untuk tidak menghilangkannya

Setelah melakukan ini, pengguna dapat masuk tanpa masalah 😀

Dan itu saja.

Alat yang kami gunakan untuk semua ini (penjara) digunakan di backend chroot, yang sebenarnya digunakan oleh hampir semua tutorial. Namun menggunakan JailKit menjadi lebih mudah untuk mengurung 😉

Penting!: Ini telah diuji Perasan Debian (6) y Centos dan itu berhasil pada 100%, diuji di Debian Wheezy (7) dan juga berhasil, meskipun dengan detail kecil, bahwa nama pengguna tidak ditampilkan di ssh, tetapi tidak kehilangan fungsionalitas apa pun.

Jika seseorang memiliki masalah atau ada yang salah, tinggalkan sedetail mungkin, saya tidak menganggap diri saya seorang ahli tetapi saya akan membantu Anda semaksimal mungkin.


tinggalkan Komentar Anda

Alamat email Anda tidak akan dipublikasikan. Bidang yang harus diisi ditandai dengan *

*

*

  1. Penanggung jawab data: Miguel Ángel Gatón
  2. Tujuan data: Mengontrol SPAM, manajemen komentar.
  3. Legitimasi: Persetujuan Anda
  4. Komunikasi data: Data tidak akan dikomunikasikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Basis data dihosting oleh Occentus Networks (UE)
  6. Hak: Anda dapat membatasi, memulihkan, dan menghapus informasi Anda kapan saja.

  1.   v3on dijo

    maka itu akan menjadi sesuatu seperti izin di FTP? menarik

    Anda selalu menemukan semua yang Anda bahkan tidak tahu ada, seperti pengguna di mysql xD

    1.    KZKG ^ Gaara dijo

      Tidak juga, karena SSH tidak sama dengan FTP. SSH adalah shell, yaitu terminal ... Anda akan berada di terminal di komputer atau server lain, Anda dapat menjalankan perintah, memulai proses, dll ... Anda akan melakukan sebanyak yang diizinkan oleh administrator server 😉

      hahahahahaha nah ayolah, yang terjadi adalah saya lebih banyak mempublikasikan hal-hal teknis ... yaitu, saya suka mempublikasikan hal-hal kecil yang tidak begitu populer dan menarik. Sebagai contoh, saya pribadi tidak berencana untuk menerbitkan sesuatu pada hari Ubuntu baru keluar, karena saya yakin banyak yang sudah membicarakannya ... namun, apa yang Anda baca di sini di pos, bukankah itu sesuatu yang dibaca setiap hari atau tidak? 😀

      1.    Sungai Damian dijo

        Kontribusi yang sangat bagus terima kasih

        ada juga protokol yang disebut sftp yang merupakan ftp dan Secure Shell bersama-sama, meskipun tidak sama dengan menjalankan FTP melalui SSH: \

        salam

        1.    KZKG ^ Gaara dijo

          Ya ya memang, tetapi dengan mengurung SSH saya otomatis mengurung siapa pun yang terhubung menggunakan SFTP, karena seperti yang Anda katakan, SFTP sebenarnya adalah SSH + FTP 😀

          salam

  2.   giskard dijo

    Gambar tidak bisa dilihat !!! 🙁

    1.    KZKG ^ Gaara dijo

      Sedikit kesalahan saya hehe, beritahu saya sekarang 😀

      1.    giskard dijo

        Siap. Terima kasih 😀

  3.   busuk87 dijo

    sangat bagus, saya menunjukkannya ke favorit saya agar tersedia saat saya membutuhkannya lol

    1.    KZKG ^ Gaara dijo

      Terima kasih, ada pertanyaan atau masalah kami di sini untuk membantu Anda 🙂

  4.   Manual dari Sumber dijo

    Mereka memiliki Perseus di dalam kandang. http://i.imgur.com/YjVv9.png

    1.    tepat dijo

      Lol
      xD

  5.   jorgemanjarrezlerma dijo

    Apa kabar.

    Anda tahu, ini adalah topik yang saya tidak begitu paham dan saya telah memeriksanya di BSD (PC-BSD dan Ghost BSD) dan menurut saya sangat menarik dan dengan fungsionalitas yang bisa sangat berguna.

    Saya akan menyimpannya untuk referensi dan memeriksanya dengan dokumen BSD. Terima kasih untuk informasi.

    1.    KZKG ^ Gaara dijo

      Saya juga tidak terbiasa dengan ini karena saya tidak pernah berpikir untuk memberikan akses SSH ke salah satu server saya kepada seseorang haha, tetapi ketika saya merasa perlu untuk melakukannya, saya ingin memberikan akses tetapi tanpa kemungkinan bahwa secara tidak sengaja seseorang melakukan sesuatu yang tidak harus 😀

      Saya belum pernah mencoba ini di sistem BSD, jadi saya tidak bisa memberi tahu Anda bahwa ini akan berhasil, tetapi jika Anda mencari cara chroot di BSD, sesuatu akan keluar 😉

      Terima kasih atas komentar teman 🙂

      1.    Sungai Damian dijo

        Halo, saya menggunakan FreeBSD dan tentu saja jailkit sebenarnya bekerja di port ini

        Anda menginstalnya dengan perintah ini

        cd / usr / ports / shells / jailkit / && membuat instalasi bersih

        Atau dengan paket ftp

        pkg_add -r jailkit

        Hanya di konfigurasi (kira: x: 1003: 1003 :: / home / kira: / bin / bash)

        Anda perlu menambahkan tcsh atau sh, kecuali Anda telah menginstal bash dan menambahkan jalur ini

        / usr / local / bin / bash

        Dan beberapa detail lebih lanjut, di Ghost BSD ini seharusnya proses serupa bahkan lebih mudah karena berbasis FreeBSD

        salam

  6.   adiazc87.dll dijo

    Bagus, saya sedang mencarinya; apakah Anda tahu apakah itu berfungsi di Centos ??; Terima kasih.

    1.    KZKG ^ Gaara dijo

      Saya belum mengujinya di Centos, tetapi ya, itu harus berfungsi :)
      Sebenarnya saya ingat bahwa beberapa orang telah menggunakan alat yang sama ini di server Centos dan Red Hat 😉

  7.   cyberalejo17 dijo

    Terima kasih banyak. Ini langsung menuju ke bookmark.

    1.    KZKG ^ Gaara dijo

      Terima kasih telah berkomentar 🙂

  8.   MV Altamirano dijo

    "Trik" yang sangat bagus, sangat berguna untuk administrator sys. Tetapi bahkan lebih baik, ditulis dengan sangat baik. Apa lagi yang Anda inginkan.
    Terima kasih banyak untuk kontribusi.

    1.    KZKG ^ Gaara dijo

      Terima kasih, terima kasih banyak atas komentar Anda 😀
      salam

  9.   LiGNuxero dijo

    Puji SSH haha
    Saya pernah mencoba membuat sangkar untuk ssh tetapi dengan gaya tradisional dan kenyataannya adalah tidak pernah keluar dengan benar. Jika sangkar berjalan, ia bahkan tidak memiliki bash, yaitu terhubung dan tidak ada yang tersisa haha, jika cangkang berjalan, ia bisa naik dalam hierarki direktori dan lebih banyak lagi quilombos haha ​​tapi jailkit ini adalah gada, ia mengotomatiskan semua hal itu ... Sangat disarankan

    1.    KZKG ^ Gaara dijo

      haha terima kasih.
      Ya, sebenarnya SSH adalah keajaiban untuk apa yang memungkinkan kita, yang sebenarnya tidak lebih dari apa yang diizinkan oleh sistem jadi ... hore untuk Linux! … ha ha.

  10.   nwt_lazaro dijo

    Halo, ada pertanyaan!
    kenapa ganti home dari (1) / opt / jail /./ home / kira ke (2) / home / kira

    Kita harus mengedit file etc / passwd dari sangkar, yaitu dalam hal ini menjadi / opt / jail / etc / passwd, di dalamnya kita mengomentari baris pengguna yang kita buat, dan menambahkan yang baru seperti:

    kira: x: 1003: 1003 :: / home / kira: / bin / bash

    Dengan kata lain, file passwd akan terlihat seperti ini:

    root: x: 0: 0: root: / root: / bin / bash
    (1) #kira: x: 1003: 1003: ,,,: / opt / jail /./ home / kira: / usr / sbin / jk_lsh
    (2) kira: x: 1003: 1003 :: / home / kira: / bin / bash

    1.    KZKG ^ Gaara dijo

      Halo 🙂
      Jika itu tidak disetel, akses SSH tidak bekerja, pengguna mencoba untuk menyambung tetapi secara otomatis dikeluarkan ... tampaknya ada bug atau masalah dengan penerjemah yang dibawa JailKit, karena saat membuat perubahan ini menunjukkan bahwa ia menggunakan pesta normal sistem, semuanya bekerja.

      1.    Omar ramirez dijo

        Saya masih menutup sesi ssh: C
        Suse 10.1 x64

  11.   alexitu dijo

    Halo Saya telah menginstal ini dan bekerja dengan sangat baik dengan pikiran yang sangat baik di centos = D

    tetapi doa saya seperti yang lalu untuk menambahkan lebih banyak perintah misalnya untuk pengguna penjara
    tidak dapat menjalankan perintah svn co http://pagina.com/carpeta

    Maksud saya, perintah ini tidak ada untuk pengguna jail dalam hal ini seperti yang lalu untuk menambahkan perintah ini ke jail dan masih banyak lagi yang perlu saya tambahkan.

    1.    KZKG ^ Gaara dijo

      Halo apa kabarmu?
      Jika Anda ingin mengaktifkan perintah «svn» di Jail, Anda memiliki perintah jk_cp
      Itu adalah:
      jk_cp / opt / jail / / bin / svn

      Ini dengan asumsi svn binary atau executable adalah: / bin / svn
      Dan biarkan Cage / Jail menjadi: / opt / jail /

      Anda akan menemukan perintah yang bergantung pada orang lain, yaitu, jika Anda menambahkan perintah «pepe» Anda akan melihat bahwa Anda juga harus menambahkan «federico», karena «pepe» bergantung pada «federico» yang akan dijalankan, jika Anda menemukannya maka tambahkan perintah yang diperlukan dan sudah 😉

      1.    alexitu dijo

        Itu luar biasa, saya mengujinya pada saat yang sama, dan saya memberi tahu Anda apa yang terjadi, terima kasih banyak = D

        1.    KZKG ^ Gaara dijo

          Keberuntungan 😀

  12.   alexitu dijo

    Saya telah berhasil melakukan apa yang Anda perintahkan tetapi dengan cara ini dan secara otomatis telah mendeteksi saya tanpa masalah.Ini adalah perintah yang saya gunakan untuk dapat menggunakan subverisi.

    jk_cp -j / home / jaul svn

    Saya menggunakan centos xP dan mungkin berbeda tapi bagus
    sekarang saya ingin tahu library mana yang seperti svn tetapi sekarang saya ingin mengkompilasi karena katakanlah saya perlu menggunakan perintah seperti ini

    ./configure dan tandai kesalahan

    ./configure.lineno: baris 434: expr: perintah tidak ditemukan

    Saya tidak akan tahu perpustakaan mana yang telah saya instal apa itu mysql dan yang lainnya jika dikompilasi di luar penjara tetapi tidak di dalam jaui.

    maaf untuk ketidaknyamanannya.

    ps: Anda harus memasukkan ke dalam panduan apa yang saya katakan tentang perintah yang digunakan dalam centos =) salam.

    1.    KZKG ^ Gaara dijo

      Lihat, ketika saya memberi tahu Anda bahwa itu tidak dapat menemukan perintah (seperti di sini) hal pertama adalah menemukan perintah:

      whereis expr

      Setelah ditemukan (/ usr / bin / expr dan / usr / bin / X11 / expr) kita salin ke Jail dengan jk_cp 😉
      Coba ini untuk melihat.

      Ya, saya sudah mengedit posting dan menambahkan bahwa itu berfungsi di Centos 😀

  13.   adiazc87.dll dijo

    Terima kasih banyak (:

  14.   Isa dijo

    Terima kasih atas masukannya…

  15.   karma dijo

    Hai apa kabar?

  16.   djfenixchile.dll dijo

    Sial! Dari Chili, salamku. Anda sama kentutnya dengan saya! LOL !. Pelukan. Pos Anda sangat membantu saya!

    1.    KZKG ^ Gaara dijo

      Terima kasih atas komentar Anda 😀

  17.   Daniel PZ dijo

    Terima kasih banyak atas kirimannya, itu banyak membantu saya, tapi sayangnya di bagian

    //////////////////////////////////////////////// //// //////////////////////////////////////////// //////// //////////////////////
    Kita harus mengedit file etc / passwd dari sangkar, yaitu dalam hal ini menjadi / opt / jail / etc / passwd, di dalamnya kita mengomentari baris pengguna yang kita buat, dan menambahkan yang baru seperti:

    kira: x: 1003: 1003 :: / home / kira: / bin / bash

    Dengan kata lain, file passwd akan terlihat seperti ini:

    root: x: 0: 0: root: / root: / bin / bash
    #kira: x: 1003: 1003: ,,,: / opt / jail /./ home / kira: / usr / sbin / jk_lsh
    kira: x: 1003: 1003 :: / home / kira: / bin / bash
    //////////////////////////////////////////////// // ////////////////////////////////////////

    Itu menyebabkan kesalahan yang sama, maksud saya, saya membiarkannya apa adanya, dan itu mem-boot saya dari terminal ketika saya terhubung ,,, .., saya mengomentari baris dan menambahkan satu lagi memodifikasinya seperti yang Anda tunjukkan, dan itu juga boot saya….

    Instal versi terbaru "jailkit-2.16.tar", bahkan buat skrip untuk menghemat waktu, ini dia di bawah ini:

    //////////////////////////////////////////////// // ////////////////////////////////////////////
    #! / bin / bash
    wget http://olivier.sessink.nl/jailkit/jailkit-2.16.tar.gz
    tar -zxvf jailkit-2.16.tar.gz
    cd jailkit-2.16
    . / Configure
    membuat
    make install
    keluar
    ////////////////////////////////////////////////////// ///////////////////////////

    Jelas pertama mereka login sebagai "root" ...

    Bagaimana saya bisa mengatasi kesalahan teman ????

    1.    Daniel PZ dijo

      Maaf, saya sudah mendapatkannya, saya telah membuat kesalahan tentang folder Beranda, tetapi saya sangat ragu, bagaimana saya bisa mendapatkannya agar saya dapat menjalankan perintah "layar", saya mencoba menggunakannya (di pengguna yang dikurung) , tetapi tidak berhasil ... Hal lainnya adalah ,, bagaimana cara agar pengguna yang dikurung ini menjalankan program wine pada exe yang baru saja dia masukkan ke dalam rumahnya ,, bagaimana jadinya?

  18.   Leonel dijo

    halo, tuto yang sangat bagus! Saya baru mengenal lingkungan ini, saya punya pertanyaan ...
    Untuk keamanan, saya lihat di root ada banyak folder, apakah perlu? Saya hanya ingin dia memiliki akses ke foldernya (ftp-upload dan ssh-execute) untuk menjalankan aplikasi, folder apa yang bisa dia hapus dari root? atau apakah itu tidak berbahaya bagi saya? Saya menghargai bantuan Anda sebelumnya, salam!

  19.   KubaMerah dijo

    @ KZKG ^ Gaara, syukurlah Anda menempatkan kesalahan wheezy tetapi dengan versi jailkit-2.16.tar.gz yang Anda sarankan mereka memperbaikinya

    http://olivier.sessink.nl/jailkit/jailkit-2.16.tar.gz

  20.   ganggang dijo

    Saya rasa saya akan meneruskannya ke PDF, jojo .. ke sangkar dan terima kasih ya 😀

  21.   samuel dijo

    Salam teman, saya punya pertanyaan:

    Misalkan kita memiliki pengguna bernama "test".

    Pertanyaannya adalah, file /home/test/.ssh/known_hosts yang terletak di rumah pengguna itu, apakah itu file yang sama atau tidak dikurung pengguna?

  22.   Richard dijo

    Coba ini. Anda dapat dengan metode ini membatasi navigasi ke rumah lain dari pengguna lain.

  23.   TZBKR dijo

    Pertama-tama, terima kasih atas kirimannya! Itu sangat berguna bagi saya; tetapi saya memiliki dua keraguan, dan ini muncul dari skenario yang saya miliki:

    Saya perlu membuat N pengguna dengan akses independen dan pribadi ke rumah mereka, setiap pengguna hanya dapat mengakses rumah mereka untuk menyimpan, mengubah, dan menghapus file yang ada di sana tanpa harus berpindah-pindah ke orang lain (saya sudah mengerti poin ini). Itu tidak membutuhkan akses melalui ssh.

    1. Apakah Anda harus membuat sangkar untuk setiap pengguna, atau adakah cara untuk memiliki pengguna yang berbeda dalam sangkar yang sama tetapi masing-masing memiliki direktori "pribadi"?

    2. Saat mengakses (melalui klien FTP) semua direktori yang dibuat oleh alat ditampilkan, apakah ada cara untuk menunjukkan folder bersih? Atau apakah saya melakukan sesuatu yang salah selama ini?

  24.   eduardlh dijo

    Tutorial yang bagus! Ini sangat membantu saya, saya mengujinya dengan versi 2.17 di Ubuntu 14.04 dan berfungsi dengan sangat baik. Sekarang saya memiliki tantangan berikut, setelah pengguna dikurung sehingga dia tidak dapat pindah ke jalur mana pun, saya ingin dia hanya dapat melihat konten file yang ada di jalur lain. Saya mencoba dengan tautan simbolis tetapi ketika mencoba membuat ekor atau kucing ke file ini memberi tahu saya bahwa itu tidak ada meskipun ketika mengakses dengan pengguna saya dapat mencantumkan file itu di rumah sangkar.

    Jika Anda dapat membantu saya, saya akan sangat berterima kasih, terima kasih sebelumnya

  25.   yas dijo

    Halo, saya telah mengikuti seluruh manual dan ketika masuk dengan ssh itu menutup secara otomatis, jejak:

    4 Des 19:20:09 toby sshd [27701]: Sandi yang diterima untuk pengujian dari port 172.16.60.22 62009 ssh2
    4 Des 19:20:09 toby sshd [27701]: pam_unix (sshd: session): sesi dibuka untuk uji pengguna oleh (uid = 0)
    4 Des 19:20:09 toby jk_chrootsh [27864]: sekarang memasuki jail / opt / jail untuk uji pengguna (1004) dengan argumen
    4 Des 19:20:09 toby sshd [27701]: pam_unix (sshd: session): sesi ditutup untuk pengujian pengguna

    terima kasih

  26.   Omar ramirez dijo

    Tidak ketika saya melakukan langkah terakhir untuk memberikan akses ssh kepada pengguna, itu tetap menutup koneksi 🙁

  27.   Benj dijo

    Mungkinkah dari pengguna yang dibuat ini untuk mengubah ke root? Anda -root? itu tidak memungkinkan saya. Bagaimana jadinya? Terima kasih atas bantuan Anda

  28.   Slevin dijo

    Terima kasih banyak untuk tutorialnya, saya membutuhkannya untuk membuat pengguna yang dapat menggunakan clonezilla untuk membuat gambar dan menyalinnya ke server asing tetapi tidak dapat berkerumun di mana pun dia mau

  29.   Mauro dijo

    Baik! Saya ingin tahu sesuatu.

    Apakah mungkin untuk masuk sebagai ROOT menggunakan FTP dan memiliki izin ini, untuk mengelolanya dengan FTP dan bukan dengan SSH? Katakanlah seperti membuat koneksi, gaya terowongan atau semacamnya. Bagaimana cara melakukannya? Konfigurasi file VSFTPD?

    Terima kasih banyak!