В нашия свят има много, много тайни ... Честно казано не мисля, че мога да науча достатъчно, за да знам повечето от тях, и това се дава от простия факт, че Linux ни позволява да правим толкова много, но толкова много неща, че е за нас е трудно да ги познаем всички.
Този път ще обясня как да направя нещо изключително полезно, нещо, което много мрежови или системни администратори трябва да направят, и ни беше трудно просто да не намерим доста прост начин да го постигнем:
Как да поставите потребители в клетка, свързващи се чрез SSH
клетка? ... WTF!
Да. Ако по някаква причина трябва да предоставим SSH достъп на наш приятел до нашия компютър (или сървър), винаги трябва да се грижим за сигурността и стабилността на нашия компютър или сървър.
Случва се, че наскоро искахме да предоставим на Perseus SSH достъп до наш сървър, но не можем да му дадем какъвто и да е достъп, защото имаме наистина чувствителни конфигурации там (компилирали сме много неща, пакети, които сме инсталирали индивидуално и т.н. .) Независимо дали се опитвам да направя дори най-малката промяна в сървъра, има вероятност всичко да отиде на хаха хаха
След това, Как да създадете потребител с изключително ограничени привилегии, толкова много, че той дори да не може да излезе от клетката си (дома)?
Нека започнем с изтегляне джайкит, инструмент, който ще ни позволи да направим това:
1. Първо трябва да изтеглим нашия JailKit сървър.
wget http://ftp.desdelinux.net/jailkit-2.14.tar.gz
2. След това трябва да разархивираме пакета и да въведем папката, която току-що се появи:
tar xzf jailkit-2.14.tar.gz && cd jailkit-2.14
3. По-късно продължихме да компилираме и инсталираме софтуера (Оставям ви екранна снимка):
./configure
make
make install
4. Готово, това вече е инсталирано. Сега продължаваме да създаваме клетката, която ще съдържа бъдещи потребители, в моя случай я създадох в: / opt / и я нарекох "затвор", така че пътят ще бъде: / opt / jail :
mkdir /opt/jail
chown root:root /opt/jail
5. Клетката вече е създадена, но тя не разполага с всички необходими инструменти, така че бъдещите потребители, които ще бъдат там, да могат да работят без проблеми. Искам да кажа, че до този момент клетката е създадена, но това е просто празна кутия. Сега ще поставим в клетката някои инструменти, от които ще се нуждаят потребителите в клетката:
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. Готов, клетката съществува и вече разполага с инструментите, които потребителят да използва ... сега ни трябва само ... потребителят! Нека създадем потребителя Кира и ще го сложим в клетката:
adduser kira
jk_jailuser -m -j /opt/jail kira
cat /etc/passwd | grep jk_chroot
Ако забележите, че не се появява нищо подобно на екранната снимка, трябва да сте направили нещо нередно. Оставете коментар тук и с удоволствие ще ви помогна.
7. И voila, потребителят вече е поставен в клетка ... но той е ТОЛКОВО затворен, че не може да се свърже чрез SSH, защото когато се опитва да се свърже, сървърът не му позволява:
8. За да позволим на потребителя да се свърже, трябва да направим още една стъпка.
Трябва да редактираме файла etc / passwd на клетката, т.е. в този случай ще бъде / opt / jail / etc / passwd , в него коментираме създадения от нас потребителски ред и добавяме нов като:
kira: x: 1003: 1003 :: / home / kira: / bin / bash
Тоест, бихме имали файла по този начин ако съществува:
корен: х: 0: 0: корен: / корен: / хамбар / Баш
#kira: x: 1003: 1003: ,,,: / opt / jail /./ home / kira: / usr / sbin / jk_lsh
kira: x: 1003: 1003 :: / home / kira: / bin / bash
Забележете добре дублиращите се препинателни знаци и други, важно е да не изпускате нито един от тях 🙂
След като направи това, потребителят може да влезе без проблем 😀
И това е всичко.
Инструментът, който използваме за всичко това (джайкит) използване в бекенда chroot, което всъщност се използва от почти всички уроци. Използването на JailKit обаче става по-лесно за поставяне в клетка 😉
Ако някой има проблем или нещо не върви добре, оставете възможно най-много подробности, аз не се считам за експерт, но ще ви помогна с каквото мога.
Значи би било нещо като разрешенията в FTP? интересно
винаги излизате с всичко, което дори не сте знаели, че съществува, като потребителите в mysql xD
Не точно, защото SSH не е същото като FTP. SSH е черупка, тоест терминал ... бихте били в терминал на друг компютър или сървър, бихте могли да изпълнявате команди, да стартирате процеси и т.н. ... бихте направили толкова, колкото администраторът на сървъра ви позволява 😉
хахахахаха не, хайде, това, което се случва е, че публикувам повече технически неща ... тоест обичам да публикувам малки неща, които не са толкова популярни и интересни. Например, аз лично не планирам да публикувам нещо в деня, в който излезе новата Ubuntu, защото вярвам, че мнозина вече ще говорят за това ... обаче, това, което прочетете тук в публикацията, не е ли нещо, което се чете всеки ден или не? 😀
Много добри приноси благодаря
има и протокол, наречен sftp, който е ftp и Secure Shell заедно, въпреки че не е същото като стартиране на FTP през SSH: \
поздрави
Да да наистина, но като поставям SSH в клетка, автоматично поставям в клетка всеки, който се свързва с помощта на SFTP, защото както казвате, SFTP всъщност е SSH + FTP 😀
поздрави
Изображенията не се виждат !!! 🙁
Малка моя грешка хехе, кажи ми сега 😀
Готов. Благодаря 😀
много добре, насочвам го към любимите ми, за да е на разположение, когато имам нужда хаха
Благодарим Ви, за всякакви въпроси или проблеми, ние сме тук, за да Ви помогнем 🙂
Те имат Персей в клетка. http://i.imgur.com/YjVv9.png
Fw: препратено
xD
Как сте.
Знаете ли, това е тема, с която не съм много запознат и която проверявах в BSD (PC-BSD и Ghost BSD) и ми се струва много интересна и с функционалности, които могат да бъдат много полезни.
Ще го запазя за справка и ще го проверя спрямо BSD документа. Благодаря за информацията.
И аз не бях запознат с това, защото никога не съм мислил да дам на някой SSH достъп до някой от моите сървъри хаха, но когато установих, че е необходимо да го направя, исках да дам достъп, но без възможност някой по погрешка да направи нещо това не трябва 😀
Никога не съм опитвал това на BSD системи, така че не мога да ви кажа, че ще работи, но ако търсите как да chroot на BSD, трябва да излезе нещо 😉
Благодаря за коментара приятел 🙂
Здравейте, използвам FreeBSD и разбира се jailkit работи всъщност това в портовете
Инсталирате го с тази команда
cd / usr / ports / shells / jailkit / && направи инсталацията чиста
Или чрез ftp пакет
pkg_add -r jailkit
Само в конфигурацията (kira: x: 1003: 1003 :: / home / kira: / bin / bash)
Трябва да добавите tcsh или sh, освен ако не сте инсталирали bash и не добавите този път
/ usr / local / bin / bash
И още няколко подробности, в Ghost BSD подобният процес трябва да бъде още по-опростен, тъй като се основава на FreeBSD
поздрави
Чудесно, търсих го; знаете ли дали работи в Centos ?? Благодаря.
Не съм го тествал на Centos, но да, би трябвало да работи :)
Всъщност мисля, че си спомням, че няколко са използвали същия инструмент на сървърите Centos и Red Hat 😉
Благодаря ти много. Той отива директно към отметките.
Благодаря ви, че коментирахте 🙂
Много добър "трик", супер полезен за администратори на sys. Но още по-добре, отлично добре написано. Какво повече може да искате.
Благодаря ви много за приноса.
Благодаря, много благодаря за коментара 😀
поздрави
Хвалете SSH хаха
Веднъж се опитах да направя клетка за ssh, но в традиционния стил и истината е, че тя никога не излезе правилно. Ако клетката работеше, тя дори нямаше bash, тоест свързваше се и не остана нищо хаха, ако черупката работеше, можеше да се качи в йерархията на директориите и много повече киломбо хаха, но този джейлкит е боздуган, той автоматизира всички тези неща ... Силно препоръчително
хаха, благодаря.
Да, всъщност SSH е чудо за това, което ни позволява, което всъщност не е нищо повече от това, което системата позволява, така че ... ура за Linux! ... хаха.
Здравейте, въпрос!
защо да смените дома от (1) / opt / jail /./ home / kira на (2) / home / kira
Трябва да редактираме файла etc / passwd на клетката, т.е. в този случай това ще бъде / opt / jail / etc / passwd, в него ще коментираме създадения от нас потребителски ред и ще добавим нов като:
kira: x: 1003: 1003 :: / home / kira: / bin / bash
С други думи, файлът passwd ще изглежда така:
корен: х: 0: 0: корен: / корен: / хамбар / Баш
(1) #kira: x: 1003: 1003: ,,,: / opt / jail /./ home / kira: / usr / sbin / jk_lsh
(2) kira: x: 1003: 1003 :: / home / kira: / bin / bash
Здравейте 🙂
Ако това не е зададено, SSH достъпът не работи, потребителят се опитва да се свърже, но се изключва автоматично ... изглежда, че е грешка или проблем с интерпретатора, който JailKit носи, тъй като при извършване на тази промяна показва, че използва нормален баш на системата, всичко работи.
Все още затварям ssh сесията: C
Suse 10.1 x64
Здравейте, инсталирах това и работи отлично много добре в centos = D
но моята дуа е като преди да добавя повече команди например към потребител на затвора
не може да изпълни командата svn co http://pagina.com/carpeta
Искам да кажа, че тази команда не съществува за потребителите на затвора в този случай, както преди, за да добавят тези команди към затвора и има много повече, които трябва да добавя.
Здравей как си 🙂
Ако искате да активирате командата «svn» в затвора, имате командата jk_cp
Това е:
jk_cp / opt / jail / / bin / svn
Това предполага, че svn двоичен или изпълним е: / bin / svn
И нека Клетката / Затворът да бъде: / opt / jail /
Ще намерите команди, които зависят от другите, тоест, ако добавите командата «pepe», ще видите, че трябва да добавите и «federico», защото «pepe» зависи от «federico», която трябва да бъде изпълнена, ако намерите това тогава добавяте необходимите команди и вече 😉
Това е отлично.
Късмет 😀
Успях да направя това, което ми казахте, но по този начин и автоматично той ме откри без проблем.Това беше командата, която използвах, за да мога да използвам подривната дейност.
jk_cp -j / home / jaul svn
Ами аз използвам centos xP и може би е различен, но добър
сега бих искал да знам кои са библиотеките като svn, но сега бих искал да компилирам, защото да кажем, че трябва да използвам команда като тази
./конфигуриране и маркиране на грешка
./configure.lineno: ред 434: expr: командата не е намерена
Не бих знал кои са библиотеките, които вече съм инсталирал какво е mysql и други, ако се компилира извън затвора, но не и в jaui.
съжалявам за неудобството.
ps: трябва да поставите в ръководството това, което ви казах за командата, използвана в поздравления на centos =).
Вижте, когато ви кажа, че не може да намери команда (като тук), първото нещо е да намерите командата:
whereis expr
След като бъде намерен (/ usr / bin / expr и / usr / bin / X11 / expr), ние го копираме в затвора с jk_cp 😉
Опитайте това, за да видите.
Да, вече редактирам публикацията и добавям, че тя работи в Centos 😀
Много благодаря (:
Благодаря за приноса ...
Здравей как си?
Майната му пич! От Чили моите поздрави. Вие сте пърдец като мен! LOL !. Прегръдки. Вашата публикация ми беше от голяма помощ!
Благодаря ви за коментара 😀
Благодаря ви много за публикацията, много ми помогна, но за съжаление в частта от
//////////////////////////////////////////////////// //// //////////////////////////////////////////////// //////// ////////////////////////
Трябва да редактираме файла etc / passwd на клетката, т.е. в този случай това ще бъде / opt / jail / etc / passwd, в него ще коментираме създадения от нас потребителски ред и ще добавим нов като:
kira: x: 1003: 1003 :: / home / kira: / bin / bash
С други думи, файлът passwd ще изглежда така:
корен: х: 0: 0: корен: / корен: / хамбар / Баш
#kira: x: 1003: 1003: ,,,: / opt / jail /./ home / kira: / usr / sbin / jk_lsh
kira: x: 1003: 1003 :: / home / kira: / bin / bash
//////////////////////////////////////////////////// ////////////////////////////////////////
Това ми причинява същата грешка, искам да кажа, оставям я такава, каквато е, и ме зарежда от терминала при свързване ,,, .., коментирам линията и добавям още една модификация, както посочите, и тя също ботуши ме ...
Инсталирайте най-новата версия "jailkit-2.16.tar", дори създайте скрипт, за да спестите време, ето по-долу:
//////////////////////////////////////////////////// // ////////////////////////////////////////////////
#! / Хамбар / Баш
Wget http://olivier.sessink.nl/jailkit/jailkit-2.16.tar.gz
tar -zxvf jailkit -2.16.tar.gz
cd jailkit-2.16
. / Configure
правя
да инсталирате
изход
//////////////////////////////////////////////////// //// ///////////////////////////////
Очевидно първо те влизат като "root" ...
Как мога да разреша грешката приятел ????
Съжалявам, вече го разбрах, направих грешка относно папката Home, но имам голямо съмнение как мога да го накарам да ми позволи да изпълня командата "screen", опитвам се да го използвам (в потребителя в клетка) , но не работи ... Друго нещо е, че ,, как да накарам този потребител в клетка да стартира винената програма на exe, който току-що е сложил в дома си ,, как би било?
здравей, много добър туто! Аз съм нов в тези среди, имам въпрос ...
Що се отнася до сигурността, виждам, че в корена му има много папки, необходими ли са те? Просто искам той да има достъп до папката си (ftp-upload и ssh-execute), за да стартира приложение, какви папки би могъл да изтрие от корен? или представлява някаква опасност за мен? Оценявам предварително вашата помощ, поздрави!
@ KZKG ^ Гаара, слава богу, поставихте хриптящата грешка, но с версията на jailkit-2.16.tar.gz, която предложихте, че са я поправили
http://olivier.sessink.nl/jailkit/jailkit-2.16.tar.gz
Мисля, че ще го предам на PDF, jojo .. на клетка и благодаря wn 😀
Поздрави приятелю, имам въпрос:
Да предположим, че имаме потребител на име „тест“.
Въпросът е, че файлът /home/test/.ssh/known_hosts, който се намира в дома на този потребител, същият файл ли е или не е поставен в клетката на потребителя?
Опитайте тази. С този метод е възможно да ограничите навигацията до другия дом на останалите потребители.
Първо, благодаря за публикацията! Това е много полезно за мен; но имам две съмнения и те произтичат от сценария, който имам:
Трябва да създам N потребители с независим и частен достъп до дома им, всеки потребител може да осъществи достъп до дома си само за депозиране, модифициране и изтриване на файлове, съдържащи се там, без да се налага да се придвижвам до други (вече имам тази точка). Не изисква достъп чрез ssh.
1. Трябва ли да създадете клетка за всеки потребител или има начин различните потребители да са в една и съща клетка, но всеки да има своя „частна“ директория?
2. При достъп (чрез FTP клиент) се показват всички директории, създадени от инструмента, има ли начин да се покаже папката чиста? Или направих нещо нередно по пътя?
Отличен урок! Това ми беше от голяма помощ, тествам го с версия 2.17 на Ubuntu 14.04 и работи много добре. Сега имам следното предизвикателство, след като потребителят бъде поставен в клетка, така че да не може да се придвижва до който и да е път, искам той да може да вижда само съдържанието на файл, който е в друг път. Опитах със символична връзка, но когато се опитвам да направя опашка или котка към този файл, той ми казва, че той не съществува, въпреки че при достъп с потребителя мога да изброя този файл в дома на клетката.
Ако можете да ми помогнете, ще ви бъда много благодарен, благодаря предварително
Здравейте, проследих цялото ръководство и при влизане с ssh се затваря автоматично, проследява:
4 дек. 19:20:09 toby sshd [27701]: Приета парола за тест от 172.16.60.22 порт 62009 ssh2
4 дек. 19:20:09 toby sshd [27701]: pam_unix (sshd: session): сесията е отворена за потребителски тест от (uid = 0)
4 дек. 19:20:09 toby jk_chrootsh [27864]: сега влиза в затвора / opt / jail за потребителски тест (1004) с аргументи
4 дек. 19:20:09 toby sshd [27701]: pam_unix (sshd: session): сесията е затворена за потребителски тест
благодаря
Не когато правя последната стъпка от предоставянето на ssh достъп на потребителя, той все още затваря връзката 🙁
Възможно ли е от този създаден потребител да се промени на root? вашият -корен? не ми позволява. Как би било? Благодаря ви за помощта
Благодаря ви много за урока, имах нужда от него, за да създам потребител, който може да използва clonezilla, за да направи изображение и да го копира на сървър на трета страна, но който не можеше да се рои, където иска
Добре! Трябва да знам нещо.
Възможно ли е да влезете като ROOT, използвайки FTP и притежаващи тези разрешения, да го управлявате чрез FTP, а не със SSH? Да кажем като създаване на връзка, стил на тунел или нещо подобно. Как се прави това? Конфигуриране на VSFTPD файла?
Много благодаря!