Мы — долго запрягаем, быстро ездим, и сильно тормозим.

FreeBSD
  настройка
  подсчёт трафика
  программы
  почтовые системы
  Шелезяки
  Мелочи
  Русификация
  COM-порт
  Монтирование образов
  dd
  burncd
  Консоль
  polling
  redirect_port
  wolf3d
  W.O.L.
  HDD->HDD
  bsdstats
  pdf в html
  monitord
  monit
  dvd в avi
  LAM
  Контроль провайдера
  pppd
  ru man
  geom_uzip
  colorize
  nettop
  немного о ssh
  установка по сети
  ClamAV mirror
  BlueTooth
  WiFi WPA
  iftop
  iPod
  2 CD -> 1 DVD
  ipcalc
  LACP и VLAN
  FFS из-под WinXP
  queues
  NFS & Win2k3
  Dynamic DNS
  ProFTPD+iconv
  deltup, xdelta, bdelta
  Приглашение csh/tcsh
  настрока bash
  Lan over Bluetooth
  pppoe
  метаданные exif
  dd : бэкапируем windows
  mozilla autoconfig
  Proxy Auto Configuration
  NNTP сервер
  Rinetd
  ISO DVD FreeBSD
  my disc1
  sftp+chroot
  SendXMPP
  APCUPSD
  Видеонаблюдение
  Настройка аудиоплеера на ximp3
  HDD(mbr) -> HDD(gpt)
  mc 4.6.2
  Динамический DNS
  axel
  LiveCD
  NAS на MPD
  backup конфигов на почту
  Файловая система
  WWW
  Security
  system
  Games Servers
  X11
  Programming
Очумелые Ручки
OpenBSD
Cisco


www.lissyara.su —> статьи —> FreeBSD —> Мелочи —> Proxy Auto Configuration

Proxy Auto Configuration (PAC)

Автор: Raven2000.


Возникла необходимость автоматически настраивать прокси для всех компьютеров и не бегать к ним, если, например, поменялось что-то на прокси сервере. Для этого существует технология Proxy Auto Configuration (PAC).

Содержание:

  • Создание файла автоконфигурации прокси
        Первый вариант
        Второй вариант
        Распостраниение PAC скрипта
  • Web Proxy Auto-Discovery protocol
        Подготовка Apache
        WPAD метод основанный на DNS
        WPAD метод второй основанный на DHCP
  • Настройка браузеров
  • Литература

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

    Создадим файл будущего скрипта:
    # touch wpad.dat
    

    И немного ознакомимся с основными понятиями:
    
    Переменная	 Описание
    DIRECT           Загрузить обьект непосредственно через указанный URL
    PROXY name:port  Загрузить обьект через указанный прокси сервер и порт 
    SOCKS name:port  Загрузить обьект через SOCKS сервер по указанному имени сервера и порту
    

    Теперь необходимо указать нужные настройки для браузеров. Возможен выбор из двух вариантов, используйте тот, который вам удобнее, например, я использую второй вариант.

    Первый вариант
    function FindProxyForURL(url, host) {
    	// 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(url, host) 
    {
       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://forum.lissyara.su/viewtopic.php?f=14&t=9995.

    размещено: 2008-07-31,
    последнее обновление: 2008-08-01,
    автор: Raven2000

    оценить статью:

    hsw, 2008-08-01 в 1:00:07

    Хорошо бы упомянуть про вариант fallback:
    "PROXY IP_proxy:3128; DIRECT"
    Помогает, если прокси лежит.

    www2, 2008-08-01 в 7:38:17

    Баян, но полезный. Почти всё в одном месте. Спасибо.

    Kolesya, 2008-08-01 в 8:25:55

    Если расширение файлу поставить wdat.pac апач перенастраивать не придется :)

    Sash, 2008-08-01 в 9:12:43

    Хм.. я вот не понимаю зачем это вообще нужно, если прокси как правило юзается в больших офисах, где 99% стоит AD. Используя GPO можно изменять адрес прокси не поднимая задницы со стула, да и правила ipfw fwd тоже никто не отменял на шлюзе из freebsd. нафига козе бойан? или я что-то не понимаю?

    lissyara, 2008-08-01 в 9:16:10

    Не зацикливайтесь на продуктах M$
    Во многих больших и крупных конторах за стандарт идёт Firefox

    Shemmy, 2008-08-01 в 10:11:06

    Есть уточнение. В автоконфигурирования по DHCP надо применять значение
    option local-pac-server "http://wpad.example.com:80/wpad.dat\000";

    Internet Explorer отрезает последний символ в строке.
    И как показала практика автоконфигурирование по DHCP работает только для Internet Explorer

    Antonio, 2008-08-01 в 10:16:24

    Как-то тоже настраивал, но не пошло, потому как только для IE, а это можно задать и в групповых политиках.

    Raven2000, 2008-08-01 в 11:16:31

    to hsw
    см в конце все на return "DIRECT"; разве не то?
    to Kolesya
    Самое интересное, что я при выпуске статьи это урезал
    А было в статье еще
    + AddType application/x-ns-proxy-autoconfig .pac
    + Redirect / wpad.dat / proxy.paс
    + ln -s wpad.dat proxy.paс
    to Sash
    У меня так и есть на работе =) НО в домашней сети, где каждый сам ПК по себе и нет серверов маздая то это самое то и без разговоров =) Да и не забудь, бывает и шлюзов с фри нет и прокси на маздае нет и бессмысленно ставить AD =)
    Да и у каждого от Сафари до Мозиллы
    to Shemmy
    пробовал с \000 и без разницы небыло замеченно тестил на IE, Firefox, Opera так что я это из статьи выкинул тк смысла не увидел (может не прав =) еще раз потестю).
    Да и на счет IE про автоконфиг по DHCP ты прав в самую точку, но я в статье это указал В Опере авто по DHCP нет, а в Firefox нормально не пашет, что и написал
    to Antonio
    Ты не прав это не только для IE, а для всех грамотных браузерах работает и на счет AD писал для Kolesya выше

    Shemmy, 2008-08-01 в 12:07:18

    to Raven2000
    IE кеширует настроки прокси. в Групповой политике есть настройка отключающая кеширование.

    hsw, 2008-08-01 в 12:15:42

    to Raven2000
    Нет, не то.
    Если сработает правило с "PROXY: ...", а прокси не ответит, браузер покажет ошибку.
    Если будет "PROXY: ...; DIRECT" - через таймаут пойдёт DIRECT-ом.
    Можно указать несколько проксей в порядке уменьшения приоритета.

    Raven2000, 2008-08-01 в 14:43:42

    to Shemmy & hsw
    Fixed
    Что еще можно добавить?

    hsw, 2008-08-01 в 20:12:46

    to Raven2000
    упс. retrurn "...";
    ";" в конце не хватает.

    Raven2000, 2008-08-01 в 20:43:23

    Блин фсе %0 сказывается последний день на работе и в отпуск =)

    savio, 2008-08-02 в 21:47:35

    а не проще сделать "прозрачный" прокси на серваке? на стороне юзера вообще ничего делать не нужно

    hsw, 2008-08-02 в 22:59:48

    С автонастройкой в IE тоже ничего делать не надо.
    Она включена по умолчанию.
    Да, и прозрачный прокси для https, ftp и socks сделать проблематично.
    Смотрите ширше. Включение wpad.<provider>.com позволяет загонять клиентов с реальными адресами на proxy провайдера.

    Dima, 2008-08-03 в 15:38:58

    Не зацикливайтесь на продуктах M$
    Во многих больших и крупных конторах за стандарт идёт Firefox

    Хотел бы я увидеть те большое компании которые используют Firefox за стандарт :)

    К сожаление, большинство прог заточенно как раз по ИЕ...

    ostrik, 2012-07-06 в 12:55:09

    Перед тем как пользоваться протоколом WPAD, обратите внимание на эту статью - http://www.securitylab.ru/analytics/379619.php

    ttys, 2012-12-27 в 8:29:01

    после добавления:
    AddType application/x-ns-proxy-autoconfig .dat
    файл не открывается а пытается скачиваться
    зато без неё всё намана ;)

    Юрий, 2013-11-08 в 21:17:48

    Ховди ttys, ты погляди на сам формат mime:

    # MIME type                    Extensions
    # application/3gpp-ims+xml
    # application/activemessage
    application/andrew-inset            ez
    # application/applefile
    application/applixware                aw
    application/atom+xml                atom
    application/atomcat+xml                atomcat

    Добавляй без точки:

       # Add WPAD type
       AddType application/x-ns-proxy-autoconfig dat

    и будет щастье.

    Врубаешься?

    ttys, 2013-11-09 в 12:10:33

    2 Юрий,
    я забил на это т.к. решил отказаться от прокси и потушил сквид ;)
    но спс за подсказку =)


    Оставьте свой комментарий:
    Ваше имя:   *
    e-mail:  
    жирный
    наклонный
    подчёркнутый
    ссылка
    цвет
    Нынешний год:   *
     


  • Хостинг HOST-FOOD

    2014-07-27, lissyara
    gmirror

    Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
    2013-08-20, zentarim
    Scan+Print server FreeBSD 9

    Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540
    2011-11-20, BlackCat
    Разъём на WiFi-карту

    Делаем съёмной несъёмную антену на WiFi-карте путём установки ВЧ-разъёма
    2011-09-14, manefesto
    Настройка git+gitosis

    Настройка системы контроля версия исходного кода в связке git+gitosis+ssh
    2011-08-14, zentarim
    Wi-FI роутер + DHCP + DNS

    Настройка Wi-Fi роутера на Freebsd 8 + DNS сервер + DHCP сервер: чтобы Wi-Fi клиенты были в одной подсети с проводными, проводные и беспроводные клиенты получали адреса автоматически по DHCP, кэширующ
    2011-06-15, -ZG-
    Охранная система на FreeBSD+LPT

    В этой статье описана попытка реализации простой охранной системы на базе FreeBSD с подключением к ней охранных устройтсв на LPT порт и видеорегистрацией.
    2011-03-13, terminus
    ng_nat

    Описание работы ng_nat, практическое использование, достоинства и недостатки в сравнении с ipfw nat
    2011-02-20, Капитан
    Nagios+Digitemp

    Статья описывает создание системы оповещения о превышении температуры в специальных помещениях на основе Nagios с использованием программы Digitemp.
    2011-02-17, Le1
    Zyxel Configuration

    Скрипт для массового изменения конфига свичей Zyxel. Берет из файла iplist список ip-шек, заходит последовательно на каждый и выполняет комманды из файла commands, записывая происходящее в лог файл.
    2011-02-16, fox
    hast carp zfs ucarp cluster

    HAST (Highly Available Storage), CARP, UCARP, ZFS, Cluster настройка и одаптация плюс личные размышления…
    2011-02-04, BlackCat
    Восстановление ZFS

    История о том, как был восстановлен развалившийся RAIDZ ZFS-пул (перешедший в FAULTED) с помощью скотча и подручных средств. Или о том, какие приключения ожидают тех, кто не делает резервных копий.
    2011-02-03, Капитан
    1-Wire

    Статья описывает самостоятельное изготовление контроллера DS9097 для съёма показаний с датчиков температуры DS1820 с помощью программы Digitemp.
    2011-01-28, Капитан
    Температура в серверной

    Статья описывает построение системы наблюдения за температурой в помещении серверной с использованием программы Digitemp и выводом графиков в MRTG
    2011-01-21, m4rkell
    Syslog server

    Как то буквально на днях, у нас завалилось, что то в еве) или не в еве не суть. Суть в том, что когда захотели снять логи с хостов esx обнаружили, что хранят эти негодяи логии только за последнии сутк
    2011-01-07, lissyara
    Canon/gphotofs

    Монтирование цифровых фотоаппаратов Canon (PTP) как файловой системы, автоматизация этого процесса через события devd и внешние скрипты.
    2010-12-13, Al
    IPSec

    Описание принципов работы IPSEC и способов аутентификации.
    2010-12-07, manefesto
    FreeBSD on flash

    Было принято решении переехать на USB Flash и установить минимальный джентельменский набор для работы своего роутера. Делаем =)
    2010-12-05, Fomalhaut
    root ZFS, GPT

    Инструкция по установке FreeBSD с использованием в качестве таблицы разделов GPT и в качестве основной файловой системы - ZFS
    2010-09-05, Cancer
    Настройка аудиоплеера на ximp3

    Цели: Простенький аудиоплеер, для того что бы тетя продавец в магазине утром пришла нажала на кнопку Power и заиграла в зале музыка, так же был доступ по сети, общая шара куда можно заливать музыку, к
    подписка

        вверх      
    Статистика сайта
    Сейчас на сайте находится: 46 чел.
    За последние 30 мин было: 202 человек
    За сегодня было
    2852 показов,
    710 уникальных IP
     

      Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
      Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

    © lissyara 2006-10-24 08:47 MSK

    Время генерации страницы 0.0408 секунд
    Из них PHP: 28%; SQL: 72%; Число SQL-запросов: 77 шт.
    Исходный размер: 148068; Сжатая: 25940