Hvordan fengsler brukere som kobler seg via SSH

I vår verden er det mange, mange hemmeligheter ... Jeg tror ærlig talt ikke at jeg kan lære nok til å kjenne de fleste av dem, og dette er gitt av det enkle faktum at Linux tillater oss å gjøre så mange, men så mange ting som det er vanskelig for oss å kjenne dem alle.

Denne gangen vil jeg forklare deg hvordan du kan gjøre noe ekstremt nyttig, noe mange nettverks- eller systemadministratorer har hatt behov for å gjøre, og har funnet det vanskelig å rett og slett ikke finne en ganske enkel måte å oppnå det på:

Hvordan burde brukere koble seg via SSH

bur? ... WTF!

Ja. Hvis vi av en eller annen grunn må gi SSH tilgang til en venn av oss til datamaskinen (eller serveren), må vi alltid ta vare på sikkerheten og stabiliteten til datamaskinen eller serveren vår.

Det hender at vi nylig ønsket å gi Perseus SSH tilgang til en server av oss, men vi kan ikke gi ham noen form for tilgang fordi vi har veldig følsomme konfigurasjoner der (vi har samlet mange ting, pakker som vi har installert individuelt osv. .) og hvis noen som ikke gjør Enten jeg prøver å gjøre en liten endring på serveren, er det en mulighet for at alt går til spille hehe.

Deretter, Hvordan lage en bruker med ekstremt begrensede privilegier, så mye at han ikke en gang kan komme seg ut av buret sitt (hjemme)?

La oss starte med å laste ned fengselssett, et verktøy som lar oss gjøre dette:

Alle følgende kommandoer kjøres som root

1. Først må vi laste ned JailKit-serveren vår.

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

2. Deretter må vi pakke ut pakken og gå inn i mappen som nettopp dukket opp:

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

3. Senere fortsatte vi med å kompilere og installere programvaren (Jeg gir deg et skjermbilde):

./configure
make
make install

. / Konfigurer

gjøre

make install

4. Klar, dette er allerede installert. Nå fortsetter vi med å lage buret som vil inneholde fremtidige brukere, i mitt tilfelle opprettet jeg det i: / opt / og kalte det "fengsel", så banen ville være: / opt / fengsel :

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

5. Buret er allerede opprettet, men det har ikke alle nødvendige verktøy slik at fremtidige brukere som vil være der kan jobbe uten problemer. Jeg mener, inntil nå er buret opprettet, men det er bare en tom boks. Nå vil vi sette inn buret noen verktøy som brukerne i bur trenger:

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 eksisterer og det har allerede verktøyene brukeren kan bruke ... nå trenger vi bare ... brukeren! La oss opprette brukeren kira og vi vil sette det i buret:

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

Merk: Utfør følgende kommando i en terminal, og den skal ha et resultat som ligner på det som er vist på skjermbildet:

cat /etc/passwd | grep jk_chroot

Hvis du merker at ingenting som skjermbildet vises, må du ha gjort noe galt. Legg igjen en kommentar her, så hjelper jeg deg gjerne.

7. Og voila, brukeren er allerede bur ... men han er SÅ bur, at han ikke kan koble til med SSH, for når han prøver å koble til, tillater ikke serveren ham:

8. For å tillate brukeren å koble til må vi gjøre ett trinn til.

Vi må redigere etc / passwd-filen til buret, det vil si i dette tilfellet / opt / fengsel / etc / passwd , i den kommenterer vi brukerlinjen vi opprettet, og legger til en ny som:

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

Det vil si at vi ville ha filen slik passwd:

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

Legg merke til de dupliserte skilletegnene og andre, det er viktig å ikke slippe noen av dem 🙂

Etter å ha gjort dette, kan brukeren gå inn uten problemer 😀

Og det er alt.

Verktøyet vi bruker til alt dette (fengselssett) bruk i bakenden chroot, som faktisk er det nesten alle opplæringsprogrammer bruker. Imidlertid blir det enklere å bruke bur JailKit age

Viktig!: Dette er testet på Debian Squeeze (6) y hundrevis og det fungerte ved 100%, testet i Debian Wheezy (7), og det har også fungert, men med en liten detalj, at brukerens kallenavn ikke vises i ssh, men det mister ingen funksjonalitet.

Hvis noen har et problem eller noe ikke går bra, legg igjen så mange detaljer som mulig, jeg anser meg ikke som ekspert, men jeg vil hjelpe deg så mye jeg kan.


50 kommentarer, legg igjen dine

Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.

  1.   v3 på sa

    da ville det være noe som tillatelsene i FTP? interessant

    du kommer alltid med alt du ikke engang visste eksisterte, som brukerne i mysql xD

    1.    KZKG ^ Gaara sa

      Ikke akkurat, fordi SSH ikke er det samme som FTP. SSH er et skall, det vil si en terminal ... du vil være i en terminal på en annen datamaskin eller server, du kan utføre kommandoer, starte prosesser osv ... du vil gjøre så mye som serveradministratoren tillater deg 😉

      hahahahaha nah kom igjen, det som skjer er at jeg publiserer mer tekniske ting ... det vil si at jeg liker å publisere små ting som ikke er så populære og interessante. For eksempel har jeg personlig ikke tenkt å publisere noe dagen den nye Ubuntu kommer ut, fordi jeg anser at mange allerede vil snakke om det ... men det du leser her i innlegget, er det ikke noe som blir lest hver dag eller ikke? 😀

      1.    Damian rivera sa

        Veldig gode bidrag takk

        det er også en protokoll kalt sftp som er ftp og Secure Shell sammen, selv om det ikke er det samme som å kjøre FTP over SSH: \

        Hilsen

        1.    KZKG ^ Gaara sa

          Ja ja, men ved å cage SSH bur jeg automatisk den som kobler til ved hjelp av SFTP, for som du sier, SFTP er faktisk SSH + FTP 😀

          Hilsen

  2.   giskard sa

    Bildene kan ikke sees !!! 🙁

    1.    KZKG ^ Gaara sa

      En liten feil av meg hehe, fortell meg nå 😀

      1.    giskard sa

        Klar. Takk 😀

  3.   råtner87 sa

    veldig bra, jeg peker det på favorittene mine for å ha det tilgjengelig når jeg trenger det lol

    1.    KZKG ^ Gaara sa

      Takk, eventuelle spørsmål eller problemer, vi er her for å hjelpe deg 🙂

  4.   Håndbok for kilden sa

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

    1.    ordentlig sa

      LOL
      xD

  5.   jorgemanjarrezlerma sa

    Hvordan har du det.

    Du vet, det er et emne jeg ikke er veldig kjent med, og som jeg hadde sjekket inn BSD (PC-BSD og Ghost BSD), og jeg synes det er veldig interessant og med funksjoner som kan være veldig nyttige.

    Jeg skal beholde den som referanse og sjekke den mot BSD-dokumentet. Takk for informasjonen.

    1.    KZKG ^ Gaara sa

      Jeg var ikke kjent med dette heller fordi jeg aldri tenkte å gi SSH tilgang til noen av serverne mine til noen haha, men da jeg fant behovet for det, ville jeg gi tilgang, men uten muligheten for at noen ved en feiltakelse gjør noe som må ikke 😀

      Jeg har aldri prøvd dette på BSD-systemer, så jeg kan ikke fortelle deg at det vil fungere, men hvis du leter etter hvordan du kan rote på BSD, bør noe komme ut 😉

      Takk for kommentaren venn 🙂

      1.    Damian rivera sa

        Hei, jeg bruker FreeBSD og selvfølgelig fungerer jailkit faktisk denne i portene

        Du installerer den med denne kommandoen

        cd / usr / porter / skall / jailkit / && gjør installasjonen ren

        Eller med ftp-pakke

        pkg_add -r fengselssett

        Bare i konfigurasjonen (kira: x: 1003: 1003 :: / home / kira: / bin / bash)

        Du må legge til tcsh eller sh, med mindre du har installert bash og lagt til denne banen

        / usr / local / bin / bash

        Og noen få flere detaljer, i Ghost BSD bør det være den samme prosessen enda enklere da den er basert på FreeBSD

        Hilsen

  6.   adiazc87 sa

    Flott, jeg lette etter det; vet du om det fungerer i Centos ?? Takk.

    1.    KZKG ^ Gaara sa

      Jeg har ikke testet det på Centos, men ja, det skal fungere :)
      Jeg tror faktisk jeg husker at flere har brukt dette samme verktøyet på Centos og Red Hat servere 😉

  7.   17 sa

    Takk så mye. Det går direkte til bokmerker.

    1.    KZKG ^ Gaara sa

      Takk til deg for at du kommenterer 🙂

  8.   MV Altamirano sa

    Veldig bra "triks", veldig nyttig for sys-administratorer. Men enda bedre, utmerket godt skrevet. Hva mer kan du ønske deg.
    Tusen takk for bidraget.

    1.    KZKG ^ Gaara sa

      Tusen takk, tusen takk for kommentaren din 😀
      Hilsen

  9.   LiGNUxer sa

    Ros SSH haha
    Jeg prøvde en gang å lage et bur for ssh, men i tradisjonell stil og sannheten er at det aldri kom riktig ut. Hvis buret var i gang, hadde det ikke en gang en bash, det vil si at det var koblet til og det var ingenting igjen haha, hvis skallet kjørte, kunne det gå opp i kataloghierarkiet og mye quilombos mer haha men dette jailkit er et blonder, det automatiserer alle disse tingene ... Anbefales på det sterkeste

    1.    KZKG ^ Gaara sa

      Haha takk.
      Ja, faktisk er SSH alt fantastisk for det det tillater oss, noe som faktisk ikke er noe annet enn det systemet tillater så ... hurra for Linux! … ha ha.

  10.   nwt_lazaro sa

    Hei, et spørsmål!
    hvorfor endre hjemmet fra (1) / opt / fengsel /./ hjem / kira til (2) / hjem / kira

    Vi må redigere filen etc / passwd til buret, det vil si i dette tilfellet ville det være / opt / jail / etc / passwd, i det kommenterer vi brukerlinjen vi opprettet, og legger til en ny som:

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

    Med andre ord vil passwd-filen se slik ut:

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

    1.    KZKG ^ Gaara sa

      Hei 🙂
      Hvis det ikke er angitt, fungerer ikke SSH-tilgangen, brukeren prøver å koble til, men blir automatisk utvist ... det ser ut til å være en feil eller et problem med tolken som JailKit bringer, fordi når du gjør denne endringen som indikerer at den bruker normalt bash-system, alt fungerer.

      1.    Omar ramirez sa

        Jeg lukker fortsatt ssh-økten: C
        Suse 10.1 x64

  11.   alexitu sa

    Hei, jeg har installert dette, og det fungerer utmerket sinn veldig bra i centos = D

    men min dua er som siden å legge til flere kommandoer for eksempel til en fengselsbruker
    kan ikke kjøre svn co-kommando http://pagina.com/carpeta

    Jeg mener at denne kommandoen ikke eksisterer for fengselsbrukere i dette tilfellet som for å legge til disse kommandoene i fengselet, og det er mange flere jeg trenger å legge til.

    1.    KZKG ^ Gaara sa

      Hei, hvordan har du det?
      Hvis du vil aktivere kommandoen «svn» i fengselet, har du kommandoen jk_cp
      Det er:
      jk_cp / opt / fengsel / / bin / svn

      Dette forutsatt at svn binær eller kjørbar er: / bin / svn
      Og la buret / fengselet være: / opt / fengsel /

      Du vil komme over kommandoer som er avhengige av andre, det vil si hvis du legger til kommandoen «pepe» vil du se at du også må legge til «federico», fordi «pepe» er avhengig av at «federico» skal utføres, hvis du finner dette så legger du til de nødvendige kommandoene og allerede 😉

      1.    alexitu sa

        Det er utmerket, jeg tester det samtidig, og jeg forteller deg hva som skjedde, tusen takk = D

        1.    KZKG ^ Gaara sa

          Flaks 😀

  12.   alexitu sa

    Jeg har klart å gjøre det du fortalte meg, men på denne måten og automatisk har det oppdaget meg uten problemer. Dette var kommandoen jeg brukte for å kunne bruke subversjonen.

    jk_cp -j / home / jaul svn

    Vel, jeg bruker centos xP og kanskje er det annerledes, men bra
    nå vil jeg vite hvilke biblioteker som svn er, men nå vil jeg kompilere fordi la oss si at jeg trenger å bruke en kommando som denne

    ./konfigurer og merk feil

    ./configure.lineno: linje 434: expr: kommandoen ble ikke funnet

    Jeg ville ikke vite hvilke biblioteker jeg allerede har installert, hva er mysql og andre hvis det kompileres utenfor fengselet, men ikke inne i jaui.

    Beklager bryet.

    ps: du bør legge i guiden det jeg fortalte deg om kommandoen som ble brukt i centos =) hilsener.

    1.    KZKG ^ Gaara sa

      Når jeg forteller deg at den ikke kan finne en kommando (som her), er det første å finne kommandoen:

      whereis expr

      Når den er funnet (/ usr / bin / expr og / usr / bin / X11 / expr) kopierer vi den til fengselet med jk_cp 😉
      Prøv dette for å se.

      Jepp, jeg redigerer allerede innlegget og legger til at det fungerer i Centos 😀

  13.   adiazc87 sa

    Stor takk ((:

  14.   Jesus sa

    Takk for innspillet ...

  15.   karma sa

    Hei Hvordan har du det?

  16.   djfenixchile sa

    Faen fyr! Fra Chile min hilsen. Du er like fart som meg! LOL !. Klemmer. Innlegget ditt har vært til stor hjelp for meg!

    1.    KZKG ^ Gaara sa

      Takk for kommentaren din 😀

  17.   Daniel PZ sa

    Tusen takk for innlegget, det hjalp meg veldig, men dessverre i den delen av

    //////////////////////////////////////////////// // ////////////////////////////////////////////// //// //////////////////////
    Vi må redigere filen etc / passwd til buret, det vil si i dette tilfellet ville det være / opt / jail / etc / passwd, i det kommenterer vi brukerlinjen vi opprettet, og legger til en ny som:

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

    Med andre ord vil passwd-filen se slik ut:

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

    Det forårsaker den samme feilen, jeg mener, jeg lar den være som den er, og den støtter meg fra terminalen når jeg kobler til ,,, .., jeg kommenterer linjen og legger til en til som endrer den som du indikerer, og den også støvler meg….

    Installer den nyeste versjonen "jailkit-2.16.tar", til og med lag et skript for å 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
    . / Konfigurer
    gjøre
    make install
    avslutte
    //////////////////////////////////////////////// // ///////////////////////////////

    Åpenbart logger de først inn som "root" ...

    Hvordan kunne jeg løse feilvennen ????

    1.    Daniel PZ sa

      Beklager, jeg har allerede fått det, jeg hadde gjort en feil med hjemmemappen, men jeg er stor i tvil, hvordan kan jeg få det til å la meg utføre kommandoen «skjerm», jeg prøver å bruke den (i den burede brukeren) , men det fungerer ikke ... En annen ting er, hvordan får jeg denne burbrukeren til å kjøre vinprogrammet på en exe som han bare la inn i hjemmet sitt? Hvordan ville det være?

  18.   Leonel sa

    hei, veldig bra tuto! Jeg er ny i disse miljøene, jeg har et spørsmål ...
    Når det gjelder sikkerhet, ser jeg at det i roten har mange mapper, er de nødvendige? Jeg vil bare at han skal ha tilgang til mappen sin (ftp-upload og ssh-execute) for å kjøre et program, hvilke mapper kan han slette fra roten? eller representerer det ikke noen fare for meg? Jeg setter pris på din hjelp på forhånd, hilsen!

  19.   CubaRød sa

    @ KZKG ^ Gaara, takk og lov du la wheezy-feilen, men med versjonen av jailkit-2.16.tar.gz at du foreslo at de fikset det

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

  20.   Algave sa

    Jeg tror jeg sender den til en PDF, jojo .. til bur og takk wn 😀

  21.   Samuel sa

    Hilsen venn, jeg har et spørsmål:

    Anta at vi har en bruker som heter "test".

    Spørsmålet er at filen /home/test/.ssh/known_hosts som ligger hjemme hos den brukeren, er det den samme filen eller ikke bur brukeren?

  22.   Richard sa

    Prøv dette. Det er mulig med denne metoden å begrense navigasjonen til det andre hjemmet til de andre brukerne.

  23.   TZBKR sa

    Først av alt, takk for innlegget! Det er veldig nyttig for meg; men jeg har to tvil, og disse kommer fra det scenariet jeg har:

    Jeg må opprette N-brukere med uavhengig og privat tilgang til hjemmet sitt, hver bruker kan bare få tilgang til hjemmet sitt for å sette inn, endre og slette filer som finnes der uten å måtte flytte til andre (jeg har allerede dette poenget). Det krever ikke tilgang via ssh.

    1. Må du lage et bur for hver bruker, eller er det en måte å ha de forskjellige brukerne i samme bur, men hver har sin "private" katalog?

    2. Når du får tilgang til (via FTP-klient), vises alle katalogene som er opprettet av verktøyet, er det en måte å vise mappen på en ren måte? Eller gjorde jeg noe galt underveis?

  24.   eduardlh sa

    Utmerket opplæring! Det har vært en stor hjelp for meg, jeg tester den med versjon 2.17 på Ubuntu 14.04, og den fungerer veldig bra. Nå har jeg følgende utfordring, når brukeren er buret slik at han ikke kan flytte til noen bane, vil jeg at han bare skal kunne se innholdet i en fil som er i en annen bane. Jeg prøvde med en symbolsk lenke, men når jeg prøver å lage en hale eller en katt til denne filen, forteller den meg at den ikke eksisterer, men når jeg får tilgang til brukeren, kan jeg liste den filen hjemme i buret.

    Hvis du kunne hjelpe meg, ville jeg være veldig takknemlig, takk på forhånd

  25.   Yas sa

    Hei, jeg har fulgt hele håndboken, og når du logger på med ssh lukkes den automatisk, spor:

    4. des 19:20:09 toby sshd [27701]: Godkjent passord for test fra 172.16.60.22 port 62009 ssh2
    4. des 19:20:09 toby sshd [27701]: pam_unix (sshd: økt): økt åpnet for brukertest av (uid = 0)
    4. des 19:20:09 toby jk_chrootsh [27864]: går nå inn i fengsel / opt / fengsel for brukertest (1004) med argumenter
    4. des 19:20:09 toby sshd [27701]: pam_unix (sshd: økt): økt lukket for brukertest

    Takk

  26.   Omar ramirez sa

    Ikke når jeg gjør det siste trinnet for å gi brukeren ssh tilgang, den lukker fortsatt tilkoblingen 🙁

  27.   Benj sa

    Kan det være mulig fra denne opprettede brukeren å bytte til root? din -root? det lar meg ikke. Hvordan ville det være? Takk for hjelpen

  28.   Slevin sa

    Tusen takk for opplæringen, jeg trengte den for å opprette en bruker som kunne bruke clonezilla til å lage et bilde og kopiere det til en tredjeparts server, men som ikke kunne sverme hvor han ville

  29.   Mauro sa

    Flink! Jeg trenger å vite noe.

    Er det mulig å gå inn som ROOT ved hjelp av FTP og ha disse tillatelsene, å administrere det med FTP og ikke med SSH? La oss si som å lage en forbindelse, tunnelstil eller noe sånt. Hvordan blir det gjort? Konfigurerer VSFTPD-filen?

    Tusen takk!