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
Для настройки автодетекта прокси-сервера нам понадобится 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