Карта сайта Хакер в RSS Энциклопедия Хакера PDA версия сайта Почтовые рассылки Хакера    Хакер в Twitter Хакер в ВКонтакте Приложение Хакер для Facebook Хакер на Formspring.me
Журнал Новости Форум Видео Life Xakep Live (блоги)
Bugtrack Статьи Блог Поиск English
Взлом как образ мысли Взлом как образ мысли
Интервью с человеком, который, как оказалось, является не только талантливым пентестером в одной из крупных ИБ-компании, но и хакером-ветераном, который уверенными шагами вышел на свет и прикоснулся к истории российской хак-сцены....
Полный гид по накрутке онлайн-голосований Полный гид по накрутке онлайн-голосований
Конкурсы с голосованием привлекают большое количество посетителей, а трафик, как известно, — это деньги. Особый интерес вызывают конкурсы, где за победу предлагаются лакомые призы....

Chroot-им SSH

Bookmark and Share

Это руководство повествует о том как установить и запустить OpenSSH с chroot-ограничением. При помощи такой настройки появляется возможность дать пользователю shell доступ без опасения, что он сможет порушить весь сервер. Таким образом "входящий" юзер будет заперт в своей домашней директории без возможности покинуть ее.

В примере расстраивается система Debian Sarge (Debian 3.1), а SSH в chroot будет установлен так, что по прежнему будет использовать стандартный файл конфигурации /etc/ssh/ и останется возможность работать со старым скриптом /etc/init.d/ssh.

1. Устанавливаем новую версию Zlib

Для работы необходима новая версия архиватора, так как в старой была обнаружена ошибка, способная скомпрометировать систему:

cd /tmp
wget http://www.zlib.net/zlib-1.2.3.tar.gz
tar xvfz zlib-1.2.3.tar.gz
cd zlib-1.2.3
make clean
./configure -s
make
make install

2. Устанавливаем chroot-нутый SSH

Это достаточно просто. Скачиваем пропатченные исходники OpenSSH, настраиваем директории (/usr для исполняемых файлов и /etc/ssh для конфигурационных файлов) и разрешаем PAM аутентификацию:

cd /tmp
apt-get install libpam0g-dev openssl libcrypto++-dev libssl0.9.7 libssl-dev ssh
wget http://chrootssh.sourceforge.net/download/openssh-4.2p1-chroot.tar.gz
tar xvfz openssh-4.2p1-chroot.tar.gz
cd openssh-4.2p1-chroot
./configure --exec-prefix=/usr --sysconfdir=/etc/ssh --with-pam
make
make install

3. Настрйока chroot

Создаем среду для работы пользователя /home/chroot, это и будет та директория куда попадет SSH пользователь и откуда выхода он иметь не будет. Для работы потребуется создать ряд директорий и скопировать нужные бинарники с библиотеками:

mkdir /home/chroot/
mkdir /home/chroot/home/
cd /home/chroot
mkdir etc
mkdir bin
mkdir lib
mkdir usr
mkdir usr/bin
mkdir dev
mknod dev/null c 1 3
mknod dev/zero c 1 5

Для автоматизации можно использовать скрипт, который сделает все правильно и более быстро: create_chroot_env. Если есть потребность расширить список приложений, то их можно просто прописать в скрипте в параметр APPS.

Затем делаем следующее:

cp /lib/libnss_compat.so.2 /lib/libnsl.so.1 /lib/libnss_files.so.2 ./lib/
echo '#!/bin/bash' > usr/bin/groups
echo "id -Gn" >> usr/bin/groups
touch etc/passwd
grep /etc/passwd -e "^root" > etc/passwd

Следует так же скопировать строчку с группой в которой создадим пользователя из /etc/group в /home/chroot/etc/group. В данном примере мы создадим пользователя в группе user и, соответственно, копирование будет выглядеть так:

grep /etc/group -e "^root" -e "^users" > etc/group

Рестартуем SSH:

/etc/init.d/ssh restart

4 Создаем пользователя для chroot

Даже с SSH, запущенным в chroot среде, остается возможность зайти на машину вне ограничений, накладываемых средой. Как же SSH решить кого ограничивать, а кого нет? Это решается просто: "закрытая" SSH ищет заходящего пользователя в /etc/passwd и если домашняя директория пользователя содержит в названии ".", то пользователь подвергается ограничениям chroot.

Пример:

user_a:x:2002:100:User A:/home/user_a:/bin/bash
user_b:x:2003:100:User B:/home/chroot/./home/user_b:/bin/bash

Очевидно, что первый пользователь получит полные права, а второй будет ограничен. Для работы создадим пользователя testuser с домашней директорией /home/chroot/./home/testuser и зачислим его в группу users.

useradd -s /bin/bash -m -d /home/chroot/./home/testuser -c "testuser" -g users testuser

Зададим пароль:

passwd testuser

Скопируем пользователя из /etc/passwd в /home/chroot/etc/passwd:

grep /etc/passwd -e "^testuser" >> /home/chroot/etc/passwd

Группу мы уже скопировали, но если вы создали пользователя в другой группе, то необходимо скопировать запись о группе в /home/chroot/etc/group:

grep /etc/group -e "^othergroup" >> /home/chroot/etc/group

Теперь можно попробовать залогиниться в SSH под testuser. если все прошло правильно, то дальше /home/chroot выйти не получится.

Ссылки:

 





СВЯЗАННЫЕ СТАТЬИ
Chroot-им SSH
СЛЕДУЮЩИЕ СТАТЬИ
Раз заплатка, два заплатка: зачем нужны бинарные патчи, и как ими пользоваться
Грани виртуальных миров: разбираемся с новыми и необычными технологиями виртуализации
Порочное наследие Windows: концептуальные методы взлома Linux через флешку и защита от них
Очумелые ручки: устанавливаем Linux и BSD удаленно
Облако, открытое для всех: OpenStack - обзор и первые впечатления
Гонка вооружений: сравниваем популярные расширения безопасности для ОС Linux
Сделай ставку на хищника: эффективное администрирование с помощью Hyena 8.0
Amazon S3 для обычных смертных: современные технологии облачных вычислений для хранения файлов и бэкапа
Виртуальный защитник: как обеспечить безопасность Windows при помощи *nix-системы, запущенной в виртуальной машине
Блочим блокеры: полный мануал по борьбе с блокираторами
ПРЕДЫДУЩИЕ СТАТЬИ
Windows XP как сервер терминалов
Vista: наконец-то безопасная?
Троянизация Тукса №2
Троянизация Тукса №1
OpenVMS: работа в Интернете
Невидимые пользователи Windows
Расширенные возможности iptables №3
NetBSD глазами хакера №2
NetBSD глазами хакера №1
Расширенные возможности iptables №2
ОБСУЖДЕНИЕ СТАТЬИ
Логин:
Пароль:
Если у вас есть форумный логин - вы можете использовать его, иначе анонимный гостевой доступ.

Для оставления комментария вы можете зарегистрироваться по упрощенной процедуре.
Для отправки сообщения введите код, указанный на картинке
Сообщение





Keywords: zPOSTz zOSz, zADMINz, zINFOz z29791z
Для Авторов: edit Lock delete Lock



    Rambler's Top100