Hoe gebruikers die via SSH verbinding maken, gevangen zetten

In onze wereld zijn er heel veel geheimen ... Ik denk eerlijk gezegd niet dat ik genoeg kan leren om de meeste ervan te kennen, en dit wordt gegeven door het simpele feit dat Linux ons in staat stelt zo veel, maar zo veel dingen te doen dat het is moeilijk voor ons om ze allemaal te kennen.

Deze keer zal ik uitleggen hoe je iets buitengewoon nuttigs kunt doen, iets dat veel netwerk- of systeembeheerders moesten doen, en we vonden het moeilijk om simpelweg geen vrij eenvoudige manier te vinden om dit te bereiken:

Hoe gebruikers die verbinding maken via SSH te kooien

kooi? … WTF!

Ja, als we om wat voor reden dan ook SSH toegang moeten geven aan een vriend van ons tot onze computer (of server), dan moeten we altijd zorgen voor de veiligheid en stabiliteit van onze computer of server.

Het gebeurt dat we onlangs Perseus SSH toegang wilden geven tot een server van ons, maar we kunnen hem geen enkele vorm van toegang geven omdat we daar echt gevoelige configuraties hebben (we hebben veel dingen gecompileerd, pakketten die we afzonderlijk hebben geïnstalleerd, enz. .) En als iemand die niet probeert om zelfs maar de geringste wijziging aan de server aan te brengen, is er een mogelijkheid dat alles verloren gaat hehe.

Vervolgens Hoe een gebruiker te creëren met extreem beperkte rechten, zo erg zelfs dat hij niet eens uit zijn kooi kan komen (thuis)?

Laten we beginnen met downloaden gevangeniskit, een tool waarmee we dit kunnen doen:

Alle volgende opdrachten worden uitgevoerd als root

1. Eerst moeten we onze JailKit-server downloaden.

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

2. Vervolgens moeten we het pakket uitpakken en de map invoeren die zojuist is verschenen:

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

3. Later gingen we door met het compileren en installeren van de software (Ik laat je screenshot achter):

./configure
make
make install

. / Configure

maken

make install

4. Klaar, dit is al geïnstalleerd. Nu gaan we door met het maken van de kooi die toekomstige gebruikers zal bevatten, in mijn geval heb ik het gemaakt in: / opt / en noemde het "jail", dus het pad zou zijn: / opt / jail :

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

5. De kooi is al gemaakt, maar beschikt niet over alle benodigde tools zodat toekomstige gebruikers die er zullen zijn zonder problemen kunnen werken. Ik bedoel, tot nu toe is de kooi gemaakt, maar het is gewoon een lege doos. Nu zullen we enkele gereedschappen in de kooi plaatsen die gebruikers in kooien nodig hebben:

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. Klaar, de kooi bestaat en heeft al de tools die de gebruiker kan gebruiken ... nu hebben we alleen nog ... de gebruiker nodig! Laten we de gebruiker maken kira en we zullen het in de kooi stoppen:

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

Opmerking: voer de volgende opdracht uit in een terminal en het zou een resultaat moeten hebben dat lijkt op het resultaat dat wordt weergegeven in de schermafbeelding:

cat /etc/passwd | grep jk_chroot

Als u merkt dat niets zoals de schermafbeelding verschijnt, moet u iets verkeerd hebben gedaan. Laat hier een reactie achter en ik help je graag verder.

7. En voila, de gebruiker is al gekooid ... maar hij is ZO gekooid, dat hij geen verbinding kan maken via SSH, want wanneer hij probeert verbinding te maken, laat de server hem niet:

8. Om de gebruiker verbinding te laten maken, moeten we nog een stap doen.

We moeten het etc / passwd-bestand van de kooi bewerken, dat wil zeggen, in dit geval zou het zijn / opt / jail / etc / passwd , daarin geven we commentaar op de gebruikersregel die we hebben gemaakt en voegen we een nieuwe toe, zoals:

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

Dat wil zeggen, we zouden het bestand zo hebben 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

Let goed op de dubbele leestekens en andere, het is belangrijk om ze niet te laten vallen 🙂

Na dit te hebben gedaan, kan de gebruiker zonder problemen 😀 invoeren

En dat is alles.

De tool die we hiervoor gebruiken (gevangeniskit) gebruiken in de backend chroot, wat eigenlijk is wat bijna alle tutorials gebruiken. Met JailKit wordt het echter eenvoudiger om 😉 te kooien

Belangrijk!: Dit is getest op Debian Knijpen (6) y centos en het werkte % tot 100, getest in Debian Wheezy (7) en het heeft ook gewerkt, hoewel met een klein detail, dat de bijnaam van de gebruiker niet wordt weergegeven in de ssh, maar dat het geen enkele functionaliteit verliest.

Als iemand een probleem heeft of er gaat iets niet goed, laat dan zo veel mogelijk details achter, ik beschouw mezelf niet als een expert maar ik zal je zoveel mogelijk helpen.


Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: Miguel Ángel Gatón
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.

  1.   v3on zei

    dan zou het zoiets zijn als de permissies in FTP? interessant

    je komt altijd uit met alles waarvan je niet eens wist dat het bestond, zoals de gebruikers in mysql xD

    1.    KZKG ^ Gaara zei

      Niet precies, want SSH is niet hetzelfde als FTP. SSH is een shell, dat wil zeggen een terminal ... je zou in een terminal op een andere computer of server zijn, je zou commando's kunnen uitvoeren, processen kunnen starten, enz ... je zou zoveel doen als de serverbeheerder je toestaat 😉

      hahahahaha nee kom op, wat er gebeurt is dat ik meer technische dingen publiceer ... dat wil zeggen, ik publiceer graag kleine dingen die niet zo populair en interessant zijn. Persoonlijk ben ik bijvoorbeeld niet van plan iets te publiceren op de dag dat de nieuwe Ubuntu uitkomt, omdat ik geloof dat velen er al over zullen praten ... maar wat je hier in de post leest, is het niet iets dat elke keer wordt gelezen dag of niet? 😀

      1.    Damian riviera zei

        Zeer goede bijdragen bedankt

        er is ook een protocol genaamd sftp dat ftp en Secure Shell samen is, hoewel het niet hetzelfde is als FTP over SSH: \

        groeten

        1.    KZKG ^ Gaara zei

          Ja ja inderdaad, maar door SSH te kooien, kooi ik automatisch iedereen die verbinding maakt via SFTP, want zoals je zegt, SFTP is eigenlijk SSH + FTP 😀

          groeten

  2.   giskard zei

    De afbeeldingen zijn niet te zien !!! 🙁

    1.    KZKG ^ Gaara zei

      Een kleine fout van mij hehe, vertel het me nu 😀

      1.    giskard zei

        Klaar. Bedankt 😀

  3.   rot87 zei

    heel goed, ik wijs het naar mijn favorieten om het beschikbaar te hebben wanneer ik het nodig heb lol

    1.    KZKG ^ Gaara zei

      Bedankt, eventuele vragen of problemen, we zijn hier om u te helpen 🙂

  4.   Handleiding van de Bron zei

    Ze hebben Perseus in een kooi. http://i.imgur.com/YjVv9.png

    1.    gepast zei

      lol
      xD

  5.   jorgemanjarrezlerma zei

    Hoe gaat het?

    Weet je, het is een onderwerp waar ik niet erg bekend mee ben en dat ik BSD (PC-BSD en Ghost BSD) had gecontroleerd en ik vind het erg interessant en met functies die erg handig kunnen zijn.

    Ik ga het bewaren ter referentie en het vergelijken met het BSD-document. Bedankt voor de informatie.

    1.    KZKG ^ Gaara zei

      Ik was hier ook niet bekend mee omdat ik er nooit aan had gedacht om iemand SSH toegang te geven tot een van mijn servers haha, maar toen ik de noodzaak vond om dit te doen, wilde ik toegang geven maar zonder de mogelijkheid dat iemand per ongeluk iets deed dat niet moet 😀

      Ik heb dit nog nooit op BSD-systemen geprobeerd, dus ik kan je niet vertellen dat het zal werken, maar als je zoekt hoe je op BSD kunt chroot, zou er iets uit moeten komen

      Bedankt voor de commentaarvriend 🙂

      1.    Damian riviera zei

        Hallo, ik gebruik FreeBSD en natuurlijk werkt jailkit in feite dit in de ports

        Je installeert het met dit commando

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

        Of door ftp-pakket

        pkg_add -r jailkit

        Alleen in de configuratie (kira: x: 1003: 1003 :: / home / kira: / bin / bash)

        Je moet tcsh of sh toevoegen, tenzij je bash hebt geïnstalleerd en dit pad toevoegt

        / usr / local / bin / bash

        En nog een paar details, in Ghost BSD zou het vergelijkbare proces nog eenvoudiger moeten zijn omdat het gebaseerd is op FreeBSD

        groeten

  6.   adiazc87 zei

    Geweldig, ik was er naar op zoek; weet je of het werkt in Centos ??; bedankt.

    1.    KZKG ^ Gaara zei

      Ik heb het niet getest op Centos, maar ja, het zou moeten werken :)
      Ik herinner me zelfs dat een aantal van hen dezelfde tool hebben gebruikt op Centos- en Red Hat-servers 😉

  7.   cyberalejo 17 zei

    Heel erg bedankt. Het gaat rechtstreeks naar bladwijzers.

    1.    KZKG ^ Gaara zei

      Bedankt voor je reactie 🙂

  8.   MV Altamirano zei

    Zeer goede "truc", super handig voor sys-beheerders. Maar nog beter, uitstekend goed geschreven. Wat wil je nog meer.
    Hartelijk dank voor de bijdrage.

    1.    KZKG ^ Gaara zei

      Bedankt, heel erg bedankt voor je reactie comment
      groeten

  9.   LiGNUXero zei

    Prijs SSH haha
    Ik heb ooit geprobeerd een kooi voor ssh te maken, maar in de traditionele stijl en de waarheid is dat het nooit correct is uitgekomen. Als de kooi draaide, had hij niet eens een bash, dat wil zeggen, hij was verbonden en er was niets meer over haha, als de shell werkte, zou hij omhoog kunnen gaan in de directoryhiërarchie en veel meer quilombo's haha, maar deze jailkit is een knots, het automatiseert al die dingen ... Sterk aanbevolen

    1.    KZKG ^ Gaara zei

      haha dankjewel.
      Ja, eigenlijk is SSH allemaal geweldig voor wat het ons toestaat, wat eigenlijk niets meer is dan wat het systeem toestaat, dus ... hoera voor Linux! … Haha.

  10.   nwt_lazaro zei

    Hallo, een vraag!
    waarom het huis veranderen van (1) / opt / jail /./ home / kira naar (2) / home / kira

    We moeten het bestand etc / passwd van de kooi bewerken, dat wil zeggen, in dit geval zou het / opt / jail / etc / passwd zijn, daarin zullen we commentaar geven op de gebruikersregel die we hebben gemaakt en een nieuwe toevoegen, zoals:

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

    Met andere woorden, het passwd-bestand ziet er als volgt uit:

    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 zei

      Hallo 🙂
      Als dat niet is ingesteld, werkt de SSH-toegang niet, de gebruiker probeert verbinding te maken maar wordt automatisch verwijderd ... het lijkt een bug of probleem te zijn met de tolk die JailKit met zich meebrengt, omdat bij het maken van deze wijziging aangeeft dat het de normale bash van het systeem, alles werkt.

      1.    Omar Ramirez zei

        Ik sluit de SSH-sessie nog steeds af: C
        Gebruik 10.1 x64

  11.   alexitu zei

    Hallo, ik heb dit geïnstalleerd en het werkt uitstekend geest heel goed in centos = D

    maar mijn dua is zoals geleden om meer commando's toe te voegen, bijvoorbeeld aan een gevangenisgebruiker
    kan het svn co-commando niet uitvoeren http://pagina.com/carpeta

    Ik bedoel, dit commando bestaat in dit geval niet voor jail-gebruikers, zoals geleden, om deze commando's aan de jail toe te voegen en er zijn er nog veel meer die ik moet toevoegen.

    1.    KZKG ^ Gaara zei

      Hallo, hoe gaat het 🙂
      Als je het commando «svn» in de gevangenis wilt inschakelen, heb je het commando jk_cp
      Dat is:
      jk_cp / opt / jail / / bin / svn

      Dit ervan uitgaande dat het binaire of uitvoerbare bestand svn is: / bin / svn
      En laat de Cage / Jail zijn: / opt / jail /

      U zult commando's vinden die afhankelijk zijn van anderen, dat wil zeggen, als u het commando «pepe» toevoegt, zult u zien dat u ook «federico» moet toevoegen, omdat «pepe» afhankelijk is van «federico» om uitgevoerd te worden, als u dit vindt, dan je voegt de nodige commando's toe en al 😉

      1.    alexitu zei

        Dat is uitstekend, ik test het nu, en ik zeg je dat het is gebeurd, heel erg bedankt = D

        1.    KZKG ^ Gaara zei

          Geluk 😀

  12.   alexitu zei

    Ik ben erin geslaagd om te doen wat je me vertelde, maar op deze manier en automatisch heeft het me probleemloos gedetecteerd Dit was het commando dat ik vroeger kon gebruiken om de subversion te gebruiken.

    jk_cp -j / home / jaul svn

    Nou, ik gebruik centos xP en misschien is het anders maar goed
    nu zou ik graag willen weten welke bibliotheken zoals svn zijn, maar nu zou ik willen compileren omdat laten we zeggen dat ik een commando als dit moet gebruiken

    ./configure en markeer fout

    ./configure.lineno: line 434: expr: commando niet gevonden

    Ik zou niet weten welke de bibliotheken zijn die ik al heb geïnstalleerd, wat is mysql en andere als het compileert buiten de gevangenis maar niet binnen de jaui.

    excuses voor het ongemak.

    ps: je moet in de gids zetten wat ik je heb verteld over het commando dat wordt gebruikt in centos =) groeten.

    1.    KZKG ^ Gaara zei

      Kijk, als ik je vertel dat het geen commando kan vinden (zoals hier), is het eerste wat je moet doen het commando vinden:

      whereis expr

      Eenmaal gevonden (/ usr / bin / expr en / usr / bin / X11 / expr) kopiëren we het naar de gevangenis met jk_cp 😉
      Probeer dit om te zien.

      Ja, ik heb het bericht al bewerkt en toegevoegd dat het werkt in Centos 😀

  13.   adiazc87 zei

    Geweldig, heel erg bedankt (:

  14.   Jezus zei

    Bedankt voor de input ...

  15.   karma zei

    Hallo hoe gaat het?

  16.   djfenixchili zei

    Neuk kerel! Uit Chili mijn groeten. Je bent net zo scheet als ik! LOL!. Knuffels. Je bericht heeft me enorm geholpen!

    1.    KZKG ^ Gaara zei

      Bedankt voor je reactie 😀

  17.   Daniel PZ zei

    Heel erg bedankt voor de post, het heeft me veel geholpen, maar helaas in het deel van

    //////////////////////////////////////////// // //////////////////////////////////////////// //// //////////////////////
    We moeten het bestand etc / passwd van de kooi bewerken, dat wil zeggen, in dit geval zou het / opt / jail / etc / passwd zijn, daarin zullen we commentaar geven op de gebruikersregel die we hebben gemaakt en een nieuwe toevoegen, zoals:

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

    Met andere woorden, het passwd-bestand ziet er als volgt uit:

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

    Het veroorzaakt dezelfde fout, ik bedoel, ik laat het zoals het is, en het start me vanaf de terminal wanneer ik verbinding maak, ik geef commentaar op de regel en voeg er nog een toe om het te wijzigen zoals je aangeeft, en het ook laarzen me….

    Installeer de laatste versie "jailkit-2.16.tar", maak zelfs een script om tijd te besparen, dit is hieronder:

    //////////////////////////////////////////// // //////////////////////////////////////////
    #! / 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
    maken
    make install
    afrit
    //////////////////////////////////////////// // ///////////////////////////

    Uiteraard loggen ze eerst in als "root" ...

    Hoe kon ik de foutvriend oplossen ????

    1.    Daniel PZ zei

      Sorry, ik heb het al, ik had een fout gemaakt in de thuismap, maar ik heb grote twijfel, hoe kan ik ervoor zorgen dat ik het commando "scherm" kan uitvoeren, ik probeer het te gebruiken (in de gekooide gebruiker) , maar het werkt niet ... Een ander ding is dat ,, hoe krijg ik deze gekooide gebruiker om het wijnprogramma te draaien op een exe die hij zojuist in zijn huis heeft gezet ,, hoe zou het zijn?

  18.   Leonel zei

    hallo, heel goede tuto! Ik ben nieuw in deze omgevingen, ik heb een vraag ...
    Wat de beveiliging betreft, zie ik dat het in de root veel mappen heeft, zijn deze nodig? Ik wil gewoon dat hij toegang heeft tot zijn map (ftp-upload en ssh-execute) om een ​​applicatie uit te voeren, welke mappen kan hij uit de root verwijderen? of vormt het geen enkel gevaar voor mij? Ik waardeer uw hulp bij voorbaat, groeten!

  19.   CubaRood zei

    @ KZKG ^ Gaara, godzijdank dat je de piepende fout hebt geplaatst, maar met de versie van jailkit-2.16.tar.gz die je voorstelde, hebben ze het opgelost

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

  20.   algabe zei

    Ik denk dat ik het doorgeef naar een pdf, jojo .. naar de kooi en bedankt wn 😀

  21.   Samuel zei

    Gegroet vriend, ik heb een vraag:

    Stel dat we een gebruiker hebben met de naam "test".

    De vraag is of het bestand /home/test/.ssh/known_hosts dat zich in het huis van die gebruiker bevindt, is het hetzelfde bestand of heeft de gebruiker niet gekooid?

  22.   Richard zei

    Probeer dit. Met deze methode is het mogelijk om de navigatie te beperken tot het andere huis van de andere gebruikers.

  23.   TZBKR zei

    Allereerst bedankt voor de post! Het is erg nuttig voor mij; maar ik heb twee twijfels, en deze komen voort uit het scenario dat ik heb:

    Ik moet N-gebruikers maken met onafhankelijke en privétoegang tot hun huis, elke gebruiker heeft alleen toegang tot zijn huis om daar opgeslagen bestanden te deponeren, te wijzigen en te verwijderen zonder naar anderen te hoeven gaan (ik heb dit punt al). Het vereist geen toegang via ssh.

    1. Moet u voor elke gebruiker een kooi maken, of is er een manier om de verschillende gebruikers in dezelfde kooi te hebben, maar elk met hun "privé" map?

    2. Wanneer toegang wordt verkregen (via FTP-client), worden alle mappen die door de tool zijn aangemaakt getoond, is er een manier om de map schoon te laten zien? Of heb ik onderweg iets fout gedaan?

  24.   eduardlh zei

    Uitstekende tutorial! Het heeft me enorm geholpen, ik test het met versie 2.17 op Ubuntu 14.04 en het werkt erg goed. Nu heb ik de volgende uitdaging: als de gebruiker eenmaal is gekooid zodat hij niet naar een pad kan gaan, wil ik dat hij alleen de inhoud kan zien van een bestand dat zich in een ander pad bevindt. Ik heb het geprobeerd met een symbolische link, maar wanneer ik een staart of een kat van dit bestand probeer te maken, vertelt het me dat het niet bestaat, hoewel ik dat bestand bij toegang met de gebruiker in het huis van de kooi kan plaatsen.

    Als je me zou kunnen helpen, zou ik je zeer dankbaar zijn, bij voorbaat dank

  25.   yas zei

    Hallo, ik heb de hele handleiding gevolgd en bij het inloggen met ssh sluit het automatisch, sporen:

    4 december 19:20:09 toby sshd [27701]: geaccepteerd wachtwoord voor test van 172.16.60.22 poort 62009 ssh2
    4 december 19:20:09 toby sshd [27701]: pam_unix (sshd: sessie): sessie geopend voor gebruikerstest door (uid = 0)
    4 december 19:20:09 toby jk_chrootsh [27864]: gaat nu jail / opt / jail binnen voor gebruikerstest (1004) met argumenten
    4 december 19:20:09 toby sshd [27701]: pam_unix (sshd: sessie): sessie gesloten voor gebruikerstest

    bedankt

  26.   Omar Ramirez zei

    Niet wanneer ik de laatste stap doe om ssh-toegang te geven aan de gebruiker, wordt de verbinding nog steeds verbroken 🙁

  27.   Benj zei

    Is het mogelijk om vanaf deze aangemaakte gebruiker naar root te veranderen? je -wortel? het laat mij niet toe. Hoe zou het zijn? Bedankt voor je hulp

  28.   Slevin zei

    Heel erg bedankt voor de tutorial, ik had het nodig om een ​​gebruiker te maken die clonezilla kon gebruiken om een ​​afbeelding te maken en deze naar een buitenlandse server te kopiëren, maar die niet kon zwermen waar hij maar wilde

  29.   Mauro zei

    Mooi zo! Ik zou iets moeten weten.

    Is het mogelijk om als ROOT in te voeren met FTP en deze permissies te hebben, om het te beheren via FTP en niet met SSH? Laten we zeggen zoals het creëren van een verbinding, tunnelstijl of iets dergelijks. Hoe wordt het gedaan? Het VSFTPD-bestand instellen?

    Thanks a lot!