it-консалтинг и аутсорсинг
что мы делаем контакты блог

ProxyBlock *

Кирилл Воронин 20.01.2011

Q:
Хотел заблокировать несколько сайтов (типа facebook, myspace, etc), и сделать это через Forward Proxy в Web Service, но когда на пользовательском компе я указываю Web Proxy, блокируются вообще все сайты.

А:

Наш стандарт (если используется Mac OS X или Linux) – squid; пять минут на squid.conf, одна на ru.shortcut.squid.plist.
Тем не менее, расскажу, про прокси в Apache.
Самый популярный веб-сервер может выступить и в роли прокси-сервера.
Мало кто этим пользуется, так как прокси используют в основном для блокировки чего-то, а здесь возможности apache и squid несравнимы.
Зато такое решение не требует дополнительного программного обеспечения и позволяет запустить прокси малыми силами. Модуль прокси поддерживает http, https и ftp.

Запуск малыми силами осуществляется так:
Server Admin – Web – Settings – Proxy – галочка Enable Forward Proxy.
Вот и все, можно приступить к настраиванию клиентов.

Для того, чтобы не делать ваш прокси-сервер доступным для всего мира, поставьте галочку Control Access To Proxy и в поле укажите Allowed Domain ваш диапазон IP адресов (например, 10.10.10.1/16).

Если вы хотите заблокировать какие-то сайты, укажите их в Blocked Hosts.
Внимание – когда вы нажмете на плюси, чтобы добавить сайты, которые должны блокироваться, Server Admin услужливо подставит пример “http://www.example.com/”
Это неправильный пример! Правильная запись должна выглядеть так – “www.example.com”

Ну а “по-научному”, все это выглядит так (цитата из /etc/apache2/httpd.conf):


#
## Proxy Server directives. 
#
<IfModule mod_proxy.c>
       ProxyRequests On
       <IfModule mod_disk_cache.c>
               CacheEnable disk /
               CacheRoot "/var/run/proxy"
       </IfModule>
       <Proxy "*">
               Allow from 10.10.10.1/16
               Deny from all
               Order Deny,Allow
       </Proxy>
       ProxyBlock facebook.com <http://facebook.com/>
       ProxyBlock livejournal.com <http://livejournal.com/>
</IfModule>
##

Подробнее – mod_proxy.