Sådan fængsles brugere, der opretter forbindelse via SSH

I vores verden er der mange, mange hemmeligheder ... Jeg tror ærligt talt ikke, at jeg kan lære nok til at kende de fleste af dem, og dette gives af det enkle faktum, at Linux giver os mulighed for at gøre så mange, men så mange ting, at det er svært for os at kende dem alle.

Denne gang vil jeg forklare dig, hvordan man gør noget ekstremt nyttigt, noget som mange netværks- eller systemadministratorer har haft brug for at gøre, og har fundet det svært at simpelthen ikke finde en ret enkel måde at opnå det på:

Sådan cage brugere, der forbinder via SSH

bur? ... WTF!

Ja. Hvis vi af en eller anden grund skal give SSH adgang til en ven af ​​os til vores computer (eller server), skal vi altid tage os af sikkerheden og stabiliteten på vores computer eller server.

Det sker, at vi for nylig ønskede at give Perseus SSH adgang til en server af os, men vi kan ikke give ham nogen form for adgang, fordi vi har virkelig følsomme konfigurationer der (vi har samlet mange ting, pakker, som vi har installeret individuelt osv.), Og hvis nogen der ikke gør det Uanset om jeg prøver at foretage den mindste ændring af serveren, er der en mulighed for, at alt går til spilde hehe.

Derefter, Sådan oprettes en bruger med ekstremt begrænsede privilegier, så meget at han ikke engang kan komme ud af sit bur (hjem)?

Lad os starte med at downloade jailkit, et værktøj, der giver os mulighed for at gøre dette:

Alle følgende kommandoer køres som root

1. Først skal vi downloade vores JailKit-server.

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

2. Derefter skal vi pakke pakken ud og indtaste den mappe, der lige er vist:

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

3. Senere fortsatte vi med at kompilere og installere softwaren (Jeg forlader dit skærmbillede):

./configure
make
make install

./configure

lave

make install

4. Klar, dette er allerede installeret. Nu fortsætter vi med at oprette buret, der indeholder fremtidige brugere, i mit tilfælde oprettede jeg det i: / opt / og kaldte det "fængsel", så stien ville være: / opt / fængsel :

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

5. Buret er allerede oprettet, men det har ikke alle de nødvendige værktøjer, så fremtidige brugere, der vil være der, kan arbejde uden problemer. Jeg mener, indtil dette tidspunkt oprettes buret, men det er bare en tom kasse. Nu vil vi lægge nogle værktøjer i buret, som brugere i bur skal have:

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. Klar, buret findes, og det har allerede de værktøjer, som brugeren kan bruge ... nu har vi bare brug for ... brugeren! Lad os oprette brugeren kira og vi lægger det i buret:

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

Bemærk: Udfør følgende kommando i en terminal, og den skal have et resultat svarende til det, der er vist på skærmbilledet:

cat /etc/passwd | grep jk_chroot

Hvis du bemærker, at intet som skærmbilledet vises, skal du have gjort noget forkert. Efterlad en kommentar her, så hjælper jeg dig gerne.

7. Og voila, brugeren er allerede bur ... men han er SÅ bur, at han ikke kan oprette forbindelse via SSH, for når han prøver at oprette forbindelse, lader serveren ham ikke:

8. For at give brugeren mulighed for at oprette forbindelse skal vi udføre endnu et trin.

Vi skal redigere buret etc / passwd i buret, det vil sige i dette tilfælde / opt / fængsel / etc / passwd , i det kommenterer vi den brugerlinje, som vi oprettede, og tilføjer en ny som:

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

Det vil sige, vi ville have filen sådan passwd:

root: x: 0: 0: root: / root: / bin / bash
#kira: x: 1003: 1003: ,,,: / opt / fængsel /./ hjem / kira: / usr / sbin / jk_lsh
kira: x: 1003: 1003 :: / home / kira: / bin / bash

Bemærk de dobbelte tegnsætningstegn og andre, det er vigtigt ikke at droppe nogen af ​​dem 🙂

Efter dette kan brugeren gå ind uden problemer 😀

Og det er alt.

Det værktøj, vi bruger til alt dette (jailkit) brug i backend chroot, hvilket faktisk er, hvad næsten alle tutorials bruger. Men ved hjælp af JailKit bliver det enklere at bure 😉

Vigtigt!: Dette er testet på Debian Klem (6) y CentOS og det fungerede ved 100%, testet i Debian Wheezy (7), og det har også fungeret, dog med en lille detalje, at brugerens kaldenavn ikke vises i ssh, men det mister ikke nogen funktionalitet.

Hvis nogen har et problem, eller noget ikke går godt, skal du lade så mange detaljer som muligt, jeg betragter mig ikke som en ekspert, men jeg vil hjælpe dig så meget som muligt.


50 kommentarer, lad dine

Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.

  1.   v3 på sagde han

    Så det ville være noget som tilladelserne i FTP? interessant

    du kommer altid ud med alt, hvad du ikke engang vidste eksisterede, som brugerne i mysql xD

    1.    KZKG ^ Gaara sagde han

      Ikke ligefrem, fordi SSH ikke er det samme som FTP. SSH er en shell, det vil sige en terminal ... du ville være i en terminal på en anden computer eller server, du kunne udføre kommandoer, starte processer osv ... du ville gøre så meget som serveradministratoren tillader dig 😉

      hahahahaha nah, hvad sker der er, at jeg offentliggør mere tekniske ting ... det vil sige, jeg kan godt lide at udgive små ting, der ikke er så populære og interessante. For eksempel har jeg personligt ikke til hensigt at udgive noget den dag, den nye Ubuntu kommer ud, fordi jeg mener, at mange allerede vil tale om det ... Men hvad du læser her i indlægget, er det ikke noget, der læses hver dag eller ej? 😀

      1.    Damian rivera sagde han

        Meget gode bidrag tak

        der er også en protokol kaldet sftp, som er ftp og Secure Shell sammen, selvom det ikke er det samme som at køre FTP over SSH: \

        hilsen

        1.    KZKG ^ Gaara sagde han

          Ja ja, men ved at cage SSH bur jeg automatisk den der tilslutter ved hjælp af SFTP, for som du siger, SFTP er faktisk SSH + FTP 😀

          hilsen

  2.   giskard sagde han

    Billederne kan ikke ses !!! 🙁

    1.    KZKG ^ Gaara sagde han

      En lille fejl af mig hehe, fortæl mig nu 😀

      1.    giskard sagde han

        Parat. Tak 😀

  3.   rådner87 sagde han

    meget god, jeg peger på mine favoritter at have den tilgængelig, når jeg har brug for det lol

    1.    KZKG ^ Gaara sagde han

      Tak, eventuelle spørgsmål eller problemer, vi er her for at hjælpe dig 🙂

  4.   Kildens manual sagde han

    De har Perseus i et bur. http://i.imgur.com/YjVv9.png

    1.    passende sagde han

      LOL
      xD

  5.   jorgemanjarrezlerma sagde han

    Hvordan har du det.

    Du ved, det er et emne, som jeg ikke er særlig fortrolig med, og som jeg havde tjekket i BSD (PC-BSD og Ghost BSD), og jeg finder det meget interessant og med funktioner, der kan være meget nyttige.

    Jeg vil opbevare det som reference og kontrollere det mod BSD-dokumentet. Tak for oplysningerne.

    1.    KZKG ^ Gaara sagde han

      Jeg var heller ikke bekendt med dette, for jeg tænkte aldrig på at give nogen SSH adgang til nogen af ​​mine servere haha, men da jeg fandt behovet for at gøre det, ville jeg give adgang, men uden mulighed for at nogen ved en fejltagelse kunne gøre noget det behøvede ikke 😀

      Jeg har aldrig prøvet dette på BSD-systemer, så jeg kan ikke fortælle dig, at det vil fungere, men hvis du leder efter, hvordan man skaber på BSD, skal der komme noget ud 😉

      Tak for kommentaren ven 🙂

      1.    Damian rivera sagde han

        Hej, jeg bruger FreeBSD og selvfølgelig fungerer jailkit faktisk i havnene

        Du installerer det med denne kommando

        cd / usr / porte / shell / jailkit / && gør installationen ren

        Eller ved ftp-pakke

        pkg_add -r fængselssæt

        Kun i konfigurationen (kira: x: 1003: 1003 :: / home / kira: / bin / bash)

        Du skal tilføje tcsh eller sh, medmindre du har installeret bash og tilføjet denne sti

        / usr / local / bin / bash

        Og et par flere detaljer, i Ghost BSD skulle den lignende proces være endnu enklere, da den er baseret på FreeBSD

        hilsen

  6.   adiazc87 sagde han

    Godt, jeg ledte efter det; ved du, om det fungerer i Centos ?? tak.

    1.    KZKG ^ Gaara sagde han

      Jeg har ikke testet det på Centos, men ja, det skal fungere :)
      Faktisk tror jeg, at jeg husker, at flere har brugt det samme værktøj på Centos- og Red Hat-servere 😉

  7.   cyberalejo17 sagde han

    Mange tak. Det går direkte til bogmærker.

    1.    KZKG ^ Gaara sagde han

      Tak til dig for at kommentere 🙂

  8.   MV Altamirano sagde han

    Meget godt "trick", super nyttigt for sys-administratorer. Men endnu bedre, fremragende velskrevet. Hvad mere kan du ønske dig.
    Mange tak for bidraget.

    1.    KZKG ^ Gaara sagde han

      Tak, mange tak for din kommentar 😀
      hilsen

  9.   LiGNUxer sagde han

    Ros SSH haha
    En gang forsøgte jeg at lave et bur til ssh, men i traditionel stil og sandheden er, at det aldrig kom korrekt ud. Hvis buret kørte, havde det ikke engang en bash, det vil sige, det var forbundet, og der var ikke noget tilbage haha, hvis skallen kørte, kunne den gå op i kataloghierarkiet og en masse quilombos mere haha men dette jailkit er et blonder, det automatiserer alle disse ting ... Stærkt anbefalet

    1.    KZKG ^ Gaara sagde han

      haha tak.
      Ja, faktisk er SSH et vidunder for, hvad det tillader os, hvilket faktisk ikke er andet end hvad systemet tillader, så ... hurra for Linux! ... haha.

  10.   nwt_lazaro sagde han

    Hej, et spørgsmål!
    hvorfor skifte hjem fra (1) / opt / fængsel /./ hjem / kira til (2) / hjem / kira

    Vi skal redigere filen etc / passwd i buret, det vil sige i dette tilfælde ville det være / opt / jail / etc / passwd, i det kommenterer vi den brugerlinje, som vi oprettede, og tilføjer en ny som:

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

    Med andre ord ville passwd-filen se sådan ud:

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

    1.    KZKG ^ Gaara sagde han

      Hej 🙂
      Hvis dette ikke er indstillet, fungerer SSH-adgangen ikke, brugeren forsøger at oprette forbindelse, men udelukkes automatisk ... det ser ud til at være en fejl eller et problem med den tolk, som JailKit bringer, for når denne ændring angiver, at den bruger normalt bash system, alt fungerer.

      1.    Omar ramirez sagde han

        Jeg lukker stadig ssh-sessionen: C
        Suse 10.1 x64

  11.   alexitu sagde han

    Hej Jeg har installeret dette, og det fungerer fremragende sind meget godt i centos = D.

    men min dua er som siden at tilføje flere kommandoer for eksempel til en fængselsbruger
    kan ikke køre svn co-kommando http://pagina.com/carpeta

    Jeg mener, denne kommando findes ikke for fængselsbrugere i dette tilfælde som for at tilføje disse kommandoer til fængslet, og der er mange flere, jeg skal tilføje.

    1.    KZKG ^ Gaara sagde han

      Hej, hvordan går det?
      Hvis du vil aktivere kommandoen «svn» i fængslet, har du kommandoen jk_cp
      Det er:
      jk_cp / opt / fængsel / / bin / svn

      Dette forudsat at svn binær eller eksekverbar er: / bin / svn
      Og lad buret / fængslet være: / opt / fængsel /

      Du finder kommandoer, der afhænger af andre, så hvis du tilføjer kommandoen «pepe», vil du se, at du også skal tilføje «federico», fordi «pepe» afhænger af, at «federico» skal udføres, hvis du finder dette, skal du tilføje nødvendige kommandoer allerede 😉

      1.    alexitu sagde han

        Det er fremragende.

        1.    KZKG ^ Gaara sagde han

          Held 😀

  12.   alexitu sagde han

    Jeg har formået at gøre, hvad du fortalte mig, men på denne måde og automatisk har det registreret mig uden problemer. Dette var kommandoen, som jeg plejede at kunne bruge subversionen.

    jk_cp -j / home / jaul svn

    Jeg bruger centos xP, og måske er det anderledes, men godt
    nu vil jeg gerne vide, hvilke biblioteker som svn er, men nu vil jeg gerne kompilere, for lad os sige, at jeg skal bruge en kommando som denne

    ./konfigurer og markér fejl

    ./configure.lineno: linje 434: expr: kommandoen blev ikke fundet

    Jeg ville ikke vide, hvilke biblioteker jeg allerede har installeret, hvad der er mysql og andre, hvis det kompileres uden for fængslet, men ikke inde i jaui.

    beklager ulejligheden.

    ps: du skal lægge i guiden det, jeg fortalte dig om kommandoen, der blev brugt i centos =) hilsner.

    1.    KZKG ^ Gaara sagde han

      Når jeg fortæller dig, at den ikke kan finde en kommando (som her), er den første ting at gøre at finde kommandoen:

      whereis expr

      Når den er fundet (/ usr / bin / expr og / usr / bin / X11 / expr) kopierer vi den til fængslet med jk_cp 😉
      Prøv dette for at se.

      Ja, jeg redigerer allerede indlægget og tilføjer, at det fungerer i Centos 😀

  13.   adiazc87 sagde han

    Stor tak meget (:

  14.   Jesus sagde han

    Tak for input ...

  15.   karma sagde han

    Hej hvordan går det?

  16.   djfenixchile sagde han

    Fuck fyr! Fra Chile min hilsen. Du er lige så fart som mig! LOL !. Klemmer. Dit indlæg har været en stor hjælp for mig!

    1.    KZKG ^ Gaara sagde han

      Tak for din kommentar 😀

  17.   Daniel PZ sagde han

    Mange tak for indlægget, det hjalp mig meget, men desværre i den del af

    //////////////////////////////////////////////// // ////////////////////////////////////////////// //// ////////////////////////
    Vi skal redigere filen etc / passwd i buret, det vil sige i dette tilfælde ville det være / opt / jail / etc / passwd, i det kommenterer vi den brugerlinje, som vi oprettede, og tilføjer en ny som:

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

    Med andre ord ville passwd-filen se sådan ud:

    root: x: 0: 0: root: / root: / bin / bash
    #kira: x: 1003: 1003: ,,,: / opt / fængsel /./ hjem / kira: / usr / sbin / jk_lsh
    kira: x: 1003: 1003 :: / home / kira: / bin / bash
    //////////////////////////////////////////////////// ////////////////////////////////////////

    Det forårsager den samme fejl, jeg mener, jeg lader den være, som den er, og den starter mig fra terminalen, når jeg opretter forbindelse ,,, .., jeg kommenterer linjen og tilføjer en mere, der ændrer den, som du angiver, og det også støvler mig….

    Installer den nyeste version "jailkit-2.16.tar", opret endda et script for at spare tid, her er nedenfor:

    //////////////////////////////////////////////// // //////////////////////////////////////////////
    #! / Bin / bash
    wget http://olivier.sessink.nl/jailkit/jailkit-2.16.tar.gz
    tjære -zxvf jailkit-2.16.tar.gz
    cd jailkit-2.16
    ./configure
    lave
    make install
    frakørsel
    //////////////////////////////////////////////////// /////////////////////////

    Naturligvis logger de først ind som "root" ...

    Hvordan kunne jeg løse fejlvennen ????

    1.    Daniel PZ sagde han

      Undskyld, jeg har allerede fået det, jeg havde lavet en fejl angående hjemmemappen, men jeg er meget i tvivl om, hvordan kan jeg få det til at lade mig udføre kommandoen «skærmbillede», jeg prøver at bruge den (i den burede bruger) , men det virker ikke ... En anden ting er at ,, hvordan får jeg denne burbruger til at køre vinprogrammet på en exe, som han lige har lagt inde i sit hjem ,, hvordan ville det være?

  18.   leonel sagde han

    hej, meget god tuto! Jeg er ny i disse miljøer, jeg har et spørgsmål ...
    Med hensyn til sikkerhed ser jeg, at den i dens rod har mange mapper, er de nødvendige? Jeg vil bare have ham til at have adgang til sin mappe (ftp-upload og ssh-execute) for at køre et program, hvilke mapper kunne han slette fra roden? eller udgør det ikke nogen fare for mig? Jeg sætter pris på din hjælp på forhånd, hilsner!

  19.   CubaRød sagde han

    @ KZKG ^ Gaara, gudskelov, du satte wheezy-fejlen, men med versionen af ​​jailkit-2.16.tar.gz, som du foreslog, at de fikset det

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

  20.   Algave sagde han

    Jeg tror, ​​jeg sender det til en PDF, jojo .. til bur og tak wn 😀

  21.   Samuel sagde han

    Hilsen ven, jeg har et spørgsmål:

    Antag, at vi har en bruger, der hedder "test".

    Spørgsmålet er, at filen /home/test/.ssh/known_hosts, der er placeret i brugerens hjem, er den samme fil denne bruger eller ikke bur?

  22.   Richard sagde han

    Prøv dette. Det er muligt med denne metode at begrænse navigationen til det andet hjem for de andre brugere.

  23.   TZBKR sagde han

    Først og fremmest tak for indlægget! Det er meget nyttigt for mig; men jeg har to tvivl, og disse stammer fra det scenarie, jeg har:

    Jeg er nødt til at oprette N-brugere med uafhængig og privat adgang til deres hjem, hver bruger kan kun få adgang til deres hjem for at deponere, ændre og slette filer der findes uden at skulle flytte rundt til andre (jeg har allerede dette punkt). Det kræver ikke adgang via ssh.

    1. Skal du oprette et bur til hver bruger, eller er der en måde at have de forskellige brugere i det samme bur, men hver har deres "private" bibliotek?

    2. Når der er adgang til (via FTP-klient), vises alle mapper, der er oprettet af værktøjet, er der en måde at vise mappen ren på? Eller gjorde jeg noget galt undervejs?

  24.   eduardlh sagde han

    Fremragende tutorial! Det har været en stor hjælp for mig, jeg tester det med version 2.17 på Ubuntu 14.04, og det fungerer meget godt. Nu har jeg følgende udfordring, når brugeren først er buret, så han ikke kan bevæge sig til nogen sti, vil jeg have, at han kun kan se indholdet af en fil, der er i en anden sti. Jeg forsøgte med et symbolsk link, men når jeg prøver at lave en hale eller en kat til denne fil, fortæller det mig, at den ikke eksisterer, selvom jeg ved at få adgang til brugeren kan liste den fil hjemme i buret.

    Hvis du kunne hjælpe mig, ville jeg være meget taknemmelig, tak på forhånd

  25.   Yas sagde han

    Hej, jeg har fulgt hele manualen, og når jeg logger ind med ssh, lukker den automatisk, sporer:

    4. dec 19:20:09 toby sshd [27701]: Accepteret adgangskode til test fra 172.16.60.22 port 62009 ssh2
    4. dec 19:20:09 toby sshd [27701]: pam_unix (sshd: session): session åbnet for brugertest af (uid = 0)
    4. december 19:20:09 toby jk_chrootsh [27864]: går nu ind i fængsel / opt / fængsel til brugertest (1004) med argumenter
    4. dec 19:20:09 toby sshd [27701]: pam_unix (sshd: session): session lukket for brugertest

    Tak

  26.   Omar ramirez sagde han

    Ikke når jeg gør det sidste trin med at give brugeren ssh-adgang, lukker det stadig forbindelsen 🙁

  27.   Benj sagde han

    Kan det være muligt fra denne oprettede bruger at skifte til root? din -rod? det lader mig ikke. Hvordan ville det være? Tak for din hjælp

  28.   Slevin sagde han

    Mange tak for vejledningen, jeg havde brug for det for at oprette en bruger, der kunne bruge clonezilla til at lave et billede og kopiere det til en udenlandsk server, men som ikke kunne sværme hvor som helst han ville

  29.   Mauro sagde han

    Godt! Jeg har brug for at vide noget.

    Er det muligt at gå ind som ROOT ved hjælp af FTP og have disse tilladelser, at administrere det ved FTP og ikke med SSH? Lad os sige som at oprette en forbindelse, tunnelstil eller noget lignende. Hvordan gøres det? Konfiguration af VSFTPD-filen?

    Mange tak!