Как да затворя потребители, свързващи се чрез SSH

В нашия свят има много, много тайни ... Честно казано не мисля, че мога да науча достатъчно, за да знам повечето от тях, и това се дава от простия факт, че Linux ни позволява да правим толкова много, но толкова много неща, че е за нас е трудно да ги познаем всички.

Този път ще обясня как да направя нещо изключително полезно, нещо, което много мрежови или системни администратори трябва да направят, и ни беше трудно просто да не намерим доста прост начин да го постигнем:

Как да поставите потребители в клетка, свързващи се чрез SSH

клетка? ... WTF!

Да. Ако по някаква причина трябва да предоставим SSH достъп на наш приятел до нашия компютър (или сървър), винаги трябва да се грижим за сигурността и стабилността на нашия компютър или сървър.

Случва се, че наскоро искахме да предоставим на Perseus SSH достъп до наш сървър, но не можем да му дадем какъвто и да е достъп, защото имаме наистина чувствителни конфигурации там (компилирали сме много неща, пакети, които сме инсталирали индивидуално и т.н. .) Независимо дали се опитвам да направя дори най-малката промяна в сървъра, има вероятност всичко да отиде на хаха хаха

След това, Как да създадете потребител с изключително ограничени привилегии, толкова много, че той дори да не може да излезе от клетката си (дома)?

Нека започнем с изтегляне джайкит, инструмент, който ще ни позволи да направим това:

Всички следващи команди се изпълняват като root

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

. / Configure

правя

да инсталирате

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 обаче става по-лесно за поставяне в клетка 😉

Важно!: Това е тествано на Debian Squeeze (6) y Цент и се получи в 100%, тестван в Debian Wheezy (7) и също е работил, макар и с малка подробност, че псевдонимът на потребителя не се показва в ssh, но не губи никаква функционалност.

Ако някой има проблем или нещо не върви добре, оставете възможно най-много подробности, аз не се считам за експерт, но ще ви помогна с каквото мога.


Оставете вашия коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *

*

*

  1. Отговорен за данните: Мигел Анхел Гатон
  2. Предназначение на данните: Контрол на СПАМ, управление на коментари.
  3. Легитимация: Вашето съгласие
  4. Съобщаване на данните: Данните няма да бъдат съобщени на трети страни, освен по законово задължение.
  5. Съхранение на данни: База данни, хоствана от Occentus Networks (ЕС)
  6. Права: По всяко време можете да ограничите, възстановите и изтриете информацията си.

  1.   v3on каза той

    Значи би било нещо като разрешенията в FTP? интересно

    винаги излизате с всичко, което дори не сте знаели, че съществува, като потребителите в mysql xD

    1.    KZKG ^ Гаара каза той

      Не точно, защото SSH не е същото като FTP. SSH е черупка, тоест терминал ... бихте били в терминал на друг компютър или сървър, бихте могли да изпълнявате команди, да стартирате процеси и т.н. ... бихте направили толкова, колкото администраторът на сървъра ви позволява 😉

      хахахахаха не, хайде, това, което се случва е, че публикувам повече технически неща ... тоест обичам да публикувам малки неща, които не са толкова популярни и интересни. Например, аз лично не планирам да публикувам нещо в деня, в който излезе новата Ubuntu, защото вярвам, че мнозина вече ще говорят за това ... обаче, това, което прочетете тук в публикацията, не е ли нещо, което се чете всеки ден или не? 😀

      1.    Дамян Ривера каза той

        Много добри приноси благодаря

        има и протокол, наречен sftp, който е ftp и Secure Shell заедно, въпреки че не е същото като стартиране на FTP през SSH: \

        поздрави

        1.    KZKG ^ Гаара каза той

          Да да наистина, но като поставям SSH в клетка, автоматично поставям в клетка всеки, който се свързва с помощта на SFTP, защото както казвате, SFTP всъщност е SSH + FTP 😀

          поздрави

  2.   Гискард каза той

    Изображенията не се виждат !!! 🙁

    1.    KZKG ^ Гаара каза той

      Малка моя грешка хехе, кажи ми сега 😀

      1.    Гискард каза той

        Готов. Благодаря 😀

  3.   Гниене87 каза той

    много добре, насочвам го към любимите ми, за да е на разположение, когато имам нужда хаха

    1.    KZKG ^ Гаара каза той

      Благодарим Ви, за всякакви въпроси или проблеми, ние сме тук, за да Ви помогнем 🙂

  4.   Мануел де ла Фуенте каза той

    Те имат Персей в клетка. http://i.imgur.com/YjVv9.png

    1.    надлежен каза той

      Fw: препратено
      xD

  5.   jorgemanjarezlerma каза той

    Как сте.

    Знаете ли, това е тема, с която не съм много запознат и която проверявах в BSD (PC-BSD и Ghost BSD) и ми се струва много интересна и с функционалности, които могат да бъдат много полезни.

    Ще го запазя за справка и ще го проверя спрямо BSD документа. Благодаря за информацията.

    1.    KZKG ^ Гаара каза той

      И аз не бях запознат с това, защото никога не съм мислил да дам на някой SSH достъп до някой от моите сървъри хаха, но когато установих, че е необходимо да го направя, исках да дам достъп, но без възможност някой по погрешка да направи нещо това не трябва 😀

      Никога не съм опитвал това на BSD системи, така че не мога да ви кажа, че ще работи, но ако търсите как да chroot на BSD, трябва да излезе нещо 😉

      Благодаря за коментара приятел 🙂

      1.    Дамян Ривера каза той

        Здравейте, използвам 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

        поздрави

  6.   adiazc87 каза той

    Чудесно, търсих го; знаете ли дали работи в Centos ?? Благодаря.

    1.    KZKG ^ Гаара каза той

      Не съм го тествал на Centos, но да, би трябвало да работи :)
      Всъщност мисля, че си спомням, че няколко са използвали същия инструмент на сървърите Centos и Red Hat 😉

  7.   17 каза той

    Благодаря ти много. Той отива директно към отметките.

    1.    KZKG ^ Гаара каза той

      Благодаря ви, че коментирахте 🙂

  8.   MV Altamirano каза той

    Много добър "трик", супер полезен за администратори на sys. Но още по-добре, отлично добре написано. Какво повече може да искате.
    Благодаря ви много за приноса.

    1.    KZKG ^ Гаара каза той

      Благодаря, много благодаря за коментара 😀
      поздрави

  9.   LiGNUxer каза той

    Хвалете SSH хаха
    Веднъж се опитах да направя клетка за ssh, но в традиционния стил и истината е, че тя никога не излезе правилно. Ако клетката работеше, тя дори нямаше bash, тоест свързваше се и не остана нищо хаха, ако черупката работеше, можеше да се качи в йерархията на директориите и много повече киломбо хаха, но този джейлкит е боздуган, той автоматизира всички тези неща ... Силно препоръчително

    1.    KZKG ^ Гаара каза той

      хаха, благодаря.
      Да, всъщност SSH е чудо за това, което ни позволява, което всъщност не е нищо повече от това, което системата позволява, така че ... ура за Linux! ... хаха.

  10.   nwt_lazaro каза той

    Здравейте, въпрос!
    защо да смените дома от (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

    1.    KZKG ^ Гаара каза той

      Здравейте 🙂
      Ако това не е зададено, SSH достъпът не работи, потребителят се опитва да се свърже, но се изключва автоматично ... изглежда, че е грешка или проблем с интерпретатора, който JailKit носи, тъй като при извършване на тази промяна показва, че използва нормален баш на системата, всичко работи.

      1.    Омар Рамирез каза той

        Все още затварям ssh сесията: C
        Suse 10.1 x64

  11.   Алекситу каза той

    Здравейте, инсталирах това и работи отлично много добре в centos = D

    но моята дуа е като преди да добавя повече команди например към потребител на затвора
    не може да изпълни командата svn co http://pagina.com/carpeta

    Искам да кажа, че тази команда не съществува за потребителите на затвора в този случай, както преди, за да добавят тези команди към затвора и има много повече, които трябва да добавя.

    1.    KZKG ^ Гаара каза той

      Здравей как си 🙂
      Ако искате да активирате командата «svn» в затвора, имате командата jk_cp
      Това е:
      jk_cp / opt / jail / / bin / svn

      Това предполага, че svn двоичен или изпълним е: / bin / svn
      И нека Клетката / Затворът да бъде: / opt / jail /

      Ще намерите команди, които зависят от другите, тоест, ако добавите командата «pepe», ще видите, че трябва да добавите и «federico», защото «pepe» зависи от «federico», която трябва да бъде изпълнена, ако намерите това тогава добавяте необходимите команди и вече 😉

      1.    Алекситу каза той

        Това е отлично.

        1.    KZKG ^ Гаара каза той

          Късмет 😀

  12.   Алекситу каза той

    Успях да направя това, което ми казахте, но по този начин и автоматично той ме откри без проблем.Това беше командата, която използвах, за да мога да използвам подривната дейност.

    jk_cp -j / home / jaul svn

    Ами аз използвам centos xP и може би е различен, но добър
    сега бих искал да знам кои са библиотеките като svn, но сега бих искал да компилирам, защото да кажем, че трябва да използвам команда като тази

    ./конфигуриране и маркиране на грешка

    ./configure.lineno: ред 434: expr: командата не е намерена

    Не бих знал кои са библиотеките, които вече съм инсталирал какво е mysql и други, ако се компилира извън затвора, но не и в jaui.

    съжалявам за неудобството.

    ps: трябва да поставите в ръководството това, което ви казах за командата, използвана в поздравления на centos =).

    1.    KZKG ^ Гаара каза той

      Вижте, когато ви кажа, че не може да намери команда (като тук), първото нещо е да намерите командата:

      whereis expr

      След като бъде намерен (/ usr / bin / expr и / usr / bin / X11 / expr), ние го копираме в затвора с jk_cp 😉
      Опитайте това, за да видите.

      Да, вече редактирам публикацията и добавям, че тя работи в Centos 😀

  13.   adiazc87 каза той

    Много благодаря (:

  14.   Исус каза той

    Благодаря за приноса ...

  15.   карма каза той

    Здравей как си?

  16.   djfenixchile каза той

    Майната му пич! От Чили моите поздрави. Вие сте пърдец като мен! LOL !. Прегръдки. Вашата публикация ми беше от голяма помощ!

    1.    KZKG ^ Гаара каза той

      Благодаря ви за коментара 😀

  17.   Даниел PZ каза той

    Благодаря ви много за публикацията, много ми помогна, но за съжаление в частта от

    //////////////////////////////////////////////////// //// //////////////////////////////////////////////// //////// ////////////////////////
    Трябва да редактираме файла 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" ...

    Как мога да разреша грешката приятел ????

    1.    Даниел PZ каза той

      Съжалявам, вече го разбрах, направих грешка относно папката Home, но имам голямо съмнение как мога да го накарам да ми позволи да изпълня командата "screen", опитвам се да го използвам (в потребителя в клетка) , но не работи ... Друго нещо е, че ,, как да накарам този потребител в клетка да стартира винената програма на exe, който току-що е сложил в дома си ,, как би било?

  18.   Леонел каза той

    здравей, много добър туто! Аз съм нов в тези среди, имам въпрос ...
    Що се отнася до сигурността, виждам, че в корена му има много папки, необходими ли са те? Просто искам той да има достъп до папката си (ftp-upload и ssh-execute), за да стартира приложение, какви папки би могъл да изтрие от корен? или представлява някаква опасност за мен? Оценявам предварително вашата помощ, поздрави!

  19.   CubaRed каза той

    @ KZKG ^ Гаара, слава богу, поставихте хриптящата грешка, но с версията на jailkit-2.16.tar.gz, която предложихте, че са я поправили

    http://olivier.sessink.nl/jailkit/jailkit-2.16.tar.gz

  20.   Алгабе каза той

    Мисля, че ще го предам на PDF, jojo .. на клетка и благодаря wn 😀

  21.   Самуел каза той

    Поздрави приятелю, имам въпрос:

    Да предположим, че имаме потребител на име „тест“.

    Въпросът е, че файлът /home/test/.ssh/known_hosts, който се намира в дома на този потребител, същият файл ли е или не е поставен в клетката на потребителя?

  22.   Ричарт каза той

    Опитайте тази. С този метод е възможно да ограничите навигацията до другия дом на останалите потребители.

  23.   ТЗБКР каза той

    Първо, благодаря за публикацията! Това е много полезно за мен; но имам две съмнения и те произтичат от сценария, който имам:

    Трябва да създам N потребители с независим и частен достъп до дома им, всеки потребител може да осъществи достъп до дома си само за депозиране, модифициране и изтриване на файлове, съдържащи се там, без да се налага да се придвижвам до други (вече имам тази точка). Не изисква достъп чрез ssh.

    1. Трябва ли да създадете клетка за всеки потребител или има начин различните потребители да са в една и съща клетка, но всеки да има своя „частна“ директория?

    2. При достъп (чрез FTP клиент) се показват всички директории, създадени от инструмента, има ли начин да се покаже папката чиста? Или направих нещо нередно по пътя?

  24.   eduardlh каза той

    Отличен урок! Това ми беше от голяма помощ, тествам го с версия 2.17 на Ubuntu 14.04 и работи много добре. Сега имам следното предизвикателство, след като потребителят бъде поставен в клетка, така че да не може да се придвижва до който и да е път, искам той да може да вижда само съдържанието на файл, който е в друг път. Опитах със символична връзка, но когато се опитвам да направя опашка или котка към този файл, той ми казва, че той не съществува, въпреки че при достъп с потребителя мога да изброя този файл в дома на клетката.

    Ако можете да ми помогнете, ще ви бъда много благодарен, благодаря предварително

  25.   Яс каза той

    Здравейте, проследих цялото ръководство и при влизане с 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): сесията е затворена за потребителски тест

    благодаря

  26.   Омар Рамирез каза той

    Не когато правя последната стъпка от предоставянето на ssh достъп на потребителя, той все още затваря връзката 🙁

  27.   Бендж каза той

    Възможно ли е от този създаден потребител да се промени на root? вашият -корен? не ми позволява. Как би било? Благодаря ви за помощта

  28.   Слевин каза той

    Благодаря ви много за урока, имах нужда от него, за да създам потребител, който може да използва clonezilla, за да направи изображение и да го копира на сървър на трета страна, но който не можеше да се рои, където иска

  29.   Mauro каза той

    Добре! Трябва да знам нещо.

    Възможно ли е да влезете като ROOT, използвайки FTP и притежаващи тези разрешения, да го управлявате чрез FTP, а не със SSH? Да кажем като създаване на връзка, стил на тунел или нещо подобно. Как се прави това? Конфигуриране на VSFTPD файла?

    Много благодаря!