LINUX-сервер пошаговые инструкции инсталляции и настройки - Бруй В. В. , Карлов С. В
..pdf
Глава 34. Apache HTTP Server |
511 |
Если вы не собираетесь использовать виртуальный сервер с поддержкой протокола SSL, удалите настройки виртуального сервера и удалите или закомментируйте строку:
LoadModule ssl_module modules/mod_ssl.so из раздела Section 1: Global Environment.
Шаг 2
Установите права доступа к файлу /etc/httpd/conf/httpd.conf и назначьте его владельцем пользователя root:
[root@test /]# chmod 600 /etc/httpd/conf/httpd.conf [root@test /]# chown 0.0 /etc/httpd/conf/httpd.conf
Конфигурационный файл /etc/sysconfig/httpd
Шаг 1
Создайте файл etc/sysconfig/httpd, содержащий следующие строки:
#Uncomment the following line to enable SSL support with Apache.
#Certificate should be already configured into httpd.conf file.
OPTIONS="-DSSL"
ЗАМЕЧАНИЕ Закомментируйте или удалите строку:
OPTIONS="-DSSL"
если вы не собираетесь использовать Web-сервер с поддержкой протокола SSL.
Шаг 2
Установите права доступа к файлу /etc/sysconfig/httpd и назначьте его владельцем пользователя root:
[root@test /]# chmod 640 /etc/sysconfig/httpd [root@test /]# chown 0.0 /etc/sysconfig/httpd
Конфигурационные файлы .htaccess
Конфигурационные файлы .htaccess не следует использовать без крайней необходимости. Использование этих файлов оправдано только в случае, когда вы не имеете доступа к основному Web-серверу. Для того, чтобы файлы .htaccess не игнорировались, а содержащиеся в них директивы выполнялись сервером, необходимо, чтобы это было разрешено директивой AllowOverride, действие которой распространяется на каталог, в котором находится файл, например:
AllowOverride All
Имя файла, используемого для конфигурирования каталога, может быть изменено с помощью директивы AccessFileName, например, если вас чем-то не устраивает имя .htaccess и вы хотите использовать файл с именем .myconf:
AccessFileName .myconf
Для того, чтобы содержимое файлов не было доступно клиентским пользовательским программам, используйте блок директив:
<Files ~ "^\.my"> Order allow,deny Deny from all
</Files>
Директивы, используемые внутри файлов .htaccess, должны допускать использование в контексте файла .htacess.
Например, директива ErrorDocument Directive, в соответсвии с информацией представленной на сер-
вере разработчиков (http://httpd.apache.org/docs-2.0/mod/core.html#errordocument)
допускает ее использование в файлах .htacess:
Description: What the server will return to the client in case of an error
Syntax: ErrorDocument error-code document
Context: server config, virtual host, directory, .htaccess Override: FileInfo
Status: Core Module: core
Compatibility: Quoting syntax for text messages is different in Apache 2.0
Глава 34. Apache HTTP Server |
513 |
apachectl=/usr/sbin/apachectl
httpd=/usr/sbin/httpd
RETVAL=0
prog="httpd"
start() {
echo -n $"Starting $prog: " daemon $httpd $OPTIONS RETVAL=$?
echo
[ $RETVAL = 0 ] && touch /var/lock/subsys/httpd return $RETVAL
}
stop() {
echo -n $"Shutting down $prog: " killproc $httpd
RETVAL=$? echo
[ $RETVAL = 0 ] && rm -f /var/lock/subsys/httpd /var/run/httpd.pid
return $RETVAL
}
# See how we were called. case "$1" in
start)
start
;;
stop)
stop
;;
status)
status $httpd RETVAL=$?
;;
restart) stop start
RETVAL=$?
;;
condrestart)
if [ -f /var/run/httpd.pid ] ; then stop
start RETVAL=$?
fi
;;
*)
echo $"Usage: $0 {start|stop|status|restart|condrestart}" exit 1
esac
exit $RETVAL
Шаг 2 Установите права доступа к файлу, назначьте его владельцем пользователя:
[root@test /]# chmod 700 /etc/init.d/httpd [root@test /]# chown 0.0 /etc/init.d/httpd
Шаг 3
Если вы хотите, чтобы Apache HTTP Server запускался автоматически при загрузке системы, создайте соответствующие ссылки:
[root@test /]# chkconfig --add httpd
514 |
Часть 10. Программное обеспечение для организации службы HTTP-сервера |
[root@test /]# chkconfig --level 345 httpd on
Конфигурирование Apache HTTP Server с доступом в закрытые каталоги с аутенти-
фикацией пользователей (файл /etc/httpd/conf/dbmpasswd)
В рассматриваемом примере мы храним аутентификационную информацию пользователей (логины и пароли) в базе данных, содержащейся в файле /etc/httpd/dbmpasswd. Альтернативным вариантом является хранение аутентификационной информации в обычном текстовом файле. Однако этот вариант работает более медленно, поэтому мы его не рассматриваем. Для конфигурирования доступа в закрытые катало-
ги вашего сервера (/var/www/eshop/html/private/и /var/www/eshopssl/html/private/),
необходимо выполнить следующие операции.
ЗАМЕЧАНИЕ Если вы не собираетесь включать поддержку доступа к закрытым каталогам с аутентификацией пользователей, пропустите этот раздел и не забудьте удалить или закомментировать в разделе
Section 1: Global Environment из файла /etc/httpd/conf/httpd.conf строку:
LoadModule auth_dbm_module |
modules/mod_auth_dbm.so. |
Шаг 1 Для администрирования базы данных, содержащих аутентификационную информацию пользователей
сервера, используется утилита /usr/sbin/dbmmanage. Для того, чтобы затруднить несанкционированную модификацию базы данных, переопределите права доступа к утилите:
[root@test /]# chmod 510 /usr/sbin/dbmmanage
Шаг 2 Добавьте пользователя, которому будет разрешен доступ в закрытые каталоги сервера:
[root@test /]# /usr/sbin/dbmmanage /etc/httpd/dbmpasswd adduser shoper New password:Sh()perpa$ <Enter>
Re-type new password: Sh()perpa$ <Enter>
User shoper added with password encrypted to 7Wj/W4BLeZ4uI using crypt
Шаг 3
Проверьте наличие в конфигурационном файле /etc/httpd/conf/httpd.conf строки:
LoadModule auth_dbm_module modules/mod_auth_dbm.so
необходимой для загрузки встроенного модуля auth_dbm_module, обеспечивающего поддержку доступа в закрытые каталоги сервера после удачной аутентификации пользователей.
Конфигурирование поддержки протокола SSL в Apache HTTP Server (файлы
/usr/share/ssl/certs/www.crt и /usr/share/ssl/private/www.key)
Для того, чтобы ваш сервер поддерживал защищенные соединения по протоколу HTTPS, необходимо выполнить следующие операции.
ЗАМЕЧАНИЕ Если вы не собираетесь включать поддержку протокола SSL, пропустите этот раздел и не забудьте удалить или закомментировать в разделе Section 1: Global Environment из файла
/etc/httpd/conf/httpd.conf строку:
LoadModule ssl_module |
modules/mod_ssl.so. |
Шаг 1 Для создания самостоятельно подписанного сертификата необходимо наличие собственного серти-
фикационного центра. Если вы его уже создали, то перейдите к следующему шагу. В противном случае ознакомьтесь с рекомендациями раздела «Тестирование OpenSSL» главы 12 и создайте собственный сертификационный центр.
Шаг 2
Создайте закрытый ключ, не защищенный паролем, для чего перейдите в каталог/usr/share/ssl:
[root@test /]# cd /usr/share/ssl
Выберите пять любых больших файлов со случайным (уникальным) содержанием, скопируйте их в каталог /usr/share/ssl и переименуйте в random1, random2, random3, random4, random5, по-
сле чего выполните команду:
[root@test ssl]# openssl genrsa -rand random1:random2:random3:random4:random5 -out www.key 1024
Глава 34. Apache HTTP Server |
515 |
|
2019245 semi-random bytes loaded |
|
|
Generating |
RSA private key, 1024 bit long modulus |
|
.................................................. |
|
++++++ |
........... |
++++++ |
|
e is 65537 |
(0x10001) |
|
ЗАМЕЧАНИЕ Использование закрытого ключа, не защищенного паролем, не очень желательно, с точки зрения безопасности системы. Поэтому авторы настоятельно рекомендуют все-таки использовать закрытый ключ, защищенный паролем, созданный в соответствии с рекомендациями раздела «Тестирование OpenSSL» главы 12. В случае использования закрытого ключа, защищенного паролем, при загрузке Apache HTTP Server потребует ввода пароля для получения доступа к закрытому ключу.
Рассматриваемый пример, в котором используется закрытый ключ, не защищенный паролем, просто иллюстрирует еще один вариант конфигурации поддержки протокола SSL в Apache HTTP Server.
Шаг 3
Сохраните файл www.key, содержащий закрытый ключ, в надежном месте:
[root@test ssl]# cp www.key /very_reliable_place/eshop_bruy_info/www.key
Шаг 4 Создайте запрос на подтверждение сертификата:
[root@test ssl]# openssl req -new -key www.key -out www.csr
You are about to be asked to enter information that will be incorporated into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [RU]: <Enter>
State or Province Name (full name) [Moscow]: <Enter> Locality Name (eg, city) [Yubileyniy]: <Enter> Organization Name (eg, company) [Valentine Bruy]: <Enter> Organizational Unit Name (eg, section) [Home]: <Enter>
Common Name (eg, YOUR name) [test.bruy.info]: eshop.bruy.info <Enter> Email Address [drwalbr@bruy.info]: sales@test.bruy.info <Enter>
Please enter the following 'extra' attributes to be sent with your certificate request
A challenge password []: <Enter>
An optional company name []: <Enter>
ЗАМЕЧАНИЕ Обратите внимание, что мы запрашиваем сертификат для виртуального сервера
eshop.bruy.info, а не для основного сервера test.bruy.info, т. к. в рассматриваемом примере конфигурации поддержка протокола SSL осуществляется только для виртуального сервера.
Шаг 5 Подпишите сертификат:
[root@test ssl]# /usr/share/ssl/misc/sign www.csr
CA signing: www.csr -> www.crt: Using configuration from ca.config
Enter pass phrase for |
/usr/share/ssl/private/ca.key: |
Check that the request matches the signature |
|
Signature ok |
|
The Subject's Distinguished Name is as follows |
|
countryName |
:PRINTABLE:'RU' |
stateOrProvinceName |
:PRINTABLE:'Moscow' |
localityName |
:PRINTABLE:'Yubileyniy' |
organizationName |
:PRINTABLE:'Valentine Bruy' |
organizationalUnitName:PRINTABLE:'Home' |
|
commonName |
:PRINTABLE:'eshop.bruy.info' |
emailAddress |
:IA5STRING:'sales@test.bruy.info' |
Certificate is to be certified until Jul 9 08:12:16 2004 GMT (365 days) Sign the certificate? [y/n]:y <Enter>
516 Часть 10. Программное обеспечение для организации службы HTTP-сервера
1 out of 1 certificate requests certified, commit? [y/n]y <Enter>
Write out database with 1 new entries
Data Base Updated
CA verifying: www.crt <-> CA cert
www.crt: OK
Шаг 6
Сохраните файл www.crt, содержащий сертификат, в надежном месте:
[root@test ssl]# cp www.crt /very_reliable_place/eshop_bruy_info/www.crt
Шаг 7
Поместите файлы www.crt и www.key в каталоги, определенные директивами
SSLCertificateFile и SSLCertificateKeyFile в конфигурационном файле
/etc/httpd/conf/httpd.conf. Определите права доступа к ним и назначьте их владельцем пользователя www, от имени которого запускается Apache HTTP Server :
[root@test ssl]# mv www.key private/
[root@test ssl]# mv www.crt certs/
[root@test ssl]# chmod 400 private/www.key [root@test ssl]# chmod 400 certs/www.crt [root@test ssl]# chown www.www private/www.key [root@test ssl]# chown www.www certs/www.crt
Шаг 8
Проверьте наличие в конфигурационном файле /etc/httpd/conf/httpd.conf строки:
LoadModule ssl_module modules/mod_ssl.so
необходимой для загрузки встроенного модуля ssl_module, обеспечивающего поддержку протокола SSL.
Тестирование Apache HTTP Server
Для проверки работоспособности рассматриваемой конфигурации сервера необходимо выполнить следующие операции:
Шаг 1 Создайте каталоги и разместите в них файлы, обслуживаемые виртуальными серверами в соответст-
вии с настройками, определенными в /etc/httpd/conf/httpd.conf, например:
[root@test /]# mkdir /var/www/eshop [root@test /]# mkdir /var/www/eshop/html [root@test /]# mkdir /var/www/eshop/cgi-bin
[root@test /]# mkdir /var/www/eshop/html/private [root@test /]# mkdir /var/www/eshopssl [root@test /]# mkdir /var/www/eshopssl/html [root@test /]# mkdir /var/www/eshopssl/cgi-bin
[root@test /]# mkdir /var/www/eshopssl/html/private
Поместите в каталог /var/www/eshop/html файл index.html, содержащий следующие строки:
<html>
<title>Главная страница e-shop (http-доступ)</title>
<body>
<H1>Главная страница e-shop (http-доступ)</H1>
<a href="private/">Каталог с ограниченным доступом (http-доступ)</a>
</body>
<html>
Поместите в каталог /var/www/eshop/html/private файл index.html, содержащий следующие строки:
<html>
<title>Cтраница e-shop с ограниченным доступом(hhtp-доступ)</title>
<body>
<H1>Cтраница e-shop с ограниченным доступом(http-доступ)</H1>
</body>
Глава 34. Apache HTTP Server |
517 |
<html>
Поместите в каталог /var/www/eshopssl/html файл index.html, содержащий следующие строки:
<html>
<title>Главная страница e-shop (https-доступ)</title>
<body>
<H1>Главная страница e-shop (https-доступ)</H1>
<a href="private/">Каталог с ограниченным доступом (https-доступ)</a>
</body>
<html>
Поместите в каталог /var/www/eshopssl/html/private файл index.html, содержащий сле-
дующие строки:
<html>
<title>Cтраница e-shop с ограниченным доступом (https-доступ)</title>
<body>
<H1>Cтраница e-shop с ограниченным доступом (https-доступ)</H1>
</body>
<html>
Шаг 2
Запустите Apache HTTP Server:
[root@test /]# /etc/init.d/httpd start
Запускается httpd: [ОК]
Вполне возможно, что из-за ошибок в конфигурационных файлах вам не удастся запустить Apache HTTP Server, при этом вы получите сообщение вида:
[root@test /]# /etc/init.d/httpd start Запускается Apache: Syntax error on line 252 of
/etc/httpd/conf/httpd.conf:
TransferLog takes one argument, the filename of the access log
[СБОЙ]
В этом случае исправьте ошибки в конфигурационном файле /etc/httpd/conf/httpd.conf, руководствуясь ссылкой на номер строки и описанием ошибки в полученном сообщении. После устранения ошибки попытайтесь повторно запустить Apache HTTP.
Шаг 3 После удачного запуска сервера проверьте наличие доступа к каталогам и файлам, к которым он дол-
жен быть разрешен, а также отсутствие доступа к каталогам и файлам, к которым он должен быть запрещен. В ниже приведенном примере сервер тестировался с использованием текстового браузера. Если вы используете другой браузер, внешнее представление результатов тестирования будет выглядеть, скорее всего, подругому.
Попытайтесь обратиться к индексному файлу виртуального сервера http://eshop.bruy.info/, поддерживающего соединения по протоколу HTTP:
[karlnext@karlnext karlnext]$ lynx http://eshop.bruy.info
На экране вы должны увидеть примерно следующее:
Главная страница e-shop (http-доступ)
Главная страница e-shop (http-доступ)
Каталог с ограниченным доступом (http-доступ)
…
Команды: стрелки - перемещение, '?' - помощь, 'q' - выход, '<-' - назад. Стрелки: Вверх, Вниз - перемещение. Вправо - переход по ссылке; Влево -
возврат. H)elp O)ptions P)rint G)o M)Глав экран Q)uit /=поиск
[delete]=список истории
Попробуйте перейти по ссылке
Каталог с ограниченным доступом (http-доступ)
518 |
Часть 10. Программное обеспечение для организации службы HTTP-сервера |
в закрытый каталог сервера, т. к. это единственная ссылка на странице. Для этого необходимо просто нажать клавишу <Enter>. В результате вы должны увидеть примерно следующее:
Главная страница e-shop (http-доступ)
Главная страница e-shop (http-доступ)
Каталог с ограниченным доступом (http-доступ)
…
Имя пользователя для 'Restricted Section' на server 'eshop.bruy.info':shoper
Стрелки: Вверх, Вниз - перемещение. Вправо - переход по ссылке; Влево -
возврат. H)elp O)ptions P)rint G)o M)Глав экран Q)uit /=поиск
[delete]=список истории
Введите имя пользователя shoper, как показано выше, которому разрешен доступ в закрытый каталог, и нажмите клавишу <Enter>:
Главная страница e-shop (http-доступ)
Главная страница e-shop (http-доступ)
Каталог с ограниченным доступом (http-доступ)
…
Пароль: **********
Стрелки: Вверх, Вниз - перемещение. Вправо - переход по ссылке; Влево -
возврат. H)elp O)ptions P)rint G)o M)Глав экран Q)uit /=поиск
[delete]=список истории
Введите пароль для пользователя shoper и нажмите клавишу <Enter>. В результате вы получите доступ к индексному файлу закрытого каталога и увидите примерно следующее:
Cтраница e-shop с ограниченным доступом(hhtp-доступ)
Cтраница e-shop с ограниченным доступом(http-доступ)
…
Команды: стрелки - перемещение, '?' - помощь, 'q' - выход, '<-' - назад. Стрелки: Вверх, Вниз - перемещение. Вправо - переход по ссылке; Влево -
возврат. H)elp O)ptions P)rint G)o M)Глав экран Q)uit /=поиск
[delete]=список истории
Завершите работу с браузером, используя подсказку в нижней части экрана.
Для тестирования доступа к виртуальному серверу, поддерживающего соединения по протоколу HTTPS, наберите:
[karlnext@karlnext karlnext]$ lynx https://eshop.bruy.info
Вы должны увидеть примерно следующее:
Главная страница e-shop (https-доступ)
Главная страница e-shop (https-доступ)
Каталог с ограниченным доступом (https-доступ)
…
Команды: стрелки - перемещение, '?' - помощь, 'q' - выход, '<-' - назад. Стрелки: Вверх, Вниз - перемещение. Вправо - переход по ссылке; Влево -
возврат. H)elp O)ptions P)rint G)o M)Глав экран Q)uit /=поиск
[delete]=список истории
Попробуйте перейти по ссылке
Каталог с ограниченным доступом (https-доступ)
в закрытый каталог сервера, т. к. это единственная ссылка на странице. Для этого необходимо просто нажать клавишу <Enter>, после чего вы должны увидеть следующую информацию:
Главная страница e-shop (https-доступ)
Главная страница e-shop (https-доступ)
Глава 34. Apache HTTP Server |
519 |
Каталог с ограниченным доступом (https-доступ)
…
Имя пользователя для 'Restricted Section' на server 'eshop.bruy.info:443':shoper
Стрелки: Вверх, Вниз - перемещение. Вправо - переход по ссылке; Влево -
возврат. H)elp O)ptions P)rint G)o M)Глав экран Q)uit /=поиск
[delete]=список истории
Введите имя пользователя shoper, которому разрешен доступ в закрытый каталог, и нажмите кла-
вишу <Enter>:
Главная страница e-shop (https-доступ)
Главная страница e-shop (https-доступ)
Каталог с ограниченным доступом (https-доступ)
…
Пароль: **********
Стрелки: Вверх, Вниз - перемещение. Вправо - переход по ссылке; Влево -
возврат. H)elp O)ptions P)rint G)o M)Глав экран Q)uit /=поиск
[delete]=список истории
Введите пароль для пользователя shoper и нажмите клавишу <Enter>. В результате вы получите доступ к индексному файлу закрытого каталога и увидите примерно следующее:
Cтраница e-shop с ограниченным доступом (https-доступ)
Cтраница e-shop с ограниченным доступом (https-доступ)
…
Команды: стрелки - перемещение, '?' - помощь, 'q' - выход, '<-' - назад. Стрелки: Вверх, Вниз - перемещение. Вправо - переход по ссылке; Влево -
возврат. H)elp O)ptions P)rint G)o M)Глав экран Q)uit /=поиск
[delete]=список истории
Завершите работу с браузером.
Выполнение Apache HTTP Server в среде chroot-jail
Потенциальные уязвимости Apache HTTP Server , как и любого другого программного обеспечения, могут использоваться для реализации атак на вашу систему. Поэтому для повышения безопасности вашей системы Apache HTTP Server можно заставить работать в окружении chroot-jail. Это не простая задача. При этом может потребоваться дополнительные и не всегда заканчивающиеся успехом попытки по адаптации программ (сценариев), обслуживаемых сервером, для работы в среде chroot-jail. Тем не менее, если вы всетаки желаете протестировать работоспособность вашего сервера в относительно безопасном окружении, руководствуйтесь ниже приведенными рекомендациями.
Если вы собираетесь использовать Apache HTTP Server с поддержкой PHP и/или модуля mod_perl, пропустите этот раздел и вернитесь к нему после инсталляции и настройки поддержки соответствующих модулей в обычной среде. В этом случае перенос необходимых файлов и каталогов в окружение chroot-jail лучше осуществлять сразу для Apache HTTP Server и всех поддерживаемых им модулей сторонних разработчиков, руководствуясь при этом рекомендациями этой и двух последующих глав.
Шаг 1
Остановите Apache HTTP Server:
[root@test /]# /etc/init.d/httpd stop
Останавливается httpd: [ОК]
Шаг 2
Создайте каталоги, необходимые для организации окружения chroot-jail:
[root@test /]# mkdir -p /chroot/httpd/dev [root@test /]# mkdir -p /chroot/httpd/lib [root@test /]# mkdir -p /chroot/httpd/etc [root@test /]# mkdir -p /chroot/httpd/var/www/ [root@test /]# mkdir -p /chroot/httpd/tmp/ [root@test /]# chmod 777 /chroot/httpd/tmp/
520 |
Часть 10. Программное обеспечение для организации службы HTTP-сервера |
[root@test /]# chmod +t /chroot/httpd/tmp/ [root@test /]# mkdir -p /chroot/httpd/usr/lib [root@test /]# mkdir -p /chroot/httpd/usr/sbin [root@test /]# mkdir -p /chroot/httpd/var/log [root@test /]# mkdir -p /chroot/httpd/var/run [root@test /]# mkdir -p /chroot/httpd/lib/i686
[root@test /]# mkdir -p /chroot/httpd/usr/lib/modules [root@test /]# mkdir -p /chroot/httpd/var/run/ [root@test /]# mkdir -p /chroot/httpd/usr/lib/modules [root@test /]# mkdir -p /chroot/httpd/usr/lib/build
Шаг 3
Перенесите исполняемые файлы Apache HTTP Server и необходимые для его нормальной работы библиотеки в каталоги окружения chroot-jail:
[root@test /]# mv /var/www /chroot/httpd/var/ [root@test /]# mv /etc/httpd /chroot/httpd/etc [root@test /]# mv /var/log/httpd /chroot/httpd/var/log/ [root@test /]# mv /usr/sbin/ab /chroot/httpd/usr/sbin [root@test /]# mv /usr/sbin/apxs /chroot/httpd/usr/sbin
[root@test /]# mv /usr/sbin/checkgid /chroot/httpd/usr/sbin/ [root@test /]# mv /usr/sbin/dbmmanage /chroot/httpd/usr/sbin/ [root@test /]# mv /usr/sbin/htdbm /chroot/httpd/usr/sbin/ [root@test /]# mv /usr/sbin/htdigest /chroot/httpd/usr/sbin/ [root@test /]# mv /usr/sbin/htpasswd /chroot/httpd/usr/sbin/ [root@test /]# mv /usr/sbin/httpd /chroot/httpd/usr/sbin/ [root@test /]# mv /usr/sbin/logresolve /chroot/httpd/usr/sbin/ [root@test /]# mv /usr/sbin/rotatelogs /chroot/httpd/usr/sbin/ [root@test /]# mknod /chroot/httpd/dev/null c 1 3
[root@test /]# chmod 666 /chroot/httpd/dev/null [root@test /]# mknod /chroot/httpd/dev/urandom c 1 9
[root@test /]# chown www.www /chroot/httpd/usr/share/ssl/certs [root@test /]# chown www.www /chroot/httpd/usr/share/ssl/private [root@test /]# mv /usr/share/ssl/private/www.key
/chroot/httpd/usr/share/ssl/private/ [root@test /]# mv /usr/share/ssl/certs/www.crt
/chroot/httpd/usr/share/ssl/certs/ [root@test /]# mv /usr/lib/httpd/modules/*
/chroot/httpd/usr/lib/httpd/modules/ [root@test /]# mv /usr/lib/httpd/build/*
/chroot/httpd/usr/lib/httpd/build/
ЗАМЕЧАНИЕ Лучше сразу не переносить соответствующие файлы и каталоги, а скопировать их. В этом случае, если ваш сервер будет работоспособен в окружении chroot-jail, вы в дальнейшем всегда сможете уничтожить более не нужные файлы, созданные при инсталляции и конфигурировании сервера в обычной среде. В случае, если сервер окажется не работоспособным, вы сможете вернуться к прежней работоспособной конфигурации.
Шаг 4
Создайте список библиотек, используемых демоном httpd, анализируя вывод следующей команды:
[root@test /]# ldd /chroot/httpd/usr/sbin/httpd libssl.so.0.9.7 => /lib/libssl.so.0.9.7 (0x4753d000)
libcrypto.so.0.9.7 => /lib/libcrypto.so.0.9.7 (0x4756d000) libaprutil-0.so.0 => /usr/lib/libaprutil-0.so.0(0x47673000) libgdbm.so.2 => /usr/lib/libgdbm.so.2 (0x47689000) libdb-3.3.so => /lib/libdb-3.3.so (0x4768f000) libexpat.so.0 => /usr/lib/libexpat.so.0 (0x4771e000) libapr-0.so.0 => /usr/lib/libapr-0.so.0 (0x4773d000) libpthread.so.0 => /lib/i686/libpthread.so.0 (0x4775d000) librt.so.1 => /lib/librt.so.1 (0x47771000)
libm.so.6 => /lib/i686/libm.so.6 (0x47782000) libnsl.so.1 => /lib/libnsl.so.1 (0x477a4000) libdl.so.2 => /lib/libdl.so.2 (0x477b9000) libc.so.6 => /lib/i686/libc.so.6 (0x477bc000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x47525000)
