Мой старт в интернет!

При большом инет-трафике весьма полезно использовать кеширующий прокси сервер, оптимизируя при этом запросы локальных клиентов в инет. Среди бесплатных кеширующих прокси-серверов, несомненно, лидирующее положение занимает Squid. И хотя, изначально, Squid разрабатывался для *nix, в настоящее время существует его порт под Windows.

В настоящей статье мы рассмотрим как установить Squid и как подключить его модулем MySrv.

Итак, скачиваем архив с последней версией Squid  и распаковываем его в корень диска C:

Важно!
Если вы не собираетесь ограничивать пропускную способность канала для локальных пользователей, то скачивайте Standard версию, в противном случае скачивайте версию Delay-Pool.

В папке C:\squid\etc создаем папку default, копируем в нее все файлы с расширением default из папки C:\squid\etc (пригодится для восстановления конфигурации по-умолчанию в случае, если вы «законфирурите» Squid) и переименовываем файлы из папки C:\squid\etc\*.conf.default в *.conf

Открываем текстовым редактором файл C:\squid\etc\squid.conf и начинаем конфигурировать Squid.

Первым делом задаем свою локальную сеть. Для это ищем строки:

acl localnet src 10.0.0.0/8      # RFC1918 possible internal network
acl localnet src 172.16.0.0/12   # RFC1918 possible internal network
acl localnet src 192.168.0.0/16  # RFC1918 possible internal network

закоммнетируем их и указываем свою локальную сеть, например, 192.168.0.0/24. В результате получаем:

#acl localnet src 10.0.0.0/8      # RFC1918 possible internal network
#acl localnet src 172.16.0.0/12   # RFC1918 possible internal network
#acl localnet src 192.168.0.0/16  # RFC1918 possible internal network
acl localnet src 192.168.0.0/24   # my local network

Далее дополнительно определяем порты, к которым будет разрешен доступ из локальной сети (что не есть обязательно). Например, пользователям локальной сети будет разрешен HTTP-доступ к 43 порту (whois) и CONNECT-доступ к 21 порту (ftp), а также к диапазону портов 1025-65535 (unregistered ports). Для этого ищем строку:

acl CONNECT method CONNECT

и после нее добавляем строки:

acl MY_HTTP_ports port 43		# whois
acl MY_CONNECT_ports port 21		# ftp
acl MY_CONNECT_ports port 1025-65535	# unregistered ports

и разрешаем доступ к этим портам. Для этого строки:

http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports

заменяем на:

http_access deny !Safe_ports !MY_HTTP_ports
http_access deny CONNECT !SSL_ports !MY_CONNECT_ports

Далее переопределяем ширину ftp-листинга (по умолчанию — 32 символа), размер кэша в памяти (по умолчанию — 8 Мб), максимальный размер кэшируемого объекта (по умолчанию — 8 Кб), расположение и размер дискового кэша (по умолчанию — c:\squid\var\cache, 100 Мб) и адрес электронной почты администратора кэша (по умолчанию — webadmin). Для этого после строки:

# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS

добавляем строки:

ftp_list_width 64
cache_mem 16 MB
maximum_object_size 16384 KB
cache_dir ufs c:/squid/var/cache 512 16 256
cache_mgr admin@company.net

Находим строку:

#http_access deny to_localhost

и раскомментируем ее.

И в завершение, размещаем прокси-сервер на локальном сетевом интерфейсе (например, 192.168.0.100 — это адрес нашего прокси-сервера в локальной сети) на порту 3128. Для этого строку:

http_port 3128

заменяем на:

http_port 192.168.0.100:3128

На этом конфигурирование Squid можно считать завершенным. Для более тонкой и изощренной настройки Squid читаем документацию на официальном сайте или в сборнике документов о Squid на русском языке.

Далее производим подключение Squid модулем MySrv. Для этого в папке W:\usr\local\mysrv-cmd текстовым редактором создаем файл mysrv-squid.cmd следующего содержания:

set ModuleActive=TRUE
if not "%ModuleActive%"=="TRUE" exit /b
set ModuleServiceName=Squid
set ModuleBinFile=c:\squid\sbin\squid.exe
set ModuleConfFile=c:/squid/etc/squid.conf
if "%Action%"=="reload" (
  %ModuleBinFile% -n %ModuleServiceName% -f %ModuleConfFile% -k reconfigure
  exit /b)
if "%Action%"=="install" (
  %ModuleBinFile% -n %ModuleServiceName% -i -f %ModuleConfFile%
  net start %ModuleServiceName%
  exit /b)
if "%Action%"=="uninstall" (
  net stop %ModuleServiceName%
  %ModuleBinFile% -n %ModuleServiceName% -r
  exit /b)
if "%Action%"=="createcachedir" (
  %ModuleBinFile% -z -f %ModuleConfFile%
  exit /b)
call %Drive%:%CmdDir%\%Prefix%service.manager.cmd
exit /b

Создаем дисковый кэш командой:

mysrv.cmd createcachedir squid

и инслаллируем squid:

mysrv.cmd install squid

В результате в локальной сети имеем кэширующий прокси-сервер по адресу 192.168.0.1:3128

Команды управления Squid:

mysrv.cmd install squidинсталлировать squid
mysrv.cmd uninstall squidдеинсталлировать squid
mysrv.cmd start squidстартовать squid
mysrv.cmd restart squidжесткий рестарт squid
mysrv.cmd reload squidмягкий рестарт squid (перегрузка конфигурации)
mysrv.cmd stop squidостановить squid

Ссылки: