Ako uväzniť používateľov, ktorí sa pripájajú cez SSH

V našom svete existuje veľa, veľa tajomstiev ... Úprimne si nemyslím, že sa môžem naučiť dosť na to, aby som väčšinu z nich poznal, a to je dané jednoduchým faktom, že Linux nám umožňuje robiť toľko, ale toľko vecí, že je pre nás ťažké poznať ich všetky.

Tentokrát vysvetlím, ako urobiť niečo mimoriadne užitočné, čo musia urobiť mnohí správcovia sietí alebo systémov, a bolo pre nás ťažké jednoducho nenájsť celkom jednoduchý spôsob, ako to dosiahnuť:

Ako umiestniť do klietky používateľov pripájajúcich sa cez SSH

klietka? ... WTF!

Áno. Ak z nejakého dôvodu musíme dať nášmu priateľovi prístup k nášmu počítaču (alebo serveru), musíme sa vždy postarať o bezpečnosť a stabilitu nášho počítača alebo servera.

Stáva sa, že sme nedávno chceli dať Perseusovi SSH prístup k nášmu serveru, ale nemôžeme mu dať žiadny druh prístupu, pretože tam máme skutočne citlivé konfigurácie (veľa vecí, balíkov, ktoré sme si nainštalovali individuálne, sme kompilovali atď ...) a ak niekto, kto nemá Či už sa pokúsim urobiť na serveri čo i len najmenšiu zmenu, je tu možnosť, že všetko vyjde nazmar.

Potom, Ako vytvoriť používateľa s extrémne obmedzenými oprávneniami natoľko, že sa nemôže dostať ani zo svojej klietky (domov)?

Začnime sťahovaním väzenská súprava, nástroj, ktorý nám to umožní:

Všetky nasledujúce príkazy sú spustené ako root

1. Najprv si musíme stiahnuť náš server JailKit.

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

2. Potom musíme balíček rozbaliť a zadať priečinok, ktorý sa práve objavil:

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

3. Neskôr sme pokračovali v kompilácii a inštalácii softvéru (Nechám ti screenshot):

./configure
make
make install

. / Configure

činiť

make install

4. Pripravené, toto je už nainštalované. Teraz pokračujeme vo vytváraní klietky, ktorá bude obsahovať budúcich používateľov, v mojom prípade som ju vytvoril v: / opt / a nazval ju „väzenie“, takže cesta bude: / zvoliť / uväzniť :

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

5. Klietka je už vytvorená, ale nemá všetky potrebné nástroje, aby budúci používatelia, ktorí tam budú, mohli bez problémov pracovať. Myslím tým, až doteraz je klietka vytvorená, ale je to len prázdne políčko. Teraz vložíme do klietky niektoré nástroje, ktoré budú používatelia v klietke potrebovať:

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. Pripravená, klietka existuje a už má nástroje, ktoré môže používateľ používať ... teraz potrebujeme iba ... používateľa! Chystáme sa vytvoriť používateľa Kira a dáme to do klietky:

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

Poznámka: Vykonajte nasledujúci príkaz v termináli a mal by mať výsledok podobný výsledku uvedenému na snímke obrazovky:

cat /etc/passwd | grep jk_chroot

Ak si všimnete, že sa nič také ako snímka obrazovky neobjavuje, pravdepodobne ste urobili niečo zle. Zanechajte tu komentár a rád vám pomôžem.

7. A voila, používateľ je už v klietke ... ale je v SO klietke, že sa nemôže pripojiť pomocou SSH, pretože pri pokuse o pripojenie mu server nedovolí:

8. Aby sme používateľovi umožnili pripojenie, musíme urobiť ešte jeden krok.

Musíme upraviť súbor etc / passwd klietky, to znamená, že v takom prípade by to bolo / opt / jail / etc / passwd , v ňom komentujeme používateľskú linku, ktorú sme vytvorili, a pridáme novú, napríklad:

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

To znamená, že by sme mali takýto súbor passwd:

koreň: x: 0: 0: koreň: / root: / bin / bash
#kira: x: 1003: 1003: ,,,: / opt / jail /./ home / kira: / usr / sbin / jk_lsh
kira: x: 1003: 1003 :: / home / kira: / bin / bash

Všimnite si dobre duplicitné interpunkčné znamienka a ďalšie, je dôležité, aby vám žiadne z nich nehádzali 🙂

Potom môže užívateľ bez problémov vstúpiť 😀

A to je všetko.

Nástroj, ktorý na toto všetko používame (väzenská súprava) použitie v backende chroot, čo vlastne používajú takmer všetky výukové programy. Používanie JailKit je však jednoduchšie umiestniť do klietky 😉

Dôležité!: Toto bolo testované na Debian Squeeze (6) y CentOS a fungovalo to pri 100%, testované v Debiane Wheezy (7) a taktiež sa osvedčilo, aj keď s malými podrobnosťami, že prezývka používateľa sa v ssh nezobrazuje, ale nestráca žiadnu funkčnosť.

Ak má niekto problém alebo niečo nie je v poriadku, nechajte čo najviac podrobností, nepovažujem sa za odborníka, ale pomôžem vám, ako budem môcť.


Zanechajte svoj komentár

Vaša e-mailová adresa nebude zverejnená. Povinné položky sú označené *

*

*

  1. Zodpovedný za údaje: Miguel Ángel Gatón
  2. Účel údajov: Kontrolný SPAM, správa komentárov.
  3. Legitimácia: Váš súhlas
  4. Oznamovanie údajov: Údaje nebudú poskytnuté tretím stranám, iba ak to vyplýva zo zákona.
  5. Ukladanie dát: Databáza hostená spoločnosťou Occentus Networks (EU)
  6. Práva: Svoje údaje môžete kedykoľvek obmedziť, obnoviť a vymazať.

  1.   v3on dijo

    potom by to bolo niečo ako povolenia na FTP? zaujímavé

    vždy prídete so všetkým, o čom ste ani len netušili, že existuje, ako napríklad používatelia v mysql xD

    1.    KZKG ^ Gaara dijo

      Nie tak úplne, pretože SSH nie je to isté ako FTP. SSH je shell, teda terminál ... nachádzali by ste sa v termináli na inom počítači alebo serveri, mohli by ste vykonávať príkazy, spúšťať procesy atď ... robili by ste toľko, koľko vám umožňuje správca servera 😉

      hahahahaha nah no tak, čo sa stane, je to, že zverejňujem viac technických vecí ... to znamená, že rád zverejňujem maličkosti, ktoré nie sú také populárne a zaujímavé. Ja osobne napríklad neplánujem niečo zverejňovať v deň, keď vyjde nový Ubuntu, pretože verím, že už o tom budú mnohí hovoriť ... však to, čo sa dočítate tu v príspevku, nie je to niečo, čo sa číta každý deň alebo nie? 😀

      1.    Damian rivera dijo

        Veľmi dobré príspevky ďakujem

        existuje aj protokol sftp, ktorý je ftp a Secure Shell spolu, aj keď to nie je to isté ako beh FTP cez SSH: \

        pozdravy

        1.    KZKG ^ Gaara dijo

          Áno, áno, skutočne, ale umiestnením do vyrovnávacej pamäte SSH automaticky ukladám do klietky každého, kto sa pripojí pomocou protokolu SFTP, pretože ako hovoríte, SFTP je vlastne SSH + FTP 😀

          pozdravy

  2.   giskard dijo

    Zábery nie je možné vidieť !!! 🙁

    1.    KZKG ^ Gaara dijo

      Moja malá chyba hehe, povedz mi to hneď 😀

      1.    giskard dijo

        Pripravený. Dakujem 😀

  3.   Hnije87 dijo

    veľmi dobré, poukazujem na svojich obľúbených, aby som ich mal k dispozícii, keď to potrebujem lol

    1.    KZKG ^ Gaara dijo

      Ďakujeme, máte akékoľvek otázky alebo problémy, sme tu, aby sme vám pomohli 🙂

  4.   Manuál zdroja dijo

    V klietke majú Perseusa. http://i.imgur.com/YjVv9.png

    1.    riadny dijo

      LOL
      xD

  5.   jorgemanjarrezlerma dijo

    Ako sa máš.

    Viete, je to predmet, s ktorým nie som veľmi oboznámený a ktorý som bol skontrolovať v BSD (PC-BSD a Ghost BSD) a považujem ho za veľmi zaujímavý a s funkciami, ktoré môžu byť veľmi užitočné.

    Ponechám si to pre referenciu a skontrolujem to oproti BSD doc. Vďaka za informácie.

    1.    KZKG ^ Gaara dijo

      Tiež som s tým nebol oboznámený, pretože ma nikdy nenapadlo dať niekomu SSH prístup na ktorýkoľvek z mojich serverov, haha, ale keď som zistil, že je to potrebné, chcel som mu dať prístup, ale bez možnosti, aby niekto omylom urobil niečo, čo nie je musí 😀

      Nikdy som to neskúšal na systémoch BSD, takže vám nemôžem povedať, že to bude fungovať, ale ak hľadáte, ako chrootovať na BSD, malo by niečo vyjsť 😉

      Ďakujem za komentár kamarát 🙂

      1.    Damian rivera dijo

        Dobrý deň, používam FreeBSD a jailkit samozrejme funguje v skutočnosti v portoch

        Nainštalujete ho pomocou tohto príkazu

        cd / usr / porty / mušle / jailkit / && urobte inštaláciu čistou

        Alebo ftp paketom

        pkg_add -r väzenská súprava

        Iba v konfigurácii (kira: x: 1003: 1003 :: / home / kira: / bin / bash)

        Musíte pridať tcsh alebo sh, pokiaľ nemáte nainštalovaný bash a pridať túto cestu

        / usr / local / bin / bash

        A ešte niekoľko podrobností, v Ghost BSD by mal byť podobný proces ešte jednoduchší, pretože je založený na FreeBSD

        pozdravy

  6.   adiazc87 dijo

    Super, hľadal som to; vieš či to funguje v Centose ?? Vďaka.

    1.    KZKG ^ Gaara dijo

      Neskúšal som to na Centose, ale áno, malo by to fungovať :)
      V skutočnosti si pamätám, že viacerí použili ten istý nástroj na serveroch Centos a Red Hat 😉

  7.   kyberalejo17 dijo

    Mnohokrat dakujem. Prejde priamo na záložky.

    1.    KZKG ^ Gaara dijo

      Ďakujem za komentár 🙂

  8.   MV Altamirano dijo

    Veľmi dobrý „trik“, super užitočný pre správcov systému. Ale ešte lepšie, vynikajúco dobre napísané. Čo viac si priať
    Ďakujem za príspevok.

    1.    KZKG ^ Gaara dijo

      Ďakujem, ďakujem pekne za komentár 😀
      pozdravy

  9.   LiGNUxer dijo

    Chvála SSH haha
    Raz som sa pokúsil vyrobiť klietku pre ssh, ale v tradičnom štýle a pravdou je, že to nikdy nevyšlo správne. Ak klietka bežala, nemala ani bash, to znamená, že sa pripojila a nezostávalo nič, haha, ak bol shell spustený, mohol ísť hore v hierarchii adresárov a oveľa viac quilombos haha, ale tento jailkit je palcát, automatizuje všetky tieto veci ... Vysoko odporúčané

    1.    KZKG ^ Gaara dijo

      haha Ďakujem.
      Áno, v skutočnosti je SSH úžasné to, čo nám umožňuje, čo v skutočnosti nie je nič iné ako to, čo systém umožňuje, takže ... hurá pre Linux! ... haha.

  10.   nwt_lazaro dijo

    Dobrý deň, otázka!
    prečo zmeniť domov z (1) / opt / jail /./ home / kira na (2) / home / kira

    Musíme upraviť súbor etc / passwd klietky, to znamená, že v tomto prípade by to bol / opt / jail / etc / passwd, v ktorom komentujeme používateľskú linku, ktorú sme vytvorili, a pridať nový, napríklad:

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

    Inými slovami, súbor passwd bude vyzerať takto:

    koreň: x: 0: 0: koreň: / 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 dijo

      Ahojte 🙂
      Ak to nie je nastavené, prístup SSH nefunguje, používateľ sa pokúša pripojiť, ale je automaticky vylúčený ... zdá sa, že ide o chybu alebo problém s tlmočníkom, ktorý prináša JailKit, pretože pri tejto zmene naznačujúcej, že používa normálny bash systému, všetko funguje .

      1.    Omar ramirez dijo

        Stále uzatváram reláciu ssh: C
        Suse 10.1 x64

  11.   alexitu dijo

    Dobrý deň, nainštaloval som si toto a funguje to vynikajúco aj v centos = D

    ale moje dua je ako pred tým, aby pridalo ďalšie príkazy napríklad používateľovi väzenia
    príkaz svn co nemôže spustiť http://pagina.com/carpeta

    Myslím, že tento príkaz neexistuje, aby v tomto prípade používatelia väzenia pridávali tieto príkazy do väzenia ako predtým, a je ešte veľa ďalších, ktoré musím pridať.

    1.    KZKG ^ Gaara dijo

      Ahoj ako sa máš?
      Ak chcete povoliť príkaz «svn» vo väzení, máte príkaz jk_cp
      To je:
      jk_cp / opt / jail / / bin / svn

      Toto predpokladá binárny alebo spustiteľný súbor svn: / bin / svn
      A nech je klietka / väzenie: / opt / väzenie /

      Nájdete príkazy, ktoré závisia od ostatných, to znamená, že ak pridáte príkaz «pepe», uvidíte, že musíte pridať aj «federico», pretože «pepe» závisí od vykonaného «federico», ak ich nájdete, pridáte potrebné príkazy a už 😉

      1.    alexitu dijo

        To je vynikajúce, testujem to súčasne a hovorím vám, čo sa stalo, ďakujem pekne = D

        1.    KZKG ^ Gaara dijo

          Šťastie 😀

  12.   alexitu dijo

    Podarilo sa mi urobiť to, čo ste mi povedali, ale takto a automaticky to bez problémov zistilo. Toto bol príkaz, ktorým som používal podverziu.

    jk_cp -j / home / jaul svn

    Používam centos xP a možno je iný, ale dobrý
    teraz by som chcel vedieť, ktoré sú knižnice ako svn, ale teraz by som chcel kompilovať, pretože povedzme, že musím použiť taký príkaz

    ./konfigurovať a označiť chybu

    ./configure.lineno: riadok 434: expr: príkaz sa nenašiel

    Nevedel by som, ktoré sú knižnice, ktoré som už nainštaloval, čo je mysql a ďalšie, ak sa kompiluje mimo väzenia, ale nie vo vnútri väzenia.

    Ospravedlňujem sa za nepríjemnosť.

    ps: mali by ste do sprievodcu vložiť to, čo som vám povedal o príkaze použitom v pozdravoch centos =).

    1.    KZKG ^ Gaara dijo

      Keď ti poviem, že nemôže nájsť príkaz (ako tu), prvá vec je nájsť príkaz:

      whereis expr

      Po nájdení (/ usr / bin / expr a / usr / bin / X11 / expr) ho skopírujeme do väzenia pomocou jk_cp 😉
      Skúste to vidieť.

      Áno, príspevok už upravujem a dodávam, že funguje v Centose 😀

  13.   adiazc87 dijo

    Veľké ďakujem veľmi pekne (:

  14.   Ježiš dijo

    Ďakujeme za príspevok ...

  15.   karma dijo

    Ahoj ako sa máš?

  16.   djfenixchile dijo

    Kurva kámo! Z Čile môj pozdrav. Si prd ako ja! LOL !. Objatia. Váš príspevok mi veľmi pomohol!

    1.    KZKG ^ Gaara dijo

      Ďakujeme za váš komentár 😀

  17.   Daniel PZ dijo

    Ďakujem pekne za príspevok, veľmi mi pomohol, ale bohužiaľ v časti

    ////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////// ////////////////////////
    Musíme upraviť súbor etc / passwd klietky, to znamená, že v tomto prípade by to bol / opt / jail / etc / passwd, v ktorom komentujeme používateľskú linku, ktorú sme vytvorili, a pridať nový, napríklad:

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

    Inými slovami, súbor passwd bude vyzerať takto:

    koreň: x: 0: 0: koreň: / root: / bin / bash
    #kira: x: 1003: 1003: ,,,: / opt / jail /./ home / kira: / usr / sbin / jk_lsh
    kira: x: 1003: 1003 :: / home / kira: / bin / bash
    ////////////////////////////////////////////////////////// //////////////////////////////////////////////

    Spôsobuje mi to rovnakú chybu, myslím, že to nechám tak, ako to je, a zavádza ma z terminálu, keď sa pripájam ,,, .., komentujem linku a pridám ešte jednu, ktorá ho modifikuje, ako naznačuješ, a zavádza ma tiež ....

    Nainštalujte si najnovšiu verziu „jailkit-2.16.tar“, prípadne si vytvorte skript, ktorý šetrí čas, tu je:

    ////////////////////////////////////////////////////////// //////////////////////////////////////////////////
    #! / 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
    činiť
    make install
    výjazd
    //////////////////////////////////////////////////////// ///////////////////////////////

    Je zrejmé, že najskôr sa prihlásia ako „root“ ...

    Ako by som mohol vyriešiť chybu kamarát ????

    1.    Daniel PZ dijo

      Prepáčte, už som to pochopil, urobil som chybu v priečinku Domov, ale mám veľké pochybnosti, ako to môžem dosiahnuť spustením príkazu „obrazovka“, pokúsim sa ho použiť (v klietkovom používateľovi), ale nefunguje to ... Ďalšia vec je, že ako môžem dosiahnuť, aby tento používateľ v klietke spustil program pre víno na exe, ktorý vložil do svojho domova, ako by to bolo?

  18.   Leonel dijo

    ahoj, veľmi dobre tuto! Som v týchto prostrediach nový, mám otázku ...
    Čo sa týka bezpečnosti, vidím, že vo svojom koreňovom adresári má veľa priečinkov, sú potrebné? Chcem len, aby mal prístup k svojmu priečinku (ftp-upload a ssh-execute), aby mohol spustiť aplikáciu, aké priečinky by mohol z koreňa vymazať? alebo to pre mna nepredstavuje ziadne nebezpecenstvo? Vážim si vašu pomoc vopred, pozdravujem vás!

  19.   CubaRed dijo

    @ KZKG ^ Gaara, vďaka bohu, že ste zadali pískanie, ale s verziou jailkit-2.16.tar.gz, ktorú ste navrhli, aby napravili

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

  20.   Algave dijo

    Myslím, že to pošlem do PDF, jojo .. do klietky a vďaka wn 😀

  21.   Samuel dijo

    Pozdravujem priateľa, mám otázku:

    Predpokladajme, že máme používateľa s názvom „test“.

    Otázkou je, že súbor /home/test/.ssh/known_hosts, ktorý sa nachádza v domácnosti daného používateľa, je to ten istý súbor alebo nie je v klietke?

  22.   Richard dijo

    Skúste to. Pri tejto metóde je možné obmedziť navigáciu na druhý domov ostatných používateľov.

  23.   TZBKR dijo

    V prvom rade ďakujem za príspevok! Je to pre mňa veľmi užitočné; ale mám dve pochybnosti a tieto vyplývajú zo scenára, ktorý mám:

    Potrebujem vytvoriť N používateľov s nezávislým a súkromným prístupom k domovu. Každý používateľ má prístup iba k domovu, aby mohol ukladať, upravovať a mazať súbory, ktoré sú v ňom obsiahnuté, bez toho, aby sa musel pohybovať okolo ostatných (tento bod už mám). Nevyžaduje prístup cez ssh.

    1. Musíte vytvoriť klietku pre každého používateľa, alebo existuje spôsob, ako mať rôznych používateľov v jednej klietke, ale každý musí mať svoj „súkromný“ adresár?

    2. Pri prístupe (prostredníctvom klienta FTP) sa zobrazia všetky adresáre vytvorené nástrojom. Existuje spôsob, ako priečinok zobraziť čistým spôsobom? Alebo som popri tom urobil niečo zlé?

  24.   eduardlh dijo

    Vynikajúci návod! Bola to pre mňa veľká pomoc, testujem to s verziou 2.17 na Ubuntu 14.04 a funguje to veľmi dobre. Teraz mám nasledujúcu výzvu, akonáhle je používateľ v klietke, aby sa nemohol presunúť na žiadnu cestu, chcem, aby mohol vidieť iba obsah súboru, ktorý je v inej ceste. Snažil som sa o symbolický odkaz, ale pri pokuse o vytvorenie chvosta alebo mačky k tomuto súboru mi hovorí, že neexistuje, aj keď pri prístupe k používateľovi môžem tento súbor uviesť v domove klietky.

    Ak by ste mi mohli pomôcť, budem veľmi vďačný, vopred ďakujem

  25.   yas dijo

    Ahoj, sledoval som celý manuál a pri prihlasovaní pomocou ssh sa automaticky zatvára, stopy:

    4. decembra 19:20:09 toby sshd [27701]: Prijímané heslo na test z portu 172.16.60.22 62009 ssh2
    4. decembra 19:20:09 toby sshd [27701]: pam_unix (sshd: session): relácia otvorená pre používateľský test používateľom (uid = 0)
    4. decembra 19:20:09 toby jk_chrootsh [27864]: teraz zadáva väzenie / opt / väzenie pre používateľský test (1004) s argumentmi
    4. decembra 19:20:09 toby sshd [27701]: pam_unix (sshd: session): relácia je uzavretá pre používateľský test

    vďaka

  26.   Omar ramirez dijo

    Nie, keď urobím posledný krok poskytnutia prístupu ssh používateľovi, stále to ukončí pripojenie connection

  27.   Benj dijo

    Je možné od tohto vytvoreného používateľa zmeniť root? tvoj -root? to mi nedovolí. Ako by to bolo? Ďakujem za pomoc

  28.   slevin dijo

    Ďakujem pekne za návod, potreboval som ho na vytvorenie používateľa, ktorý by mohol pomocou clonezilly urobiť obrázok a skopírovať ho na zahraničný server, ale ktorý sa nemohol rojiť kdekoľvek chcel

  29.   Mauro dijo

    Dobre! Potreboval by som niečo vedieť.

    Je možné zadať ako ROOT pomocou FTP a mať tieto oprávnenia, spravovať ho pomocou FTP a nie pomocou SSH? Povedzme, že napríklad vytvoríme spojenie, štýl tunela alebo niečo podobné. Ako sa to deje? Konfigurujete súbor VSFTPD?

    Ďakujem ti veľmi pekne!