Простой & amp; простой способ сажать в тюрьму пользователей

Мне нужен простой и легкий способ сажать пользователей в домашние каталоги в Oneiric. У вас есть простая конфигурация для заключения в тюрьму пользователей, с полной помощью или с хорошими веб-ссылками?

Я бы предложил онлайн бесплатный общедоступный сервер с 10–20 ГБ свободного места. Я не знаю, сколько пользователей. Я хочу дать им SSH и SFTP, чтобы они могли подключаться через FileZilla.

39
задан 27 January 2014 в 18:05

4 ответа

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

Настройка тюрьмы

Теперь это пора настроить каталог тюрьмы. Заключенные в тюрьму пользователи будут видеть этот каталог как корневой каталог сервера. Я решил использовать / home / jail:

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 и установите пароль:

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 (a очень хорошая помощь)

Этот тоже

Это проверено и проверено, Работает правильно

25
ответ дан 27 January 2014 в 18:05

Трудно догадаться, какую цель вы можете захотеть достичь. Если нужно запретить ssh / sftp при предоставлении доступа к тюрьме через FTP ... просто:

Добавить в / etc / shells новую оболочку:

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
1
ответ дан 27 January 2014 в 18:05

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

IMO самый простой метод защиты пользователей - использовать apparmor.

Вы делаете жесткую ссылку

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

Вы добавляете jailbash в / etc / shells

Затем вы назначаете 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[1215 visible

6
ответ дан 27 January 2014 в 18:05

Вы можете использовать rbash в качестве оболочки для своих пользователей.

man bash

Найдите раздел RESTRICTED SHELL

или посмотрите на этой странице http://linux.die.net/man/1/bash

0
ответ дан 27 January 2014 в 18:05

Другие вопросы по тегам:

Похожие вопросы: