Kniga-Online.club
» » » » Денис Колисниченко - Linux-сервер своими руками

Денис Колисниченко - Linux-сервер своими руками

Читать бесплатно Денис Колисниченко - Linux-сервер своими руками. Жанр: Программное обеспечение издательство -, год 2004. Так же читаем полные версии (весь текст) онлайн без регистрации и SMS на сайте kniga-online.club или прочесть краткое содержание, предисловие (аннотацию), описание и ознакомиться с отзывами (комментариями) о произведении.
Перейти на страницу:

Поддержка виртуальных хостов обеспечивается директивами VirtualHost и NameVirtualHost. Если ваша система имеет только один IP-адрес, его нужно указать в директиве VirtualHost. Внутри блока директивы VirtualHost записывается директива ServerName. Эта директива задает доменное имя для создаваемого виртуального сервера. Это обязательно нужно сделать, чтобы избежать поиска службой DNS — вы же не хотите, чтобы при неудачном поиске виртуальный сервер был заблокирован? Все директивы VirtualHost используют один и тот же IP-адрес, заданный директивой NameVirtualHost. В блоке VirtualHost записываются параметры виртуального сервера, причем они записываются для каждого виртуального сервера отдельно. Пример приведен в листинге 12.9.

Листинг 12.9. Два виртуальных сервера — www 121– и lib

ServerName den.dhsilabs.com

<NameVirtualHost 192.168.1.1>

<VirtualHost 192.168.1.1>

 ServerName www.dhsilabs.com

 ServerAdmin [email protected]

 DocumentRoot /var/httpd/www/html

 Error Log /var/https/www/logs/error.log

 TransferLog logs/access.log

</VirtualHost>

<VirtualHost 192.168.1.1>

 ServerName lib.dhsilabs.com

 ServerAdmin [email protected]

 DocumentRoot/var/httpd/lib/html

 ErrorLog /var/https/lib/logs/error.log

 TransferLog logs/access.log

</VirtualHost>

Если ваша система имеет только один IP-адрес, доступ к основному серверу станет невозможным, то есть вы не сможете использовать его напрямую. Можно основной сервер использовать в качестве виртуального, что я и сделал в листинге 12.9: основной сервер www является виртуальным. При наличии двух IP-адресов можно один присвоить основному серверу, а другой — виртуальному.

Сервер Apache позволяет использовать несколько доменных имен для доступа к одному серверу, например:

ServerAlias www.dhsilabs.com www2.dhsilabs.com

При этом запросы, посланные по IP-адресам, которые присвоены вашим виртуальным хостам, должны соответствовать одному из указанных доменных имен. Чтобы зафиксировать запросы, не соответствующие ни одному их этих имен, нужно с помощью опции default:* создать виртуальный хост, который будет обслуживать такие запросы: <VirtualHost _default_:*>

Обратите внимание на то, что в рассмотренном примере адреса www.dhsilabs.com и lib.dhsilabs.com должны быть прописаны в DNS.

12.4.2. Виртуальные серверы с идентификацией по IP-адресу

В директиве VirtualHost в качестве адресов можно использовать доменные имена, но лучше указывать IP-адрес, причем действительный, а не виртуальный. В этом случае вы не будете зависеть от DNS при разрешении имени. Также потребуется один IP-адрес для вашего основного сервера. Если же распределить все адреса между виртуальными серверами, то нельзя будет получить доступ к основному серверу.

Листинг 12.10. Идентификация по IP-адресу

<VirtualHost 192.168.1.2>

 ServerName www.dhsilabs.com

 ServerAdmin [email protected]

 DocumentRoot /var/httpd/www/html

 ErrorLog /var/https/www/logs/error.log

</VirtualHost>

<VirtualHost lib.dhsilabs.com>

 ServerName lib.dhsilabs.com

 ServerAdmin [email protected]

 DocumentRoot /var/httpd/lib/html

 ErrorLog /var/https/lib/logs/error.log

</VirtualHost>

В приведенном примере (см. листинг 12.10) сконфигурированы два виртуальных сервера с идентификацией по IP-адресу. Один из них использует сам IP-адрес, а другой — доменное имя, соответствующее IP-адресу.

При конфигурировании виртуальных серверов можно использовать опцию ExecCGI, которая разрешает выполнение CGI-скриптов на виртуальном сервере. Ниже приведен пример для почтового Web-интерфейса (листинг 12.11).

Листинг 12.11. Подключение почтового Web-интерфейса

# Файл httpd.conf

<Directory /home/httpd/mail>

 order deny,allow

 deny from all

 allow from localhost

 allow from 192.168

 allow from 123.123.123.123

 Options ExecCGI

</Directory>

# Файл vhosts.conf

<VirtualHost 123.123 .123.123>

 ServerAdmin [email protected]

 DocumentRoot /home/httpd/mail

 ServerPath /mail

 ServerName wwwmail.dhsilabs.com

 ErrorLog logs/error_log

 TransferLog logs/access_log

 ErrorDocument 403 http://www.dhsilabs.com/messages/error403.html

</VirtualHost>

# Error 403 — доступ извне, то есть почтовый интерфейс будет доступен только

# из локальной сети

12.5. SSL и Apache

12.5.1. Установка SSL

SSL (Secure Sockets Layer) является методом шифрования, разработанным компанией Netscape для обеспечения безопасности в Интернет. Этот метод поддерживает несколько способов шифрования и обеспечивает аутентификацию как на уровне клиента, так и на уровне сервера. SSL работает на транспортном уровне и поэтому обеспечивает надежное шифрование всех типов данных. Более подробно о реализации SSL можно прочитать на сайте компании Netscape — http://home.netscape.com/info/security-doc.html

Протокол S-HTTP является еще одним «безопасным» Интернет-протоколом. Он был разработан для предоставления конфиденциальности данных, передаваемых через соединение. Конфиденциальность нужна, например, при передаче номеров кредитных карточек и прочей важной информации.

Модуль mod_ssl реализует в сервере Apache слой SSL, который осуществляет шифрование всего потока данных между клиентом и сервером. Для всех остальных частей Web-сервера модуль mod_ssl является прозрачным. Для работы в этом режиме требуется браузер, поддерживающий механизм SSL (этому условию удовлетворяют все современные распространенные браузеры).

Что касается установки, то вам необходимо установить пакет OpenSSL (http://www.openssl.org), хотя возможно у вас в системе уже установлен этот пакет. Для проверки этого введите openssl, и если вы увидите в ответ приглашение OpenSSL>, значит — OpenSSL уже установлен. В противном случае для установки OpenSSL выполните следующие шаги (перед этим выполните команду su для того, чтобы приобрести привилегии суперпользователя):

1. Распакуйте последнюю версию OpenSSL командой:

tar zxvf openssl-x.у.z.tar.gz (x.y.z — номер версии).

2. Перейдите в каталог openssl-x.y.z и выполните команду:

./config.

3. Если все нормально (нет ошибок), введите команду:

make

Примечание. При возникновении ошибок, скорее всего вам придется установить недостающие пакеты.

4. Затем нужно ввести команды make install и ldconfig. Перед выполнением команды ldconfig убедитесь, что в файле /etc/ld.so.conf прописан путь к библиотекам OpenSSL (по умолчанию это /usr/local/ssl/lib).

12.5.2. Подключение SSL к Apache

Теперь осталось подключить mod_ssl к Apache. При этом следует учитывать, что вам нужна версия mod_ssl, которая совместима с вашей версией Apache. Иначе модуль mod_ssl будет некорректно работать или вообще откажется что-либо делать. Последние цифры в названии модуля указывают на совместимость с определенной версией Apache. Например, для Apache 1.3.14 нужен файл mod_ssl-2.7.1-1.3.14.tar.gz. Здесь 2.7.1 — версия mod_ssl. Распакуйте модуль командой:

tar zxvf mod_ssl-x.у.z-2.0.0.tar.gz

и выполните команду:

./configure –with-apache=../apache_1 .3.14 –with-ssl=../openssi-0.9.5

В данном примере я использую OpenSSL 0.9.5. Теперь перейдите в каталог с Apache, откомпилируйте его и установите сертификат:

cd ../apache-1.3.14

make

make certificate

make install

Таким образом вы установите Apache в каталог, указанный в опции — prefix (по умолчанию /usr/local/apache). Теперь попробуйте запустить Apache. Это можно сделать с помощью команды:

usr/local/apache/bin/apachectl startssl

Параметр startssl необходим для включения SSL. Сервер Apache уже функционирует, однако обратиться по протоколу https вы еще не можете. Для этого вам нужно сконфигурировать виртуальные хосты, которые будут использовать протокол https. Но для начала необходимо настроить Apache для прослушивания порта 443. С этой целью откройте любым редактором файл /etc/httpd/conf/httpd.conf и добавьте в него следующие строки:

Listen 443

NameVirtualHost x.x.x.x:443

Примечание. Порт 443 — это стандартный порт для протокола HTTPS. Именно по этому порту Apache будет прослушивать виртуальные хосты. 

Теперь непосредственно приступите к созданию виртуального сервера, работающего по протоколу https, для чего продолжите редактирование файла /etc/httpd/conf/httpd.conf. Пример того, что необходимо при этом ввести, приведен в листинге 12.12:

Листинг 12.12. Виртуальный https-cepвep

<VirtualHost x.x.x.x:443>

# Эти строки нужны для поддержки SSL

SSLEngine on

SSLLogLevel warn

SSLOptions+StdEnvVars

SSLCertificateFile /usr/local/apache/conf/ssl.crt/server.crt

SSLCertificateKeyFile /usr/local/apache/conf/ssl.key/server.key

SSLLog /usr/local/apache/logs/ssl_engine_log

# -----------------------

ServerName www.dhsilabs.com

ServerAdmin [email protected]

DocumentRoot /var/httpd/www/html

ErrorLog /var/https/www/logs/error.log

Перейти на страницу:

Денис Колисниченко читать все книги автора по порядку

Денис Колисниченко - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки kniga-online.club.


Linux-сервер своими руками отзывы

Отзывы читателей о книге Linux-сервер своими руками, автор: Денис Колисниченко. Читайте комментарии и мнения людей о произведении.


Уважаемые читатели и просто посетители нашей библиотеки! Просим Вас придерживаться определенных правил при комментировании литературных произведений.

  • 1. Просьба отказаться от дискриминационных высказываний. Мы защищаем право наших читателей свободно выражать свою точку зрения. Вместе с тем мы не терпим агрессии. На сайте запрещено оставлять комментарий, который содержит унизительные высказывания или призывы к насилию по отношению к отдельным лицам или группам людей на основании их расы, этнического происхождения, вероисповедания, недееспособности, пола, возраста, статуса ветерана, касты или сексуальной ориентации.
  • 2. Просьба отказаться от оскорблений, угроз и запугиваний.
  • 3. Просьба отказаться от нецензурной лексики.
  • 4. Просьба вести себя максимально корректно как по отношению к авторам, так и по отношению к другим читателям и их комментариям.

Надеемся на Ваше понимание и благоразумие. С уважением, администратор kniga-online.


Прокомментировать
Подтвердите что вы не робот:*
Подтвердите что вы не робот:*