Простий та простий спосіб ув’язнити користувачів


33

Мені потрібен простий і простий спосіб ув’язнити користувачів у їх домашніх довідниках в Oneiric. Чи є у вас проста конфігурація для ув'язнення користувачів, за допомогою повної допомоги, чи якісь хороші веб-посилання?

Я б пропонував онлайн-безкоштовний загальнодоступний сервер з вільним простором від 10 до 20 ГБ. Я не знаю, скільки користувачів. Я хочу дати їм SSH та SFTP, щоб вони могли з'єднуватися через FileZilla.


2-е оновлення, якщо користувачі не заблоковані в домашніх каталогах
One Zero

тоді я вважаю, що ви 1, як згадував @Marco, ви хочете спробувати ChrootDirectory для SSH 2-, можливо, ви захочете вийти за рамки стандартних способів ведення справ, як вам потрібно масштабувати це, щоб обробити "багато" місця зберігання, ... 3- Чи найкращий вибір SSH? чи потрібен людям SSH для ваших послуг? 4- Успіх
Алі

1
У мене також інший план .... Для звичайних користувачів ми пропонуємо лише SFTP з МОЄМО ЗАБЕЗПЕЧЕНОЮ, це дуже просто 2 ручки
One Zero

Як я можу видалити цю тюрму, наприклад (домашня / в'язниця)? <br> І коли я додаю певний розділ до в'язниці, наприклад jk_init -v -f / home / jail netutils, як я вийму це?

Відповіді:


23

Jailkit - це набір утиліт, які можуть обмежувати облікові записи користувачів певним деревом каталогів та певними командами. Встановити в'язницю набагато простіше за допомогою служб Jailkit, які роблять це "вручну". Jail - дерево каталогів, яке ви створюєте у вашій файловій системі; користувач не може бачити каталогів або файлів, які знаходяться за межами каталогу в'язниці. Користувача перебувають у в'язниці в цьому каталозі та підкаталогах.

Завантажте та встановіть:

http://olivier.sessink.nl/jailkit/index.html#download

VERSION=2.20 # from November 2018
cd /tmp
wget https://olivier.sessink.nl/jailkit/jailkit-$VERSION.tar.gz
tar -zxvf jailkit-$VERSION.tar.gz
cd jailkit-$VERSION/
./configure
make
su -
make install

Встановлення в'язниці

Тепер прийшов час налаштувати каталогі в'язниці. Користувачі, які потрапили до в'язниці, будуть бачити цей каталог як кореневий каталог сервера. Я вирішив використовувати / домашню / в'язницю:

mkdir /home/jail
chown root:root /home/jail

jk_init можна використовувати для швидкого створення в'язниці з декількома файлами чи каталогами, необхідними для конкретного завдання чи профілю (натисніть на нього та прочитайте повну інформацію).

jk_init -v /home/jail basicshell
jk_init -v /home/jail netutils
jk_init -v /home/jail ssh
jk_init -v /home/jail jk_lsh

Додайте користувача

Додайте нового користувача з домашнім каталогом та bash shell та встановіть пароль:

useradd -d /home/jailtest -m jailtest -s /bin/bash
passwd jailtest

Тепер настав час ув’язнити цього користувача

використовувати таку команду:

jk_jailuser -m -j /home/jail jailtest

Тепер ви /etc/passwdповинні містити щось подібне:

jailtest:x:1001:1001::/home/jail/./home/jailtest:/usr/sbin/jk_chrootsh

Увімкнути bash

За допомогою jk_cp бібліотеки bash копіюються у в'язницю:

jk_cp -v -f /home/jail /bin/bash

Редагувати /home/jail/etc/passwd

замініть цей рядок:

jailtest:x:1001:1001::test:/usr/sbin/jk_lsh

з цим:

jailtest:x:1001:1001::/home/jailtest:/bin/bash

Технічне обслуговування

За допомогою jk_updateоновлень реальної системи можна оновити у в'язниці.

Пробіг покаже, що відбувається:

jk_update -j /home/jail -d

Без аргументу -d виконується реальне оновлення. Більше операцій з технічного обслуговування можна знайти тут.

(Якщо /home/jail/optвідсутній, створіть його за допомогою mkdir -p /home/jail/opt/ та запустіть jk_update -j /home/jailще раз)

Надайте доступ до інших каталогів

Ви можете монтувати спеціальні папки, до яких зараз може входити користувач в'язниці. Наприклад:

mount --bind /media/$USER/Data/ /home/jail/home/jailtest/test/

Довідка

http://olivier.sessink.nl/jailkit/howtos_chroot_shell.html

http://olivier.sessink.nl/jailkit/index.html#intro (дуже гарна допомога)

Цей також

Це перевірено та перевірено, працює належним чином


+1 дуже добре настійно рекомендую також прочитати посилання, про які ви згадали вище, у розділі "Допомога
вжито"

2
Це не працює на Ubuntu 13.10. Коли ви намагаєтесь остаточно увійти, ви отримуєте привітання негайно, після чого з'єднання закрите.
Метт Х

Метт Н: Обов’язково виконайте два останні кроки; копіювання файлів bash та редагування файлу / home / jail / etc / passwd.
ОНОЗ

2
Це або більше не працює, або щось змінилося з моменту створення цього підручника. У мене виникають абсолютно ті самі проблеми, що і в MattH.
Джеймс Хілд

У мене також було закрито питання про зв’язок відразу після вітального повідомлення. Я змінив оболонку входу у файлі chroot passwd з jk_lsh на bash, як читати тут linuxquestions.org/questions/linux-software-2/… Це не рішення, а обхід !
Аттіла Фулоп,

6

Ви не можете обмежувати їх до / home, оскільки їм потрібен доступ до системних бінарних файлів, файлів bash та конфігурації в / etc

Найпростішим методом забезпечення користувачів IMO є використання apparmor.

Ви робите міцне посилання

ln /bin/bash /usr/local/bin/jailbash

Ви додаєте джейлбаш до / etc / shell

Потім ви призначаєте jailbash для оболонки користувачів, а потім пишете профіль apparmor для jailbash, що забезпечує мінімальний доступ.

sudo chsh -s /usr/local/bin/jailbash user_to_confine

Вам доведеться самостійно написати профіль apparmor, але у мене є профіль, з якого ви могли б почати

http://bodhizazen.com/aa-profiles/bodhizazen/ubuntu-10.04/usr.local.bin.jailbash


You can not confine them to /home as they need access to the system binaries and bash and configuration files in /etcНіщо не заважає вам зв’язувати / копіювати файли, які ви вважаєте за потрібні.
user606723

1
Так, ви можете "зробити" так, як пропонує user606723, але це не так просто, а ІМО усіх потенційних рішень найменш практичний або простий. Можна також створити chroot або використовувати lxc. Ви копіюєте двійковий файл, потім лібс. Часто вам доведеться вручну ототожнювати лібси з ldd. Цей спосіб потребує великої кількості робіт. І тоді вам доведеться постійно оновлювати в'язницю, вам доведеться вручну оновлювати (копіювати) бінарні файли / лібри. Посилання можуть працювати краще з точки зору оновлень, але все-таки потрібно налаштувати їх. Я якось не думаю, що це на увазі ОП. Як тоді тримати їх ув'язненими?
Пантера

1
Я думаю, що вся суть питання полягала в тому, щоб вказати на інструменти для автоматизації цього процесу ... як jailkitінструмент, про який згадує ОП.
user606723

@ bodhi.zazen. що ти думаєш про це .. debootstrap (oneiric) потім зроби контейнер за допомогою lxc. використання тюремного набору> користувач для контейнера>. що я робив до цих пір, у мене є debbootstrap oneiric мінімум, то використовувався jailkit> добре працює
One Zero

ви можете використовувати LXC для цього завдання, будьте обережні, що ізоляція іноді неповна для LXC. Поки користувачі не мають кореневого доступу в контейнері, ви повинні бути в порядку, і ви, можливо, захочете підписатися на список розсилки LXC.
Пантера

1

Важко здогадатися, яку мету ви могли б хотіти досягти. Якщо заборонити ssh / sftp при наданні в'язничного доступу через FTP ... легко:

Додати в / etc / shell нові оболонки:

sudo -e /etc/shells

Додати один рядок:

/bin/false

Зберегти. Для кожного користувача, якому ви хочете відхилити ssh / sftp, змініть оболонку користувача:

sudo chsh -s /bin/false userx

Тепер userx не може увійти через ssh / sftp.

Встановити vsftpd:

sudo apt-get install vsftpd

Редагуйте конфігураційний файл:

sudo -e /etc/vsftpd.conf

І деякі зміни….

anonymous_enable=NO
local_enable=YES
chroot_local_user=YES

Зберегти. Перезапустити vsftpd:

sudo /etc/init.d/vsftpd restart

ну я хочу дати їм ssh + sftp (підключення через filezilla)
One Zero

0

Ви можете перевірити rbashяк оболонку для своїх користувачів.

man bash

Пошук RESTRICTED SHELLрозділу

Або подивіться на цій сторінці http://linux.die.net/man/1/bash


3
Будьте дуже обережні з rbash, це дуже легко вирватися з і вважається застарілим. Дивіться blog.bodhizazen.net/linux/how-to-restrict-access-with-rbash
Пантера

@ bodhi.zazen Ви маєте на увазі rbash?
Карлсон

так, вибачте, що це виправили. Кілька років тому був щоденник, де хтось зламав нашу в'язницю, яку я створив, і я хоч і була щільна, мінімальна в'язниця. Взяв їх менше 5 хвилин. Ніхто не виривався з в'язниці.
Пантера

Ви можете сказати мені, як я можу налаштувати його .... jailbash
One Zero

так, man bash допомагає, використовуючи bash restrited shell shell просто
c4f4t0r
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.