Ключевые слова:apache, hosting, chroot, security, (найти похожие документы)
From: Vitaly Push aka DrDeath
Date: Mon, 26 Apr 2004 18:21:07 +0000 (UTC)
Subject: Организация хостинг-системы с защитой от перехвата паролей пользователей
Оригинал: http://slackware.tomsk.ru/docs/?p=webhost
Организация хостинг-системы с защитой от перехвата паролей пользователей
Реализация проводилась на основе дистрибутива linux Slackware.
Исходные условия:
1. Помещение веб-сервера apache в chroot.
2. Защита логина и пароля пользователя от перехвата при закачивании
странички.
Решение:
Компилируется apache (http://www.apache.org), можно по
умолчанию prefix оставить /usr/local/apache, устанавливаем его в
системе. Далее организуем chroot, который должен содержать следующие
файлы:
/chroot/apache
/chroot/apache/usr
/chroot/apache/usr/lib
/chroot/apache/usr/lib/libcrypt.so
/chroot/apache/usr/lib/libcrypto.so
/chroot/apache/usr/lib/libcrypto.so.0
/chroot/apache/usr/lib/libcrypto.so.0.9.6
/chroot/apache/usr/lib/libresolv.so
/chroot/apache/usr/lib/libz.a
/chroot/apache/usr/lib/libz.so
/chroot/apache/usr/lib/libz.so.1
/chroot/apache/usr/lib/libz.so.1.1.4
/chroot/apache/etc
/chroot/apache/etc/passwd
/chroot/apache/etc/HOSTNAME
/chroot/apache/etc/resolv.conf
/chroot/apache/etc/group
/chroot/apache/etc/host.conf
/chroot/apache/etc/hosts
/chroot/apache/home
/chroot/apache/lib
/chroot/apache/lib/libm-2.2.5.so
/chroot/apache/lib/libm.so.6
/chroot/apache/lib/ld-2.2.5.so
/chroot/apache/lib/ld-linux.so.2
/chroot/apache/lib/libnss_files-2.2.5.so
/chroot/apache/lib/libnss_files.so.2
/chroot/apache/lib/libresolv-2.2.5.so
/chroot/apache/lib/libresolv.so.2
/chroot/apache/lib/libnsl-2.2.5.so
/chroot/apache/lib/libnsl.so.1
/chroot/apache/lib/libnss_compat-2.2.5.so
/chroot/apache/lib/libnss_compat.so.2
/chroot/apache/lib/libnss_db-2.2.so
/chroot/apache/lib/libnss_db.so.2
/chroot/apache/lib/libdb-3.1.so
/chroot/apache/lib/libdb.so
/chroot/apache/lib/libutil-2.2.5.so
/chroot/apache/lib/libutil.so.1
/chroot/apache/dev
/chroot/apache/dev/null
/chroot/apache/etc/passwd:
root:x:0:0::/root:/bin/bash
apache:x:1001:102::/dev/null:
/chroot/apache/etc/group:
root::0:root
apache:x:102:
Если нужно, чтобы apache работал с поддержкой php, то по howto,
которых достаточно в интернете, собираете php с поддержкой apxs, и
копируем все, что нужно из системы в chroot вместе с apache. Все , что
скомпилилось у php копируем так же в chroot apache. Если критично
дисковое пространство, то из основной системы php и apache можно
удалить.
Организуем директорию /chroot/apache/usr/local/ и копируем туда
/usr/local/apache из системы.
Далее, начинаем заниматься реализацией закачки с защитой
процедуры аутентификации. Для этого можно использовать sftp-server,
который идет в копмлекте с sshd2 (http://www.ssh.com). Собираем его,
ставим в систему. Для того, чтобы пользователи не могли выйти в
основную систему и могли без проблем закачивать свои файлы, делаем
некоторые изменения в /etc/ssh2/sshd2_config:
subsystem-sftp internal://sftp-server
#Или как вариант subsystem-sftp sftp-server
ChRootGroups apache
Ну и конечно же, чтобы веб-сервер мог обращаться к страничкам
пользователей:
/sbin/mount --bind /chroot/apache/home /home/
В директории пользователя должны быть две директории logs и www
(название директорий опциональны и указываются в настройках apache).
Запускаем связку
/usr/sbin/chroot /chroot/apache /usr/local/apache/bin/httpd
/etc/rc.d/rc.sshd2 start
Если не возникло никаких проблем, то можно заводить
пользователей
useradd -g apache -s /bin/false -d /home/user user
passwd user.
Нужно заметить, что у этой системы есть и недостаток.
Пользователю, чтобы заливать свою страничку необходимо установить
клиента sftp, который можно скачать с http://www.ssh.com
2002
Vitaly Push aka DrDeath