Простой и легкий способ тюрьмы пользователей
Мне нужен простой и легкий способ сажать пользователей в домашние каталоги в Oneiric. У вас есть простая конфигурация для тюрьмы пользователей, с полной помощью или хорошими веб-ссылками?
Я хотел бы предложить онлайн бесплатный публичный сервер с 10-20 ГБ свободного места. Я не знаю, сколько пользователей. Я хочу дать им SSH и SFTP, чтобы они могли подключаться через FileZilla.
4 ответа
Jailkit - это набор утилит, которые могут ограничивать учетные записи пользователей определенным деревом каталогов и конкретными командами. Настроить джейл намного проще, используя утилиты Jailkit, которые делают это "вручную". Тюрьма - это дерево каталогов, которое вы создаете в своей файловой системе; пользователь не может видеть никаких каталогов или файлов, которые находятся за пределами каталога тюрьмы. Пользователь находится в тюрьме в этом каталоге и его подкаталогах.
Скачать и установить:
http://olivier.sessink.nl/jailkit/index.html
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 -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 (очень хорошая помощь)
Это было проверено и проверено, работает должным образом
Вы не можете ограничить их / home, поскольку им нужен доступ к системным двоичным файлам, файлам bash и конфигурации в / etc
ИМО самый простой способ защиты пользователей - это использовать apparmor.
Вы делаете жесткую ссылку
ln /bin/bash /usr/local/bin/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
Трудно догадаться, какую цель вы хотите достичь. Если вы хотите запретить 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
Вы можете проверить rbash
в качестве оболочки для ваших пользователей.
man bash
Ищи RESTRICTED SHELL
раздел
Или посмотрите на этой странице http://linux.die.net/man/1/bash