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

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

Жанры

Сетевые средства Linux

Смит Родерик В.

Шрифт:

Если сервер не вызывает

chroot
, необходимо в первую очередь убедиться, что он способен работать в обычном окружении Linux, для чего следует запустить сервер за пределами поддерева
chroot
. Затем надо скопировать исполняемые файлы сервера и конфигурационные файлы в каталоги поддерева и удостовериться, что это не повлияло на работу сервера. После настройки среды поддерева вы можете запускать сервер с помощью утилиты
chroot
. Соответствующая команда имеет следующий вид:

chroot новый_корневой_каталог имя_сервера [опции_сервера]

Здесь

под новым корневым каталогом подразумевается каталог, который выполняет роль корня поддерева
chroot
. Кроме того, при вызове команды задаются имя сервера, предназначенного для запуска, и его опции; путь к серверу определяется относительно корневого каталога поддерева. Например, если исполняемый файл сервера имеет имя
/opt/chroot/bin/server
, где
/opt/chroot
— корневой каталог поддерева, то вызов
chroot
будет выглядеть следующим образом:

# chroot /opt/chroot /bin/server

Если в обычных условиях сервер запускается с помощью сценария SysV или локального сценария запуска, вы должны модифицировать сценарий, включив в него команду

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

Управление доступом к каталогам поддерева

chroot

Поддерево

chroot
реализует одностороннюю защиту — программы, выполняющиеся в рамках поддерева, не имеют доступа к ресурсам за его пределами. Поэтому вы можете ограничить доступ и в другом направлении. Для этого надо указать в качестве владельца каталогов поддерева
chroot
пользователя
root
и установить соответствующие права доступа к этим подкаталогам, например задать значение 0640 (
rw-r-----
). Запускать сервер следует от имени пользователя, который принадлежит группе, специально созданной для этой цели. В результате сервер будет иметь право читать файлы, находящиеся в каталогах поддерева
chroot
, а из-за пределов поддерева к данным сможет обращаться только пользователь root. Если же при работе сервера возникает необходимость в записи файлов, следует предусмотреть это при установке прав доступа.

Запуск сервера BIND в рамках поддерева

chroot

Ранее описывался процесс подготовки сервера к запуску в рамках поддерева

chroot
. Чтобы лучше понять изложенный выше материал, желательно рассмотреть запуск конкретного сервера в подобном режиме. В качестве примера выберем сервер имен BIND, работа которого обсуждалась в главе 18. При подготовке сервера к работе в пределах поддерева
chroot
будет в основном использоваться конфигурация, устанавливаемая по умолчанию. Процедура инсталляции данного сервера в различных версиях Linux имеет свои характерные особенности; для данного примера выберем версию Debian 2.2.

На заметку

В данном разделе рассматривается запуск сервера BIND с использованием программы

chroot
.
В качестве примера сервера, вызывающего функцию
chroot
самостоятельно, можно привести сервер FTP.

Прежде всего вам необходимо инсталлировать стандартный пакет BIND. Поскольку сервер инсталлируется в системе Debian, для его установки можно использовать программу

apt-get
.

# apt-get install bind

В процессе выполнения сценарий инсталляции спрашивает, следует ли добавить адрес локального сервера имен в файл

/etc/resolv.conf
. На этот вопрос я даю положительный ответ, но для демонстрации работы сервера в рамках поддерева
chroot
это не имеет значения. По окончании установки система Debian запускает сервер имен. Проверить, работает ли сервер, вы можете с помощью следующих двух команд:

# ps aux | grep named

root 7656 0.0 1.5 2184 1492 ? S 13:29 0:00 \

/usr/sbin/named

# host awl.com localhost

awl.com A 165.193.123.224

Вторая команда позволяет убедиться в том, что сервер BIND установлен и работает: она выводит IP-адрес узла

awl.com
, причем для преобразования имени используется сервер на компьютере
localhost
. Имя
awl.com
вы можете заменить любым другим именем узла, расположенного в Internet, а вместо
localhost
можно указать IP-адрес или имя вашего компьютера. Если система сообщит о том, что команда не найдена (command not found), вам надо установить пакет
dnsutils
, содержащий программу
host
. (В других версиях Linux пакет подобного назначения может называться иначе, например
bind-utils
).

Убедившись, что сервер работает, завершите его выполнение с помощью команды

# /etc/init.d/bind stop

Затем вам надо создать поддерево

chroot
и скопировать в него файлы BIND.

# mkdir -p /opt/chroot/usr/sbin /opt/chroot/var/cache/bind

# mkdir /opt/chroot/lib /opt/chroot/etc

# cp /usr/sbin/named /opt/chroot/usr/sbin

# cp -rp /etc/bind/ /opt/chroot/etc

На заметку

Данная процедура подготавливает BIND для выполнения с помощью команды

chroot
. Такой подход используется лишь для демонстрации действия данной команды. В случае необходимости сервер BIND может самостоятельно вызывать функцию
chroot
, поэтому выполнение сервера имен в рамках поддерева
chroot
можно организовать несколько проще. Однако при этом все равно придется создать поддерево и поместить в него конфигурационные файлы. Отпадает необходимость лишь в копировании исполняемых файлов сервера.

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

chroot
.

# ldd /usr/sbin/named

libc.so.6 => /lib/libc.so.6 (0x40017000)

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

Эволюционер из трущоб. Том 3

Панарин Антон
3. Эволюционер из трущоб
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
6.00
рейтинг книги
Эволюционер из трущоб. Том 3

Держать удар

Иванов Дмитрий
11. Девяностые
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Держать удар

Эпоха Опустошителя. Том V

Павлов Вел
5. Вечное Ристалище
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Эпоха Опустошителя. Том V

Ружемант

Лисицин Евгений
1. Ружемант
Фантастика:
попаданцы
рпг
аниме
5.00
рейтинг книги
Ружемант

Московское золото и нежная попа комсомолки. Часть Третья

Хренов Алексей
3. Летчик Леха
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Московское золото и нежная попа комсомолки. Часть Третья

Тринадцатый X

NikL
10. Видящий смерть
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Тринадцатый X

Система Возвышения. (цикл 1-8) - Николай Раздоров

Раздоров Николай
Система Возвышения
Фантастика:
боевая фантастика
4.65
рейтинг книги
Система Возвышения. (цикл 1-8) - Николай Раздоров

Лекарь Империи 5

Карелин Сергей Витальевич
5. Лекарь Империи
Фантастика:
городское фэнтези
аниме
героическая фантастика
попаданцы
5.00
рейтинг книги
Лекарь Империи 5

Кодекс Охотника. Книга XXXIX

Сапфир Олег
39. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
боевая фантастика
5.00
рейтинг книги
Кодекс Охотника. Книга XXXIX

Источники силы

Amazerak
4. Иной в голове
Фантастика:
боевая фантастика
рпг
аниме
5.00
рейтинг книги
Источники силы

Убивать чтобы жить 3

Бор Жорж
3. УЧЖ
Фантастика:
героическая фантастика
боевая фантастика
рпг
5.00
рейтинг книги
Убивать чтобы жить 3

Газлайтер. Том 31

Володин Григорий Григорьевич
31. История Телепата
Фантастика:
боевая фантастика
попаданцы
альтернативная история
фэнтези
5.00
рейтинг книги
Газлайтер. Том 31

Сильнейший Столп Империи. Книга 5

Ермоленков Алексей
5. Сильнейший Столп Империи
Фантастика:
аниме
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Сильнейший Столп Империи. Книга 5

Враг из прошлого тысячелетия

Еслер Андрей
4. Соприкосновение миров
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Враг из прошлого тысячелетия