En el nostre món hi ha molts però molts secrets ... honestament no crec poder aprendre prou com per conèixer la majoria, i això està donat pel simple fet que Linux ens permet fer tantes, però tantes coses que se'ns fa difícil conèixer-les totes.
Aquesta vegada els explicaré com fer alguna cosa summament útil, cosa que molts administradors de xarxes o sistemes hem necessitat fer, i se'ns ha dificultat per simplement no trobar una via mitjanament simple d'aconseguir-:
Com engabiar usuaris que es connectin per SSH
¿Engabiar? ... WTF!
Sí. Si per algun motiu hem de donar-li accés SSH a un amic nostre al nostre ordinador (o servidor), sempre hem cuideu per la seguretat i estabilitat de l'ordinador o servidor nostre.
Passa que fa poc vam voler donar-li accés SSH a Perseu a un servidor nostre, però no podem donar-li qualsevol tipus d'accés ja que comptem aquí configuracions de debò sensibles (hem compilat moltes coses, paquets que hem instal·lat individuals, etc ...) i si algú que no sigui jo intenta fer encara que sigui el més mínim canvi en el servidor, hi ha la possibilitat que tot es vagi a l'trast jeje.
Llavors, Com crear un usuari amb privilegis extremadament limiados, tant així que no pugui ni tan sols sortir de la seva gàbia (home)?
comencem descarregant jailkit, Una eina que ens permetrà fer això:
1. Primer hem de descarregar al nostre servidor JailKit.
wget http://ftp.desdelinux.net/jailkit-2.14.tar.gz
2. Després hem descomprimir el paquet i entrar a la carpeta que recentment ens va aparèixer:
tar xzf jailkit-2.14.tar.gz && cd jailkit-2.14
3. Posteriorment passem a compilar i instal·lar el programari (els deixo screenshot):
./configure
make
make install
4. A punt, ja amb això està instal · lat. Ara passem a crear la gàbia que contindrà als futurs usuaris, en el meu cas la vaig crear a: / opt / i li vaig trucar «jail», de manera que la ruta seria: / Opt / jail :
mkdir /opt/jail
chown root:root /opt/jail
5. Ja la gàbia està creada, però no té totes les eines necessàries perquè els futurs usuaris que hi seran puguin treballar sense problemes. O sigui, fins aquest moment la gàbia està creada, però és només una caixa buida. Ara posarem a la gàbia algunes eines que els usuaris engabiats necessitaran:
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. A punt, la gàbia existeix i ja té les eines perquè l'usuari les faci servir ... ara només ens falta ... l'usuari !. Crearem a l'usuari Kira i el posarem a la gàbia:
adduser kira
jk_jailuser -m -j /opt/jail kira
cat /etc/passwd | grep jk_chroot
Si noten que no els apareix res així com en el screenshot, alguna cosa han hagut de fer malament. Deixin un comentari aquí i amb molt de gust els ajudaré.
7. I ja està, ja l'usuari està engabiat ... però, està TAN engabiat, que no es pot connectar per SSH, doncs quan intenta connectar el servidor no el deixa:
8. Per permetre que l'usuari es connecti hem de fer un pas més.
Hem editar el fitxer etc / passwd de la gàbia, o sigui, en aquest cas seria / Opt / jail / etc / passwd , En ell vam comentar la línia de l'usuari que creem, i afegim una nova com:
kira: x: 1003: 1003 :: / home / kira: / bin / bash
O sigui, ens quedaria així l'arxiu 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
Noten bé els signes de puntuació duplicats i altres, és important no deixar-nos anar cap 🙂
Després de fer això, ja l'usuari podrà entrar sense cap tipus de problema 😀
I això és tot.
L'eina que fem servir per a tot això (jailkit) S'usa en el backend chroot, Que és en realitat el que gairebé tots els tutorials fan servir. No obstant això usant JailKit es fa més simple engabiar 😉
Si algú presenta algun problema o alguna cosa no va bé, que deixi tants detalls com li sigui possible, no em considero un expert però sí que li ajudaré en tot el que pugui.
llavors seria alguna cosa així com els permisos en FTP? interessant
sempre surts amb cada cosa que ni tan sols sabia que existia, com el dels usuaris en mysql xD
No precisament, perquè SSH no és el mateix que FTP. SSH és un intèrpret d'ordres, és a dir, una terminal ... estaries en un terminal en un altre ordinador o servidor, podries executar ordres, iniciar processos, etc ... faries tant com l'administrador de l'server et permeti 😉
jajajajajaja nah vingui, el que passa és que jo públic coses més tècniques ... o sigui, que m'agrada publicar cosetes que no són tan populars i sí interessants. Per exemple, jo personalment no penso publicar alguna cosa el dia que el nou Ubuntu surti, perquè considero que molts ja parlaran d'això ... però, d'això que llegeixes aquí en el post, no és una cosa que es llegeixi tots els dies o no? 😀
Molt bons aportacions gràcies
també hi ha un protocol que es diu sftp que és ftp i Secure Shell junts, encara que no és el mateix que executar FTP sobre SSH: \
Salutacions
Sí sí en efecte, però a l'engabiar SSH automàticament enjaulo a qui es connecti usant SFTP, ja que com bé dius, SFTP és en realitat SSH + FTP 😀
Salutacions
No es veuen les imatges !!! 🙁
Un petit error meu jeje, digues-me ara 😀
Fet. gràcies 😀
molt bo, ho apunto als meus favorits per tenir-lo disponible quan ho necessiti jejeje
Gràcies, qualsevol dubte o problema aquí estem per ajudar-te 🙂
Tenen a Perseu engabiat. http://i.imgur.com/YjVv9.png
LOL
xD
Que tal.
Saps, és un tema de el qual no estic molt familiaritzat i que havia estat checando en BSD (PC-BSD i Ghost BSD) i em sembla molt interessant i amb funionalidades que poden ser molt útils.
Vaig a guardar-lo per referències i el checare amb la documentació dels BSD. Gràcies per la dada.
Tampoc jo vaig estar familiaritzat amb això doncs mai vaig pensar en donar-li accés SSH a algun dels meus servers algú jaja, però quan em vaig trobar amb la necessitat de fer-ho, vaig voler donar accés però sense que hi hagi la possibilitat que per equivocació algú faci alguna cosa que no ha de 😀
Mai he provat això en sistemes BSD, per la qual cosa no et puc dir que funcionarà, però si busques per com fer chroot en BSD, alguna cosa t'ha de sortir 😉
Gràcies pel comentari amic 🙂
Hola, jo faig servir FreeBSD i clar jailkit funciona de fet aquesta en els ports
El instal·les amb aquesta comanda
cd / usr / ports / shells / jailkit / && make install clean
O per paquet ftp
pkg_add -r jailkit
Només que en la configuració (kira: x: 1003: 1003 :: / home / kira: / bin / bash)
Necessites afegir tcsh o sh, amens que hagis instal·lat bash i afegir aquesta ruta
/ Usr / local / bin / bash
I uns quants detalls més, en Ghost BSD ha de ser el procés semblant fins i tot més senzill a l'estar basat en FreeBSD
Salutacions
Genial, ho estava buscant; saps si funciona en Centos ??; gràcies.
No ho he provat en Centos, però sí, hauria de funcionar 😀
De fet crec recordar que diversos han fet servir aquesta mateixa eina en servidors Centres i Red Hat 😉
Moltes gràcies. Es va directament a marcadors.
Gràcies a tu per comentar 🙂
Molt bon «truc», super útil per a administradors de sys. Però millor encara exelentemente ben redactat. Que mes es pot demanar.
Moltes gràcies per l'aportació.
Gràcies, de vers moltíssimes gràcies pel teu comentari 😀
Salutacions
Lloat sigui SSH jaja
Un cop vaig intentar fer una gàbia per ssh però a l'estil tradicional i la veritat que mai em va sortir correctament. Si caminava la gàbia no tenia ni bash, és a dir es connectava i ahi nomes quedava jaja si li caminava la shell podia pujar a l'jerarquia de directoris i munt de quilombos més jaja però aquest jailkit és una maça, et automatitza totes aquestes coses ... Altament recomanat
jaja gràcies.
Sí, en realitat SSH és tot una meravella pel que ens permet, que en realitat no és més que el que permet el sistema així que ... un hurra per Linux! ... jaja.
Hola, un dubte!
perquè canviar el home de (1) / opt / jail /./ home / kira a (2) / home / kira
Hem editar el fitxer etc / passwd de la gàbia, o sigui, en aquest cas seria / opt / jail / etc / passwd, en ell vam comentar la línia de l'usuari que creem, i afegim una nova com:
kira: x: 1003: 1003 :: / home / kira: / bin / bash
O sigui, ens quedaria així l'arxiu passwd:
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
Hola 🙂
Si no es posa això l'accés SSH no funciona, l'usuari intenta connectar-se però és expulsat automàticament ... sembla ser un error o problema amb l'intèrpret que porta el JailKit, ja que a l'fer aquest canvi indicant-li que faci servir el bash normal de sistema, funciona tot .
Tot em tanca la sessió ssh: C
Suse 10.1 x64
Hola he instal·lat això i funciona excel·lent ment molt bé en centos = D
però la meva dua és com ag per afegir més ordres per exemple a un usuari jail
no pot executar la comanda svn co http://pagina.com/carpeta
o sigui aquesta comanda no existeix per als usuaris jail en aquest cas com ago per afegir aquestes comandes a l'jail i hi ha molts mes que requereixo afegir.
Hola que tal 🙂
Si vols habilitar la comanda «svn» al Jail tens la comanda jk_cp
O sigui:
jk_cp / opt / jail / / bin / svn
Això suposant que el binari o executable de svn sigui: / bin / svn
I que la Gàbia / Jail sigui: / opt / jail /
Et trobaràs amb comandaments que depenen d'altres, o sigui que si afegeixes la comanda «pepe» veuràs que has de més afegir a «federico», ja que «pepe» depèn de «federico» per executar-se, si trobes això llavors afegeixes les comandes necessàries i ja 😉
Això és és excel·lent estic probandolo a hora mateix ja els dic que passo moltes gràcies = D
sort 😀
he aconseguit fer el que em dijistes però d'aquesta manera i automàtica ment m'ho ha detectat sense cap problema aquest va ser l'ordre que he utilitzat per poder usar el subverision.
jk_cp -j / home / Jaúl svn
bo igual ús centos xP i doncs potser és diferent però bé
a hora voldria saber quines són les llibreries com la de svn però ara voldria compilar per que diguem que necessito usar una ordre així
./configure i marca error
./configure.line: line 434: expr: command not found
no sabria quines són les llibreries ja tinc instal·lat el que és mysql i demas compilant fora de la jail però no dins de la jaui.
perdó per les molèsties.
pd: deverias col·locar a la guia el que et vaig dir sobre la comanda usat en centos =) salutacions.
Mira, quan et digui que no pot trobar una ordre (com aquí) el primer és trobar la comanda:
whereis expr
Un cop trobat (/ usr / bin / expr i / usr / bin / X11 / expr) el copiem a l'Jail amb jk_cp 😉
Intenta això a veure.
Sip, ja edito el post i agrego que funciona a Centos 😀
Genial, moltes gràcies (:
Gràcies per l'aportació ...
hola cm estan
Fotre tio! Des de Xile meves salutacions. Aquestes tan pet com jo! jajaja !. Abraçades. M'ha estat de gran ajuda teu post!
Gràcies a tu pel teu comentari 😀
Moltes gràcies pel post, em va ajudar molt, però lamentablement a la part de
////////////////////////////////////////////////// ////////////////////////////////////////////////// //////////////////////
Hem editar el fitxer etc / passwd de la gàbia, o sigui, en aquest cas seria / opt / jail / etc / passwd, en ell vam comentar la línia de l'usuari que creem, i afegim una nova com:
kira: x: 1003: 1003 :: / home / kira: / bin / bash
O sigui, ens quedaria així l'arxiu 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
////////////////////////////////////////////////// ////////////////////////////////////////
Em causa igual error, o sigui, ho deixo tal com aquesta, i em bota de l'terminal a l'connectar-me ,,, .., Comento la línia i afegeixo una més modificant com indiques, i també em bota ....
Instal la darrera versió «jailkit-2.16.tar», inclusivament creï un script per estalviar el temps, aca està a continuació:
////////////////////////////////////////////////// ////////////////////////////////////////////
#! / 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
fer
make install
sortir de
////////////////////////////////////////////////// ///////////////////////////
Òbviament primer es logean com «root» ...
Com podria resoldre l'error amic ????
Disculpa, ja em va sortir, havia comès un error sobre la carpeta Home, però tinc un gran dubte, com puc fer per q em deixi executar la comanda «screen»,, tracte d'usar-lo (en l'usuari engabiat), però no funciona ... una altra cosa és que ,, com ago perquè aquest usuari engabiat pugui executar el programa wine sobre un exe q acaba de posar dins del seu home ,, com seria?
hola, molt bon Estatut! sóc nou en aquests ambients, tinc una pregunta ...
pel que fa a seguretat, veig que en el seu arrel té molts folders, són necessaris? només vull que tingui accés a la seva carpeta (ftp-pujar i ssh-executar) perquè executi una aplicació, que folders podria esborrar d'arrel? o no em representa cap perill? agraeixo per endavant la vostra ajuda, salutacions!
@ KZKG ^ Gaara, encara sort que pusistes l'error de wheezy però ja amb la versio de jailkit-2.16.tar.gz que em sugeristes ho van arreglar
http://olivier.sessink.nl/jailkit/jailkit-2.16.tar.gz
Crec m'ho passés a un PDF, jojo .. a engabiar i gràcies wn 😀
Salutacions amic, tinc un dubte:
Suposem que tenim un usuari de nom «prova».
El dubte és, l'arxiu /home/prueba/.ssh/known_hosts que es localitza en el home d'aquest usuari, és el mateix arxiu aquest o no engabiat l'usuari?
Probe això. Es pot amb aquest mètode restringir la navegació als altres home dels altres usuaris.
Primer de tot, gràcies pel post! M'està sent de gran utilitat; però tinc dos dubtes, i aquestes sorgeix de l'escenari que tinc:
Necessito crear N usuaris amb accés independent i privat al seu home, cada usuari només pot accedir al seu home per dipositar, modificar i eliminar arxius aquí continguts sense haver de caminar-movent a altres (Aquest punt ja el tinc). No requereix d'accés via ssh.
1. S'ha de crear una gàbia per a cada usuari o bé, hi ha manera de tenir a la mateixa gàbia dels diferents usuaris però que cada un tingui el seu directori «privat»?
2. A l'accesar (via client FTP) es mostren tots els directoris creats per l'eina, hi ha manera que es mostri la carpeta en net? O alguna cosa vaig fer malament en el camí?
Excel·lent tutorial! M'ha estat de gran ajuda, ho estic provant amb la versió 2.17 en Ubuntu 14.04 i funciona molt bé. Ara tinc el següent repte, un cop engabiat l'usuari perquè no pugui moure a cap ruta, vull que només pugui veure el contingut d'un arxiu que està en una altra ruta. Proveu amb un enllaç simbòlic però a l'intentar fer un tail o cat a aquesta arxiu em diu que no existeix encara que a l'accedir amb l'usuari puc llistar aquest arxiu en el home de la gàbia.
Si poguessis ajudar-me estaria molt agraït, per endavant gràcies
Hola, he seguit tot el manual i a l'iniciar sessió amb ssh es tanca automàticament, traces:
Dec 4 19:20:09 toby sshd [27701]: Accepted password for prova from 172.16.60.22 port 62009 ssh2
Dec 4 19:20:09 toby sshd [27701]: pam_unix (sshd: session): session opened for user prova by (uid = 0)
Dec 4 19:20:09 toby jk_chrootsh [27864]: now entering jail / opt / jail for user prova (1004) with arguments
Dec 4 19:20:09 toby sshd [27701]: pam_unix (sshd: session): session closed for user prova
Gràcias
No quan faig l'últim pas de donar accés a ssh a l'usuari encara em tanca la connexió 🙁
Es pot potser des d'aquest usuari creat canviar a root? seva -root? no em deixa. Com seria Gràcies per la teva ajuda
Mil gràcies pel tutorial, ho necessitava per crear un usuari que pogués utilitzar el Clonezilla per fer una imatge i copiar-la a un servidor aliè però que no pogués pul·lular per on volgués
Bones! estaria necessitant saber alguna cosa.
És possible ingressar com ROOT usant FTP i tenint aquests permisos, per administrar-lo per FTP i no amb SSH? diguem com creant una connexió, estil túnel o alguna cosa així ¿Com es fa? ¿Configurant el achivo vsftpd?
Moltes Gràcies!