Proxy-сервер для офиса. Часть 2

В прошлый раз мы настроили прокси-сервер под управлением Squid, а также настроили периметр легкой защиты с помощью антивируса ClamAV и фильтра трафика DansGuardian (см. КГ № 13). Все это чудесно, и все это работает, но перед нами еще стоят две проблемы, которые стоит решить. Первая – это подключение к сети новых пользователей. Согласитесь, что индивидуальная настройка браузера для работы через прокси – это нежелательно. Идеально, если браузер сам сможет получать все необходимые настройки. Посему мы должны настроить WPAD (Web Proxy Auto Detection). Вторая проблем, даже не проблема, а вопрос, который, вероятно, возник у многих – как подключить всю эту кухню к локальной сети и заставить работать. Что ж, давайте будем решать эти задачи. Начнем с WPAD.

Для настройки автодетекта прокси-сервера нам понадобится web-сервер. Наиболее популярный – Apache, однако он немного тяжеловат для такой простенькой задачи. Поэтому я бы рекомендовал использовать для таких целей lighttpd. А вот рассматривать мы будем оба варианта – что вам ближе, то и выбирайте.

Установка lighttpd

Итак, начнем с того, что поставим пакет. Делается это следующей командой:

$ sudo apt-get install lighttpd

Для того чтобы у нас все работало, необходимо настроить тип mime. Для этого, как обычно, будем использовать утилиту редактирования nano:
$ sudo nano /etc/lighttpd/lighttpd.conf

В конец конфигурационного файла добавляем строчку:

mimetype.assign = ( ".dat" => "application/x-ns-proxy-autoconfig" )

Сохраняем все это дело и рестартим демон:

sudo /etc/init.d/lighttpd restart

Все, веб-сервер установлен и готов выполнять свою работу.

Установка Apache

Как я и говорил, рассмотрим и Apache, для особенных фанатов :). Ставим пакет:

$ sudo apt-get install apache2

Готово, теперь так же добавляем соответствующий mime в файл конфигурации:

$ sudo nano /etc/apache2/httpd.conf

Добавляем строчку:

AddType application/x-ns-proxy-autoconfig .dat

Готово, после этого рестартим демон:

$ sudo /etc/init.d/apache2 start

Все, один из вышеуказанных серверов у вас установлен, теперь переходим к настройке самого скрипта автоконфигурации.

Создаем wpad.dat

Для обоих веб-серверов рабочая директория по дефолту - /var/www, это не новость для многих. Чтобы создать в ней файл скрипта, выполняем следующую команду:

$ sudo touch /var/www/wpad.dat

Далее редактируем файл, так как на данный момент он пуст:

$ sudo nano /var/www/wpad.dat

Вписываем следующие строки:

function FindProxyForURL(url, host)
{
if (isInNet(host, "192.168.1.0", "255.255.255.0"))
return "DIRECT";
else
return "PROXY 192.168.1.1:8080";
}

Разберемся, что тут написано. 192.168.1.0 – адрес вашей локальной сети, если в сети компьютеры с IP 192.168.2.1-192.168.2.254, то значение 192.168.2.0, соответственно. 255.255.255.0 – маска подсети, а 192.168.1.1:8080 – адрес и порт прокси-сервера. Все, теперь сохраняем, рестартим демон веб-сервера и пробуем открыть наш скрипт по адресу http://ip-proxy/wpad.dat. Браузер должен предложить сохранить файл, если не получилось открыть – проверьте, все ли сделано правильно.

Кажется, все готово? Но нет, чтобы новый компьютер, который был подключен к сети только что, не заблудился, нам понадобится еще и dhcp-сервер.

Установка dhcp3

Итак, устанавливаем dhcp3:

$ sudo apt-get install dhcp3

После этого сразу идем в файл конфигурации:

$ sudo nano /etc/dhcp3/dhcpd.conf

Добавляем в файл конфигурации строку:

option custom-proxy-server "http://x.x.x.x/wpad.dat

Как уже многие догадались, х.х.х.х – IP-адрес proxy-сервера, то есть указываем dhcp, где же взять скрипт, который следует передать новому хосту в сети. Для примера и чтобы облегчить вам настройку dhcp3, помимо раздачи wpad скрипта, я приведу стандартную конфигурацию, изучите:

address 192.168.1.255;
option routers 192.168.1.254;
option domain-name-servers 192.168.1.1, 192.168.1.2;
option domain-name "mydomain.example";
option custom-proxy-server "http://x.x.x.x/wpad.dat";
subnet 192.168.1.0 netmask 255.255.255.0
{
range 192.168.1.10 192.168.1.100;
range 192.168.1.150 192.168.1.200;
}

Как видите, тут нет ничего сложного и в смысле строчек можно разобраться, при минимальном знании технического английского. Далее, как обычно, нам следует перезагрузить демон:

$ sudo /etc/init.d/dhcp3 restart

На этом настройка сервера завершена полностью. Переходим к подключению.

Подключение proxy-сервера

Рассмотрим два варианта подключения. Первый – Интернет через PPPoE, второй – Интернет через Ethernet. В обоих вариантах, в идеале, нам понадобится два сетевых интерфейса. Первый будет работать с сетью Интернет, второй – с нашей локальной. Начнем.

Итак, для начала я хотел бы обратить ваше внимание, что у ADSL-модемов стандартные IP-адреса находятся в 192.168.1.0. Учитывая это, чтобы точно обезопасить систему от возможных конфликтов, нам стоит вернуться вверх и построить нашу локальную сеть на базе 192.168.2.0. Сделать это можно, проследив все настройки по данному циклу статей.

Итак, подключаем модем к нашему первому сетевому интерфейсу (который eth0). Настраиваем интерфейс на взаимодействие с модемом:

$ sudo ifconfig eth0 192.168.1.2 netmask 255.255.255.0

Теперь у нас все, как на домашнем компьютере. У модема адрес 192.168.1.1, у сервера 192.168.1.2. Далее необходимо настроить PPPoE, для этого запускаем конфигуратор командой:

$ sudo pppoeconf

Внимательно читаем вопросы и отвечаем на них. Готово, Интернет у нас подключен. Далее нам надо настроить раздачу пакетов по сети. Для этого нам надо сконфигурировать интерфейс eth1 (наш второй интерфейс) и поставить dns:

$ sudo ifconfig eth1 192.168.2.1 netmask 255.255.255.0

Как я уже говорил, лучше нам перейти в сеть с адресом 192.168.2.0, так как 192.168.1.0 использует модем.

$ sudo apt-get install dnsmasq

Готово, теперь у нас полноценный шлюз для выхода в сеть Интернет компьютеров из локальной сети. Все это дело поднято на двух сетевых интерфейсах, чтобы сбалансировать нагрузку и разделить потоки данных.

Остался еще второй вариант, в котором ваш доступ в сеть Интернет предоставляется через Ethernet-канал. Тут все аналогично первому, только не надо конфигурировать PPPoE, необходимо просто настроить eth0 на использование IP-адреса, который вам выдан провайдером. Возможно, если IP не в сети 192.168.1.0, не потребуется переводить нашу локалку на другие адреса.

Итак, мы смогли построить полноценную «голову» для локальной сети, то есть между Интернетом и LAN теперь стоит шлюз, способный проксировать доступ вовне, фильтровать трафик и сканировать его на вирусы, раздавать пакеты в локальную сеть с использованием DNS, выдавать IP-адреса новым ПК в вашей сети и указывать на скрипт настроек proxy для хостов. Фактически мы настроили начальную офисную инфраструктуру.

Если у вас возникли какие-то трудности или вопросы, их всегда можно задать на форуме, адрес которого в подписи к этой статье. Удачи.

Евгений Кучук www.sa-sec.org


Компьютерная газета. Статья была опубликована в номере 14 за 2011 год в рубрике soft

©1997-2024 Компьютерная газета