Az SSH-n keresztül csatlakozó felhasználók börtönbe zárása

A mi világunkban sok-sok titok rejlik ... Őszintén szólva nem hiszem, hogy elég sokat tudnék megtanulni a legtöbbjük megismeréséhez, és ezt az az egyszerű tény adja, hogy a Linux lehetővé teszi számunkra, hogy annyi mindent megtegyünk, de olyan sok mindent, hogy nehezen ismerjük mindet.

Ezúttal elmagyarázom Önnek, hogyan lehet valami rendkívül hasznos dolgot végrehajtani, amit sok hálózati vagy rendszergazdának meg kellett tennie, és nehezen tudtam egyszerűen nem találni meglehetősen egyszerű módját ennek elérésére:

Hogyan lehet ketrecbe rakni az SSH-n keresztül csatlakozó felhasználókat

ketrec? … WTF!

Igen. Ha valamilyen okból SSH-hozzáférést kell biztosítanunk egy barátunknak a számítógépünkhöz (vagy szerverünkhöz), akkor mindig vigyáznunk kell a számítógépünk vagy szerverünk biztonságára és stabilitására.

Előfordul, hogy a közelmúltban szerettünk volna hozzáférést adni a Perseus SSH-nak egy szerverünkhöz, de semmilyen típusú hozzáférést nem tudunk neki biztosítani, mert ott valóban érzékeny konfigurációink vannak (sok mindent összeállítottunk, csomagokat külön telepítettünk stb.), És ha valaki, aki nem Akár a legkisebb változtatásokat is megpróbálom végrehajtani a szerveren, fennáll annak a lehetősége, hogy minden pazarolni fog hehe.

Akkor, Hogyan lehet rendkívül korlátozott jogosultságokkal rendelkező felhasználót létrehozni, olyannyira, hogy még a ketrecéből sem tud kijönni (otthon)?

Kezdjük a letöltéssel jailkit, egy eszköz, amely lehetővé teszi számunkra ezt:

A következő parancsok rootként futnak

1. Először le kell töltenünk a JailKit szervert.

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

2. Ezután kicsomagoljuk a csomagot, és meg kell adnunk a most megjelent mappát:

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

3. Később folytattuk a szoftver fordítását és telepítését (Hagyok neked képernyőképet):

./configure
make
make install

A. / Configure

csinál

make install

4. Kész, ez már telepítve van. Most folytatjuk a jövőbeni felhasználókat tartalmazó ketrec létrehozását, esetemben a: / opt / könyvtárban hoztam létre, és "börtönnek" neveztem, így az út a következő lenne: / opt / jail :

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

5. A ketrec már elkészült, de nincs minden szükséges eszköze ahhoz, hogy a jövőbeni felhasználók, akik ott lesznek, problémamentesen működhessenek. Úgy értem, mostanáig létrehozták a ketrecet, de ez csak egy üres doboz. Most beteszünk a ketrecbe néhány eszközt, amelyre a ketrecben lévő felhasználóknak szüksége lesz:

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. Kész, a ketrec létezik, és már vannak eszközei a felhasználó számára, hogy használhassa ... Most már csak szükségünk van ... a felhasználóra! Hozzuk létre a felhasználót Kira és berakjuk a ketrecbe:

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

Megjegyzés: Hajtsa végre a következő parancsot egy terminálon, és annak hasonló eredményt kell elérnie, mint a képernyőképen:

cat /etc/passwd | grep jk_chroot

Ha azt veszi észre, hogy a képernyőképhez hasonló semmi nem jelenik meg, akkor biztosan rosszat tett. Hagyjon itt egy megjegyzést, és szívesen segítek.

7. És voila, a felhasználó már ketrecben van ... de annyira Ketrecben van, hogy nem tud SSH-val csatlakozni, mert amikor megpróbálja csatlakozni a szerverhez, nem engedi meg neki:

8. Annak érdekében, hogy a felhasználó csatlakozzon, még egy lépést kell tennünk.

Szerkesztenünk kell a ketrec etc / passwd fájlját, vagyis ebben az esetben az lenne / opt / jail / etc / passwd , kommentáljuk a létrehozott felhasználói sort, és hozzáadunk egy újat, például:

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

Vagyis megvannak az ilyen fájlok passwd:

root: x: 0: 0: root: / root: / bin / bash
#kira: x: 1003: 1003: ,,,: / opt / börtön /./ home / kira: / usr / sbin / jk_lsh
kira: x: 1003: 1003 :: / home / kira: / bin / bash

Jól vegye észre az ismétlődő írásjeleket és másokat, fontos, hogy egyiket se dobja el 🙂

Ezt követően a felhasználó problémamentesen beléphet 😀

És ennyi.

Az eszköz, amelyet mindehhez használunk (jailkit) használata a háttérképben chroot, amit valójában szinte az összes oktatóanyag használ. A JailKit használata azonban egyszerűbbé válik a ketrecbe helyezéssel 😉

Fontos!: Ezt tesztelték Debian Squeeze (6) y több száz és bevált 100% -ban, tesztelték a Debian Wheezy-ben (7), és az is működött, bár apró részletekkel, hogy a felhasználó beceneve nem szerepel az ssh-ben, de nem veszít semmilyen funkcionalitást.

Ha valaki problémát mutat be, vagy valami nem megy jól, hagyjon meg minél több részletet, nem tartom magam szakértőnek, de amennyire tudok, segítek.


Hagyja megjegyzését

E-mail címed nem kerül nyilvánosságra. Kötelező mezők vannak jelölve *

*

*

  1. Az adatokért felelős: Miguel Ángel Gatón
  2. Az adatok célja: A SPAM ellenőrzése, a megjegyzések kezelése.
  3. Legitimáció: Az Ön beleegyezése
  4. Az adatok közlése: Az adatokat csak jogi kötelezettség alapján továbbítjuk harmadik felekkel.
  5. Adattárolás: Az Occentus Networks (EU) által üzemeltetett adatbázis
  6. Jogok: Bármikor korlátozhatja, helyreállíthatja és törölheti adatait.

  1.   v3on dijo

    akkor valami hasonló lenne az FTP engedélyeihez? érdekes

    mindig előállsz mindennel, amiről nem is tudtál létezni, például a mysql xD felhasználói

    1.    KZKG ^ Gaara dijo

      Nem pontosan, mert az SSH nem azonos az FTP-vel. Az SSH egy shell, vagyis egy terminál ... egy másik számítógép vagy szerver terminálján lennél, végrehajthatnál parancsokat, elindíthatná a folyamatokat stb.

      hahahahahaha nah gyerünk, az történik, hogy több technikai dolgot publikálok ... vagyis szeretek olyan apróságokat publikálni, amelyek nem annyira népszerűek és érdekesek. Például én személy szerint nem tervezek közzé tenni valamit aznap, amikor megjelenik az új Ubuntu, mert úgy gondolom, hogy sokan már beszélnek róla ... azonban amit itt a posztban olvastál, nem valami naponta olvasható vagy sem? 😀

      1.    Damian rivera dijo

        Nagyon jó közreműködés köszönöm

        van még egy sftp nevű protokoll, amely az ftp és a Secure Shell együtt van, bár ez nem ugyanaz, mint az FTP futtatása SSH-n: \

        Üdvözlet

        1.    KZKG ^ Gaara dijo

          Igen, igen, de az SSH ketrecbe helyezésével automatikusan ketrecbe teszem azt, aki SFTP használatával csatlakozik, mert ahogy mondod, az SFTP valójában SSH + FTP 😀

          Üdvözlet

  2.   giskard dijo

    A képek nem láthatók !!! 🙁

    1.    KZKG ^ Gaara dijo

      Egy kis hibám hehe, mondd el most 😀

      1.    giskard dijo

        Kész. Köszönöm 😀

  3.   rots87 dijo

    nagyon jó, felhívom a kedvenceimre, hogy elérhető legyen, amikor szükségem van rá lol

    1.    KZKG ^ Gaara dijo

      Köszönöm, bármilyen kérdése vagy problémája van, hogy segítsünk Önnek 🙂

  4.   A Forrás kézikönyve dijo

    Perseus van egy ketrecben. http://i.imgur.com/YjVv9.png

    1.    megfelelő dijo

      LOL
      xD

  5.   jorgemanjarrezlerma dijo

    Hogy vagy.

    Tudod, ez egy olyan téma, amelyet nem nagyon ismerek, és amelyet BSD-ben (PC-BSD és Ghost BSD) ellenőriztem, és nagyon érdekesnek találom, és olyan funkciókkal rendelkezik, amelyek nagyon hasznosak lehetnek.

    Meg fogom tartani referenciaként, és összehasonlítom a BSD dokumentummal. Köszönöm a tájékoztatást.

    1.    KZKG ^ Gaara dijo

      Ezt én sem ismertem, mert soha nem gondoltam arra, hogy SSH-ként hozzáférhessek valamelyik szerveremhez, haha, de amikor szükségesnek találtam, hozzáférést akartam adni, de anélkül, hogy valaki tévedésből esetleg olyat tett volna, ami nem kell 😀

      Soha nem próbáltam ezt BSD rendszereken, ezért nem mondhatom el, hogy működni fog, de ha azt keresi, hogyan kell a BSD-t használni, akkor valaminek ki kell jönnie 😉

      Köszönöm a megjegyzést barátomnak 🙂

      1.    Damian rivera dijo

        Helló, a FreeBSD-t használom, és a jailkit természetesen működik a portokban

        Ezzel a paranccsal telepíti

        cd / usr / ports / shells / jailkit / && tisztává teszi a telepítést

        Vagy ftp csomaggal

        pkg_add -r jailkit

        Csak a konfigurációban (kira: x: 1003: 1003 :: / home / kira: / bin / bash)

        Hozzá kell adnia a tcsh-t vagy az sh-t, hacsak nem telepítette a bash-t és hozzáadja ezt az utat

        / usr / local / bin / bash

        És még néhány részlet, a Ghost BSD-ben a hasonló folyamatnak még egyszerűbbnek kell lennie, mivel a FreeBSD-re épül

        Üdvözlet

  6.   adiazc87 dijo

    Remek, kerestem; tudod hogy Centoson működik ?? köszönöm.

    1.    KZKG ^ Gaara dijo

      Centoson még nem teszteltem, de igen, működnie kellene :)
      Valójában azt hiszem, emlékszem, hogy többen használták ugyanazt az eszközt a Centos és a Red Hat szervereken 😉

  7.   cyberalejo17 dijo

    Nagyon köszönöm. Közvetlenül a könyvjelzőkhöz kerül.

    1.    KZKG ^ Gaara dijo

      Köszönöm, hogy hozzászóltál 🙂

  8.   MV Altamirano dijo

    Nagyon jó "trükk", nagyon hasznos a rendszergazdák számára. De még jobb, kiválóan jól megírt. Mit akarhat még.
    Nagyon köszönöm a hozzájárulást.

    1.    KZKG ^ Gaara dijo

      Köszönöm, nagyon köszönöm a megjegyzést 😀
      Üdvözlet

  9.   LiGNUxer dijo

    Dicséret SSH haha
    Egyszer megpróbáltam ketrecet készíteni az ssh számára, de hagyományos stílusban, és az az igazság, hogy soha nem jött ki helyesen. Ha a ketrec futott, akkor még bashja sem volt, vagyis csatlakozott, és nem maradt semmi haha, ha a shell fut, akkor felmehet a könyvtárhierarchiába és még sok más quilombos haha, de ez a jailkit buzogány, automatizálja mindazokat a dolgokat ... Fokozottan ajánlott

    1.    KZKG ^ Gaara dijo

      haha Köszi.
      Igen, az SSH valójában csodálatos abban, amit megenged nekünk, ami tulajdonképpen nem más, mint amit a rendszer megenged ... hurrá a Linux számára! … Haha.

  10.   nwt_lazaro dijo

    Helló, egy kérdés!
    miért változtatja az otthont (1) / opt / jail /./ home / kira helyett (2) / home / kira

    Szerkesztenünk kell a ketrec etc / passwd fájlját, vagyis ebben az esetben ez az / opt / jail / etc / passwd lenne, benne kommentáljuk a létrehozott felhasználói sort, és hozzáadunk egy újat, például:

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

    Más szavakkal, a passwd fájl így néz ki:

    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 dijo

      Helló 🙂
      Ha ez nincs beállítva, az SSH-hozzáférés nem működik, a felhasználó megpróbál csatlakozni, de automatikusan kizárja ... úgy tűnik, hogy hiba vagy probléma a JailKit által előállított tolmácsnál, mert amikor ezt a változtatást végrehajtja, jelzi, hogy a a rendszer normális alapértéke, minden működik.

      1.    Omar ramirez dijo

        Még mindig bezárom az ssh munkamenetet: C
        Használja 10.1 x64

  11.   alexitu dijo

    Szia, ezt telepítettem, és nagyon jól működik centóban = D

    de a dua-m olyan, mint régen, hogy további parancsokat adjon például egy börtön felhasználóhoz
    nem futtatható az svn co parancs http://pagina.com/carpeta

    Úgy értem, hogy ez a parancs nem létezik a börtön felhasználói számára ebben az esetben, mint korábban, hogy ezeket a parancsokat hozzáadja a börtönhöz, és még sok másat kell hozzáadnom.

    1.    KZKG ^ Gaara dijo

      Helló, hogy vagy?
      Ha engedélyezni szeretné az «svn» parancsot a börtönben, akkor a jk_cp parancsot kapja
      Vagyis:
      jk_cp / opt / jail / / bin / svn

      Ezt feltételezve, hogy az svn bináris vagy futtatható fájl a következő: / bin / svn
      És legyen a Ketrec / Börtön: / opt / jail /

      Megtalálja a másoktól függő parancsokat, vagyis ha hozzáadja a «pepe» parancsot, akkor látni fogja, hogy hozzá kell adnia a «federico» -t is, mert a «pepe» a végrehajtandó «federico» -tól függ, ha megtalálja ezt, akkor hozzáadja a szükséges parancsokat és már 😉

      1.    alexitu dijo

        Ez kiváló, most tesztelem, és elmondom, mi történt, köszönöm szépen = D

        1.    KZKG ^ Gaara dijo

          Szerencse 😀

  12.   alexitu dijo

    Sikerült megcsinálnom, amit mondtál nekem, de így és automatikusan probléma nélkül észlelt. Ez volt az a parancs, amellyel fel tudtam használni a felforgatást.

    jk_cp -j / home / jaul svn

    Nos, a centos xP-t használom, és talán más, de jó
    most szeretném tudni, hogy melyek azok a könyvtárak, mint az svn, de most szeretnék lefordítani, mert mondjuk egy ilyen parancsot kell használnom

    ./configure and mark error

    ./configure.lineno: 434. sor: expr: parancs nem található

    Nem tudnám, melyek azok a könyvtárak, amelyeket már telepítettem, ami a mysql és mások, ha a börtönön kívül fordít, de nem a jaui-ban.

    elnézést a kellemetlenségért.

    ps: be kell írnod ​​az útmutatóba, amit a centos =) üdvözletekben használt parancsról elmondtam.

    1.    KZKG ^ Gaara dijo

      Nézd, amikor azt mondom, hogy nem talál parancsot (mint itt), akkor először meg kell találni a parancsot:

      whereis expr

      Miután megtalálta (/ usr / bin / expr és / usr / bin / X11 / expr), átmásoljuk a börtönbe a jk_cp 😉
      Próbálkozzon ezzel.

      Igen, már szerkesztem a bejegyzést, és hozzáteszem, hogy Centosban működik 😀

  13.   adiazc87 dijo

    Nagyszerű, köszönöm szépen (:

  14.   Jézus dijo

    Köszönöm a hozzászólást ...

  15.   karma dijo

    Szia hogy vagytok?

  16.   djfenixchile dijo

    Bassza haver! Chiléből üdvözletem. Te olyan fing vagy, mint én! LOL !. Ölelés. A hozzászólásod nagy segítségemre volt!

    1.    KZKG ^ Gaara dijo

      Köszönöm a megjegyzést 😀

  17.   Daniel PZ dijo

    Köszönöm szépen a bejegyzést, nagyon sokat segített nekem, de sajnos a

    ////////////////////////////////////////////////////// ////////////////////////////////////////////////////// //////////////////////
    Szerkesztenünk kell a ketrec etc / passwd fájlját, vagyis ebben az esetben ez az / opt / jail / etc / passwd lenne, benne kommentáljuk a létrehozott felhasználói sort, és hozzáadunk egy újat, például:

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

    Más szavakkal, a passwd fájl így néz ki:

    root: x: 0: 0: root: / root: / bin / bash
    #kira: x: 1003: 1003: ,,,: / opt / börtön /./ home / kira: / usr / sbin / jk_lsh
    kira: x: 1003: 1003 :: / home / kira: / bin / bash
    //////////////////////////////////////////////////// // //////////////////////////////////////////

    Ugyanazt a hibát okozza, vagyis úgy hagyom, ahogy van, és a terminálról indít el, amikor csatlakozom, ,, ..

    Telepítse a "jailkit-2.16.tar" legújabb verzióját, akár időt is megtakarítva hozzon létre egy szkriptet, itt van:

    //////////////////////////////////////////////////// // ////////////////////////////////////////////////
    #! / bin / bash
    wget http://olivier.sessink.nl/jailkit/jailkit-2.16.tar.gz
    tar -zxvf jailkit -2.16.tar.gz
    cd jailkit-2.16
    A. / Configure
    csinál
    make install
    kijárat
    ////////////////////////////////////////////////////// /////////////////////////////

    Nyilvánvaló, hogy először "root" néven jelentkeznek be ...

    Hogyan tudnám megoldani a hibabarátot ????

    1.    Daniel PZ dijo

      Sajnálom, már megkaptam, hibát követtem el a Home mappával kapcsolatban, de nagy kétségem van afelől, hogyan érhetném el, hogy hadd futtassam a "screen" parancsot, megpróbálom használni (a ketrecbe helyezett felhasználóban) , de nem működik ... A másik dolog az, hogy hogyan érjem el, hogy ez a ketrecbe rakott felhasználó egy exén futtassa a borprogramot, amelyet csak az otthonába tett, hogyan lenne?

  18.   Leonel dijo

    szia, nagyon jó tuto! Új vagyok ezekben a környezetekben, van egy kérdésem ...
    Ami a biztonságot illeti, azt látom, hogy a gyökérzetében sok mappa van, szükségesek-e? Csak azt akarom, hogy hozzáférjen a mappájához (ftp-upload és ssh-execute) egy alkalmazás futtatásához, milyen mappákat törölhet a gyökérből? vagy nem jelent számomra semmiféle veszélyt? Előre is köszönöm segítségedet, üdvözlet!

  19.   KubaVörös dijo

    @ KZKG ^ Gaara, hála istennek, beírta a sípoló hibát, de a jailkit-2.16.tar.gz verziójával azt javasolta, hogy javítsák ki

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

  20.   Algave dijo

    Azt hiszem, átadom egy PDF-nek, jojo-nak .. ketrecbe és köszönöm wn 😀

  21.   Sámuel dijo

    Üdvözlet barátom, van egy kérdésem:

    Tegyük fel, hogy van egy "teszt" nevű felhasználó.

    A kérdés az, hogy a /home/test/.ssh/known_hosts fájl az adott felhasználó otthonában található-e, ugyanaz a fájl-e vagy nincs-e ketrecben a felhasználó?

  22.   Richard dijo

    Próbáld ezt. Ezzel a módszerrel korlátozhatja a navigációt a többi felhasználó másik otthonára.

  23.   TZBKR dijo

    Először is köszönöm a bejegyzést! Nagyon hasznos számomra; de két kételyem van, és ezek a forgatókönyvből fakadnak:

    N felhasználót kell létrehoznom, akiknek független és privát hozzáférésük van az otthonukhoz, minden felhasználó csak akkor férhet hozzá otthonához, hogy letöltse, módosítsa és törölje az ott található fájlokat anélkül, hogy másokhoz kellene költöznöm (már megvan ez a pont). Nem igényel hozzáférést az ssh-n keresztül.

    1. Létre kell hoznia egy ketrecet minden felhasználó számára, vagy van-e mód arra, hogy a különböző felhasználók ugyanabba a ketrecbe kerüljenek, de mindegyikük saját "privát" könyvtárával rendelkezik?

    2. Az (FTP kliensen keresztüli) eléréskor megjelenik az eszköz által létrehozott összes könyvtár, van-e mód arra, hogy a mappa tiszta legyen? Vagy valami rosszat tettem az út során?

  24.   eduardlh dijo

    Kiváló bemutató! Nagy segítség volt számomra, a 2.17-es verzióval tesztelem az Ubuntu 14.04-en, és nagyon jól működik. Most a következő kihívás előtt állok, miután a felhasználó ketrecbe került, hogy ne mozoghasson egyetlen útra sem, azt akarom, hogy csak egy másik útvonalon lévő fájl tartalmát láthassa. Szimbolikus linkkel próbáltam, de amikor farokot vagy macskát akartam készíteni ehhez a fájlhoz, azt mondja nekem, hogy nem létezik, bár a felhasználóval való hozzáféréskor felsorolhatom a fájlt a ketrec otthonában.

    Ha tudnál segíteni, nagyon hálás lennék, előre is köszönöm

  25.   kor dijo

    Helló, betartottam az egész kézikönyvet, és amikor az ssh-vel jelentkezem be, az automatikusan bezárul, nyomon követi:

    December 4. 19:20:09 sshd [27701]: Elfogadott jelszó a teszthez a 172.16.60.22 porttól, a 62009 ssh2-től
    December 4. 19:20:09 sshd [27701]: pam_unix (sshd: session): a munkamenet felhasználói tesztre nyitva volt (uid = 0)
    December 4. 19:20:09 jk_chrootsh [27864]: most belép a jail / opt / jail felhasználói tesztbe (1004) argumentumokkal
    December 4. 19:20:09 sshd [27701]: pam_unix (sshd: session): a munkamenet zárva a felhasználói teszt számára

    Köszönöm

  26.   Omar ramirez dijo

    Nem, amikor megteszem az ssh hozzáférés utolsó lépését a felhasználó számára, akkor is lezárja a kapcsolatot 🙁

  27.   Benj dijo

    Lehetséges-e ettől a létrehozott felhasználótól root-ra váltani? a gyökér? nem enged. Hogy lenne? Köszönöm a segítséget

  28.   Slevin dijo

    Nagyon köszönöm az oktatást

  29.   Mauro dijo

    Jó! Szükségem lenne valamire.

    Lehetséges-e ROOT-ként belépni FTP-vel és ezen engedélyekkel, FTP-vel kezelni, és nem SSH-val? Tegyük fel, hogy létrehozunk egy kapcsolatot, alagútstílust vagy ilyesmit. Hogyan történik? Konfigurálja a VSFTPD fájlt?

    Nagyon szépen köszönöm!