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í:
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
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
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 😉
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ť.
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
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? 😀
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
Á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
Zábery nie je možné vidieť !!! 🙁
Moja malá chyba hehe, povedz mi to hneď 😀
Pripravený. Dakujem 😀
veľmi dobré, poukazujem na svojich obľúbených, aby som ich mal k dispozícii, keď to potrebujem lol
Ďakujeme, máte akékoľvek otázky alebo problémy, sme tu, aby sme vám pomohli 🙂
V klietke majú Perseusa. http://i.imgur.com/YjVv9.png
LOL
xD
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.
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 🙂
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
Super, hľadal som to; vieš či to funguje v Centose ?? Vďaka.
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 😉
Mnohokrat dakujem. Prejde priamo na záložky.
Ďakujem za komentár 🙂
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.
Ďakujem, ďakujem pekne za komentár 😀
pozdravy
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é
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.
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
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 .
Stále uzatváram reláciu ssh: C
Suse 10.1 x64
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ť.
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ž 😉
To je vynikajúce, testujem to súčasne a hovorím vám, čo sa stalo, ďakujem pekne = D
Šťastie 😀
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 =).
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 😀
Veľké ďakujem veľmi pekne (:
Ďakujeme za príspevok ...
Ahoj ako sa máš?
Kurva kámo! Z Čile môj pozdrav. Si prd ako ja! LOL !. Objatia. Váš príspevok mi veľmi pomohol!
Ďakujeme za váš komentár 😀
Ď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 ????
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?
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!
@ 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
Myslím, že to pošlem do PDF, jojo .. do klietky a vďaka wn 😀
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?
Skúste to. Pri tejto metóde je možné obmedziť navigáciu na druhý domov ostatných používateľov.
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é?
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
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
Nie, keď urobím posledný krok poskytnutia prístupu ssh používateľovi, stále to ukončí pripojenie connection
Je možné od tohto vytvoreného používateľa zmeniť root? tvoj -root? to mi nedovolí. Ako by to bolo? Ďakujem za pomoc
Ď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
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!