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

Исходное сообщение
"вернуться из chroot под root'ом"

Отправлено vilak , 31-Мрт-09 18:34 
Добрый день !

CentOS 5.2
В доках по безопасности говорят, что root'у сразу по ssh нежелательно логиниться + пользователю выше домашней папке надо запретить ходить.
Сделал через OpenSSH заход не рута через chroot ( ChrootDirectory /home ), chroot работает. Chroot окружение делаю скриптом с http://www.fuschlberger.net/programs/ssh-scp-sftp-chroot-jail/ .
Через su стать рутом неудаётся, пишет "incorrect password". Если сразу входить под рутом, то входится нормально.
Как из chroot сделаться рутом ?



Содержание

Сообщения в этом обсуждении
"вернуться из chroot под root'ом"
Отправлено Andrew Kolchoogin , 31-Мрт-09 20:05 
>Добрый день !
>
>CentOS 5.2
>В доках по безопасности говорят, что root'у сразу по ssh нежелательно логиниться
>+ пользователю выше домашней папке надо запретить ходить.
>Сделал через OpenSSH заход не рута через chroot ( ChrootDirectory /home ),
>chroot работает. Chroot окружение делаю скриптом с http://www.fuschlberger.net/programs/ssh-scp-sftp-chroot-jail/ .
>Через su стать рутом неудаётся, пишет "incorrect password". Если сразу входить под
>рутом, то входится нормально.
>Как из chroot сделаться рутом ?

В описываемой ситуации -- никак.

За объяснением -- к просмотру исходников скрипта в том месте, где в chroot()'ed environment формируются /etc/passwd, /etc/shadow и /etc/group.

Hint: use sudo(8) :)


"вернуться из chroot под root'ом"
Отправлено vilak , 31-Мрт-09 20:26 
>[оверквотинг удален]
>>+ пользователю выше домашней папке надо запретить ходить.
>>Сделал через OpenSSH заход не рута через chroot ( ChrootDirectory /home ),
>>chroot работает. Chroot окружение делаю скриптом с http://www.fuschlberger.net/programs/ssh-scp-sftp-chroot-jail/ .
>>Через su стать рутом неудаётся, пишет "incorrect password". Если сразу входить под
>>рутом, то входится нормально.
>>Как из chroot сделаться рутом ?
>
>В описываемой ситуации -- никак.
>За объяснением -- к просмотру исходников скрипта в том месте, где в
>chroot()'ed environment формируются /etc/passwd, /etc/shadow и /etc/group.

Т.е. из chroot белыми способами никак в root не вернуться или можно, но надо править скрипт ?

>Hint: use sudo(8) :)

А sudo можно скрестить с запретом выхода пользователя из домашней директории ?
Как я понял sudo - это просто запуск программы с правами root'а, папки то пользователь может смотреть любые.


"вернуться из chroot под root'ом"
Отправлено сабакка , 31-Мрт-09 20:10 
Для того пользователь из которого делаете su -, не надо применять скрипт.

"вернуться из chroot под root'ом"
Отправлено vilak , 31-Мрт-09 20:30 
>Для того пользователь из которого делаете su -, не надо применять скрипт.
>

Сделал пользователя нового, вхожу им по ssh, можно через su сделаться рутом, но также можно зайти в любую папку и прочитать например /etc/passwd и т.п.

Хочу закрепить пользователя в пределах домашней директории. И не дать ему изменять любые файлы.


"вернуться из chroot под root'ом"
Отправлено сабакка , 31-Мрт-09 20:44 
>>Для того пользователь из которого делаете su -, не надо применять скрипт.
>>
>
>Сделал пользователя нового, вхожу им по ssh, можно через su сделаться рутом,
>но также можно зайти в любую папку и прочитать например /etc/passwd
>и т.п.
>
>Хочу закрепить пользователя в пределах домашней директории. И не дать ему изменять
>любые файлы.

К тем пользователям, которые должны быть ограничены применяй скрипт, к остальным не применяй :)
А к чему такая безопасность?
SELinux включи :) будет зело секюрно.


"вернуться из chroot под root'ом"
Отправлено vilak , 31-Мрт-09 21:32 
>>>Для того пользователь из которого делаете su -, не надо применять скрипт.
>>Хочу закрепить пользователя в пределах домашней директории. И не дать ему изменять
>>любые файлы.
>К тем пользователям, которые должны быть ограничены применяй скрипт, к остальным не
>применяй :)

Так тут дедлок получается. Говорят не надо через ssh логинится root'ом. А заход не рутом всё равно даёт право бегать по секурным папкам. Chroot делает вроде секурно, но выйти в рут не даёт.
А просто настроить chmod'ом и группами доступ на папки можно, чтобы в ненужные места народ не лез ?

>А к чему такая безопасность?

комп в датацентр хочу отдать, надо его закрыть поплотнее.

>SELinux включи :) будет зело секюрно.

Про SELinux почитаю, новое слово для меня. Как и linux изнутри за 3 последние недели :)


"вернуться из chroot под root'ом"
Отправлено сабакка , 31-Мрт-09 21:39 
Ещё раз :)
"К тем пользователям, которые должны быть ограничены применяй скрипт, к остальным не применяй :)" т.е. кому надо, те будут иметь возможность сделать su -, остальные в chroot'е.

Чтобы нельзя было бы логиниться root'ом в sshd_config PermitRootLogin no или without-password последнее разрешает логиниться рутом только по публичному ключу (может для бэкапа понадобиться)


"вернуться из chroot под root'ом"
Отправлено vilak , 01-Апр-09 16:41 
>Ещё раз :)
>"К тем пользователям, которые должны быть ограничены применяй скрипт, к остальным не
>применяй :)" т.е. кому надо, те будут иметь возможность сделать su
>-, остальные в chroot'е.
>
>Чтобы нельзя было бы логиниться root'ом в sshd_config PermitRootLogin no или without-password
>последнее разрешает логиниться рутом только по публичному ключу (может для бэкапа
>понадобиться)

Наверно я не врубаюсь :)

Вот что имеется :
Запрещается логиниться рутом.
Разрешается логиниться другим пользователем и потом через su/sudo работать.
Chroot это как отдельная машина получается и для дел su/sudo не годится.

На стандартной инсталляции CentOS 5.2 я сделал обычного пользователя, через mc могу бегать по всем директориям. Смотреть /etc/passwd , правда смотреть /etc/shadow не могу 400 права.
Такая штука мне не подходит - в манах по безопасности пишут, что надо всё прикрывать ( chroot блин то самое, но su на нём не сделаешь. )
Есть какие-нибудь варианты ?

Поискал в инете насчёт грамотного chmod + chown, как надо закрывать файлы. Но файлов столько, что непонятно как закрыть, чтобы потом работала система. Пока смотрю http://www.opennet.me/base/sec/linux_sec_guide.txt.html . Убрал SUID бит со всех, кроме su/sudo. После перезагрузки некоторые файлы опять с этим флагом :)


"вернуться из chroot под root'ом"
Отправлено angra , 01-Апр-09 17:26 
Попробуйте из мартышки дорасти до человека разумного. Не заучивайте инструкции как аксиомы, а понимайте их причины, смысл и границы применения.
Отвечая на начальный вопрос, добавьте в chroot окружение устройство с корневой fs и 600 root. Перейдя под рута вы сможете его замонтировать и сделать chroot.

"вернуться из chroot под root'ом"
Отправлено сабакка , 01-Апр-09 18:07 
Вы чего хотите добиться, сформулируйте по пунктам, плз.

"вернуться из chroot под root'ом"
Отправлено vilak , 01-Апр-09 18:23 
>Вы чего хотите добиться, сформулируйте по пунктам, плз.

1. Доступ под root
2. Доступ под сервисными логинами для сервисных операций. Бекап, запуск/перезапуск определённых виртуальных машин и т.п. Но чтобы сервисные логины были ограниченны выполнением чётко заданных программ и данных. К остальным не могли добраться.

всего 2 пункта :)


"вернуться из chroot под root'ом"
Отправлено сабакка , 01-Апр-09 18:42 
>>Вы чего хотите добиться, сформулируйте по пунктам, плз.
>
>1. Доступ под root
>2. Доступ под сервисными логинами для сервисных операций. Бекап, запуск/перезапуск определённых виртуальных
>машин и т.п. Но чтобы сервисные логины были ограниченны выполнением чётко
>заданных программ и данных. К остальным не могли добраться.
>
>всего 2 пункта :)

может тогда стоит посмотреть force command в ssh?
http://oreilly.com/catalog/sshtdg/chapter/ch08.html#22858


"вернуться из chroot под root'ом"
Отправлено vilak , 01-Апр-09 19:24 
>>>Вы чего хотите добиться, сформулируйте по пунктам, плз.
>>
>>1. Доступ под root
>>2. Доступ под сервисными логинами для сервисных операций. Бекап, запуск/перезапуск определённых виртуальных
>>машин и т.п. Но чтобы сервисные логины были ограниченны выполнением чётко
>>заданных программ и данных. К остальным не могли добраться.
>
>может тогда стоит посмотреть force command в ssh?
>http://oreilly.com/catalog/sshtdg/chapter/ch08.html#22858

Под 2 задачу это хорошо подходит, особенно "Displaying a command menu". Можно добавить ещё какой-нить пароль на выбранное действие.

А вот с доступом под root не подходит, т.к. надо прописывать каждую команду - вот с ветки одного форума ( http://www.linux.org.ru/view-message.jsp?msgid=1185724 ) :

>PermitRootLogin forced-commands-only
>можно только непосредственно указав в .ssh/authorized_keys команды:
>command="ls" ssh-rsa AAAAB3NzaC1yc2EA...


"вернуться из chroot под root'ом"
Отправлено сабакка , 01-Апр-09 19:37 
доступ под root'ом нужен всем?

"вернуться из chroot под root'ом"
Отправлено vilak , 01-Апр-09 19:46 
>доступ под root'ом нужен всем?

Нет.


"вернуться из chroot под root'ом"
Отправлено сабакка , 01-Апр-09 21:46 
>>доступ под root'ом нужен всем?
>
>Нет.

Тогда, тем кому нужен доступ даем обычный шелл, без чрута
остальным делаем чрут, форсе сомманд или ещё что-нибудь

такое годится?


"вернуться из chroot под root'ом"
Отправлено vilak , 02-Апр-09 11:05 
>>>доступ под root'ом нужен всем?
>>Нет.
>
>Тогда, тем кому нужен доступ даем обычный шелл, без чрута
>остальным делаем чрут, форсе сомманд или ещё что-нибудь
>такое годится?

Непонимаю следующее - для root захода через шелл надо зайти сначала под другим пользователем, а затем сделать su или работать через sudo. В обычной инсталляции CentOS 5.2 я под обычным пользователем могу бегать почти по всем директориям, я бегал через mc. Эта возможность несёт какую-нибудь угрозу для несанкционированного входа в root ?

Как настроить так, чтобы обычный пользователь не заходил в чужую домашную директорию я сделал.



"вернуться из chroot под root'ом"
Отправлено chainik , 02-Апр-09 11:39 
>>>>доступ под root'ом нужен всем?
>
>Непонимаю следующее - для root захода через шелл надо зайти сначала под
>другим пользователем, а затем сделать su или работать через sudo. В
>обычной инсталляции CentOS 5.2 я под обычным пользователем могу бегать почти
>по всем директориям, я бегал через mc. Эта возможность несёт какую-нибудь
>угрозу для несанкционированного входа в root ?
>
>Как настроить так, чтобы обычный пользователь не заходил в чужую домашную директорию
>я сделал.

О, да.
Не в коем случае не обычный пользователь.
Сделай пользователя COOL и только его впускай без chroot. :)))


"вернуться из chroot под root'ом"
Отправлено сабакка , 02-Апр-09 11:53 
настройте права
вы не сможите найти "серебряной пули" её не существует.

"вернуться из chroot под root'ом"
Отправлено vilak , 02-Апр-09 12:10 
>настройте права
>вы не сможите найти "серебряной пули" её не существует.

Благодарю за ответы и терпение !


"вернуться из chroot под root'ом"
Отправлено chainik , 02-Апр-09 12:01 
>[оверквотинг удален]
>>такое годится?
>
>Непонимаю следующее - для root захода через шелл надо зайти сначала под
>другим пользователем, а затем сделать su или работать через sudo. В
>обычной инсталляции CentOS 5.2 я под обычным пользователем могу бегать почти
>по всем директориям, я бегал через mc. Эта возможность несёт какую-нибудь
>угрозу для несанкционированного входа в root ?
>
>Как настроить так, чтобы обычный пользователь не заходил в чужую домашную директорию
>я сделал.

Если я правильно понял, смысл ваших сомнений в том, что пропадает одно кольцо защиты при доступе к файлам /.
1. Проверка ssh.
2. Проверка su.
Может для пользователя, который без chroot входит, дополнительную проверку (напр. парольную) поставить.


"вернуться из chroot под root'ом"
Отправлено vilak , 02-Апр-09 12:16 
>[оверквотинг удален]
>>Непонимаю следующее - для root захода через шелл надо зайти сначала под
>>другим пользователем, а затем сделать su или работать через sudo. В
>>обычной инсталляции CentOS 5.2 я под обычным пользователем могу бегать почти
>>по всем директориям, я бегал через mc. Эта возможность несёт какую-нибудь
>>угрозу для несанкционированного входа в root ?
>Если я правильно понял, смысл ваших сомнений в том, что пропадает одно
>кольцо защиты при доступе к файлам /.
>1. Проверка ssh.
>2. Проверка su.
>Может для пользователя, который без chroot входит, дополнительную проверку (напр. парольную) поставить.

Идея здравая. В итоге получается конечно навороченно.

Не понимаю почему новому пользователю сразу не запретить всё, кроме домашней директории и команд типа ls, vi и т.п. А потом уже с помощью утилиты открывать необходимые ресурсы.


"вернуться из chroot под root'ом"
Отправлено chainik , 02-Апр-09 13:15 
>
>Не понимаю почему новому пользователю сразу не запретить всё, кроме домашней директории
>и команд типа ls, vi и т.п.

Группу штрафбат организуй ...:))))


"вернуться из chroot под root'ом"
Отправлено сабакка , 02-Апр-09 16:44 
Ещё вариант - restricted shell
http://kbase.redhat.com/faq/docs/DOC-7051;jsessionid=929379B...

"вернуться из chroot под root'ом"
Отправлено vilak , 02-Апр-09 17:05 
>Ещё вариант - restricted shell
>http://kbase.redhat.com/faq/docs/DOC-7051;jsessionid=929379B...

О это на первый взгляд то что надо, просто зверско урезанные права :)

Потихоньку пишу в локальную вики что надо сделать, как соберётся материал - хочу на съедение гуру его отдать.


"вернуться из chroot под root'ом"
Отправлено vilak , 03-Апр-09 13:49 
>>Ещё вариант - restricted shell
>>http://kbase.redhat.com/faq/docs/DOC-7051;jsessionid=929379B...
>
>О это на первый взгляд то что надо, просто зверско урезанные права

Нарыл тут обход rbash :

запуск bash - попадаем в bash.
через ftp можно бегать и запускать программы, которые через rbash нельзя запускать.
есть наверно другие программы...

поставил права на bash, ftp теперь не запускаются под rbash.



"вернуться из chroot под root'ом"
Отправлено сабакка , 03-Апр-09 15:44 
"через ftp можно бегать"
"ftp теперь не запускаются под rbash"

хочется понять


"вернуться из chroot под root'ом"
Отправлено vilak , 03-Апр-09 15:56 
>"через ftp можно бегать"
>"ftp теперь не запускаются под rbash"
>
>хочется понять

http://www.linux.org.ru/jump-message.jsp?msgid=2491099&cid=2...

вот выдержка оттуда :

anonymous@fucksecurity:~$ rbash
anonymous@fucksecurity:~$ typeset -xr LD_LIBRARY_PATH LD_AOUT_LIBRARY_PATH LD_NOWARN LD_KEEPDIR LD_AOUT_PRELOAD LD_PRELOAD LD_AUDIT
anonymous@fucksecurity:~$ ftp
ftp> !~/hello
Enter Your Name: anonymous
Hello anonymous
ftp> lcd /usr/bin
Local directory now /usr/bin
ftp> !./id
uid=1000(anonymous) gid=1000(anonymous) группы=1000(anonymous)
ftp> !echo yahooo rbash pwned again
yahooo rbash pwned again
ftp>


"вернуться из chroot под root'ом"
Отправлено сабакка , 03-Апр-09 18:14 
http://www.linux.org.ru/view-message.jsp?msgid=2491099&page=...

"вернуться из chroot под root'ом"
Отправлено LS , 01-Апр-09 03:21 
>Добрый день !
>
>CentOS 5.2
>В доках по безопасности говорят, что root'у сразу по ssh нежелательно логиниться
>+ пользователю выше домашней папке надо запретить ходить.
>Сделал через OpenSSH заход не рута через chroot ( ChrootDirectory /home ),
>chroot работает. Chroot окружение делаю скриптом с http://www.fuschlberger.net/programs/ssh-scp-sftp-chroot-jail/ .
>Через su стать рутом неудаётся, пишет "incorrect password". Если сразу входить под
>рутом, то входится нормально.
>Как из chroot сделаться рутом ?

ну уже ответили что, к чему применять.

хочу добавить одно - чтоб программы в chroot'e (например su то же) работали -  им следует предоставить в этом chroot'e библиотеки/исходные данные/итд. от куда Ваш su, который chroot наприме в Ваш домашний каталог возьмет информацию о другрих пользователях - в частности об root? не задумывались? а есть над чем - чудес на свете не бывает.


"вернуться из chroot под root'ом"
Отправлено vilak , 01-Апр-09 16:47 
>[оверквотинг удален]
>>рутом, то входится нормально.
>>Как из chroot сделаться рутом ?
>
>ну уже ответили что, к чему применять.
>
>хочу добавить одно - чтоб программы в chroot'e (например su то же)
>работали -  им следует предоставить в этом chroot'e библиотеки/исходные данные/итд.
>от куда Ваш su, который chroot наприме в Ваш домашний каталог
>возьмет информацию о другрих пользователях - в частности об root? не
>задумывались? а есть над чем - чудес на свете не бывает.

как я понял костяк библиотек скрипт ( на который я выше ссылку написал ) сам делает. И создаёт passwd и другие файлы.
Пока мне su вызывать в chroot не надо ( как я понял этот su будет всё равно в пределах chroot ), т.к. планирую днс, веб-сервер и т.п. на виртуалки через xen ставить.


"вернуться из chroot под root'ом"
Отправлено pavel_simple , 01-Апр-09 23:50 
>[оверквотинг удален]
>>работали -  им следует предоставить в этом chroot'e библиотеки/исходные данные/итд.
>>от куда Ваш su, который chroot наприме в Ваш домашний каталог
>>возьмет информацию о другрих пользователях - в частности об root? не
>>задумывались? а есть над чем - чудес на свете не бывает.
>
>как я понял костяк библиотек скрипт ( на который я выше ссылку
>написал ) сам делает. И создаёт passwd и другие файлы.
>Пока мне su вызывать в chroot не надо ( как я понял
>этот su будет всё равно в пределах chroot ), т.к. планирую
>днс, веб-сервер и т.п. на виртуалки через xen ставить.

итак -- заходит такой не root'овый пользователь.
но у него будет возможность стать root'ом.
он становится root'ом
создаёт device node. монтирует /. прыгает chroot'ом в /. и у него по прежнему имеются все права.

решайте по другому.


"пользоватль пользователю - шарообразный в вакууме"
Отправлено Andrey Mitrofanov , 02-Апр-09 12:11 
>Добрый день !
>
>CentOS 5.2
>В доках по безопасности говорят, что root'у сразу по ssh нежелательно логиниться
>+ пользователю выше домашней папке надо запретить ходить.
>Сделал через OpenSSH заход не рута через chroot

Наверное дело в том, что пользователь и пользователь -- таки две большие разницы.
Пользователи сервера (=тупые опасные юзеры, которым нет никакого доверия) и пользователь (=логин) администратора сервера, который этот сервер - да, сюрприз! - администрирует, становясь (su/sudo), когда надо root-ом...

Угадай с трёх раз, которые их таких разных "пользователей" _имелись_в_виду_ в тех "доках по безопасности"... За правильный ответ -- призовые очки.

Отдельная медаль гения безопасности -- за правильный ответ, что надо было делать. Факультативно: рассмотрение вопроса "а надо ли было "и начинать"?"...

>Как из chroot сделаться рутом ?


"пользоватль пользователю - шарообразный в вакууме"
Отправлено vilak , 02-Апр-09 13:00 
>[оверквотинг удален]
>>Сделал через OpenSSH заход не рута через chroot
>
>Наверное дело в том, что пользователь и пользователь -- таки две большие
>разницы.
>Пользователи сервера (=тупые опасные юзеры, которым нет никакого доверия) и пользователь (=логин)
>администратора сервера, который этот сервер - да, сюрприз! - администрирует, становясь
>(su/sudo), когда надо root-ом...
>
>Угадай с трёх раз, которые их таких разных "пользователей" _имелись_в_виду_ в тех
>"доках по безопасности"... За правильный ответ -- призовые очки.

После многих советов и даже сравнения меня с мортышкой могу сказать точно, что
- тупых опасных пользователей надо пихать в chroot ( либо на виртуальную машину )
- пользователь с su, это из "док по безопасности" в chroot пихать не надо, но что-нить в виде ещё одного ввода пароля придумать не помешает.

>Отдельная медаль гения безопасности -- за правильный ответ, что надо было делать.
>Факультативно: рассмотрение вопроса "а надо ли было "и начинать"?"...

Ветка стала больше походить на вопрос "как защитить сервер в интернете", про chroot основные вопросы стали понятны.



"пользоватль пользователю - шарообразный в вакууме"
Отправлено newser , 02-Апр-09 13:51 
>После многих советов и даже сравнения меня с мортышкой могу сказать точно,
>что
>- тупых опасных пользователей надо пихать в chroot ( либо на виртуальную
>машину )
>- пользователь с su, это из "док по безопасности" в chroot пихать
>не надо, но что-нить в виде ещё одного ввода пароля придумать
>не помешает.
>
>Ветка стала больше походить на вопрос "как защитить сервер в интернете", про
>chroot основные вопросы стали понятны.

Весеннее обострение, похоже. :)

Не страдайте паранойей.