Cum să închidem utilizatorii care se conectează prin SSH

În lumea noastră există multe, multe secrete ... Sincer, nu cred că pot învăța suficient pentru a le cunoaște pe cele mai multe, iar acest lucru este dat de simplul fapt că Linux ne permite să facem atât de multe, dar atât de multe lucruri încât ne este greu să le cunoaștem pe toate.

De data aceasta vă voi explica cum să faceți ceva extrem de util, ceva pe care mulți administratori de rețea sau de sistem au trebuit să-l facă și au găsit dificil să nu găsească o modalitate destul de simplă de a-l realiza:

Cum să pună în cușcă utilizatorii care se conectează prin SSH

cuşcă? ... WTF!

Da. Dacă din orice motiv trebuie să oferim acces SSH unui prieten de-al nostru la computerul (sau serverul) nostru, trebuie să avem grijă întotdeauna de securitatea și stabilitatea computerului sau serverului nostru.

Se întâmplă că recent am vrut să oferim Perseus SSH acces la un server de-al nostru, dar nu îi putem oferi niciun tip de acces deoarece avem configurații foarte sensibile acolo (am compilat multe lucruri, pachete pe care le-am instalat individual etc.) .) și dacă cineva care nu face Fie că încerc să fac chiar și cea mai mică modificare pe server, există posibilitatea ca totul să se piardă hehe.

Apoi, Cum să creezi un utilizator cu privilegii extrem de limitate, atât de mult încât nici măcar să nu poată ieși din cușcă (acasă)?

Să începem prin descărcare trusa de închisoare, un instrument care ne va permite să facem acest lucru:

Toate comenzile următoare sunt executate ca root

1. Mai întâi trebuie să descărcăm serverul nostru JailKit.

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

2. Apoi trebuie să dezarhivăm pachetul și să introducem folderul care tocmai a apărut:

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

3. Mai târziu am continuat să compilăm și să instalăm software-ul (Vă las o captură de ecran):

./configure
make
make install

. / Configurare

face

make install

4. Gata, aceasta este deja instalată. Acum continuăm să creăm cușca care va conține viitorii utilizatori, în cazul meu am creat-o în: / opt / și am numit-o „închisoare”, deci calea ar fi: / opt / închisoare :

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

5. Cușca este deja creată, dar nu are toate instrumentele necesare pentru ca viitorii utilizatori care vor fi acolo să poată lucra fără probleme. Adică, până acum este creată cușca, dar este doar o cutie goală. Acum vom introduce în cușcă câteva instrumente de care utilizatorii cușcați vor avea nevoie:

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. Gata, cușca există și are deja instrumentele pe care utilizatorul le poate folosi ... acum avem nevoie doar de ... utilizatorul! Să creăm utilizatorul kira și îl vom pune în cușcă:

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

Notă: Executați următoarea comandă într-un terminal și ar trebui să aibă un rezultat similar cu cel afișat în captura de ecran:

cat /etc/passwd | grep jk_chroot

Dacă observați că nu apare nimic de genul capturii de ecran, trebuie să fi făcut ceva greșit. Lasă un comentariu aici și te voi ajuta cu plăcere.

7. Și voilă, utilizatorul este deja plasat în cușcă ... dar, este atât de cușcat, încât nu se poate conecta prin SSH, deoarece atunci când încearcă să se conecteze serverul nu-l lasă:

8. Pentru a permite utilizatorului să se conecteze trebuie să mai facem un pas.

Trebuie să edităm fișierul etc / passwd al cuștii, adică în acest caz ar fi / opt / jail / etc / passwd , comentăm linia de utilizator pe care am creat-o și adăugăm una nouă, cum ar fi:

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

Adică am avea fișierul așa 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

Observați bine semnele de punctuație duplicate și altele, este important să nu renunțați la niciunul dintre ele 🙂

După aceasta, utilizatorul poate intra fără nicio problemă 😀

Și asta e tot.

Instrumentul pe care îl folosim pentru toate acestea (trusa de închisoare) utilizați în backend Chroot., ceea ce utilizează aproape toate tutorialele. Cu toate acestea, folosind JailKit devine mai simplu să colajezi 😉

Important!: Acest lucru a fost testat pe Debian Squeeze (6) y cenți și a funcționat la 100%, testat în Debian Wheezy (7) și, de asemenea, a funcționat, deși cu un mic detaliu, că porecla utilizatorului nu este afișată în ssh, dar nu pierde nici o funcționalitate.

Dacă cineva prezintă o problemă sau ceva nu merge bine, lăsați cât mai multe detalii, nu mă consider un expert, dar vă voi ajuta cât de mult pot.


Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: Miguel Ángel Gatón
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.

  1.   v3on el a spus

    atunci ar fi ceva de genul permisiunilor în FTP? interesant

    întotdeauna veniți cu tot ceea ce nici nu știați că există, precum utilizatorii din mysql xD

    1.    KZKG ^ Gaara el a spus

      Nu exact, deoarece SSH nu este același lucru cu FTP. SSH este un shell, adică un terminal ... ați fi într-un terminal de pe alt computer sau server, ați putea executa comenzi, porni procese etc ... ați face cât vă permite administratorul serverului 😉

      hahahahahaha nah hai, ceea ce se întâmplă este că public lucruri mai tehnice ... adică îmi place să public lucruri mici care nu sunt atât de populare și interesante. De exemplu, personal nu intenționez să public ceva în ziua în care va apărea noul Ubuntu, pentru că consider că mulți vor vorbi deja despre asta ... totuși, ceea ce ați citit aici în postare, nu este ceva care este citit în fiecare zi sau nu? 😀

      1.    Damian rivera el a spus

        Contribuții foarte bune mulțumesc

        există, de asemenea, un protocol numit sftp care este ftp și Secure Shell împreună, deși nu este același lucru cu rularea FTP pe SSH: \

        În ceea ce priveşte

        1.    KZKG ^ Gaara el a spus

          Da, într-adevăr, dar prin plasarea în cușcă a SSH-ului, plasez automat pe oricine se conectează utilizând SFTP, deoarece așa cum spui, SFTP este de fapt SSH + FTP 😀

          În ceea ce priveşte

  2.   giskard el a spus

    Imaginile nu sunt vizibile !!! 🙁

    1.    KZKG ^ Gaara el a spus

      O mică greșeală a mea hehe, spune-mi acum 😀

      1.    giskard el a spus

        Gata. Mulțumesc 😀

  3.   Putreze87 el a spus

    foarte bine, îl indic pe favoritele mele să îl am la dispoziție când am nevoie de el lol

    1.    KZKG ^ Gaara el a spus

      Vă mulțumim, orice întrebări sau probleme, suntem aici pentru a vă ajuta 🙂

  4.   Manualul Sursei el a spus

    Îl au pe Perseu într-o cușcă. http://i.imgur.com/YjVv9.png

    1.    adecvat el a spus

      LOL
      xD

  5.   jorgemanjarrezlerma el a spus

    Ce mai faci.

    Știți, este un subiect cu care nu sunt foarte familiarizat și pe care îl verificasem în BSD (PC-BSD și Ghost BSD) și mi se pare foarte interesant și cu funcționalități care pot fi foarte utile.

    O voi păstra pentru referință și o voi compara cu documentul BSD. Mulțumesc de informație.

    1.    KZKG ^ Gaara el a spus

      Nici eu nu eram familiarizat cu acest lucru, pentru că nu m-am gândit niciodată să dau acces SSH la serverele mele cuiva, haha, dar când am găsit nevoia să fac acest lucru, am vrut să dau acces, dar fără posibilitatea ca din greșeală cineva să facă ceva care nu trebuie 😀

      Nu am încercat niciodată acest lucru pe sistemele BSD, așa că nu vă pot spune că va funcționa, dar dacă căutați cum să chroot în BSD, ar trebui să iasă ceva 😉

      Mulțumesc pentru comentariul prieten 🙂

      1.    Damian rivera el a spus

        Bună ziua, folosesc FreeBSD și, desigur, jailkit funcționează, de fapt, acesta în porturi

        Îl instalați cu această comandă

        cd / usr / ports / shells / jailkit / && make install clean

        Sau prin pachetul ftp

        pkg_add -r jailkit

        Numai în configurație (kira: x: 1003: 1003 :: / home / kira: / bin / bash)

        Trebuie să adăugați tcsh sau sh, cu excepția cazului în care ați instalat bash și adăugați această cale

        / usr / local / bin / bash

        Și câteva detalii suplimentare, în Ghost BSD ar trebui să fie un proces similar și mai ușor, deoarece se bazează pe FreeBSD

        În ceea ce priveşte

  6.   adiazc87 el a spus

    Minunat, îl căutam; stii daca functioneaza in Centos ?? Mulțumiri.

    1.    KZKG ^ Gaara el a spus

      Nu l-am testat pe Centos, dar da, ar trebui să funcționeze :)
      De fapt, îmi amintesc că mai mulți au folosit același instrument pe serverele Centos și Red Hat 😉

  7.   cyberalejo17 el a spus

    Mulțumesc mult. Merge direct la marcaje.

    1.    KZKG ^ Gaara el a spus

      Vă mulțumim că ați comentat 🙂

  8.   MV Altamirano el a spus

    Foarte bun „truc”, foarte util pentru administratorii de sisteme. Dar chiar mai bine, excelent bine scris. Ce ai mai putea dori.
    Vă mulțumesc foarte mult pentru contribuția.

    1.    KZKG ^ Gaara el a spus

      Mulțumesc, mulțumesc foarte mult pentru comentariu your
      În ceea ce priveşte

  9.   LiGNUxer el a spus

    Laudă SSH haha
    Odată am încercat să fac o cușcă pentru ssh, dar în stilul tradițional și adevărul este că nu a ieșit niciodată corect. Dacă colivia funcționa, nici măcar nu avea bash, adică s-a conectat și nu mai rămăsese nimic haha, dacă shell-ul funcționa, ar putea merge în ierarhia de directoare și mult mai mulți quilombos haha, acest jailkit este un buzdugan, automatizează toate acele lucruri ... recomandat

    1.    KZKG ^ Gaara el a spus

      haha multumesc.
      Da, de fapt, SSH-ul este minunat pentru ceea ce ne permite, ceea ce nu este altceva decât ceea ce permite sistemul, așa că ... ... haha.

  10.   nwt_lazaro el a spus

    Bună, o întrebare!
    de ce schimbăm acasă din (1) / opt / jail /./ home / kira în (2) / home / kira

    Trebuie să edităm fișierul etc / passwd al cuștii, adică în acest caz ar fi / opt / jail / etc / passwd, în acesta comentăm linia de utilizator pe care am creat-o și adăugăm una nouă, cum ar fi:

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

    Cu alte cuvinte, fișierul passwd ar arăta astfel:

    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 el a spus

      Bună ziua 🙂
      Dacă acest lucru nu este setat, accesul SSH nu funcționează, utilizatorul încearcă să se conecteze, dar este automat expulzat ... se pare că este o eroare sau o problemă cu interpretul pe care JailKit îl aduce, deoarece atunci când faceți această modificare indicând că folosește bash normal al sistemului, totul funcționează.

      1.    Omar ramirez el a spus

        Încă închid sesiunea ssh: C
        Suse 10.1 x64

  11.   alexitu el a spus

    Bună, am instalat acest lucru și funcționează minte excelent foarte bine în centos = D

    dar dua mea este ca acum pentru a adăuga mai multe comenzi, de exemplu, unui utilizator de închisoare
    nu se poate executa comanda svn co http://pagina.com/carpeta

    Adică, această comandă nu există pentru utilizatorii de închisoare, în acest caz, ca acum, pentru a adăuga aceste comenzi în închisoare și sunt multe altele pe care trebuie să le adaug.

    1.    KZKG ^ Gaara el a spus

      Salut ce mai faci 🙂
      Dacă doriți să activați comanda «svn» în închisoare aveți comanda jk_cp
      Acesta este:
      jk_cp / opt / jail / / bin / svn

      Aceasta presupunând că binarul sau executabilul svn este: / bin / svn
      Și să fie Cage / Jail: / opt / jail /

      Veți găsi comenzi care depind de altele, adică dacă adăugați comanda «pepe» veți vedea că trebuie să adăugați și «federico», deoarece «pepe» depinde de «federico» care urmează să fie executat, dacă găsiți acest lucru atunci adăugați comenzile necesare și deja 😉

      1.    alexitu el a spus

        E excelent, îl testez chiar acum și vă spun că s-a întâmplat, vă mulțumesc foarte mult = D

        1.    KZKG ^ Gaara el a spus

          Noroc 😀

  12.   alexitu el a spus

    Am reușit să fac ceea ce mi-ai spus, dar în acest mod și automat m-a detectat fără nicio problemă. Aceasta a fost comanda pe care am folosit-o pentru a putea folosi subverizia.

    jk_cp -j / home / jaul svn

    Ei bine, folosesc centos xP și poate că este diferit, dar bun
    acum aș vrea să știu care sunt bibliotecile ca svn, dar acum aș dori să compilez pentru că să spunem că trebuie să folosesc o comandă ca aceasta

    ./configurați și marcați eroarea

    ./configure.lineno: line 434: expr: comanda nu a fost găsită

    Nu aș ști care sunt bibliotecile pe care le-am instalat deja ceea ce este mysql și altele dacă se compilează în afara închisorii, dar nu în interiorul jaui.

    scuze pentru neplăceri.

    ps: ar trebui să pui în ghid ceea ce ți-am spus despre comanda folosită în centos =) salutări.

    1.    KZKG ^ Gaara el a spus

      Uite, când îți spun că nu poate găsi o comandă (ca aici) primul lucru este să găsești comanda:

      whereis expr

      Odată găsit (/ usr / bin / expr și / usr / bin / X11 / expr) îl copiem în închisoare cu jk_cp 😉
      Încercați acest lucru pentru a vedea.

      Da, editez deja postarea și adaug că funcționează în Centos 😀

  13.   adiazc87 el a spus

    Minunat, iti multumesc foarte mult (:

  14.   Isus el a spus

    Vă mulțumim pentru contribuție ...

  15.   karma el a spus

    Salut, ce faci?

  16.   djfenixchile el a spus

    La dracu, tipule! Din Chile salutările mele. Ești la fel de fart ca mine! LAUGH OUT LOUD!. Îmbrățișări. Postarea ta mi-a fost de mare ajutor!

    1.    KZKG ^ Gaara el a spus

      Vă mulțumim pentru comentariu 😀

  17.   Daniel PZ el a spus

    Vă mulțumesc foarte mult pentru postare, m-a ajutat foarte mult, dar din păcate din partea

    ////////////////////////////////////////////////////// //// ////////////////////////////////////////////////// //////// ////////////////////////
    Trebuie să edităm fișierul etc / passwd al cuștii, adică în acest caz ar fi / opt / jail / etc / passwd, în acesta comentăm linia de utilizator pe care am creat-o și adăugăm una nouă, cum ar fi:

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

    Cu alte cuvinte, fișierul passwd ar arăta astfel:

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

    Îmi provoacă aceeași eroare, adică o las așa cum este și mă pornește de la terminal la conectare ,,, .., comentez linia și adaug încă una modificând-o așa cum indicați și, de asemenea, mă bocanci ...

    Instalați cea mai recentă versiune "jailkit-2.16.tar", chiar creați un script pentru a economisi timp, aici este mai jos:

    ////////////////////////////////////////////////////// //// //////////////////////////////////////////////////
    #! / Bin / bash
    wget http://olivier.sessink.nl/jailkit/jailkit-2.16.tar.gz
    tar -zxvf jailkit-2.16.tar.gz
    cd jailkit-2.16
    . / Configurare
    face
    make install
    ieşire
    ////////////////////////////////////////////////////// // ///////////////////////////////

    Evident, mai întâi se conectează ca „root” ...

    Cum aș putea rezolva eroarea prieten ????

    1.    Daniel PZ el a spus

      Îmi pare rău, deja l-am înțeles, făcusem o greșeală în legătură cu folderul Acasă, dar am o mare îndoială, cum pot să-l las să execut comanda „ecran”, încerc să o folosesc (la utilizatorul cușcă) , dar nu funcționează ... Un alt lucru este că, cum îl fac pe acest utilizator cușcat să ruleze programul de vin pe un exe pe care tocmai l-a pus în casa lui, cum ar fi?

  18.   Leonel el a spus

    salut, tuto foarte bun! Sunt nou în aceste medii, am o întrebare ...
    În ceea ce privește securitatea, văd că în rădăcina sa are multe foldere, sunt necesare? Vreau doar să aibă acces la folderul său (ftp-upload și ssh-execute), astfel încât să poată rula o aplicație, ce foldere ar putea șterge din rădăcină? sau reprezintă vreun pericol pentru mine? Vă apreciez ajutorul din timp, salutări!

  19.   CubaRed el a spus

    @ KZKG ^ Gaara, noroc că ai pus eroarea șuierătoare, dar cu versiunea jailkit-2.16.tar.gz pe care ai sugerat-o să o remedieze

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

  20.   Algave el a spus

    Cred că o voi trece la un PDF, jojo .. la cușcă și mulțumesc wn 😀

  21.   Samuel el a spus

    Salutări prietene, am o întrebare:

    Să presupunem că avem un utilizator numit „test”.

    Întrebarea este, fișierul /home/test/.ssh/known_hosts care se află în casa aceluiași utilizator, este același fișier sau nu este înscris în utilizator?

  22.   Richard el a spus

    Incearca asta. Cu această metodă puteți restricționa navigarea către celălalt domiciliu al celorlalți utilizatori.

  23.   TZBKR el a spus

    În primul rând, mulțumesc pentru postare! Îmi este foarte util; dar am două îndoieli, iar acestea apar din scenariul pe care îl am:

    Trebuie să creez N utilizatori cu acces independent și privat la casa lor, fiecare utilizator își poate accesa casa doar pentru a depune, modifica și șterge fișiere conținute acolo fără a fi nevoie să mă mut la alții (am deja acest punct). Nu necesită acces prin ssh.

    1. Trebuie să creați o cușcă pentru fiecare utilizator sau există o modalitate de a avea diferiți utilizatori în aceeași cușcă, dar fiecare are directorul lor „privat”?

    2. Când accesați (prin client FTP) sunt afișate toate directoarele create de instrument, există o modalitate de a afișa folderul curat? Sau am greșit ceva pe parcurs?

  24.   eduardlh el a spus

    Excelent tutorial! Mi-a fost de mare ajutor, îl testez cu versiunea 2.17 pe Ubuntu 14.04 și funcționează foarte bine. Acum am următoarea provocare, odată ce utilizatorul este plasat în cușcă, astfel încât să nu se poată muta pe nicio cale, vreau să poată vedea numai conținutul unui fișier care se află pe altă cale. Am încercat cu o legătură simbolică, dar când încerc să fac o coadă sau o pisică la acest fișier, îmi spune că nu există, deși când accesez cu utilizatorul pot lista acel fișier în casa coliviei.

    Dacă m-ați putea ajuta, aș fi foarte recunoscător, vă mulțumesc anticipat

  25.   yas el a spus

    Bună ziua, am urmat întregul manual și când mă autentific cu ssh se închide automat, urmărește:

    4 dec 19:20:09 toby sshd [27701]: Parolă acceptată pentru test de la portul 172.16.60.22 62009 ssh2
    4 dec 19:20:09 toby sshd [27701]: pam_unix (sshd: session): sesiune deschisă pentru testul utilizatorului de (uid = 0)
    4 dec 19:20:09 toby jk_chrootsh [27864]: acum intră în închisoare / opt / închisoare pentru testul utilizatorului (1004) cu argumente
    4 dec 19:20:09 toby sshd [27701]: pam_unix (sshd: session): sesiune închisă pentru testul utilizatorului

    Mulţumiri

  26.   Omar ramirez el a spus

    Nu când fac ultimul pas de a oferi acces ssh utilizatorului, acesta încă închide conexiunea 🙁

  27.   benj el a spus

    Poate fi posibil de la acest utilizator creat să treacă la root? -rădăcina ta? nu mă lasă. Cum ar fi? Vă mulțumim pentru ajutor

  28.   Slevin el a spus

    Vă mulțumesc foarte mult pentru tutorial, am avut nevoie de el pentru a crea un utilizator care să poată folosi clonezilla pentru a crea o imagine și să o copieze pe un server terță parte, dar care nu putea să roiască oriunde dorea

  29.   Mauro el a spus

    Bun! Aș avea nevoie să știu ceva.

    Este posibil să intrați ca ROOT folosind FTP și având aceste permisiuni, să îl gestionați prin FTP și nu cu SSH? Să spunem, cum ar fi crearea unei conexiuni, stilul tunelului sau ceva de genul acesta. Cum se face? Configurați fișierul VSFTPD?

    Vă mulțumim!