Связаться по Skype: vkarabedyants
Позвонить Написать
+7 (499) 404-28-83

Блог о системном администрировании серверов и сайтов

Установка, настройка программного обеспечения Linux, Windows операционных систем

Debian / Ubuntu Linux: Ограничить в SSH сессии пользователя к определенному каталогу

Для установки веб-сервера, мне нужно предоставить пользователю доступ SSH, но я не доверяю пользователю. Как я могу ограничить сеанс пользователя в определенный каталог, например /home/httpd/$USERNAME? Как настроить SSH chroort ограничения на операционных системах Linux?

Вы можете установить корневую директорию например /home/httpd/foo используюя chroort, после авторизации. Все компоненты (файлы и папки) указанного пути должны принадлежать root b и не доступны для записи другим пользователям или группам. После изолирования (chroort),  SSHD изменяет рабочий каталог на домашний каталог пользователя.

С описания man sshd_config

ChrootDirectory должена содержать необходимые файлы и директории для поддержки сеанса пользователя. Для интерактивного сеанса требуется, по меньшей мере оболочка, обычно sh(1), и основные /dev узлы, такие как null(4), zero(4), stdin(4), stdout(4), STDERR (4), arandom (4), и TTY (4) устройства. Для сессий передачи файлов с использованием SFTP «», никаких дополнительных настроек окружающей среды не требуется.

Вы можете предоставить доступ по SSH пользователя, которому вы не полностью доверяете.Вы можете ограничить то, что, что пользователь может увидеть или запустить только Ls. Ваш путь создания SSH CHROOT ограничен. Давайте посмотрим, как создать изолированный каталог для сервера OpenSSH на сервере Debain или Ubuntu Linux. Следующий урок протестирован на сервере Debian Linux v8.1:

1. Войти как пользователь root

Введите любую из следующих команд:

или

2. Создать изолированный каталог

Я собираюсь установить /home/jails/ каталог, чтобы ограничить в SSH сессии пользователя к этой директории

Из странице man SSHD вам нужно следующие файлы также:

Пример вывода команды:

Чтобы создать требуется /dev узлы с помощью следующей команды mknod:

3. Установить права

Введите следующую команду, чтобы изолировать $D каталог, и все его компоненты, должны принадлежать пользователю root и не доступен для записи любого пользователя non-root или группы:

Проверьте это:

Пример вывода

4. Установите оболочки Bash в $ D

Введите следующую команду, чтобы создать каталог bin по пути $D:

Скопируйте /bin/bash в $D/bin/ директорию:

Скопируйте необходимые библиотеки в $ D каталога. Синтаксис выглядит следующим образом выяснить, что копировать необходимо:

Пример вывода

Скопируйте все файлы, один за одним

Пример вывода команды

Затем скопируйте /lib64/ld-linux-x86-64.so.2 в /lib64/ директорию:

Пример:

Так же скопируйте /lib/x86_64-linux-gnu/libnss_files*

5. Добавить пользователя в системе

Вы так же должны скопировать /etc/passwd, и /etc/groupфайлы в $D/etc/ директорию:
# mkdir -p $D/etc/
Добавьте пользователей с именем tom и jerry:
# adduser tom
# adduser jerry

При добавлении, изменении или удалении пользователя, необходимо повторно копировать данные файлы.

6. Настройка SSHD

Отредактируйте файл /etc/ssh/sshd_config

Добавьте следующие строки:

7. Перезагрузите службу SSHD

Для Debian Linux version 8.x, введите:

Для Debian version 7.x and older, введите:

8. Тестируем

 

Вывод команды:

9. Установите дополнительные команды
Теперь пользователь tom может входить в систему, но не может выполнять команды например ls, date и другие. Пользователь ограничен только /bin/bash. Если нужно использовать дополнительные команды, то их нужно установить в пользовательскую директорию.

Найдите параметр BASE и измените его:

Саохраните и закройте файл. Установка /bin/ls в каталог $D/bin/:

Создайте $D/home/tom и  $D/home/jerry каталоги:

Как добавить пользователей (DocumentRoot) для web-server в /home/jails/ директорию?
Say, /home/httpd/tom_web is DocumentRoot for tom user, then:
# mkdir $D/home/tom/web
# mount —bind /home/httpd/tom_web $D/home/tom/web
## update fstab file so that it can mount after server reboot ##
# echo «/home/httpd/tom_web/ $D/home/tom/web none bind» >> /etc/fstab

Укажите, /home/httpd/tom_web как DocumentRoot для пользователя tom, и потом:

Оставить комментарий

Лимит времени истёк. Пожалуйста, перезагрузите CAPTCHA.