LINUX-сервер пошаговые инструкции инсталляции и настройки - Бруй В. В. , Карлов С. В
..pdf
Глава 36. mod_perl – модуль, позволяющий включить интерпретатор языка Perl... |
541 |
В этой глава рассматривается еще один модуль сторонних разработчиков, ориентированный на совместное использование с Apache HTTP Server – mod_perl. Модуль mod_perl позволяет включить интерпретатор языка Perl непосредственно в Apache HTTP Server, после чего Web-сервер может существенно быстрее (на сервере разработчиков представлен пример, демонстрирующий увеличение быстродействия простого сценария в 30 раз) выполнять код написанных на Perl сценариев. Использование модуля целесообразно только в том случае, если на своем сервере вы активно используете сценарии, написанные на языке Perl.
Ограничения и допущения
Исходные коды находятся в каталоге /var/tmp.
Все операции выполняются пользователем с учетной записью root. Используется дистрибутив ASPLinux 7.3 (Vostok).
Перекомпиляция ядра не требуется.
Процедуры, описанные в этой главе, могут оказаться применимыми для других версий ядра и дистрибутивов Linux, но авторы этого не проверяли.
Пакеты
Последующие рекомендации основаны на информации, полученной с домашней страницы проекта mod_perl по состоянию на 14.07.2003. Регулярно посещайте домашнюю страницу проекта http://perl.apache.org/и отслеживайте обновления.
Исходные коды mod_perl содержатся в архиве mod_perl-2.0-current.tar.gz (последняя доступная на момент написания главы стабильная версия mod_perl-1.99_09).
Для инсталляции и нормальной работы mod_perl должен быть установлен Apache HTTP Server версии
2.0.xx.
Если вы предпочитаете использование системы со стандартным ядром и программным обеспечением, установленным из rpm-пакетов, для установки или обновления пакета необходимо выполнить следующие операции.
ЗАМЕЧАНИЕ Авторы настоятельно рекомендуют устанавливать программное обеспечение из исходных кодов.
Шаг 1
Проверьте, установлен ли пакет программы mod_perl с помощью следующей команды:
[root@test /]# rpm –iq mod_perl
Шаг 2
Перейдите в каталог, где находится пакет mod_perl-1.26-5.i386.rpm. Если вы в соответствии с рекомендациями главы 2 скопировали все пакеты, входящие в дистрибутив, в каталог /home/distrib, то выполните команду:
[root@test /]# cd /home/distrib
и установите:
[root@test distrib]# rpm -ihv mod_perl-1.26-5.i386.rpm
или обновите пакет:
[root@test distrib]# rpm –Uhv mod_perl-1.26-5.i386.rpm
Компиляция, оптимизация и инсталляция mod_perl
Для инсталляции mod_perl из исходных кодов необходимо выполнить следующие операции.
Шаг 1 Осуществите проверку подлинности имеющегося в вашем распоряжении архива с исходными кода-
ми. Для этого можно воспользоваться процедурой, описанной в шаге 1 радела «Компиляция, оптимизация и инсталляция OpenSSL» главы 12.
Шаг 2
Распакуйте архивы с исходными кодами mod_perl в каталоге /var/tmp:
[root@test tmp]# tar xzpf mod_perl-2.0-current.tar.gz
Шаг 3
542 Часть 10. Программное обеспечение для организации службы HTTP-сервера
Сконфигурируйте, откомпилируйте, проинсталлируйте mod_perl, создайте и сохраните в надежном месте список установленных файлов:
[root@test tmp]# cd mod_perl-1.99_09
[root@test mod_perl-1.99_09]# perl Makefile.PL MP_APXS=/usr/sbin/apxs
[root@test mod_perl-1.99_09]# make
[root@test mod_perl-1.99_09]# find /* > /root/mod_perl1 [root@test mod_perl-1.99_09]# make install
[root@test mod_perl-1.99_09]# find /* > /root/mod_perl2
[root@test mod_perl-1.99_09]# diff /root/mod_perl1 /root/mod_perl2 >
/root/mod_perl.installed
[root@test mod_perl-1.99_09]# mv /root/mod_perl.installed
/very_reliable_place/mod_perl.installed.YYYYMMDD
Шаг 4 Удалите архив и каталог с исходными кодами:
[root@test mod_perl-1.99_09]# cd /var/tmp/
[root@test tmp]# rm -rf mod_perl-1.99_09/ [root@test tmp]# rm -f mod_perl-2.0-current.tar.gz
Конфигурирование mod_perl
Для |
включения |
поддержки |
mod_perl |
в |
Apache |
HTTP |
Server |
в |
файле |
/etc/httpd/conf/httpd.conf добавьте (проверьте наличие) строки: |
|
|
|
|
|||||
LoadModule perl_module |
modules/mod_perl.so |
|
|
|
|||||
Тестирование mod_perl
Для тестирования mod_perl выполните следующие операции.
Шаг 1
Перезапустите Apache HTTP Server:
[root@test /]# /etc/init.d/httpd restart
Запускается httpd: |
[ОК] |
Останавливается httpd: |
[ОК] |
Шаг 2 Разместите в каком-нибудь каталоге вашего сервера, предназначенного для хранения файлов-
сценариев, например, /var/www/eshop/cgi-bin/, файл printenv, содержащий следующие строки:
#!/usr/bin/perl
##
## printenv -- demo CGI program which just prints its environment
##
print "Content-type: text/plain\n\n"; foreach $var (sort(keys(%ENV))) {
$val = $ENV{$var}; $val =~ s|\n|\\n|g; $val =~ s|"|\\"|g;
print "${var}=\"${val}\"\n";
}
Шаг 3
Сделайте файл исполняемым и определите его владельцем пользователя www:
[root@test /]# chmod 500 /var/www/eshop/cgi-bin/printenv [root@test /]# chown www.www /var/www/eshop/cgi-bin/printenv
Шаг 4 Проверьте работоспособность сценария:
[karlnext@test karlnext]$ lynx eshop.bruy.info/cgi-bin/printenv
Если вы увидите вывод, подобный этому:
DOCUMENT_ROOT="/var/www/eshop/html/" GATEWAY_INTERFACE="CGI/1.1"
Глава 36. mod_perl – модуль, позволяющий включить интерпретатор языка Perl... |
543 |
HTTP_ACCEPT="text/html, text/plain, text/sgml, */*;q=0.01" HTTP_ACCEPT_CHARSET="koi8-r, iso-8859-1;q=0.01, us-ascii;q=0.01" HTTP_ACCEPT_ENCODING="gzip, compress" HTTP_ACCEPT_LANGUAGE="en,ru"
HTTP_HOST="eshop.bruy.info"
HTTP_USER_AGENT="Lynx/2.8.4rel.1 libwww-FM/2.14 SSL-MM/1.4.1 OpenSSL/0.9.6b" PATH="/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin" QUERY_STRING=""
REMOTE_ADDR="212.111.80.127" REMOTE_PORT="40359" REQUEST_METHOD="GET" REQUEST_URI="/cgi-bin/printenv"
SCRIPT_FILENAME="/var/www/eshop/cgi-bin/printenv" SCRIPT_NAME="/cgi-bin/printenv" SERVER_ADDR="212.111.80.127" SERVER_ADMIN="sales@test.bruy.info" SERVER_NAME="eshop.bruy.info"
SERVER_PORT="80" SERVER_PROTOCOL="HTTP/1.0" SERVER_SIGNATURE="" SERVER_SOFTWARE="Apache"
то модуль mod_perl правильно установлен и интегрирован с Apache HTTP Server.
Выполнение mod_perl в окружении chroot-jail
Потенциальные уязвимости mod_perl, как и любого другого программного обеспечения, могут использоваться для реализации атак на вашу систему. Поэтому для повышения безопасности вашей системы mod_perl можно заставить работать в окружении chroot-jail. Это не простая задача, при этом может потребоваться дополнительные и не всегда заканчивающиеся успехом попытки по адаптации программ (сценариев), содержащих Perl-код, для работы в окружении chroot-jail. Тем не менее, если вы все-таки желаете протестировать работоспособность вашего сервера в относительно безопасном окружении, руководствуйтесь ниже приведенными рекомендациями. Перенос в окружение chroot jail лучше осуществлять сразу для Apache HTTP Server и всех поддерживаемых им модулей сторонних разработчиков, руководствуясь при этом рекомендациями этой и двух предыдущих глав.
Шаг 1
Выполните все рекомендации раздела «Выполнение Apache HTTP Server в среде chroot jail» главы 34 по переносу и тестированию Apache HTTP Server в окружение chroot-jail. Только после удачного тестирования переходите к следующему шагу.
Шаг 2
Если вы используете PHP, выполните все рекомендации раздела «Выполнение PHP в окружении chroot-jail» главы 35 по переносу и тестированию в окружение chroot-jail. Только после удачного тестирования переходите к следующему шагу.
Шаг 3 Остановите:
[root@test /]# /etc/init.d/httpd stop
Останавливается httpd: [ОК]
Шаг 4
Создайте в окружении chroot jail необходимые каталоги и скопируйте в них файлы, требующиеся для работы mod_perl:
[root@test /]# mkdir -p /chroot/httpd/usr/bin/ [root@test /]# cp /usr/lib/httpd/modules/mod_perl.so
/chroot/httpd/usr/lib/httpd/modules/
[root@test /]# cp -a /usr/lib/perl5 /chroot/httpd/usr/lib/ [root@test /]# cp /usr/bin/perl /chroot/httpd/usr/bin/ [root@test /]# cp /lib/libutil.so.1 /chroot/httpd/lib [root@test /]# cp -a /etc/locale /chroot/httpd/etc/ [root@test /]# cp -a /usr/lib/locale /chroot/httpd/usr/lib/
544 |
Часть 10. Программное обеспечение для организации службы HTTP-сервера |
|
|
[root@test /]# cp -a /usr/share/locale /chroot/httpd/usr/share/ |
|
|
[root@test /]# cp /usr/bin/locale /chroot/httpd/usr/bin |
|
|
Шаг 5 |
|
|
Запустите Apache HTTP Server: |
|
|
[root@test /]# /etc/init.d/httpd start |
[ОК] |
|
Запускается httpd: |
|
Шаг 6
Протестируйте работоспособность сервера в окружении chroot-jail c поддержкой с использованием рекомендаций раздела «Тестирование mod_perl». Результаты тестирования должны быть идентичны результатам, полученным при тестировании работоспособности сервера запущенного в обычном окружении.
Глава 37. Сервер Samba |
545 |
Часть 11
Программное обеспечение для организации совмест-
ного использования общих сетевых ресурсов
546 |
Часть 11. Программное обеспечение для организации совместного использования.... |
Глава 37
Сервер Samba
В этой главе:
1. Ограничения и допущения
2.Пакеты
3.Инсталляция с помощью rpm-пакетов
4.Компиляция, оптимизация и инсталляция Samba
5.Конфигурирование Samba
6.Конфигурационный файл /etc/samba/smb.conf
7.Конфигурационный файл /etc/samba/lmhosts
8.Конфигурационный файл /etc/sysconfig/samba
9.Конфигурационный файл /etc/pam.d/samba
10. Конфигурационный файл /etc/logrotate.d/samba
11. Файл инициализации /etc/lnit.d/smb
12. Добавление новых пользователей (конфигурационный файл /etc/samba/smbpasswd)
13. Тестирование Samba
Глава 37. Сервер Samba |
547 |
Для организации совместного доступа к сетевым ресурсам рабочих станций и серверов, использующих различные операционные системы, необходимо соответствующее программное обеспечение. Таковым является сервер Samba, одной из функций которого является предоставление совместного доступа пользователям, работающим в различных операционных системах (Linux, Microsoft Windows, OS/2 и др.) к общим сетевым ресурсам – файлам и принтерам. Кроме того, в комплект поставки программного обеспечения Samba входят клиентские программы – например, smbclient, позволяющая устанавливать соединение с другими системами по протоколу SMB и работать с размещенными на них файлами по аналогии, как это делается с FTP-клиентом, smbmount, предназначенная для монтирования файловых систем, обслуживаемых сервером Samba – и средства администрирования.
В настоящее время готовится к выходу новая версия Samba 3.0. К сожалению, на момент написания этой главы была доступна только версия, предназначенная для тестирования Samba-3.0.0beta3. Использование версий программ, предназначенных для тестирования, недопустимо на серверах и рабочих станциях, используемых для решения практических задач. Тем не менее, мы протестировали новую версию Samba в надежде, что когда эта книга дойдет до своего читателя, разработчики устранят основные недостатки новой версии программного обеспечения и стабильной версией станет версия Samba 3.0.xx. По этой же причине (т. к. разработчики могут изменить порядок настройки Samba) в этой главе мы ограничимся рассмотрением простейшего случая инсталляции, компиляции и настройки Samba в качестве отдельно стоящего файлсервера с организацией доступа пользователей с PAM-аутентификацией. Другие возможности этого программного продукта, который, скорее всего, станет в ближайшее время адекватной заменой программных продуктов от Microsoft, вы сможете освоить самостоятельно. Проект прекрасно документирован и применение его на практике часто и достаточно подробно обсуждается в различных статьях, списках рассылки и форумах, в том числе, и на русском языке. Схема организации совместного доступа к сетевым ресурсам представлена на рис. 37.1.
Ограничения и допущения
Исходные коды находятся в каталоге /var/tmp.
Все операции по инсталляции и настройке выполняются пользователем с учетной записью root. Используется дистрибутив ASPLinux 7.3 (Vostok).
Процедуры, описанные в этой главе, могут оказаться применимыми для других версий ядра и дистрибутивов Linux, но авторы это не проверяли.
Пакеты
Последующие рекомендации основаны на информации, полученной с домашней страницы проекта Samba по состоянию на 25.07.2003. Регулярно посещайте домашнюю страницу проекта http://www.samba.org/и отслеживайте обновления.
Исходные коды Samba содержатся в архиве samba-version.tar.gz (последняя доступная на момент написания главы стабильная версия samba-3.0.0beta3.tar.gz).
Для нормальной инсталляции и работы Samba необходима установка OpenSSL. В случае, если на вашем сервере установлено программное обеспечение OpenSSL или ядро, собранное из исходных кодов, инсталляция Samba из rpm-пакетов, входящих в комплект поставки дистрибутива, скорее всего, будет невозможной.
Инсталляция с помощью rpm-пакетов
Если вы предпочитаете использование системы со стандартным ядром и программным обеспечением, установленным из rpm-пакетов, для установки или обновления пакета необходимо выполнить некоторые операции.
ЗАМЕЧАНИЕ Авторы настоятельно рекомендуют устанавливать программное обеспечение из исходных кодов.
Если вы следовали за установкой, описанной в этой книге, для инсталляции Samba вам понадобятся следующие пакеты, входящие в дистрибутив ASPLinux 7.3:
•tcsh-6.10-6.src.rpm;
•samba-2.2.3a-6.asp.i386.rpm;
•samba-client-2.2.3a-6.asp.i386.rpm;
•samba-common-2.2.3a-6.asp.i386.rpm.
Глава 37. Сервер Samba |
549 |
ЗАМЕЧАНИЕ Программа OpenSSL должна быть установлена обязательно из пакета. Для данной вер-
сии дистрибутива – openssl-0.9.6b-24asp.i686.rpm.
Шаг 1 Проверьте, установлены ли пакеты программ из списка, приведенного выше. Используйте, например,
команду вида:
[root@drwalbr /]# rpm –iq samba
Шаг 2
Перейдите в каталог, где находятся rpm-пакеты. Если вы в соответствии с рекомендациями главы 2 скопировали все пакеты, входящие в дистрибутив, в каталог /home/distrib, то выполните команду:
[root@drwalbr /]# cd /home/distrib
Шаг 3 Установите необходимые пакеты:
root@drwalbr distrib]# rpm -ihv tcsh-6.10-6.src.rpm \ samba-2.2.3a-6.asp.i386.rpm \ samba-client-2.2.3a-6.asp.i386.rpm \ samba-common-2.2.3a-6.asp.i386.rpm
После установки пакетов перейдите к настройке программы Samba.
Компиляция, оптимизация и инсталляция Samba
Для инсталляции Samba из исходных кодов необходимо выполнить следующие операции.
Шаг 1 Осуществите проверку подлинности имеющегося в вашем распоряжении архива с исходными кода-
ми, воспользовавшись, например, процедурой, описанной в шаге 1 радела «Компиляция, оптимизация и инсталляция OpenSSL» главы 12.
Шаг 2
Распакуйте архивы с исходными кодами Samba в каталоге /var/tmp:
[root@drwalbr tmp]# tar xzpf samba-3.0.0beta3.tar.gz
Шаг 3
Сконфигурируйте исходные коды Samba:
[root@drwalbr tmp]# cd samba-3.0.0beta3/source
[root@drwalbr source]# CFLAGS="-O2 -march=i686 -funroll-loops -
D_GNU_SOURCE"; export CFLAGS
./configure \ --prefix=/usr \ --sysconfdir=/etc \ --localstatedir=/var \ --libdir=/etc/samba \ --mandir=/usr/share/man \
--with-privatedir=/etc/samba \ --with-lockdir=/var/lock/samba \ --with-piddir=/var/run/samba \ --with-swatdir=/usr/share/swat \ --with-codepagedir=/usr/share/samba/codepages \ --with-sslinc=/usr/include \ --with-ssllib=/usr/lib \
--with-ssl \ --with-fhs \ --with-pam \ --with-syslog \ --with-quotas \
Врассматриваемом примере изменены каталоги, используемые для установки Samba по умолчанию,
иоставлен минимальный набор опций, необходимый для работы сервера.
