Документация по ОС FreeBSD Четверг, 30.01.2025, 21:17
Приветствую Вас Гость | RSS
Меню сайта

Категории каталога
Apache [58]
DNS [25]
FTP [27]
Mail [74]
Samba [24]
Squid [46]
SSH [23]
VPN [35]
РРР [20]
Net [173]

Главная » Статьи » Сеть » Net

Proxy Auto Configuration (PAC) [2008]
Возникла необходимость автоматически настраивать прокси для всех компьютеров и не бегать к ним, если, например, поменялось что-то на прокси сервере. Для этого существует технология Proxy Auto Configuration (PAC).
 
Создание файла автоконфигурации прокси
Большинство браузеров можно автоматически сконфигурировать для использование прокси. Данная возможность реализуется при помощи Proxy Auto Configuration (PAC). PAC - файл, в котором содержится только одна функция JavaScript - FindProxyForURL ().

Создадим файл будущего скрипта:
# touch wpad.dat
 
И немного ознакомимся с основными понятиями:
Переменная     Описание
DIRECT           Загрузить обьект непосредственно через указанный URL
PROXY name:port  Загрузить обьект через указанный прокси сервер и порт 
SOCKS name:port  Загрузить обьект через SOCKS сервер по указанному 
 имени сервера и порту
 
Теперь необходимо указать нужные настройки для браузеров. Возможен выбор из двух вариантов, используйте тот, который вам удобнее, например, я использую второй вариант.

Первый вариант
function FindProxyForURL(urlhost) {
  
// Local/Internal Websites (.e.g Intranet)
  
if (shExpMatch(url,"*.example1.com/*"))        {return "DIRECT";}
  if (
shExpMatch(url,"*.example2.com:*/*"))    {return "DIRECT";}
     

  
// If client machine is on company network
  // return proxy otherwise go direct 
  
if (isInNet(myIpAddress(), "10.10.1.0""255.255.255.0"))
            {return 
"PROXY 10.10.1.100:8080";} else return {"DIRECT";}
                
}

Второй вариант
 
function FindProxyForURL(urlhost
{
   if (
isInNet(host"192.168.1.0""255.255.255.0")) {
      return 
"DIRECT";
   } else {
      if (
shExpMatch(url"http:*"))
         return 
"PROXY IP_proxy:3128; DIRECT";
      if (
shExpMatch(url"https:*"))
         return 
"PROXY IP_proxy:3128; DIRECT";
      if (
shExpMatch(url"ftp:*"))
         return 
"PROXY IP_proxy:2121; DIRECT";
      if (
shExpMatch(url"socks:*"))
         return 
"SOCKS IP_proxy:1080; DIRECT";
      return 
"DIRECT";
   }
}
 
Web Proxy Auto-Discovery protocol

Подготовка Apache
Необходимо, чтобы Apache выдавал скрипт при запросе. Для этого надо разрешить обращаться к файлам типа .dat:

1. Добавим в httpd.conf дерективу
 
AddType application/x-ns-proxy-autoconfig .dat

WPAD метод основанный на DNS
Механизм WPAD просто строит цепочку известных URL, начинающихся с доменного имени машины и оканчивающего коротким суффиксом wpad.
Например, доменое имя было example.com., то URL будет следующий:

http://wpad.example.com./wpad.dat

Таким образом, браузер будет пытатся загрузить PAC скрипт известного доменного URL.
Для реализации данного метода сделаем следующее:

1. Создим в DNS имя и присвоим ему IP
Например, создаем запись wpad.example.com с IP адресом 192.168.1.12 или создаем alias на существующий хост (что удобнее).
2. Создадим в Apache виртуальный хост с именем wpad.example.com
3. Скопируем скрипт wpad.dat в директорию виртуального хоста

Второй метод WPAD, основанный на DHCP
WPAD просто выдает PAC скрипт с выбранный номером 252 в "аренду" запросившему IP. Браузер получает URL скрипта и просто качает его по ссылке.

1. Добавим в /etc/dhcp/dhcpd.conf следующие строчки.

option local-pac-server code 252 = text ;
option local-pac-server "http://wpad.example.com:80/wpad.dat\000" ;

2. Перезапустите DHCP сервер.

Небольшой нюанс - у DHCP приоритет выше, чем у DNS, как следствие - гораздо быстрее. И можно вместо имени сайта указать его IP, в этом случае отсутствуют расходы времени на преобразование адреса в имя, что добавляет скорости.

Настройка браузеров

Теперь настроим браузер. В параметрах программы нужно указать определение прокси-сервера:

1) В браузере Explorer
Сервис -> Свойства обозревателя -> Подключения -> Настройка сети
поставим галочку напротив опции "Автоматическое определение параметров"
или поставим галочку напротив опции "Использовать сценарий автоматической настройки" и в поле "Адрес" напишем http://wpad.example.com:80/wpad.dat

2) В браузере Opera
Настройки -> Дополнительно -> Сеть -> Прокси-серверы
поставим галочку напротив опции "Автоматическая конфигурация прокси-сервера" и в поле "Адрес" написать http://wpad.example.com:80/wpad.dat

3) В браузере Firefox
Инструменты->Настройки->Дополнительно->Сеть->Соединение(Настроить)
выберем опции "Автоматически определять настройки прокси для этой сети"
или выберем опцию "URL автоматической настройки сервиса прокси" и в поле "Адрес" напишем http://wpad.example.com:80/wpad.dat
Нажмите кнопку Обновить, чтобы загрузить настройки.
В версии 3.0.1 нормально не работает "Автоматически определять настройки прокси для этой сети" или нужно дополнительно по гуглить =).

Литература
1) Automatic proxy HTTP server configuration in web browsers
2) WPAD Deployment Tutorial
3) Proxy auto-config
4) Automatic Discovery for Firewall and Web Proxy Clients

Отдельное спасибо Andy за помощь в редактировании статьи =)


Источник: http://www.lissyara.su/?id=1717
Категория: Net | Добавил: oleg (02.08.2008) | Автор: Raven2000
Просмотров: 1026 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа

Beastie

Друзья сайта

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
links

Copyright MyCorp © 2025