I vår värld finns det många, många hemligheter ... Jag tror verkligen inte att jag kan lära mig tillräckligt för att känna till de flesta av dem, och detta ges av det enkla faktum att Linux tillåter oss att göra så många, men så många saker att det är svårt för oss att känna till dem alla.
Den här gången kommer jag att förklara hur man gör något extremt användbart, något som många nätverks- eller systemadministratörer har behövt göra, och vi har haft svårt att helt enkelt inte hitta ett ganska enkelt sätt att uppnå det:
Hur man burar användare som ansluter via SSH
bur? ... WTF!
Ja, om vi av någon anledning måste ge SSH åtkomst till en vän till vår dator (eller server), måste vi alltid ta hand om säkerheten och stabiliteten hos vår dator eller server.
Det händer att vi nyligen ville ge Perseus SSH-åtkomst till en server av oss, men vi kan inte ge honom någon typ av åtkomst eftersom vi har riktigt känsliga konfigurationer där (vi har sammanställt många saker, paket som vi har installerat separat, etc. .) och om någon som inte gör Om jag försöker göra ens den minsta ändringen på servern finns det en möjlighet att allt går till spillo hehe.
Därefter, Hur man skapar en användare med extremt begränsade privilegier, så mycket att han inte ens kan komma ut ur sin bur (hem)?
Låt oss börja med att ladda ner jailkit, ett verktyg som gör att vi kan göra detta:
1. Först måste vi ladda ner vår JailKit-server.
wget http://ftp.desdelinux.net/jailkit-2.14.tar.gz
2. Då måste vi packa upp paketet och ange den mapp som just dykt upp:
tar xzf jailkit-2.14.tar.gz && cd jailkit-2.14
3. Senare fortsatte vi att kompilera och installera programvaran (Jag lämnar en skärmdump till dig):
./configure
make
make install
4. Klar, det här är redan installerat. Nu fortsätter vi med att skapa buren som kommer att innehålla framtida användare, i mitt fall skapade jag den i: / opt / och kallade den "fängelse", så sökvägen skulle vara: / opt / fängelse :
mkdir /opt/jail
chown root:root /opt/jail
5. Buret är redan skapat, men det har inte alla nödvändiga verktyg så att framtida användare som kommer att vara där kan arbeta utan problem. Jag menar, hittills är buret skapat, men det är bara en tom ruta. Nu kommer vi att lägga in några verktyg som buranvändare behöver i buren:
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. Klar, buren finns och den har redan de verktyg som användaren kan använda ... nu behöver vi bara ... användaren! Låt oss skapa användaren kira och vi lägger det i buren:
adduser kira
jk_jailuser -m -j /opt/jail kira
cat /etc/passwd | grep jk_chroot
Om du märker att inget som skärmdumpen visas måste du ha gjort något fel. Lämna en kommentar här så hjälper jag dig gärna.
7. Och voila, användaren är redan bur ... men han är SÅ bur, att han inte kan ansluta med SSH, för när han försöker ansluta låter servern inte honom:
8. För att låta användaren ansluta måste vi göra ett steg till.
Vi måste redigera etc / passwd-filen i buren, det vill säga i det här fallet skulle det vara / opt / fängelse / etc / passwd , i den kommenterar vi den användarrad som vi skapade och lägger till en ny som:
kira: x: 1003: 1003 :: / home / kira: / bin / bash
Det vill säga, vi skulle ha filen så här passwd:
root: x: 0: 0: root: / root: / bin / bash
#kira: x: 1003: 1003: ,,,: / opt / fängelse /./ hem / kira: / usr / sbin / jk_lsh
kira: x: 1003: 1003 :: / home / kira: / bin / bash
Lägg märke till dubbla skiljetecken och andra, det är viktigt att inte släppa någon av dem 🙂
Efter detta kan användaren gå in utan problem 😀
Och det är allt.
Verktyget vi använder för allt detta (jailkit) används i backend chroot, vilket är faktiskt vad nästan alla självstudier använder. Men med JailKit blir det enklare att bura age
Om någon har ett problem eller något är fel, lämna så mycket information som möjligt, jag anser mig inte vara en expert men jag hjälper dig så mycket jag kan.
då skulle det vara ungefär som behörigheterna i FTP? intressant
du kommer alltid med allt som du inte ens visste existerade, som användarna i mysql xD
Inte exakt, för SSH är inte samma sak som FTP. SSH är ett skal, det vill säga en terminal ... du skulle vara i en terminal på en annan dator eller server, du kan utföra kommandon, starta processer, etc ... du skulle göra så mycket som serveradministratören tillåter dig 😉
hahahahaha nah kom igen, vad som händer är att jag publicerar mer tekniska saker ... det vill säga jag vill publicera små saker som inte är så populära och intressanta. Till exempel planerar jag personligen inte att publicera något den nya Ubuntu kommer ut, för jag tror att många redan kommer att prata om det ... Men vad du läser här i inlägget är det inte något som läses varje dag eller inte? 😀
Mycket bra bidrag tack
det finns också ett protokoll som heter sftp som är ftp och Secure Shell tillsammans, även om det inte är detsamma som att köra FTP över SSH: \
hälsningar
Ja ja, men genom att cage SSH burar jag automatiskt den som ansluter med SFTP, för som du säger är SFTP faktiskt SSH + FTP
hälsningar
Bilderna kan inte ses !!! 🙁
Ett litet misstag av mig hehe, berätta nu 😀
Redo. Tack 😀
mycket bra, jag pekar på mina favoriter att ha den tillgänglig när jag behöver den lol
Tack, alla frågor eller problem, vi är här för att hjälpa dig 🙂
De har Perseus i en bur. http://i.imgur.com/YjVv9.png
LOL
xD
Hur mår du.
Du vet, det är ett ämne som jag inte är så bekant med och som jag kollat in BSD (PC-BSD och Ghost BSD) och jag tycker det är väldigt intressant och med funktioner som kan vara mycket användbara.
Jag ska behålla det för referens och kontrollera det mot BSD-dokumentet. Tack för informationen.
Jag kände inte heller till det här, för jag tänkte aldrig på att ge någon SSH-åtkomst till någon av mina servrar haha, men när jag hittade behovet av att göra det ville jag ge åtkomst men utan möjligheten att någon av misstag kan göra något som inte måste 😀
Jag har aldrig provat det här på BSD-system, så jag kan inte säga att det kommer att fungera, men om du letar efter hur man kan rota i BSD, skulle något komma ut 😉
Tack för kommentaren vän 🙂
Hej, jag använder FreeBSD och naturligtvis fungerar jailkit faktiskt den här i hamnarna
Du installerar det med det här kommandot
cd / usr / portar / skal / jailkit / && gör installationen ren
Eller med ftp-paket
pkg_add -r jailkit
Endast i konfigurationen (kira: x: 1003: 1003 :: / home / kira: / bin / bash)
Du måste lägga till tcsh eller sh, om du inte har installerat bash och lagt till den här sökvägen
/ usr / local / bin / bash
Och några fler detaljer, i Ghost BSD borde det vara den liknande processen ännu enklare eftersom den är baserad på FreeBSD
hälsningar
Bra, jag letade efter det; vet du om det fungerar i Centos ?? tack.
Jag har inte testat det på Centos, men ja, det borde fungera :)
Jag minns faktiskt att flera har använt samma verktyg på Centos och Red Hat servrar 😉
Tack så mycket. Det går direkt till bokmärken.
Tack till dig för att du kommenterade 🙂
Mycket bra "trick", super användbart för systemadministratörer. Men ännu bättre, utmärkt välskriven. Vad mer kan du önska.
Tack så mycket för bidraget.
Tack, tack så mycket för din kommentar 😀
hälsningar
Beröm SSH haha
En gång försökte jag göra en bur för ssh men i traditionell stil och sanningen är att den aldrig kom korrekt ut. Om buren var igång hade den inte ens en bash, det vill säga den anslöt och det fanns inget kvar haha, om skalet fungerade kunde det gå upp i kataloghierarkin och mycket mer quilombos haha, men den här jailkit är en mace, den automatiserar alla dessa saker ... Rekommenderas starkt
haha tack.
Ja, faktiskt är SSH ett under för vad det tillåter oss, vilket egentligen inte är mer än vad systemet tillåter så ... hurra för Linux! ... haha.
Hej, en fråga!
varför byta hem från (1) / opt / fängelse /./ home / kira till (2) / home / kira
Vi måste redigera filen etc / passwd för buret, det vill säga i det här fallet skulle det vara / opt / jail / etc / passwd, i det kommenterar vi den användarrad som vi skapade och lägger till en ny som:
kira: x: 1003: 1003 :: / home / kira: / bin / bash
Med andra ord skulle passwd-filen se ut så här:
root: x: 0: 0: root: / root: / bin / bash
(1) #kira: x: 1003: 1003: ,,,: / opt / fängelse /./ hem / kira: / usr / sbin / jk_lsh
(2) kira: x: 1003: 1003 :: / home / kira: / bin / bash
Hej 🙂
Om det inte är inställt fungerar inte SSH-åtkomsten, användaren försöker ansluta men utesluts automatiskt ... det verkar vara ett fel eller problem med tolk som JailKit ger, för när den här ändringen berättar att den ska användas den normala bash i systemet, allt fungerar.
Jag avslutar fortfarande ssh-sessionen: C
Suse 10.1 x64
Hej jag har installerat det här och det fungerar utmärkt sinne mycket bra i centos = D
men min dua är som tidigare att lägga till fler kommandon till exempel till en fängelseanvändare
kan inte köra kommandot svn co http://pagina.com/carpeta
Jag menar att det här kommandot inte finns för fängelseanvändare i det här fallet som för att lägga till dessa kommandon i fängelset och det finns många fler som jag behöver lägga till.
Hej hur mår du 🙂
Om du vill aktivera kommandot «svn» i fängelset har du kommandot jk_cp
Det är:
jk_cp / opt / fängelse / / bin / svn
Detta förutsatt att svn binärt eller körbart är: / bin / svn
Och låt buret / fängelset vara: / opt / fängelse /
Du hittar kommandon som är beroende av andra, det vill säga om du lägger till kommandot «pepe» ser du att du också måste lägga till «federico», eftersom «pepe» beror på att «federico» ska köras, om du hittar detta då du lägger till nödvändiga kommandon och redan 😉
Det är utmärkt, jag testar det samtidigt, och jag berättar vad som hände, tack så mycket = D
Lycka 😀
Jag har lyckats göra vad du sa till mig, men på det här sättet och automatiskt har det upptäckt mig utan problem. Detta var kommandot som jag brukade för att kunna använda subverisionen.
jk_cp -j / home / jaul svn
Jag använder centos xP och kanske är det annorlunda men bra
nu skulle jag vilja veta vilka bibliotek som svn men nu vill jag kompilera för att säga att jag måste använda ett kommando som det här
./konfigurera och markera fel
./configure.lineno: rad 434: expr: kommandot hittades inte
Jag skulle inte veta vilka bibliotek jag redan har installerat vad som är mysql och andra om det kompileras utanför fängelset men inte inuti jaui.
beklagar olägenheten.
ps: du borde lägga in guiden vad jag sa om kommandot som används i centos =) hälsningar.
När jag säger att den inte kan hitta ett kommando (som här) är det första att hitta kommandot:
whereis expr
När det väl hittats (/ usr / bin / expr och / usr / bin / X11 / expr) kopierar vi det till fängelset med jk_cp 😉
Prova detta för att se.
Japp, jag redigerar redan inlägget och lägger till att det fungerar i Centos 😀
Stort tack så mycket (:
Tack för inmatningen ...
Hej hur är det?
Fan knulla! Från Chile mina hälsningar. Du är lika fart som jag! LOL!. Kramar. Ditt inlägg har varit till stor hjälp för mig!
Tack för din kommentar 😀
Tack så mycket för inlägget, det hjälpte mig mycket, men tyvärr i delen av
////////////////////////////////////////////////// //// ////////////////////////////////////////////// //////// //////////////////////
Vi måste redigera filen etc / passwd för buret, det vill säga i det här fallet skulle det vara / opt / jail / etc / passwd, i det kommenterar vi den användarrad som vi skapade och lägger till en ny som:
kira: x: 1003: 1003 :: / home / kira: / bin / bash
Med andra ord skulle passwd-filen se ut så här:
root: x: 0: 0: root: / root: / bin / bash
#kira: x: 1003: 1003: ,,,: / opt / fängelse /./ hem / kira: / usr / sbin / jk_lsh
kira: x: 1003: 1003 :: / home / kira: / bin / bash
////////////////////////////////////////////////// //// //////////////////////////////////////////
Det orsakar mig samma fel, jag menar, jag lämnar det som det är, och det startar mig från terminalen när jag ansluter ,,, .., jag kommenterar linjen och lägger till en till som ändrar det som du anger, och det också stövlar mig….
Installera den senaste versionen "jailkit-2.16.tar", skapa till och med ett skript för att spara tid, här är det nedan:
////////////////////////////////////////////////// //// //////////////////////////////////////////////
#! / Bin / bash
wget http://olivier.sessink.nl/jailkit/jailkit-2.16.tar.gz
tjära -zxvf jailkit-2.16.tar.gz
cd jailkit-2.16
. / Configure
göra
make install
avsluta
////////////////////////////////////////////////// //// ///////////////////////////////
Uppenbarligen loggar de in som "root" ...
Hur kunde jag lösa felvän ????
Tyvärr, jag har redan fått det, jag har gjort ett misstag angående hemmappen, men jag tvivlar mycket, hur kan jag få det att låta mig utföra kommandot "skärm", jag försöker använda det (i den burade användaren) , men det fungerar inte ... En annan sak är att ,, hur får jag den här buranvändaren att köra vinprogrammet på en exe som han bara satte in i sitt hem ,, hur skulle det vara?
hej, mycket bra tuto! Jag är ny i dessa miljöer, jag har en fråga ...
När det gäller säkerhet ser jag att det i dess rot har många mappar, är de nödvändiga? Jag vill bara att han ska ha tillgång till sin mapp (ftp-upload och ssh-execute) så att han kan köra ett program, vilka mappar kan han ta bort från roten? eller utgör det inte någon fara för mig? Jag uppskattar din hjälp i förväg, hälsningar!
@ KZKG ^ Gaara, tack och lov, du satte wheezy-felet men med versionen av jailkit-2.16.tar.gz som du föreslog att de skulle fixa det
http://olivier.sessink.nl/jailkit/jailkit-2.16.tar.gz
Jag tror att jag skickar det till en PDF, jojo .. till bur och tack wn 😀
Hälsningar vän, jag har en fråga:
Antag att vi har en användare som heter "test".
Frågan är att filen /home/test/.ssh/known_hosts som finns i den användarens hem, är samma fil den här eller inte bur användaren?
Prova detta. Det är möjligt med den här metoden att begränsa navigeringen till andra användares hem.
Först och främst tack för inlägget! Det är mycket användbart för mig; men jag har två tvivel, och dessa härrör från det scenario jag har:
Jag måste skapa N-användare med oberoende och privat åtkomst till sitt hem, varje användare kan bara komma åt sitt hem för att deponera, ändra och ta bort filer som finns där utan att behöva flytta till andra (jag har redan den här punkten). Det kräver inte åtkomst via ssh.
1. Måste du skapa en bur för varje användare, eller finns det ett sätt att ha de olika användarna i samma bur men var och en har sin "privata" katalog?
2. När du öppnar (via FTP-klient) visas alla kataloger som skapats av verktyget, finns det ett sätt att visa mappen på ett rent sätt? Eller gjorde jag något fel på vägen?
Utmärkt handledning! Det har varit en stor hjälp för mig, jag testar det med version 2.17 på Ubuntu 14.04 och det fungerar mycket bra. Nu har jag följande utmaning, när användaren väl är burad så att han inte kan flytta till någon sökväg vill jag att han bara ska kunna se innehållet i en fil som ligger i en annan sökväg. Jag försökte med en symbolisk länk men när jag försöker skapa en svans eller en katt till den här filen berättar det för mig att den inte finns, men när jag går till användaren kan jag lista den filen i burens hem.
Om du kunde hjälpa mig skulle jag vara mycket tacksam, tack på förhand
Hej, jag har följt hela manualen och när jag loggar in med ssh stängs den automatiskt, spårar:
4 dec 19:20:09 toby sshd [27701]: Accepterat lösenord för test från 172.16.60.22 port 62009 ssh2
4 dec 19:20:09 toby sshd [27701]: pam_unix (sshd: session): session öppnad för användartest av (uid = 0)
4 dec 19:20:09 toby jk_chrootsh [27864]: går nu in i fängelse / opt / fängelse för användartest (1004) med argument
4 dec 19:20:09 toby sshd [27701]: pam_unix (sshd: session): session stängd för användartest
tack
Inte när jag gör det sista steget att ge ssh åtkomst till användaren, det stänger fortfarande anslutningen 🙁
Kan det vara möjligt från den här skapade användaren att byta till root? din -root? det låter mig inte. Hur skulle det vara? Tack för din hjälp
Tack så mycket för handledningen, jag behövde den för att skapa en användare som kunde använda clonezilla för att skapa en bild och kopiera den till en utländsk server men som inte kunde svärma vart han ville
Bra! Jag skulle behöva veta något.
Är det möjligt att gå in som ROOT med FTP och ha dessa behörigheter, att hantera det med FTP och inte med SSH? Låt oss säga som att skapa en anslutning, tunnelstil eller något liknande. Hur görs det? Konfigurerar VSFTPD-filen?
Tack så mycket!