Организация хостинг-системы с защитой от перехвата паролей пользователей
Статья добавлена: 2005-08-22Установка вебсервера Apache в chroot.
Реализация проводилась на основе дистрибутива linux Slackware.
Исходные условия:
- Помещение веб-сервера apache в chroot.
- Защита логина и пароля пользователя от перехвата при закачивании странички.
Решение:
Компилируется 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:
-----------------cut----------------------- 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
Источник: http://slackware.tomsk.ru/docs/?p=webhost
[tags]
Комментарии пользователей
Перейти в форум ...
|