Настройка прозрачного прокси-сервера Squid Dibian Ubuntu

SQUID - пожалуй, самый лучший прокси под UNIX платформу.
— Поддержка протоколов HTTP, FTP, SSL, HTCP, CAPR
— Каскадирование серверов
— возможность прозраного проксирования
— поддержка протокола SNMP
— кэширование DNS-запросов

Теперь приступим к установке и настройке кеширующего прокси-сервера Squid
 

$ sudo apt-get install squid

и выжмем из оригинальной конфигурации всё, не закоментированное: так на много проще, В итоге конфиг без ничего лишнего
$sudo cat /etc/squid/squid.conf.original | grep -v '^\(#\|$\)' > /etc/squid/squid.conf

и приступаем к настройке конфига под свои нужды
$nano /etc/squid/squid.conf

у меня вышел, вот такой замечательный конфиг

#===========SQUID==============
acl all src all
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32

acl office src 192.168.0.0/16
acl office2 src 91.227.181.10

################# PORTS ##################
# Открываем нужные порты
acl SSL_ports port 443         # https
acl SSL_ports port 563         # snews
#acl SSL_ports port 873         # rsync
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
#acl Safe_ports port 70         # gopher
#acl Safe_ports port 210                # wais
#acl Safe_ports port 1025-65535 # unregistered ports
#acl Safe_ports port 280                # http-mgmt
#acl Safe_ports port 488                # gss-http
#acl Safe_ports port 591                # filemaker
#acl Safe_ports port 777                # multiling http
#acl Safe_ports port 631                # cups
#acl Safe_ports port 873                # rsync
#acl Safe_ports port 901                # SWAT

# разрешаем соединение типа CONNECT для нужных протоколов
#acl purge method PURGE
#acl CONNECT method CONNECT
#http_access allow purge localhost
#http_access deny purge
#http_access deny !Safe_ports
#http_access deny CONNECT !SSL_ports
#icp_access allow localnet
#icp_access deny all

############### NETWORK OPTIONS #############
# настройка порта для прокси
http_port 3128
##### OPTIONS WHICH AFFECT THE NEIGHBOR SELECTION ALGORITHM #####
# CGI-скрипты
hierarchy_stoplist cgi-bin ?
access_log /var/log/squid/access.log squid

########### OPTIONS FOR TUNING THE CACHE ##############
# Оставляем как есть
refresh_pattern ^ftp:           1440    20%     10080
refresh_pattern ^gopher:        1440    0%      1440
refresh_pattern -i (/cgi-bin/|\?) 0     0%      0
refresh_pattern (Release|Packages(.gz)*)$       0       20%     2880
refresh_pattern .               0       20%     4320
acl shoutcast rep_header X-HTTP09-First-Line ^ICY.[0-9]
upgrade_http0.9 deny shoutcast
acl apache rep_header Server ^Apache

############ ERROR PAGE OPTIONS ###############
# Отсюда берем файлы стандартных сообщений об ошибках
error_directory /usr/share/squid/errors/Ukrainian-1251
# Если Squid уже скачал 60% файла, а пользователь отказался его забирать, то всеравно продолжить скачивание
quick_abort_pct 60
# Время жизни запросов завершившихся ошибкой "connection refused" "404 Not Found"
negative_ttl 1 minutes
############### ACCESS CONTROLL############
# и назначаем права доступа
acl zapret dstdomain da.ru
acl zapret1 dstdomain "/etc/squid/zapret.conf"

http_access allow manager localhost
http_access deny manager
http_access allow localhost

http_access deny zapret
http_access deny zapret1

http_access allow office
http_access allow office2

http_access deny all
broken_vary_encoding allow apache
extension_methods REPORT MERGE MKACTIVITY CHECKOUT
hosts_file /etc/hosts

# Место откуда берутся страницы с ошибками
coredump_dir /var/spool/squid
# Поддержка нестандартных Http запросов
half_closed_clients on
# Включать ли IP адрес клиента в заголовок Http запроса
forwarded_for on
# Вкл. сбор статистики по каждому клиенту
client_db on

#============================END==========================================

и создаем файл
nanо /etc/squid/zapret.conf
www.vk.com
vk.com

Сохраняем файл и перезапускаем сквид:
$sudo /etc/init.d/squid restart

Вот собственно и все, это не самый простой конфиг Squid, но простиникий, чуть ниже расскажу что еще можно прикрутить.

 

Режим скорость интернета  
После строчек с refresh_pattern начинаем настраивать пулы (по сути ограничения на ранее созданные группы сетей; помните acl?):
#указываем количество правил
delay_pools 2
#регистрируем 2 пула 3 класса
delay_class 1 3
delay_class 2 3

#указываем кто есть кто и указываем доступ
delay_access 1 allow office
delay_access 1 deny all
delay_access 2 allow office2
delay_access 2 deny all

#указываем параметры скорости для первого пула (нет ограничений)
delay_parameters 1 -1/-1 -1/-1 -1/-1
#второго пула-режем скорость примерно до 10 кбайт/с после первого Мб
delay_parameters 2 -1/-1 -1/-1 10000/1024000

Коментарі

Что бы настроить высокоанонимный прокси сервер на squid3 добовляем следующее:

#another
visible_hostname ussr.kiev.ua
httpd_suppress_version_string on

request_header_access Allow allow all <<---Все эти правила важны
request_header_access Authorization allow all
request_header_access WWW-Authenticate allow all
request_header_access Proxy-Authorization allow all
request_header_access Proxy-Authenticate allow all
request_header_access Cache-Control allow all
request_header_access Content-Encoding allow all
request_header_access Content-Length allow all
request_header_access Content-Type allow all
request_header_access Date allow all
request_header_access Expires allow all
request_header_access Host allow all
request_header_access If-Modified-Since allow all
request_header_access Last-Modified allow all
request_header_access Location allow all
request_header_access Pragma allow all
request_header_access Accept allow all
request_header_access Accept-Charset allow all
request_header_access Accept-Encoding allow all
request_header_access Accept-Language allow all
request_header_access Content-Language allow all
request_header_access Mime-Version allow all
request_header_access Retry-After allow all
request_header_access Title allow all
request_header_access Connection allow all
request_header_access Proxy-Connection allow all
request_header_access All deny all

выполнить проверку на наличие синтаксических ошибок:
sudo squid3 -k parse

Применить новую конфигурацию Squid:
sudo squid3 -k reconfigure

В случае проблем в реальном режиме времени смотрим логи:
sudo tail -f /var/log/squid3/cache.log
sudo tail -f /var/log/squid3/access.log

Коментувати

Простий текст

  • Не дозволено жодних HTML теґів.
  • Рядки й абзаци переносяться автоматично.
  • Адреси вебсторінок та адреси електронної пошти автоматично перетворюються у посилання.