FastNetMon

воскресенье, 14 февраля 2010 г.

Запуск SSHD в chroot на Debian 5 Lenny: подготовка дерева каталогов

ЭТО НЕ CHROOTED SSH в папку пользователя!!! Это запуск демона в CHROOT!!!! В 95% случаев ЭТА СТАТЬЯ ВАМ НЕ НУЖНА.

Мы будем использовать makejail, но есть еще ряд аналогов: jailer и jailtool.

Ставим тулзу для сборки chroot среды:
apt-get install -y makejail


В его стандартной поставке есть ряд шаблонов для запуска различных сервисов в chroot:

ls /usr/share/doc/makejail/examples
apache.py global.OpenBSD mysqld.py postgresql.py
bind.py mldonkey.py ntpd.py sshd.py


Теперь создаем папку, куда будет "сложен" комплект файлов для успешного чрута sshd:
mkdir -p /var/chroot/sshd


Но при попытке запуска:
makejail /usr/share/doc/makejail/examples/sshd.py


Нас постигает полный облом:

Loading configuration file /usr/share/doc/makejail/examples/sshd.py
Cannot load configuration file '/usr/share/doc/makejail/examples/sshd.py' as a python module
Executing it with python which should display a syntax error:
File "/usr/share/doc/makejail/examples/sshd.py", line 3
SyntaxError: Non-ASCII character '\xf1' in file /usr/share/doc/makejail/examples/sshd.py on line 3, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details


К счастью, это крайне легко фиксица добавлением в файл:
vi /usr/share/doc/makejail/examples/sshd.py


Следующих строк в самое начало:
# -*- coding: utf-8 -*-


Также добавляем в низ файла подключение стандартных утилит работы с файлами - ls, dir, ln, chown и проч ( в примере конфига опечатка, fileutils теперь зовут coreutils):
packages=["coreutils"]


И повторяем запуск команды.

После того, как программа отработает в нашей chroot папке будет построено дерево каталогов, необходимое sshd для работы:

ls /var/chroot/sshd/
bin dev etc lib lib64 sbin usr var


Причем, занимаемое им пространство крайне скромно:

du -sh /var/chroot/sshd/
16M /var/chroot/sshd/


Теперь пробуем сделать chroot на созданную папку:
chroot /var/chroot/sshd/



Основано на: http://www.debian.org/doc/manuals/securing-debian-howto/ap-chroot-ssh-env.en.html и http://stephan.paukner.cc/syslog/archives/332-SSH-daemon-in-a-chroot-on-Debian-lenny.html

2 комментария :

  1. А как же это... chroot ломается, да нафиг он нужен? )))

    ОтветитьУдалить
  2. Ну, разумеется, чистый chroot не панацея, но если юзать такие security патчи на ядро типа grsecurity, все вполне хорошо будет :)

    ОтветитьУдалить

Примечание. Отправлять комментарии могут только участники этого блога.