URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID13
Нить номер: 813
[ Назад ]

Исходное сообщение
"sftp chroot centos 6.2"

Отправлено chunk41 , 13-Авг-12 17:07 
Здраствуйте форумчане!!!
Хочу сделать chroot окружение для юзера с sftp доступом.


Subsystem sftp internal-sftp
AllowGroups sftponly
UseDNS no

# Example of overriding settings on a per-user basis
Match Group sftponly
ChrootDirectory /var/www/production
        X11Forwarding no
    AllowTcpForwarding no
        ForceCommand internal-sftp
#    ForceCommand cvs server

При подключении выдает Write failed: Broken pipe  Couldn't read packet: Connection reset by peer

В /var/log/secure:
pam_unix(sshd:session): session opened for user builder by (uid=0)
fatal: safely_chroot: stat("/var/www/"): Permission denied
pam_unix(sshd:session): session closed for user
На папку /var/www/production смонтирован рейд на 22 Гб, и там же находится сайт
права -R apache:sftponly /var/www/production  -R 755 /var/...


Содержание

Сообщения в этом обсуждении
"sftp chroot centos 6.2"
Отправлено beza2000 , 14-Авг-12 10:37 
> На папку /var/www/production смонтирован рейд на 22 Гб, и там же находится
> сайт
> права -R apache:sftponly /var/www/production  -R 755 /var/...

ChrootDirectory
Specifies a path to chroot(2) to after authentication. This path, and all its components, must be root-owned directories that are not writable by any other user or group. After the chroot, sshd(8) changes the working directory to the user's home directory.

Т.е. /var/www/production должен принадлежать root:root, а вот вложенные папки могут принадлежать кому-то другому.


"sftp chroot centos 6.2"
Отправлено chunk41 , 14-Авг-12 18:54 
>> На папку /var/www/production смонтирован рейд на 22 Гб, и там же находится
>> сайт
>> права -R apache:sftponly /var/www/production  -R 755 /var/...
> ChrootDirectory
>  Specifies a path to chroot(2) to after authentication. This path, and
> all its components, must be root-owned directories that are not writable
> by any other user or group. After the chroot, sshd(8) changes
> the working directory to the user's home directory.
> Т.е. /var/www/production должен принадлежать root:root, а вот вложенные папки могут принадлежать
> кому-то другому.

Присвоил root, ошибка осталась.Без chrootdirectory в sshd_config заходит в нужную папку без проблем,но можно по всем каталогам лазить.Как только добавляешь chrootdirectory,выдает ошибки описаные выше.Причем пробовал сделать chroot на любую папку в /var/www/ - ничего не получилось,выдает ошибку.Уже не знаю куда копать...Если просто создать user c домашней директорией /home/user-все работает,пробовал.



"sftp chroot centos 6.2"
Отправлено beza2000 , 15-Авг-12 10:42 
> Присвоил root, ошибка осталась.Без chrootdirectory в sshd_config заходит в нужную папку
> без проблем,но можно по всем каталогам лазить.Как только добавляешь chrootdirectory,выдает
> ошибки описаные выше.Причем пробовал сделать chroot на любую папку в /var/www/
> - ничего не получилось,выдает ошибку.Уже не знаю куда копать...Если просто создать
> user c домашней директорией /home/user-все работает,пробовал.

Привожу примерны у себя в системе. Доступ к chroot-окружению у меня по группе.

useradd -c 'Comment' -g sftp -s /sbin/nologin -K UMASK=0022 user
mkdir -p /home/user/home/user
chown root:root /home/user
chown -R user:sftp /home/user/home
chmod -R g+rw /home/user/home

Надо смотреть как записан пользователь в /etc/passwd - какой у него домашний каталог?
И при всех изменениях смотреть лог - что в нем меняется.



"sftp chroot centos 6.2"
Отправлено chunk41 , 15-Авг-12 12:39 
Вообщем смотри:
сайт находится в /var/www/production
права chmod -R 755 /var/www/production (на все внутри папки)
владелец  chown -R apache:sftponly /var/www/production  (чтоб apache имел полный доступ на папку)
в /var/www/production/printatet/data/projects я смонтировал 22 ТБ на папку projects
потом в папке projects я создал папку sftp и владельцем папки сделал
chown root:sftponly /var/www/productions/printatet/data/projects/sftp
chmod 755 /var/www/production/printatet/data/projects/sftp
И вот именно на папку sftp(/var/www/production/printatet/data/projects/sftp) мне нужно сделать chroot.Но вот уже 3 день не могу.  Пробовал сделать через lshell,тоже не пускает

"sftp chroot centos 6.2"
Отправлено beza2000 , 15-Авг-12 13:40 
>[оверквотинг удален]
> права chmod -R 755 /var/www/production (на все внутри папки)
> владелец  chown -R apache:sftponly /var/www/production  (чтоб apache имел полный доступ
> на папку)
> в /var/www/production/printatet/data/projects я смонтировал 22 ТБ на папку projects
> потом в папке projects я создал папку sftp и владельцем папки сделал
> chown root:sftponly /var/www/productions/printatet/data/projects/sftp
> chmod 755 /var/www/production/printatet/data/projects/sftp
> И вот именно на папку sftp(/var/www/production/printatet/data/projects/sftp) мне нужно
> сделать chroot.Но вот уже 3 день не могу.  Пробовал сделать
> через lshell,тоже не пускает

Какого пользователя не пускает?  builder ? Тогда что показывает
grep  builder /etc/passwd ?
SELinux включен/выключен? Для отладки лучше выключить.
И еще - кажется с такими каталогами не получится - возможно ошибаюсь, но когда "копался" с chroot, вроде попадалось указание о принадлежности root:root папки корневой папки (/var/www/production).
А нельзя сделать более проше - примонтировать в другой каталог, а из /var/www/production  ссылаться по ссылке или примонтировать получившуюся папку в /var/www/production/printatet/data/projects (mount --bind olddir newdir)


"sftp chroot centos 6.2"
Отправлено chunk41 , 15-Авг-12 14:02 
>[оверквотинг удален]
>> через lshell,тоже не пускает
> Какого пользователя не пускает?  builder ? Тогда что показывает
> grep  builder /etc/passwd ?
> SELinux включен/выключен? Для отладки лучше выключить.
> И еще - кажется с такими каталогами не получится - возможно ошибаюсь,
> но когда "копался" с chroot, вроде попадалось указание о принадлежности root:root
> папки корневой папки (/var/www/production).
> А нельзя сделать более проше - примонтировать в другой каталог, а из
> /var/www/production  ссылаться по ссылке или примонтировать получившуюся папку в /var/www/production/printatet/data/projects
> (mount --bind olddir newdir)

сделал umount --bind   та же самая фигня и та же ошибка


"sftp chroot centos 6.2"
Отправлено chunk41 , 15-Авг-12 14:16 
получилось,но!!!!
отключил selinux
сделал права на chown -R root:apache /var/www/production
добавил builder в группу apache и получилось так как мне надо(и сайт нормально работает и sftp chroot доступ)
,но при echo 1 > /selinux/enforce  появилась та же самая ошибка
grep  builder /etc/passwd     builder:x:505:505::/var/www/production/printatet/data/projects/test_sftp:/bin/bash

"sftp chroot centos 6.2"
Отправлено beza2000 , 15-Авг-12 14:57 
> получилось,но!!!!
> отключил selinux
> сделал права на chown -R root:apache /var/www/production
> добавил builder в группу apache и получилось так как мне надо(и сайт
> нормально работает и sftp chroot доступ)
> ,но при echo 1 > /selinux/enforce  появилась та же самая ошибка
> grep  builder /etc/passwd     builder:x:505:505::/var/www/production/printatet/data/projects/test_sftp:/bin/bash

Если selinux важен, но надо изучать.
Тут не готов подсказать, т.к. практики не имел.  


"sftp chroot centos 6.2"
Отправлено chunk41 , 15-Авг-12 15:15 
я понял!!!Спасибо за помощь!!!!!

"sftp chroot centos 6.2"
Отправлено beza2000 , 15-Авг-12 15:20 
> я понял!!!Спасибо за помощь!!!!!

Возможно, хватит такой команды
/usr/sbin/setsebool ssh_chroot_rw_homedirs 1
Если нет, то значит всё сложнее - ошибки смотреть в  /var/log/audit/audit.log


"sftp chroot centos 6.2"
Отправлено chunk41 , 15-Авг-12 15:22 
>> я понял!!!Спасибо за помощь!!!!!
> Возможно, хватит такой команды
> /usr/sbin/setsebool ssh_chroot_rw_homedirs 1
> Если нет, то значит всё сложнее - ошибки смотреть в  /var/log/audit/audit.log

/usr/sbin/setsebool ssh_chroot_rw_homedirs 1  уже было сделано

grep sshd_t /var/log/audit/audit.log | audit2allow -m sftpchrootlocal >
sftpchrootlocal.te     в эту сторону буду копать



"sftp chroot centos 6.2"
Отправлено beza2000 , 15-Авг-12 15:27 
>> я понял!!!Спасибо за помощь!!!!!
> Возможно, хватит такой команды
> /usr/sbin/setsebool ssh_chroot_rw_homedirs 1
> Если нет, то значит всё сложнее - ошибки смотреть в  /var/log/audit/audit.log

Вернее - с флагом -P
/usr/sbin/setsebool -P ssh_chroot_rw_homedirs 1
Но на самом деле может быть еще сложнее, т.к. вероятно надо будет учитывать SELinux контекст файлов, которые будут сбрасываться по ssh...


"sftp chroot centos 6.2"
Отправлено chunk41 , 15-Авг-12 15:35 
>>> я понял!!!Спасибо за помощь!!!!!
>> Возможно, хватит такой команды
>> /usr/sbin/setsebool ssh_chroot_rw_homedirs 1
>> Если нет, то значит всё сложнее - ошибки смотреть в  /var/log/audit/audit.log
>  Вернее - с флагом -P
> /usr/sbin/setsebool -P ssh_chroot_rw_homedirs 1
> Но на самом деле может быть еще сложнее, т.к. вероятно надо будет
> учитывать SELinux контекст файлов, которые будут сбрасываться по ssh...

/usr/sbin/setsebool -P ssh_chroot_rw_homedirs 1  именно так и делал.
Вот еще ссылка    http://consolekit.com/howto/enable-selinux-permission-for-sf...


"sftp chroot centos 6.2"
Отправлено chunk41 , 15-Авг-12 19:38 
Вот как решил проблему:
http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6...


Спасибо еще раз за помощь!!!