Чтение онлайн

на главную - закладки

Жанры

Linux глазами хакера

Флёнов Михаил Евгеньевич

Шрифт:

4.7.1. Принцип работы

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

chroot
, которая создает chroot-окружение. Получается псевдокорневая файловая система внутри существующей.

Выше этой директории программа, работающая в окружении chroot, попасть не может. Посмотрите на рис. 4.1. Здесь показана часть файловой системы Linux. Во главе всего стоит корневая директория /. В ней находятся /bin, /usr, /var, /home. В папке /home расположены

каталоги пользователей системы. Мы создаем здесь новую директорию, для примера назовем ее chroot, и она станет корнем для службы. В ней есть свои каталоги /bin, /usr и т.д., и сервис должен работать с ними, а все, что выше /home/chroot, будет недоступно.

Рис. 4.1. Схема работы chroot-окружения

На рис. 4.1 в рамку обведены папки, которые видны службе. Именно в этом пространстве будет работать сервис, считая, что это и есть реальная файловая система сервера.

Если хакер проникнет в систему через защищенную службу и захочет просмотреть директорию /etc, то он увидит каталог /home/chroot/etc, но никак не системный /etc. Чтобы взломщик ничего не заподозрил, в папке /home/chroot/etc можно расположить все необходимые файлы, но содержащие некорректную информацию. Злоумышленник, запросив файл /etc/passwd через уязвимый сервис, получит доступ к /home/chroot/etc/passwd, потому что служба видит его системным.

Так, например, файл /home/chroot/etc/passwd может содержать ложную информацию. На работу системы в целом это не повлияет, потому что ОС будет брать пароли из файла /etc/passwd, а службе реальные коды доступа в систему не нужны, поэтому в файл /home/chroot/etc/passwd можно засунуть все, что угодно.

4.7.2. Установка jail

Встроенная в Linux-систему программа chroot для создания "Виртуальное пространство" виртуальных пространств на сервере сложна и не очень удобна для применения. Нужно выполнить слишком много операций. Именно поэтому администраторы больше любят использовать программу jail, которую можно найти в Интернете по адресу http://www.jmcresearch.com/projeсts/jail/. Скачайте ее и поместите архив в свой каталог. Для того чтобы разархивировать его, нужно выполнить следующую команду:

tar xzvf jail.tar.gz

В текущей директории появится новый каталог jail с исходным кодом программы. Да, именно с исходным, потому что она открыта и поставляется в таком виде.

Теперь нужно перейти в каталог jail/src (

cd jail/src
) и отредактировать файл Makefile (например, редактором МС). В самом начале файла идет множество комментариев, и их мы опустим. После этого вы сможете увидеть следующие параметры:

ARCH=__LINUX__

#ARCH=__FREEBSD__

#ARCH=__IRIX__

#ARCH=__SOLARIS__

DEBUG = 0

INSTALL_DIR = /tmp/jail

PERL = /usr/bin/perl

ROOTUSER = root

ROOTGROUP = root

Вначале задается тип ОС, по умолчанию установлен

LINUX
. А следующие три строки для FreeBSD, Irix и Solaris закомментированы. Оставим все, как есть. Что нужно изменить, так это директорию для установки (параметр
INSTALL_DIR
).
В последней версии (на момент написания книги) по умолчанию используется каталог /tmp/jail. Не знаю, зачем это сделали, ведь этот каталог предназначен для временных файлов и должен быть доступен для чтения абсолютно всем. Раньше по умолчанию был /usr/local, и именно его я советую здесь указать. Больше ничего менять не надо.

Для выполнения следующих директив вам понадобятся права root, поэтому войдите в систему как администратор или получите нужные права, запустив команду

su root
.

Перед компиляцией и установкой убедитесь, что у файла preinstall.sh есть права на выполнение. Если нет, то воспользуйтесь следующей командой:

chmod 755 preinstall.sh

Теперь все готово к установке. Находясь в директории jail/src, выполните команды:

make

make install

Если все прошло успешно, то в каталоге /usr/local/bin должны появиться программы: addjailsw, addjailuser, jail и mkjailenv.

4.7.3. Работа с программой jail

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

mkdir /home/chroot

Теперь нужно подготовить окружение для нормальной работы будущего сервиса. Для этого выполняем команду:

/usr/local/bin/mkjailenv /home/chroot

Посмотрите, что произошло с каталогом /home/chroot. Здесь появились две директории dev и etc. Как мы знаем, в директории dev должны быть описания устройств. В данном случае программа не стала делать полную копию системного каталога /dev, а ограничилась созданием трех основных устройств null, urandom и zero.

В директории etc можно также увидеть три файла: group, passwd и shadow. Это неполные копии системных файлов. Например, если взглянуть на файл passwd, то он будет содержать только следующие строки:

root:x:0:0:Flenov,Admin:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

nobody:x:99:99:Nobody:/:/sbin/nologin

Больше ничего не будет, и нет пользователя robert, которого мы создавали раньше (см. разд. 4.3). В файле shadow находятся теневые пароли. Проверьте права на этот файл, чтобы они были не более 600 (

rw-------
).

Тут есть один недостаток в безопасности — в файле /home/chroot/etc/shadow находится реальный зашифрованный пароль из /etc/shadow. Лучше удалите его, иначе злоумышленник, узнав пароль на сервис, сможет проникнуть на сервер через другую дверь, которая не защищена виртуальным каталогом.

Продолжаем настройку виртуальной корневой директории. Теперь нам нужно выполнить следующую команду:

/usr/local/bin/addjailsw /home/chroot

Во время отработки этой команды побежит множество информационных строчек о выполняемых действиях, которые заключаются в том, что в каталог /home/chroot копируются основные директории и программы. Например, в папку /home/chroot/bin будут скопированы такие программы, как cat, cp, ls, rm и т.д., и сервис будет использовать именно их, а не те, что расположены в основном каталоге /bin.

Поделиться:
Популярные книги

Дранг нах остен по-русски (CИ)

Зайцев Виктор Викторович
Фантастика:
фэнтези
попаданцы
6.90
рейтинг книги
Дранг нах остен по-русски (CИ)

"Фантастика 2024-110". Компиляция. Книги 1-19

Евдокимов Дмитрий Викторович
Фантастика 2024. Компиляция
Фантастика:
фэнтези
боевая фантастика
попаданцы
альтернативная история
5.00
рейтинг книги
Фантастика 2024-110. Компиляция. Книги 1-19

Точка Бифуркации VI

Смит Дейлор
6. ТБ
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Точка Бифуркации VI

Дитя прибоя

Трофимов Ерофей
Дитя прибоя
Фантастика:
боевая фантастика
попаданцы
фэнтези
5.25
рейтинг книги
Дитя прибоя

Город Бездны

Рейнольдс Аластер
1. Космический апокалипсис
Фантастика:
научная фантастика
космическая фантастика
6.71
рейтинг книги
Город Бездны

Дважды одаренный. Том V

Тарс Элиан
5. Дважды одаренный
Фантастика:
аниме
альтернативная история
городское фэнтези
5.25
рейтинг книги
Дважды одаренный. Том V

НКВД-МВД СССР в борьбе с бандитизмом и вооруженным националистическим подпольем на Западной Украине, в Западной Белоруссии и Прибалтике (19

Кокурин А. И.
Научно-образовательная:
история
5.00
рейтинг книги
НКВД-МВД СССР в борьбе с бандитизмом и вооруженным националистическим подпольем на Западной Украине, в Западной Белоруссии и Прибалтике (19

"Люди, годы, жизнь" Книга III

Эренбург Илья Григорьевич
Проза:
классическая проза
5.00
рейтинг книги
Люди, годы, жизнь Книга III

Бессонница (др.перевод)

Кинг Стивен
17. Темная Башня
Фантастика:
ужасы и мистика
8.33
рейтинг книги
Бессонница (др.перевод)

Вкусивший плоти Ангела

Пен-Пен
1. Трикстер
Фантастика:
боевая фантастика
8.20
рейтинг книги
Вкусивший плоти Ангела

Ринсвинд и Плоский мир

Пратчетт Терри Дэвид Джон
Плоский мир
Фантастика:
фэнтези
7.57
рейтинг книги
Ринсвинд и Плоский мир

Парижские могикане. Том 1

Дюма-отец Александр
1. Могикане Парижа
Приключения:
исторические приключения
6.80
рейтинг книги
Парижские могикане. Том 1

Испытание ядом

Снайдер Мария
1. Путь Элены
Любовные романы:
любовно-фантастические романы
8.96
рейтинг книги
Испытание ядом

Том 3. Советский и дореволюционный театр

Луначарский Анатолий Васильевич
3. Собрание сочинений в восьми томах
Документальная литература:
критика
5.00
рейтинг книги
Том 3. Советский и дореволюционный театр