Kako zatvoriti korisnike koji se povezuju putem SSH-a

U našem svijetu postoji mnogo, puno tajni ... Iskreno, mislim da ne mogu naučiti dovoljno da znam većinu njih, a to daje jednostavna činjenica da nam Linux omogućuje toliko, ali toliko stvari da je to teško ih je znati sve.

Ovaj put ću vam objasniti kako učiniti nešto izuzetno korisno, nešto što su morali učiniti mnogi mrežni ili sistemski administratori, a bilo nam je teško jednostavno ne pronaći prilično jednostavan način da to postignemo:

Kako umrežiti korisnike koji se povezuju putem SSH-a

kavez? … WTF!

Da. Ako iz bilo kojeg razloga moramo svom računalu (ili poslužitelju) omogućiti SSH pristup našem prijatelju, uvijek moramo voditi računa o sigurnosti i stabilnosti svog računala ili poslužitelja.

Događa se da smo nedavno željeli Perseusu SSH omogućiti pristup našem poslužitelju, ali ne možemo mu dati bilo kakav pristup jer tamo imamo stvarno osjetljive konfiguracije (sastavili smo mnoge stvari, pakete koje smo instalirali pojedinačno itd.) I ako netko tko ne Bez obzira pokušavam li napraviti i najmanju promjenu na poslužitelju, postoji mogućnost da će sve propasti hehe.

Zatim, Kako stvoriti korisnika s izuzetno ograničenim privilegijama, toliko da ne može izaći ni iz svog kaveza (doma)?

Krenimo s preuzimanjem zatvorski komplet, alat koji će nam to omogućiti:

Sve sljedeće naredbe pokreću se kao root

1. Prvo moramo preuzeti naš JailKit poslužitelj.

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

2. Zatim moramo raspakirati paket i unijeti mapu koja se upravo pojavila:

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

3. Kasnije smo nastavili kompajlirati i instalirati softver (Ostavljam vam snimak zaslona):

./configure
make
make install

. / Konfiguracija

napraviti

make install

4. Spremno, ovo je već instalirano. Sada nastavljamo s stvaranjem kaveza koji će sadržavati buduće korisnike, u mom slučaju sam ga kreirao u: / opt / i nazvao ga "zatvor", pa bi put bio: / opt / zatvor :

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

5. Kavez je već stvoren, ali nema sve potrebne alate kako bi budući korisnici koji će biti tamo mogli raditi bez problema. Mislim, do sada je kavez stvoren, ali to je samo prazan okvir. Sada ćemo u kavez staviti neke alate koji će trebati korisnicima u kavezu:

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. Spremno, kavez postoji i već ima alate koje bi korisnik mogao koristiti ... sada nam treba samo ... korisnik! Stvorimo korisnika Kira i stavit ćemo ga u kavez:

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

Napomena: Izvršite sljedeću naredbu u terminalu i ona bi trebala imati rezultat sličan onome prikazanom na snimci zaslona:

cat /etc/passwd | grep jk_chroot

Ako primijetite da se ne pojavljuje ništa poput snimke zaslona, ​​sigurno ste učinili nešto pogrešno. Ostavite komentar ovdje i rado ću vam pomoći.

7. I voila, korisnik je već u kavezu ... ali, TAKO je u kavezu, da se ne može povezati SSH-om, jer kada se pokušava povezati, poslužitelj mu to ne dopušta:

8. Da bismo omogućili korisniku povezivanje, moramo napraviti još jedan korak.

Moramo urediti datoteku etc / passwd kaveza, to jest, u ovom slučaju bi to bilo / opt / jail / etc / passwd , u njemu komentiramo korisničku liniju koju smo stvorili i dodajemo novu poput:

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

Odnosno, imali bismo ovakav spis 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

Dobro primijetite duplikate interpunkcijskih znakova i ostalih, važno je da ne ispustite nijedan od njih 🙂

Nakon toga korisnik može bez problema ući 😀

I to je sve.

Alat koji koristimo za sve ovo (zatvorski komplet) koristiti u pozadini chroot, što je zapravo ono što se koriste gotovo svi vodiči. Međutim, pomoću JailKita postaje jednostavnije smjestiti u kavez 😉

Važno!: Ovo je testirano na Debian stiskanje (6) y centi i uspjelo je do 100%, testiran u Debianu Wheezy (7), a također je uspio, iako s malim detaljima, da nadimak korisnika nije prikazan u ssh-u, ali ne gubi nikakvu funkcionalnost.

Ako netko ima problem ili nešto nije u redu, ostavite što više detalja, ne smatram se stručnjakom, ali pomoći ću vam koliko mogu.


Ostavite svoj komentar

Vaša email adresa neće biti objavljen. Obavezna polja su označena s *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obvezi.
  5. Pohrana podataka: Baza podataka koju hostira Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.

  1.   v3on dijo

    onda bi to bilo nešto poput dozvola u FTP-u? zanimljiv

    uvijek izađete sa svime za što niste ni znali da postoji, poput korisnika u mysql xD

    1.    KZKG ^ Gaara dijo

      Ne baš, jer SSH nije isto što i FTP. SSH je ljuska, odnosno terminal ... bili biste u terminalu na drugom računalu ili poslužitelju, mogli biste izvršavati naredbe, pokretati procese itd. ... učinili biste onoliko koliko vam administrator poslužitelja dozvoli 😉

      hahahahahaha ne, hajde, događa se to što objavljujem više tehničkih stvari ... odnosno volim objavljivati ​​sitnice koje nisu toliko popularne i zanimljive. Na primjer, osobno ne planiram objaviti nešto na dan kada novi Ubuntu izađe, jer vjerujem da će mnogi o tome već razgovarati ... međutim, ono što ste pročitali ovdje u postu, nije li nešto što se čita svaki dan ili ne? 😀

      1.    Damian rivera dijo

        Vrlo dobri doprinosi hvala

        postoji i protokol zvan sftp koji je zajedno ftp i Secure Shell, iako to nije isto kao pokretanje FTP-a preko SSH: \

        pozdravi

        1.    KZKG ^ Gaara dijo

          Da da zaista, ali stavljanjem SSH u kavez automatski postavljam kaveza u mrežu onoga tko se poveže pomoću SFTP-a, jer kao što kažete, SFTP je zapravo SSH + FTP 😀

          pozdravi

  2.   giskard dijo

    Slike se ne mogu vidjeti !!! 🙁

    1.    KZKG ^ Gaara dijo

      Moja mala greška hehe, reci mi odmah 😀

      1.    giskard dijo

        Spreman. Hvala 😀

  3.   Truleži87 dijo

    vrlo dobro, usmjeravam ga prema svojim favoritima da bude dostupan kad mi zatreba, hahaha

    1.    KZKG ^ Gaara dijo

      Hvala vam, bilo kakvih pitanja ili problema, ovdje smo da vam pomognemo 🙂

  4.   Priručnik o izvoru dijo

    Imaju Perzeja u kavezu. http://i.imgur.com/YjVv9.png

    1.    odgovarajuće dijo

      LOL
      xD

  5.   jorgemanjarrezlerma dijo

    Kako si.

    Znate, to je tema s kojom nisam dobro upoznat i koju sam provjeravao u BSD-u (PC-BSD i Ghost BSD) i smatram je vrlo zanimljivom i s funkcionalnostima koje mogu biti vrlo korisne.

    Zadržat ću ga za referencu i provjeriti u skladu s BSD dokumentom. Zahvaljujem na informaciji.

    1.    KZKG ^ Gaara dijo

      Ni ja nisam bio upoznat s ovim, jer nikada nisam mislio nekome dati SSH pristup bilo kojem od mojih poslužitelja haha, ali kad sam ustanovio da je to potrebno, želio sam dati pristup, ali bez mogućnosti da netko zabunom učini nešto što ne mora 😀

      Nikad ovo nisam isprobao na BSD sustavima, pa vam ne mogu reći da će to uspjeti, ali ako tražite kako chrootati na BSD-u, trebalo bi nešto izaći 😉

      Hvala na komentaru prijatelju 🙂

      1.    Damian rivera dijo

        Pozdrav, koristim FreeBSD i, naravno, jailkit zapravo radi ovaj u lukama

        Instalirate ga ovom naredbom

        cd / usr / ports / shells / jailkit / && čine instalaciju čistom

        Ili ftp paketom

        pkg_add -r jailkit

        Samo u konfiguraciji (kira: x: 1003: 1003 :: / home / kira: / bin / bash)

        Morate dodati tcsh ili sh, osim ako niste instalirali bash i dodajte ovu stazu

        / usr / local / bin / bash

        I još nekoliko detalja, u Ghost BSD-u trebao bi biti sličan postupak još jednostavniji jer se temelji na FreeBSD-u

        pozdravi

  6.   adiazc87 dijo

    Super, tražio sam to; znate li da li to radi u Centosu ?? Hvala.

    1.    KZKG ^ Gaara dijo

      Nisam ga testirao na Centosu, ali da, trebalo bi raditi :)
      Zapravo, sjećam se da je nekoliko njih koristilo isti alat na poslužiteljima Centos i Red Hat

  7.   cyberalejo17 dijo

    Hvala puno. Ide izravno na oznake.

    1.    KZKG ^ Gaara dijo

      Hvala vam što ste komentirali 🙂

  8.   MV Altamirano dijo

    Vrlo dobar "trik", super koristan za sys administratore. Ali još bolje, izvrsno dobro napisano. Što biste još mogli poželjeti.
    Puno vam hvala na doprinosu.

    1.    KZKG ^ Gaara dijo

      Hvala, puno hvala na komentaru 😀
      pozdravi

  9.   LiGNUxer dijo

    Pohvalite SSH haha
    Jednom sam pokušao napraviti kavez za ssh, ali u tradicionalnom stilu i istina je da nikad nije izašao ispravno. Ako je kavez bio pokrenut, nije imao ni basha, odnosno povezao se i nije ostalo ništa haha, ako je ljuska radila, mogla bi se popeti u hijerarhiju direktorija i puno više quilomboha haha, ali ovaj jailkit je buzdovan, automatizira sve te stvari ... Toplo preporučljivo

    1.    KZKG ^ Gaara dijo

      haha hvala.
      Da, zapravo SSH je sve čudo za ono što nam omogućuje, što zapravo nije ništa više od onoga što sustav dopušta pa ... ura za Linux! ... haha.

  10.   nwt_lazaro dijo

    Pozdrav, pitanje!
    zašto promijeniti dom iz (1) / opt / jail /./ home / kira u (2) / home / kira

    Moramo urediti datoteku etc / passwd kaveza, to jest, u ovom slučaju to bi bilo / opt / jail / etc / passwd, u njoj komentiramo korisničku liniju koju smo stvorili i dodamo novu poput:

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

    Drugim riječima, datoteka passwd izgledala bi ovako:

    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

      Pozdrav 🙂
      Ako to nije postavljeno, SSH pristup ne radi, korisnik se pokušava povezati, ali se automatski izbacuje ... čini se da je riječ o grešci ili problemu s interpretatorom koji JailKit donosi, jer prilikom uvođenja ove promjene koja ukazuje da koristi normalni bash sustava, sve funkcionira.

      1.    Omar ramirez dijo

        Još uvijek zatvaram ssh sesiju: ​​C
        Suse 10.1 x64

  11.   alexitu dijo

    Pozdrav, ovo sam instalirao i izvrsno funkcionira u centos = D

    ali moj je dua kao prije da dodam više naredbi, na primjer korisniku zatvora
    ne može pokrenuti svn co naredbu http://pagina.com/carpeta

    Mislim, ova naredba ne postoji za korisnike zatvora u ovom slučaju kao prije, da bi te naredbe dodali u zatvor, a ima još mnogo toga što trebam dodati.

    1.    KZKG ^ Gaara dijo

      Bok, kako si?
      Ako želite omogućiti naredbu «svn» u zatvoru, imate naredbu jk_cp
      To je:
      jk_cp / opt / jail / / bin / svn

      Ovo pod pretpostavkom da je svn binarni ili izvršni: / bin / svn
      I neka Kavez / zatvor bude: / opt / jail /

      Pronaći ćete naredbe koje ovise o drugima, odnosno ako dodate naredbu «pepe», vidjet ćete da morate dodati i «federico», jer «pepe» ovisi o «federico» koji će se izvršiti, ako to pronađete onda dodajte potrebne naredbe i već 😉

      1.    alexitu dijo

        To je izvrsno, trenutno ga testiram i kažem vam što se dogodilo, puno hvala = D

        1.    KZKG ^ Gaara dijo

          Sreća 😀

  12.   alexitu dijo

    Uspio sam učiniti ono što ste mi rekli, ali na ovaj način i automatski me otkrio bez ikakvih problema. Ovo je bila naredba kojom sam mogao koristiti subverziju.

    jk_cp -j / home / jaul svn

    Pa koristim centos xP i možda je drugačiji, ali dobar
    sada bih želio znati koje su to biblioteke poput svn, ali sada bih volio kompajlirati jer recimo da trebam koristiti takvu naredbu

    ./konfiguriraj i označi pogrešku

    ./configure.lineno: redak 434: expr: naredba nije pronađena

    Ne bih znao koje su biblioteke koje sam već instalirao ono što je mysql i druge ako se kompilira izvan zatvora, ali ne i unutar jauija.

    Oprostite na neugodnosti.

    ps: trebali biste u vodič staviti ono što sam vam rekao o naredbi korištenoj u pozdravu centos =).

    1.    KZKG ^ Gaara dijo

      Gledajte, kad vam kažem da ne može pronaći naredbu (kao ovdje), prva stvar je pronaći naredbu:

      whereis expr

      Jednom pronađeni (/ usr / bin / expr i / usr / bin / X11 / expr) kopiramo ga u zatvor sa jk_cp 😉
      Pokušajte ovo da vidite.

      Da, već uređujem post i dodajem da to radi u Centosu 😀

  13.   adiazc87 dijo

    Veliko hvala (:

  14.   Isus dijo

    Hvala na unosu ...

  15.   karma dijo

    Bok, kako si?

  16.   djfenixchile dijo

    Jebi se frajeru! Iz Čilea moj pozdrav. Prdan si kao i ja! LOL!. Zagrljaji. Vaša objava mi je bila od velike pomoći!

    1.    KZKG ^ Gaara dijo

      Hvala na komentaru 😀

  17.   Daniel PZ dijo

    Hvala vam puno na postu, puno mi je pomogao, ali nažalost u dijelu

    //////////////////////////////////////////////////// //// //////////////////////////////////////////////// //////// ////////////////////////
    Moramo urediti datoteku etc / passwd kaveza, to jest, u ovom slučaju to bi bilo / opt / jail / etc / passwd, u njoj komentiramo korisničku liniju koju smo stvorili i dodamo novu poput:

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

    Drugim riječima, datoteka passwd izgledala bi ovako:

    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
    //////////////////////////////////////////////////// // //////////////////////////////////////////////

    To uzrokuje istu pogrešku, mislim, ostavljam je takvu kakva jest i podiže me s terminala kad se povežem ,,, .., komentiram liniju i dodam još jednu modificirajući kako vi naznačite, a također također čizme ...

    Instalirajte najnoviju verziju "jailkit-2.16.tar", čak i stvorite skriptu kako biste uštedjeli vrijeme, evo dolje:

    //////////////////////////////////////////////////////// //////////////////////////////////////////////////
    #! / bin / bash
    wget http://olivier.sessink.nl/jailkit/jailkit-2.16.tar.gz
    tar -zxvf jailkit -2.16.tar.gz
    cd jailkit-2.16
    . / Konfiguracija
    napraviti
    make install
    izlaz
    //////////////////////////////////////////////////// // ///////////////////////////////

    Očito se prvo prijavljuju kao "root" ...

    Kako bih mogao riješiti pogrešku prijatelju ????

    1.    Daniel PZ dijo

      Žao mi je, već sam shvatio, pogriješio sam u vezi s mapom Početna, ali imam veliku sumnju, kako mogu to dobiti da mi dozvoli izvršavanje naredbe "screen", pokušavam je koristiti (u kaveznom korisniku) , ali ne uspijeva ... Druga stvar je to, kako mogu natjerati ovog korisnika u kavezu da vodi vinski program na exeu koji je upravo stavio u svoj dom, kako bi to bilo?

  18.   lionel dijo

    bok, jako dobar tuto! Ja sam nov u tim sredinama, imam pitanje ...
    Što se tiče sigurnosti, vidim da u svom korijenu ima mnogo mapa, jesu li potrebne? Samo želim da ima pristup svojoj mapi (ftp-upload i ssh-execute) za pokretanje aplikacije, koje bi mape mogao izbrisati iz korijena? ili mi ne predstavlja nikakvu opasnost? Cijenim vašu pomoć unaprijed, pozdrav!

  19.   CubaRed dijo

    @ KZKG ^ Gaara, hvala Bogu da ste stavili greškavu grešku, ali s verzijom jailkit-2.16.tar.gz za koju ste sugerirali da su je popravili

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

  20.   Algave dijo

    Mislim da ću ga proslijediti u PDF, jojo .. u kavez i hvala wn 😀

  21.   Samuel dijo

    Pozdrav prijatelju, imam pitanje:

    Pretpostavimo da imamo korisnika pod nazivom "test".

    Pitanje je, datoteka /home/test/.ssh/known_hosts koja se nalazi u kući tog korisnika, je li to ista datoteka ili nije korisnik u kavezu?

  22.   Richarta dijo

    Pokušaj ovo. Ovom metodom možete ograničiti navigaciju na drugi dom ostalih korisnika.

  23.   TZBKR dijo

    Prije svega, hvala na postu! Jako mi je korisno; ali imam dvije sumnje, a one proizlaze iz scenarija koji imam:

    Moram stvoriti N korisnika s neovisnim i privatnim pristupom njihovom domu, svaki korisnik može pristupiti svom domu samo za deponiranje, izmjenu i brisanje datoteka koje se tamo nalaze, bez potrebe za premještanjem drugima (to već imam). Ne zahtijeva pristup putem ssh-a.

    1. Morate li stvoriti kavez za svakog korisnika ili postoji način da različiti korisnici budu u istom kavezu, ali svaki ima svoj "privatni" direktorij?

    2. Kada se pristupaju (putem FTP klijenta) prikazuju svi direktoriji stvoreni alatom, postoji li način da se mapa prikaže na čist način? Ili sam usput nešto pogriješio?

  24.   eduardlh dijo

    Izvrsna lekcija! To mi je bilo od velike pomoći, testiram ga s verzijom 2.17 na Ubuntu 14.04 i djeluje jako dobro. Sada imam sljedeći izazov, nakon što se korisnik stavi u kavez tako da se ne može premjestiti ni na jednu stazu, želim da može vidjeti samo sadržaj datoteke koja se nalazi na drugoj putanji. Pokušao sam sa simboličnom vezom, ali kada pokušavam napraviti rep ili mačku za ovu datoteku, kaže mi da ona ne postoji, iako mogu pri pristupu s korisnikom tu datoteku navesti u kući kaveza.

    Ako biste mi mogli pomoći, bio bih vam zahvalan unaprijed

  25.   Yas dijo

    Pozdrav, slijedio sam cijeli priručnik i prilikom prijave ssh-om automatski se zatvara, tragovi:

    4. prosinca 19:20:09 toby sshd [27701]: Prihvaćena lozinka za test s porta 172.16.60.22 port 62009 ssh2
    4. prosinca 19:20:09 toby sshd [27701]: pam_unix (sshd: session): sesiju je otvorio za korisnički test korisnik (uid = 0)
    4. prosinca 19:20:09 toby jk_chrootsh [27864]: sada ulazi u zatvor / opt / zatvor za test korisnika (1004) s argumentima
    4. prosinca 19:20:09 toby sshd [27701]: pam_unix (sshd: session): sesija zatvorena za korisnički test

    hvala

  26.   Omar ramirez dijo

    Ne kad učinim zadnji korak davanju ssh pristupa korisniku, on i dalje zatvara vezu 🙁

  27.   BENJ dijo

    Može li ovaj stvoreni korisnik omogućiti promjenu u root? tvoj -korijen? ne dopušta mi. Kako bi bilo? Hvala na pomoći

  28.   Slevin dijo

    Puno vam hvala na vodiču, trebao mi je kako bih stvorio korisnika koji bi mogao koristiti clonezilla za izradu slike i kopiranje na strani poslužitelj, ali koji se nije mogao rojiti gdje god je želio

  29.   Mauro dijo

    Dobro! Trebao bih nešto znati.

    Je li moguće ući kao ROOT koristeći FTP i imajući ta dopuštenja, upravljati njime putem FTP-a, a ne pomoću SSH-a? Recimo poput stvaranja veze, stila tunela ili nečeg sličnog. Kako se to radi? Konfiguriranje VSFTPD datoteke?

    Puno ti hvala!