The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Раздел полезных советов: Помещение OpenSSH пользователей в и..."
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Раздел полезных советов: Помещение OpenSSH пользователей в и..."  +/
Сообщение от auto_tips on 26-Мрт-09, 12:11 
Начиная с релиза 4.9 в OpenSSH появилась возможность помещать отдельных пользователей в изолированное окружение.
Помещение в chroot управляется через директиву ChrootDirectory, задаваемую в конфигурационном файле sshd_config.
При задействовании sftp-server интегрированного в sshd, при этом не требуется формирование специального chroot окружения.

Пример помещения в chroot:

   AllowUsers user1, user2, user3@192.168.1.1, user3@192.168.2.*
   Match user user2, user3
         ChrootDirectory /home/%u
         X11Forwarding no
         AllowTcpForwarding no
         ForceCommand internal-sftp

   Subsystem       sftp    internal-sftp

Пользователь user1 имеет возможность входа в shell, в то время как user2 и user3 могут работать только по sftp,
без возможность выхода за пределы своей домашней директории.
При этом user3 может входить только с машины 192.168.1.1 и подсети 192.168.2.0/24.

Опция "ForceCommand internal-sftp" разрешает пользователю использовать только sftp, встроенный в sshd.

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

Например, создадим для пользователей, входящих в группу chrootusers, окружение /home/chroot

В /etc/ssh/sshd_config добавим:

   Match Group chrootusers
       ChrootDirectory /home/chroot
       X11Forwarding no
       AllowTcpForwarding no

Для формирования chroot можно использовать скрипт make_chroot_jail.sh, поддерживающий Debian, Suse, Fedora и Redhat Linux:
   http://www.fuschlberger.net/programs/ssh-scp-sftp-chroot-jail/

Также можно порекомендовать скрипт sync_chroot.pl (ftp://ftp.opennet.ru/pub/security/chroot/ ),
который автоматически находит и копирует в chroot недостающие библиотеки для находищихся внутри chroot программ.

Рассмотрим создание chroot в Debian или Ubuntu Linux.

Установим необходимые для работы скрипта утилиты:

   apt-get install sudo debianutils coreutils

Копируем скрипт make_chroot_jail.sh:

   wget http://www.fuschlberger.net/programs/ssh-scp-sftp-chroot-jai...
   chmod 700 ./make_chroot_jail.sh

Определяем список программ для chroot-окружения, в make_chroot_jail.sh находим строки и меняем на свое усмотрение:

   ...
   elif [ "$DISTRO" = DEBIAN ]; then
     APPS="/bin/bash /bin/cp /usr/bin/dircolors /bin/ls /bin/mkdir \
     /bin/mv /bin/rm /bin/rmdir /bin/sh /bin/su /usr/bin/groups \
     /usr/bin/id /usr/bin/rsync /usr/bin/ssh /usr/bin/scp \
     /sbin/unix_chkpwd /usr/bin/vi"
   else
   ...

Формат вызова скрипта:
   make_chroot_jail.sh логин путь_к_shell путь_к_chroot

Для создания окружения с shell по умолчанию bash для пользователя user1 выполним:

   ./make_chroot_jail.sh user1 /bin/bash /home/jail

При этом скрипт автоматически скопирует все недостающие в chroot файлы и создаст директорию /home/jail/user1

После обновления базовой системы, обновить chroot можно командой:

   ./make_chroot_jail.sh update /bin/bash /home/jail

URL: http://howtoforge.org/chrooted-ssh-sftp-tutorial-debian-lenny
Обсуждается: http://www.opennet.ru/tips/info/2006.shtml

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Помещение OpenSSH пользователей в изолированное sftp окружение"  +/
Сообщение от freebeer on 26-Мрт-09, 12:11 
Перечисление в AllowUsers производится без запятых, просто через пробел (в варианте как в статье будет пускать только пользователя user1, посылая куда подальше всех остальных).

В заметке не указано, но работать без этого не будет: директория, в которую происходит chroot пользователя (не имеет значения, ssh или sftp), должна принадлежать пользователю root и права на запись должны принадлежать только владельцу (750, например).

Ну и мелочи:
ChrootDirectory /home/%u проще писать как: ChrootDirectory %h

P.S. Большое спасибо за заметку, давно хотел посмотреть и разобраться, но все не доходили руки.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Помещение OpenSSH пользователей в изолированное sftp окружение"  +/
Сообщение от Сергей email(??) on 12-Ноя-09, 15:20 
Делал chroot заработал как по ssh так и по sftp, но вот одновременно для одного пользователя не работает. Если делаю так
Match group sftponly
        ChrootDirectory %h
        ForceCommand internal-sftp
        AllowTcpForwarding no
        X11Forwarding no
то работает sftp только, а если так
Match group sftponly
        ChrootDirectory %h
        AllowTcpForwarding no
        X11Forwarding no
то ssh а по sftp не заходит.
Народ помогите разобраться как сделать чтоб то и то работало, а то два логина не хочится заводить.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

3. "Помещение OpenSSH пользователей в изолированное sftp окружение"  +/
Сообщение от ara email on 28-Янв-12, 08:51 
os freebsd openssh-portable-5.8

не работает детальное логирование.

как сделать?
спасибо...

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

4. "Помещение OpenSSH пользователей в изолированное sftp окружение"  +/
Сообщение от DiJey (??) on 03-Дек-12, 18:47 
Хоть бы один рабочий конфиг кто показал sshd_config, еще у меня работает только 1 пользователь, рута после внесения данных настроек вообще перестало пускать.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

5. "Помещение OpenSSH пользователей в изолированное sftp окружение"  +/
Сообщение от DiJey (??) on 03-Дек-12, 19:22 
вот рабочий, короче рута пускает, у кого не работает отключите SELinux:
http://guruadmin.ru/page/4-metoda-otkljuchenija-selinux

# override default of no subsystems
#Subsystem      sftp    /usr/libexec/openssh/sftp-server
Subsystem sftp internal-sftp
AllowGroups sftponly root
AllowUsers root sftponly

Match group sftponly
         ChrootDirectory /var/www/
         X11Forwarding no
         AllowTcpForwarding no
         ForceCommand internal-sftp

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Спонсоры:
Слёрм
Inferno Solutions
Hosting by Ihor
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2019 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру