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ćava toliko, ali toliko stvari da je to teško nam je da ih sve poznajemo.

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 kavezirati korisnike koji se povezuju putem SSH-a

kavez? … WTF!

Da. Ako iz bilo kojeg razloga moramo svom računaru (ili serveru) omogućiti SSH pristup našem prijatelju, uvijek moramo voditi računa o sigurnosti i stabilnosti svog računara ili servera.

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

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

Počnimo s preuzimanjem jailkit, alat koji će nam omogućiti ovo:

Sve naredbe naredbe se izvode kao root

1. Prvo moramo preuzeti naš JailKit server.

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 sa kompajliranjem i instaliranjem softvera (Ostavljam vam snimak ekrana):

./configure
make
make install

./configure napraviti napravi instalaciju

4. Spremno, ovo je već instalirano. Sada nastavljamo sa 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 prazna kutija. Sada ćemo u kavez staviti neke alate koji će biti potrebni 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 snimku zaslona:

cat /etc/passwd | grep jk_chroot Ako primijetite da se ne pojavljuje ništa poput snimka 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 putem SSH-a, jer kada pokušava povezati server mu ne dopušta:

8. Da bismo omogućili korisniku da se poveže, moramo napraviti još jedan korak.

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

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

Odnosno, imali bismo ovakvu datoteku 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 (jailkit) koristite u pozadini chroot, što je zapravo ono što koriste gotovo svi vodiči. Međutim, koristeći JailKit postaje jednostavnije smjestiti u kavez 😉

Važno!: Ovo je testirano na Debian stiskanje (6) y Centos i uspjelo je na 100%, testiran u Debianu Wheezy (7), a radio je, 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.


Sadržaj članka pridržava se naših principa urednička etika. Da biste prijavili grešku, kliknite ovdje.

50 komentara, ostavi svoj

Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  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 obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.

  1.   v3on rekao je

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

    uvijek smislite sve za što niste ni znali da postoji, poput korisnika u mysql xD

    1.    KZKG ^ Gaara rekao je

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

      hahahahahaha ne, hajde, ono što se događa je da objavim više tehničkih stvari ... to jest, 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 svako dan ili ne? 😀

      1.    Damian rivera rekao je

        Dobar doprinos, hvala

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

        Saludos

        1.    KZKG ^ Gaara rekao je

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

          Saludos

  2.   Giskard rekao je

    Slike nisu vidljive !!! 🙁

    1.    KZKG ^ Gaara rekao je

      Moja mala greška hehe, reci mi odmah 😀

      1.    Giskard rekao je

        Spremni. Hvala 😀

  3.   Rots87 rekao je

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

    1.    KZKG ^ Gaara rekao je

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

  4.   Manuel de la Fuente rekao je

    U kavezu imaju Perzeja. http://i.imgur.com/YjVv9.png

    1.    pravi rekao je

      lol
      xD

  5.   jorgemanjarrezlerma rekao je

    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 sa funkcionalnostima koje mogu biti vrlo korisne.

    Zadržat ću ga za referencu i provjeriti u odnosu na BSD dokument. Hvala na informacijama.

    1.    KZKG ^ Gaara rekao je

      Ni ja nisam bio upoznat s ovim, jer nikada nisam razmišljao da nekome SSH dam pristup bilo kojem od mojih servera haha, ali kad sam ustanovio da je to potrebno, želio sam dati pristup, ali bez mogućnosti da neko greškom učini nešto to nije moralo 😀

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

      Hvala na komentaru prijatelju 🙂

      1.    Damian rivera rekao je

        Pozdrav, koristim FreeBSD i, naravno, jailkit u stvari ovo radi 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 putanju

        / usr / local / bin / bash

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

        Saludos

  6.   adiazc87 rekao je

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

    1.    KZKG ^ Gaara rekao je

      Nisam ga testirao na Centosu, ali da, trebalo bi da uspije :)
      Zapravo se sjećam da je nekoliko njih koristilo isti alat na Centos i Red Hat serverima 😉

  7.   cyberalejo17 rekao je

    Puno vam hvala. Ide direktno na oznake.

    1.    KZKG ^ Gaara rekao je

      Hvala vam što ste komentirali 🙂

  8.   MV Altamirano rekao je

    Vrlo dobar "trik", super koristan za sys administratore. Ali još bolje, odlično napisano. Šta više možete poželjeti.
    Puno vam hvala za doprinos.

    1.    KZKG ^ Gaara rekao je

      Hvala vam, puno vam hvala na komentaru 😀
      Saludos

  9.   LiGNUxero rekao je

    Pohvalite SSH haha
    Jednom sam pokušao napraviti kavez za ssh, ali u tradicionalnom stilu i istina je da nikad nije izašao pravilno. 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 još puno quilomboa haha ali ovaj jailkit je buzdovan, on automatizira sve te stvari ... toplo preporučljivo

    1.    KZKG ^ Gaara rekao je

      haha hvala.
      Da, zapravo SSH je divan zbog onoga što nam omogućava, što zapravo nije ništa više od onoga što sistem dopušta pa ... ura za Linux! ... haha.

  10.   nwt_lazaro rekao je

    Zdravo, 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 kreirali i dodamo novu poput:

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

    Drugim riječima, passwd datoteka bi izgledala 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 rekao je

      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 ukazuje na to da koristi normalni bash sistema, sve funkcionira.

      1.    Omar ramirez rekao je

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

  11.   Alexitu rekao je

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

    ali moj dua je 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 dodali ove naredbe u zatvor i ima još mnogo toga što moram dodati.

    1.    KZKG ^ Gaara rekao je

      Zdravo, 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. Već 😉

      1.    Alexitu rekao je

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

        1.    KZKG ^ Gaara rekao je

          Sreća 😀

  12.   Alexitu rekao je

    Uspio sam učiniti ono što ste mi rekli, ali na ovaj način i automatski to je prepoznalo bez ikakvih problema. Ovo je bila naredba koju sam koristio za 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 grešku

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

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

    izvinite na neugodnosti.

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

    1.    KZKG ^ Gaara rekao je

      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 rekao je

    Veliko hvala (:

  14.   Isus rekao je

    Hvala na unosu…

  15.   karma rekao je

    Zdravo, kako si?

  16.   djfenixchile rekao je

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

    1.    KZKG ^ Gaara rekao je

      Hvala na komentaru 😀

  17.   Daniel PZ rekao je

    Puno vam hvala na postu, puno mi je pomogao, ali nažalost dijelom

    //////////////////////////////////////////////////// // ////////////////////////////////////////////////// //// ////////////////////////
    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 kreirali i dodamo novu poput:

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

    Drugim riječima, passwd datoteka bi izgledala 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 mi uzrokuje istu grešku, mislim, ostavljam je takvu kakva jest i pokreće me s terminala prilikom povezivanja ,,, .., 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 kreirajte skriptu kako biste uštedjeli vrijeme, ovdje je ispod:

    //////////////////////////////////////////////////// // //////////////////////////////////////////////////
    #! / 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
    napraviti
    napravi instalaciju
    izlaz
    //////////////////////////////////////////////////// // /////////////////////////////

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

    Kako mogu riješiti grešku prijatelju ????

    1.    Daniel PZ rekao je

      Žao mi je, već sam je shvatio, pogriješio sam u vezi sa početnom mapom, ali imam veliku sumnju, kako mogu to dobiti da mi dozvoli izvršenje naredbe "screen", pokušavam je koristiti (u kaveznom korisniku) , ali ne ide ... Druga stvar je ta, kako da nateram ovog korisnika u kavezu da vodi vinski program na exeu koji je upravo stavio u svoju kuću, kako bi to bilo?

  18.   leonel rekao je

    zdravo, jako dobar tuto! Ja sam nov u ovim 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) kako bi mogao pokrenuti aplikaciju, koje bi mape mogao izbrisati iz root-a? ili mi ne predstavlja nikakvu opasnost? Cijenim vašu pomoć unaprijed, pozdrav!

  19.   CubaRed rekao je

    @ KZKG ^ Gaara, hvala Bogu da ste stavili greškavu grešku, ali sa 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.   Algabe rekao je

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

  21.   Samuilo rekao je

    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, da li je ista datoteka ova korisnik ili nije u kavezu?

  22.   Richart rekao je

    Probati ovaj. Ovom metodom moguće je ograničiti navigaciju na drugi dom ostalih korisnika.

  23.   TZBKR rekao je

    Prije svega, hvala na postu! To mi je vrlo 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, modificiranje i brisanje datoteka koje se tamo nalaze, bez potrebe za premještanjem drugih (već imam to mišljenje). Ne treba 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 kreirani pomoću alata, postoji li način da se mapa prikaže na čist način? Ili sam usput nešto pogriješio?

  24.   eduardlh rekao je

    Odličan vodič! To mi je bilo od velike pomoći, testiram ga sa verzijom 2.17 na Ubuntu 14.04 i djeluje vrlo dobro. Sada imam sljedeći izazov, nakon što je korisnik u kavezu tako da ne može preći na bilo koju putanju, želim da može vidjeti samo sadržaj datoteke koja se nalazi na drugoj putanji. Pokušao sam sa simboličkom vezom, ali kada pokušavam napraviti rep ili mačku za ovu datoteku, kaže mi da ona ne postoji, iako prilikom pristupa s korisnikom mogu tu datoteku navesti u kući kaveza.

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

  25.   yas rekao je

    Pozdrav, pratio sam čitav priručnik i prilikom prijave sa ssh automatski se zatvara, tragovi:

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

    hvala

  26.   Omar ramirez rekao je

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

  27.   Benj rekao je

    Da li je moguće od ovog stvorenog korisnika promijeniti u root? tvoj -korijen? ne dopušta mi. Kako bi bilo? Hvala na pomoći

  28.   Slevin rekao je

    Puno vam hvala na vodiču, trebao mi je da stvorim korisnika koji bi mogao koristiti clonezilla za izradu slike i kopiranje na nezavisni server, ali koji se nije mogao rojiti gdje god je želio

  29.   Mauro rekao je

    Dobro! Trebao bih znati nešto.

    Da li je moguće ući kao ROOT koristeći FTP i imajući ove dozvole, 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?

    Hvala ti puno!