Опубликован: 26.07.2011 | Уровень: для всех | Доступ: платный
Лекция 8:

Настройка некоторых сетевых служб в Debian GNU/Linux

< Лекция 7 || Лекция 8: 12 || Лекция 9 >

HTTP-сервер Apache

HTTP-сервер Apache является программным обеспечением с открытым исходным кодом для операционных систем Linux, Unix, Windows, Mac и Netware. Главной целью проекта является обеспечение защищенных, эффективных и расширяемых HTTP-сервисов, поддерживающих современные стандарты [ 39 ] .

Для установки Apache в Debian можно использовать команду:

# apt-get install apache2

В процессе установки сервер прописывается в автозагрузку и запускается. По умолчанию сервер слушает на всех интерфейсах на TCP-порту с номером 80. Для остановки/запуска/перезапуска сервера можно использовать скрипт apache2 в каталоге /etc/init.d с параметром stop/start/restart соответственно:

# /etc/init.d/apache2 restart

Конфигурационные файлы Apache расположены в каталоге /etc/apache2. В частности настройки сайта по умолчанию расположены в файле /etc/apache2/sites-available/default:

# cat /etc/apache2/sites-available/default
 <VirtualHost *:80>      
   ServerAdmin webmaster@localhost
        DocumentRoot /var/www
         <Directory /> 
                Options FollowSymLinks
                AllowOverride None
         </Directory> 
         <Directory /var/www/> 
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
         </Directory> 

        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
         <Directory "/usr/lib/cgi-bin"> 
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
         </Directory> 

        ErrorLog ${APACHE_LOG_DIR}/error.log
        LogLevel warn
        CustomLog ${APACHE_LOG_DIR}/access.log combined

    Alias /doc/  "/usr/share/doc/" 
     <Directory "/usr/share/doc/"> 
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
     </Directory> 

 </VirtualHost>

В конфигурационных файлах Apache используется теговый подход. В данном случае в теге виртуального узла ( VirtualHost ) описаны его настройки. Присутствуют несколько "дочерних" тегов с описанием каталогов, доступных данному виртуальному узлу ( Directory ). Между тегами <Directory> для каталога можно указазать различные опции (директивы). Например. для каталога /var/www установлен приоритет разрешительных директив ( Order allow, deny ), описывающих правила доступа к данному каталогу; также разрешен доступ всем ( allow from all ) и т.д. Основным каталогом для документов является /var/www (директива DocumentRoot ). Директива Alias описывает виртуальный путь HTTP-сервера, т.е. все запросы вида http://<IP-адрес сервера> /doc/ будут перенаправляться в каталог /usr/share/doc.

Для проверки работоспособности WEB-сервера можно используя Интернет-обозреватель, указав в строке адреса IP-адрес HTTP-сервера. Например (в данном случае используется текстовый браузер с указанием открываемой страницы в качестве параметра):

# lynx http://192.168.56.102

Протоколы работы сайта по умолчанию расположены в каталоге /var/log/apache2.

Apache имеет широкий набор функциональных возможностей, большое количество различных настроек и может использоваться в различных схемах WEB-доступа. Более подробную информацию по настройке и применению Apache можно найти в официальной документации [ 41 ] , книгах и пособиях, посвященных этой программе, а также в сети Интернет.

Кэширующий прокси-сервеp

Кэширующий прокси-сервер Squid [ 42 ] представляет собой реализацию прокси прикладного уровня для WEB-трафика (протоколы HTTP, HTTPS, FTP и т.д.). Обычно squid устанавливается на компьютере, имеющем как минимум два сетевых интерфейса: один с доступом в сети Интернет, а другой — в локальную сеть. Интернет-обозреватель или программа, взаимодействующая с прокси, настраивается на адрес прокси в локальной сети и заданный порт и далее все WEB-запросы отправляет прокси-серверу. Прокси обслуживает запросы клиентов, используя Интернет-интерфейс. При этом часть WEB-трафика сохраняется на файловой системе прокси (кэшируется), а при повторных запросах клиентов данные извлекаются из кэша.

Пример 8.5. Пример простой настройки Squid в Debian

Используя VirtualBox, создадим простой стенд для отладки схемы доступа в Интернет на основе Squid. Стенд будет включать две виртуальные машины на основе Debian: прокси-сервер и клиент локальной сети.

На прокси-сервере:

1.В VirtualBox предварительно для виртуальной машины включим два сетевых интерфейса: один в сеть NATИнтернет-интерфейс (полагаем, что основная система имеет доступ в Интернет), а второй — во внутреннюю сеть (локальный интерфейс)

2.Включим виртуальную машину и настроим интерфейсы: eth0 — Интернет-интерфейс, eth1 — интерфейс локальной сети (фрагмент /etc/network/interfaces ):

auto eth0
iface eth0 inet dhcp

auto eth1
iface eth1 inet static
    address 192.168.1.1
    netmask 255.255.255.0

Перезапустим сетевую подсистему:

# /etc/init.d/networking restart

В результате интерфейс eth0 получит настройки по протоколу DHCP (от NAT-сети VirtualBox ):

# ip addr show eth0
2: eth0:  <BROADCAST,MULTICAST,UP,LOWER_UP>  mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:0a:41:d4 brd ff:ff:ff:ff:ff:ff
    inet 10.0.2.15/24 brd 10.0.2.255 scope global eth0
    inet6 fe80::a00:27ff:fe0a:41d4/64 scope link
       valid_lft forever preferred_lft forever

Также будут автоматически прописаны настройки DNS-сервера (такие как в хостовой системе):

# cat /etc/resolv.conf
nameserver 10.10.10.10

3.Установим squid:

#apt-get install squid

В процессе установки сервер прописывается в автозагрузку, создает структуру каталогов для дискового кэша (/var/spool/squid) и запускается.

4.Конфигурационный файл Squid - /etc/squid/squid.conf. По умолчанию удаленный доступ к squid запрещен. Для разрешения доступа нужно в конфигурационный файл добавить разрешающее правило для сети 192.168.1.0/24. Для этого в секции ACCESS CONTROLS впишем список доступа ( access list ):

acl mynet src 192.168.1.0/24

а затем в секции http_access после правила http_access allow localhost добавим:

http_access allow mynet

Также исправим опцию http_port, что squid принимал клиентские запросы только на локальном интерфейсе:

http_port 192.168.1.1:3128

Перезапустим squid:

# /etc/init.d/squid restart

5.Запустим виртуальную машину клиента, предварительно установив в VirtualBox сетевой адаптер в режим внутренней сети. В системе установим IP-адрес из сети 192.168.1.0/24. Проверим работу прокси-сервера c помощью текстового браузера lynxlynx опцию прокси-сервера можно установить с помощью переменной окружения):

# env http_proxy=''http://192.168.1.1:3128''  lynx http://intuit.ru
Примечание: Протоколы работы squid хранятся в каталоге /var/log/squid. Файл access.log — протокол запросов, cache.log - общий лог, store.log — лог кэша.

Программное обеспечение squid имеет широкие функциональные возможности и может работать в различных режимах. Более подробную информацию о настройке и использовании squid можно получить из официальной документации, книг и ресурсов сети Интернет.

Упражнения

  1. Воспроизвести с использованием VirtualBox пример 8.1, пример 8.2, пример 8.3, пример 8.4. В качестве клиента можно воспользоваться еще одной виртуальной машиной или хостовой системой (в случае Windows использовать средства ssh, доступные для данной ОС).
  2. В VirtualBox воспроизвести пример 8.5.
< Лекция 7 || Лекция 8: 12 || Лекция 9 >
Нияз Сабиров
Нияз Сабиров

Здравствуйте. А уточните, пожалуйста, по какой причине стоимость изменилась? Была стоимость в 1 рубль, стала в 9900 рублей.

Елена Сапегова
Елена Сапегова

для получения диплома нужно ли кроме теоретической части еще и практическую делать? написание самого диплома требуется?

Алексей Приходько
Алексей Приходько
Украина, Днепропетровск, Украинский государственный Химико-технологический университет, 2013
Юрий Волоховский
Юрий Волоховский
Украина, Харьков, ХарГАЖТ, 2007