Nel nostro mondo ci sono molti, molti segreti ... Onestamente non penso di poter imparare abbastanza per conoscerne la maggior parte, e questo è dato dal semplice fatto che Linux ci permette di fare così tanti, ma così tante cose che è difficile per noi conoscerli tutti.
Questa volta spiegherò come fare qualcosa di estremamente utile, qualcosa che molti amministratori di rete o di sistema hanno dovuto fare, e abbiamo trovato difficile semplicemente non trovare un modo abbastanza semplice per ottenerlo:
Come ingabbiare gli utenti che si connettono tramite SSH
gabbia? ... WTF!
Sì. Se per qualsiasi motivo dobbiamo consentire l'accesso SSH a un nostro amico al nostro computer (o server), dobbiamo sempre occuparci della sicurezza e della stabilità del nostro computer o server.
Succede che di recente abbiamo voluto dare a Perseus SSH l'accesso a un nostro server, ma non possiamo dargli alcun tipo di accesso perché lì abbiamo configurazioni davvero sensibili (abbiamo compilato molte cose, pacchetti che abbiamo installato individualmente, ecc. .) e se qualcuno che non lo fa Se provo ad apportare anche la minima modifica al server, c'è la possibilità che tutto vada sprecato hehe.
Poi, Come creare un utente con privilegi estremamente limitati, tanto da non riuscire nemmeno a uscire dalla sua gabbia (casa)?
Cominciamo scaricando jailkit, uno strumento che ci permetterà di fare questo:
1. Per prima cosa dobbiamo scaricare il nostro server JailKit.
wget http://ftp.desdelinux.net/jailkit-2.14.tar.gz
2. Dopodiché dobbiamo decomprimere il pacchetto ed entrare nella cartella appena apparsa:
tar xzf jailkit-2.14.tar.gz && cd jailkit-2.14
3. Successivamente siamo passati alla compilazione e all'installazione del software (Vi lascio uno screenshot):
./configure
make
make install
4. Pronto, questo è già installato. Adesso andiamo a creare la gabbia che conterrà i futuri utenti, nel mio caso l'ho creata in: / opt / e l'ho chiamata "jail", quindi il percorso sarebbe: / opt / jail :
mkdir /opt/jail
chown root:root /opt/jail
5. La gabbia è già creata, ma non ha tutti gli strumenti necessari affinché i futuri utenti che saranno lì possano lavorare senza problemi. Voglio dire, fino a questo punto la gabbia è stata creata, ma è solo una scatola vuota. Ora metteremo nella gabbia alcuni strumenti di cui gli utenti in gabbia avranno bisogno:
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. Pronto, la gabbia esiste e ha già gli strumenti che l'utente può utilizzare ... ora ci serve solo ... l'utente! Creeremo l'utente kira e lo metteremo nella gabbia:
adduser kira
jk_jailuser -m -j /opt/jail kira
cat /etc/passwd | grep jk_chroot
Se noti che non appare nulla come lo screenshot, devi aver fatto qualcosa di sbagliato. Lascia un commento qui e sarò felice di aiutarti.
7. E voilà, l'utente è già in gabbia ... ma, è COSÌ ingabbiato, che non può connettersi tramite SSH, perché quando cerca di connettersi il server non gli consente:
8. Per consentire all'utente di connettersi dobbiamo fare un ulteriore passaggio.
Dobbiamo modificare il file etc / passwd della gabbia, cioè, in questo caso sarebbe / opt / jail / etc / passwd , in esso commentiamo la riga utente che abbiamo creato e ne aggiungiamo una nuova come:
kira: x: 1003: 1003 :: / home / kira: / bin / bash
Cioè, avremmo il file come questo 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
Notare bene i segni di punteggiatura duplicati e altri, è importante non lasciare cadere alcun 🙂
Dopo aver fatto ciò, l'utente può entrare senza problemi 😀
E questo è tutto.
Lo strumento che utilizziamo per tutto questo (jailkit) utilizzare nel backend chroot, che in realtà è quello che usano quasi tutti i tutorial. Tuttavia, usando JailKit diventa più semplice ingabbiare 😉
Se qualcuno ha un problema o qualcosa non va, lascia quanti più dettagli possibile, non mi considero un esperto ma ti aiuterò il più possibile.
allora sarebbe qualcosa come i permessi in FTP? interessante
esci sempre con tutto ciò che non sapevi nemmeno esistesse, come gli utenti in mysql xD
Non esattamente, perché SSH non è la stessa cosa di FTP. SSH è una shell, cioè un terminale ... sareste in un terminale su un altro computer o server, potreste eseguire comandi, avviare processi, ecc ... fareste quanto l'amministratore del server vi consente 😉
hahahahahaha nah dai, quello che succede è che pubblico cose più tecniche ... cioè, mi piace pubblicare piccole cose che non sono così popolari e interessanti. Ad esempio, personalmente non ho intenzione di pubblicare qualcosa il giorno in cui uscirà il nuovo Ubuntu, perché credo che molti ne parleranno già ... comunque quello che leggi qui nel post, non è qualcosa che viene letto ogni giorno o no? 😀
Molto buoni contributi grazie
c'è anche un protocollo chiamato sftp che è ftp e Secure Shell insieme, sebbene non sia la stessa cosa che eseguire FTP su SSH: \
saluti
Sì, sì, ma ingabbiamento SSH automaticamente intrappolo chiunque si connetta usando SFTP, perché come dici tu, SFTP è in realtà SSH + FTP 😀
saluti
Le immagini non si vedono !!! 🙁
Un mio piccolo errore hehe, dimmelo adesso 😀
Pronto. Grazie 😀
bravissimo, lo indico ai miei preferiti per averlo a disposizione quando ne ho bisogno lol
Grazie, qualsiasi domanda o problema, siamo qui per aiutarti 🙂
Hanno Perseo in una gabbia. http://i.imgur.com/YjVv9.png
LOL
xD
Come stai.
Sai, è un argomento che non conosco molto bene e che stavo controllando in BSD (PC-BSD e Ghost BSD) e lo trovo molto interessante e con funzionalità che possono essere molto utili.
Lo terrò per riferimento e lo confronterò con il documento BSD. Grazie per l'informazione.
Non avevo nemmeno familiarità con questo, perché non ho mai pensato di dare a qualcuno l'accesso SSH a nessuno dei miei server haha, ma quando ho trovato la necessità di farlo, volevo dare l'accesso ma senza la possibilità che qualcuno potesse fare qualcosa per errore che non doveva 😀
Non l'ho mai provato su sistemi BSD, quindi non posso dirti che funzionerà, ma se stai cercando come eseguire il chroot in BSD, dovrebbe venire fuori qualcosa 😉
Grazie per il commento amico 🙂
Ciao, io uso FreeBSD e ovviamente il jailkit funziona in effetti questo nei port
Lo installi con questo comando
cd / usr / ports / shells / jailkit / && make install clean
O tramite pacchetto ftp
pkg_add -r jailkit
Solo nella configurazione (kira: x: 1003: 1003 :: / home / kira: / bin / bash)
Devi aggiungere tcsh o sh, a meno che tu non abbia installato bash e aggiungi questo percorso
/ usr / local / bin / bash
E qualche dettaglio in più, in Ghost BSD dovrebbe essere il processo simile ancora più semplice dato che è basato su FreeBSD
saluti
Fantastico, lo stavo cercando; sai se funziona in Centos ?? Grazie.
Non l'ho provato su Centos, ma sì dovrebbe funzionare :)
Infatti ricordo che molti hanno utilizzato lo stesso strumento sui server Centos e Red Hat 😉
Molte grazie. Va direttamente ai segnalibri.
Grazie a te per aver commentato 🙂
Ottimo "trucco", super utile per gli amministratori di sistema. Ma anche meglio, ottimamente ben scritto. Cosa si può volere di più.
La ringrazio molto per il contributo.
Grazie, grazie mille per il tuo commento 😀
saluti
Lodate SSH haha
Una volta ho provato a fare una gabbia per ssh ma nello stile tradizionale e la verità è che non è mai uscito correttamente. Se la gabbia era in esecuzione, non aveva nemmeno un bash, cioè era collegata e non era rimasto nulla ahah, se la shell era in esecuzione, poteva salire nella gerarchia delle directory e molti più quilombos haha ma questo jailkit è una mazza, automatizza tutte quelle cose ... Altamente raccomandato
haha grazie.
Sì, in realtà SSH è una meraviglia per ciò che ci permette, che in realtà non è altro che ciò che il sistema consente quindi ... evviva Linux! ... haha.
Ciao, una domanda!
perché cambiare la casa da (1) / opt / jail /./ home / kira a (2) / home / kira
Dobbiamo modificare il file etc / passwd della gabbia, cioè, in questo caso sarebbe / opt / jail / etc / passwd, in esso commentiamo la riga utente che abbiamo creato e ne aggiungiamo una nuova come:
kira: x: 1003: 1003 :: / home / kira: / bin / bash
In altre parole, il file passwd sarebbe simile a questo:
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
Ciao 🙂
Se non è impostato, l'accesso SSH non funziona, l'utente prova a connettersi ma viene automaticamente espulso ... sembra essere un bug o un problema con l'interprete che porta il JailKit, perché quando apporta questa modifica gli dice di usare il normale sistema bash, tutto funziona.
Chiudo ancora la sessione ssh: C
Usa 10.1 x64
Ciao ho installato questo e funziona benissimo mente molto bene in centos = D
ma il mio dua è come fa per aggiungere più comandi ad esempio a un utente jail
non è possibile eseguire il comando svn co http://pagina.com/carpeta
Voglio dire, questo comando non esiste per gli utenti di jail in questo caso come fa per aggiungere questi comandi alla jail e ce ne sono molti altri che devo aggiungere.
Ciao, come stai?
Se vuoi abilitare il comando «svn» nella Jail hai il comando jk_cp
Questo è:
jk_cp / opt / jail / / bin / svn
Presumendo che il file binario o eseguibile svn sia: / bin / svn
E lascia che Cage / Jail sia: / opt / jail /
Troverai comandi che dipendono da altri, cioè se aggiungi il comando «pepe» vedrai che devi aggiungere anche «federico», perché «pepe» dipende da «federico» da eseguire, se trovi questo allora aggiungi i comandi necessari e già 😉
Ottimo, lo sto provando nello stesso momento e ti dico cosa è successo, grazie mille = D
Fortuna 😀
Sono riuscito a fare quello che mi hai detto ma in questo modo e automaticamente l'ha rilevato senza alcun problema, questo era il comando che ho usato per poter usare il subversion.
jk_cp -j / home / jaul svn
Beh io uso centos xP e forse è diverso ma buono
ora vorrei sapere quali sono le librerie come svn ma ora vorrei compilare perché diciamo che ho bisogno di usare un comando come questo
./configure e contrassegna l'errore
./configure.lineno: riga 434: expr: comando non trovato
Non saprei quali sono le librerie che ho già installato cos'è mysql e altre se si compila fuori dal jail ma non dentro jaui.
Ci dispiace per l'inconvenienza.
ps: dovresti mettere nella guida quello che ti ho detto sul comando usato in centos =) saluti.
Guarda, quando ti dico che non riesce a trovare un comando (come qui) la prima cosa è trovare il comando:
whereis expr
Una volta trovato (/ usr / bin / expr e / usr / bin / X11 / expr) lo copiamo nella Jail con jk_cp 😉
Prova questo per vedere.
Sì, ho già modificato il post e aggiungo che funziona in Centos 😀
Grazie mille (:
Grazie per l'input…
Ciao, come stai?
Fanculo amico! Dal Cile i miei saluti. Sei scoreggia come me! LOL !. Abbracci. Il tuo post mi è stato di grande aiuto!
Grazie per il tuo commento 😀
Grazie mille per il post, mi ha aiutato molto, ma purtroppo nella parte di
////////////////////////////////////////////////// // //////////////////////////////////////////////// ////// //////////////////////
Dobbiamo modificare il file etc / passwd della gabbia, cioè, in questo caso sarebbe / opt / jail / etc / passwd, in esso commentiamo la riga utente che abbiamo creato e ne aggiungiamo una nuova come:
kira: x: 1003: 1003 :: / home / kira: / bin / bash
In altre parole, il file passwd sarebbe simile a questo:
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
////////////////////////////////////////////////// //// //////////////////////////////////////////
Mi causa lo stesso errore, voglio dire, lo lascio così com'è, e mi avvia dal terminale quando mi connetto ,,, .., commento la riga e ne aggiungo un'altra modificandola come indicato, e anche stivali me ...
Installa l'ultima versione "jailkit-2.16.tar", crea anche uno script per risparmiare tempo, eccolo qui sotto:
////////////////////////////////////////////////// // //////////////////////////////////////////////
#! / 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
make
make install
exit
////////////////////////////////////////////////// ///////////////////////////
Ovviamente prima accedono come "root" ...
Come potrei risolvere l'errore amico ????
Scusa, l'ho già preso, avevo fatto un errore sulla cartella Home, ma ho un grosso dubbio, come posso ottenerlo per farmi eseguire il comando "screen", cerco di usarlo (nell'utente in gabbia) , ma non funziona ... Un'altra cosa è che, come faccio a convincere questo utente in gabbia a eseguire il programma wine su un exe che ha appena messo in casa, come sarebbe?
ciao, bravissimo tuto! Sono nuovo in questi ambienti, ho una domanda ...
Per quanto riguarda la sicurezza, vedo che nella sua root ha molte cartelle, sono necessarie? Voglio solo che abbia accesso alla sua cartella (ftp-upload e ssh-execute) in modo che possa eseguire un'applicazione, quali cartelle potrebbe eliminare dalla root? o non rappresenta alcun pericolo per me? Apprezzo in anticipo il tuo aiuto, saluti!
@ KZKG ^ Gaara, meno male che hai messo l'errore wheezy ma con la versione di jailkit-2.16.tar.gz che hai suggerito l'hanno risolto
http://olivier.sessink.nl/jailkit/jailkit-2.16.tar.gz
Penso che lo passerò a un PDF, jojo .. a cage e grazie wn 😀
Saluti amico, ho una domanda:
Supponiamo di avere un utente chiamato "test".
La domanda è: il file /home/test/.ssh/known_hosts che si trova nella home di quell'utente, è lo stesso file o non ha ingabbiato l'utente?
Prova questo. Con questo metodo è possibile restringere la navigazione all'altra home degli altri utenti.
Prima di tutto, grazie per il post! Mi sta essendo molto utile; ma ho due dubbi, e questi nascono dallo scenario che ho:
Ho bisogno di creare N utenti con accesso indipendente e privato alla loro casa, ogni utente può accedere alla propria casa solo per depositare, modificare ed eliminare i file in essa contenuti senza doversi spostare da altri (ho già questo punto). Non richiede l'accesso tramite ssh.
1. Devi creare una gabbia per ogni utente o c'è un modo per avere diversi utenti nella stessa gabbia ma ognuno ha la propria directory "privata"?
2. Quando si accede (tramite client FTP) vengono mostrate tutte le directory create dallo strumento, c'è un modo per mostrare la cartella pulita? O ho fatto qualcosa di sbagliato lungo la strada?
Ottimo tutorial! Mi è stato di grande aiuto, lo sto testando con la versione 2.17 su Ubuntu 14.04 e funziona molto bene. Ora ho la seguente sfida, una volta che l'utente è ingabbiato in modo che non possa spostarsi su alcun percorso, voglio che sia in grado di vedere solo il contenuto di un file che si trova in un altro percorso. Ho provato con un link simbolico ma quando provo a fare una coda o un gatto a questo file mi dice che non esiste anche se accedendo con l'utente posso elencare quel file nella home della gabbia.
Se potessi aiutarmi te ne sarei molto grato, grazie in anticipo
Ciao, ho seguito tutto il manuale e accedendo con ssh si chiude automaticamente, traccia:
4 dic 19:20:09 toby sshd [27701]: password accettata per il test dalla porta 172.16.60.22 62009 ssh2
4 dicembre 19:20:09 toby sshd [27701]: pam_unix (sshd: session): sessione aperta per test utente da (uid = 0)
4 dicembre 19:20:09 toby jk_chrootsh [27864]: ora entrando in jail / opt / jail per il test utente (1004) con argomenti
4 dicembre 19:20:09 toby sshd [27701]: pam_unix (sshd: session): sessione chiusa per test utente
grazie
Non quando eseguo l'ultimo passaggio per consentire l'accesso ssh all'utente, chiude comunque la connessione 🙁
Può essere possibile da questo utente creato passare a root? la tua radice? non me lo permette. Come sarebbe? Grazie per il tuo aiuto
Grazie mille per il tutorial, ne avevo bisogno per creare un utente che potesse usare clonezilla per creare un'immagine e copiarla su un server di terze parti ma che non poteva sciamare dove voleva
Buona! Avrei bisogno di sapere qualcosa.
È possibile entrare come ROOT utilizzando FTP e avendo questi permessi, per gestirlo via FTP e non con SSH? Diciamo come creare una connessione, uno stile tunnel o qualcosa del genere. Come si fa? Configurazione del file VSFTPD?
Molte grazie!