И так, ставим Squid на Debian 7 (конфигурация под Ubuntu ничем не отличается):
aptitude install squid3
Далее переходим по адресу /etc/squid3/ и там правим файл msntauth.conf. Польза от него явно есть, но у нас конфигурация минимальная, поэтому следует закомментировать в нём всё, что там есть. Сохраняем. Далее там же правим squid.conf - конфигурационный файл прокси. Удаляем всё, вписываем следующее:
# Minimal configuration
http_port 8085
icp_port 0
cache_mem 256 MB
memory_replacement_policy lru
maximum_object_size_in_memory 512 KB
cache_dir ufs /usr/share/squid3/cache 2048 16 256
cache_replacement_policy lru
minimum_object_size 3 KB
maximum_object_size 10 MB
cache_swap_low 90
cache_swap_high 95
access_log /var/log/squid3/access.log squid
logfile_rotate 12
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern . 0 20% 4320
dns_nameservers 8.8.8.8 8.8.4.4
positive_dns_ttl 6 hours
negative_dns_ttl 1 minutes
auth_param basic program /usr/lib/squid3/ncsa_auth /etc/squid3/pass
auth_param basic children 5
auth_param basic realm ServerName
auth_param basic credentialsttl 24 hour
acl password proxy_auth REQUIRED
acl localnet src 10.0.0.0/8 # RFC 1918 possible internal network
acl localnet src 172.16.0.0/12 # RFC 1918 possible internal network
acl localnet src 192.168.0.0/16 # RFC 1918 possible internal network
acl localnet src fc00::/7 # RFC 4193 local private network range
acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged) machines
acl SSL_ports port 443 # https
acl SSL_ports port 22 # ssh
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 22 # ssh
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 CONNECT method CONNECT
http_access allow password
http_access allow Safe_ports
http_access allow CONNECT SSL_ports
http_access allow localnet
http_access deny all
coredump_dir /var/spool/squid3
request_header_access X-Forwarded-For deny all
request_header_access Via deny all
request_header_access Cache-Control deny all
Сохраняем. Далее важные комментарии по некоторым строкам.
http_port - порт, на котором будет доступен наш Squid.
ICP запросы мы не используем, поэтому icp_port - 0.
cache_mem - параметр, определяющий объём дополнительной памяти, используемый для кэширования объектов. По умолчанию - 8. Указанное значение не устанавливает жёстких границ. Если серверу потребуется больше, он её возьмёт.
maximum_object_size и minimum_object_size - максимальный и минимальный предел для размера кэшироваемых объектов.
cache_dir - строка, указывающая на расположение и структуру кэша, где /usr/share/squid3/cache - путь до папки с кэшем. Папка не создаётся автоматически. Её необходимо создать вручную, и у Squid должны быть права на запись для этой папки (например 777). Значение 2048 в данном случае определяет общий размер кэша в мегабайтах. Если необходимо, то можно указать размер в процентах. Например, при значении в 70% под кэш прокси будет использовано 70% свободного места на жёстком диске.
cache_swap - процентное соотношение заполненности swap.
Строка access_log и три ниже определяют расположение и глубину логов. Удалите, если не хотите использовать логи.
auth_param basic program - определяет программу, отвечающую за авторизацию пользователей, где /etc/squid3/pass - местоположение файла "pass", содержащего логины и зашифрованные пароли пользователей.
auth_param basic realm - косметическое дополнение, где ServerName - имя вашего прокси. Выводится пользователям в окне авторизации.
dns_nameservers - строка, определяющая DNS для прокси. Соответственно IP1 и IP2 необходимо заменить на адреса DNS серверов. Если удалить строку, то будут использованы DNS записи, прописанные в /etc/resolv.conf. Удалите строку, если не понимаете о чём идёт речь.
Строки request_header_access определяют какую информацию о себе Squid будет передавать, а какую не будет. При текущих значениях внешнему серверу не будет передаваться информация о наличии прокси вообще, но будут передаваться сведения о браузере, отсутствие которых в подавляющем большинстве случаев приводит к некорректному отображению интернет-страниц.
После сохранения конфигурационного файла в той же папке создаём файл "pass", на который указывает строка конфигурации auth_param basic program. Данные о пользователях записываются в следующем формате:
user:password
user2:password
Каждая запись с новой строки. Но сам пароль (password) должен быть зашифрован при помощи 128-ти битного хеширования MD5. Для этих целей можно использовать любой
Сохраняем файл и перезагружаем Squid
/etc/init.d/squid3 restart
В зависимости от мощности сервера процесс может занять некоторое время ,т.к. при первом применении данной конфигурации Squid будет создавать структуру кэша. Выглядеть это будет как-то так:
root@lan:~# /etc/init.d/squid3 restart
[ ok ] Restarting Squid HTTP Proxy 3.x: squid3[....] Waiting.....................done.
[warn] Creating Squid HTTP Proxy 3.x cache structure ... (warning).
2014/04/09 20:22:50| Creating Swap Directories
2014/04/09 20:22:50| /usr/share/squid3/cache exists
2014/04/09 20:22:50| Making directories in /usr/share/squid3/cache/00
2014/04/09 20:22:50| Making directories in /usr/share/squid3/cache/01
2014/04/09 20:22:50| Making directories in /usr/share/squid3/cache/02
2014/04/09 20:22:50| Making directories in /usr/share/squid3/cache/03
2014/04/09 20:22:50| Making directories in /usr/share/squid3/cache/04
2014/04/09 20:22:50| Making directories in /usr/share/squid3/cache/05
2014/04/09 20:22:50| Making directories in /usr/share/squid3/cache/06
2014/04/09 20:22:50| Making directories in /usr/share/squid3/cache/07
2014/04/09 20:22:50| Making directories in /usr/share/squid3/cache/08
2014/04/09 20:22:50| Making directories in /usr/share/squid3/cache/09
2014/04/09 20:22:50| Making directories in /usr/share/squid3/cache/0A
2014/04/09 20:22:50| Making directories in /usr/share/squid3/cache/0B
2014/04/09 20:22:50| Making directories in /usr/share/squid3/cache/0C
2014/04/09 20:22:50| Making directories in /usr/share/squid3/cache/0D
2014/04/09 20:22:50| Making directories in /usr/share/squid3/cache/0E
2014/04/09 20:22:50| Making directories in /usr/share/squid3/cache/0F
. ok
Для более удобного использования в Firefox можно использовать дополнение
***
обновлено
В свете выхода Ubuntu 14.04 ниже та же сама конфигурация, но для версий Squid линейки 3.3.
# Minimal configuration
http_port 8085
icp_port 0
cache_mem 256 MB
memory_replacement_policy lru
maximum_object_size_in_memory 512 KB
cache_dir ufs /var/spool/squid3 2048 16 256
cache_replacement_policy lru
minimum_object_size 3 KB
maximum_object_size 10 MB
cache_swap_low 90
cache_swap_high 95
access_log /var/log/squid3/access.log squid
logfile_rotate 12
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern . 0 20% 4320
dns_nameservers 8.8.8.8 8.8.4.4
positive_dns_ttl 6 hours
negative_dns_ttl 1 minutes
auth_param basic program /usr/lib/squid3/basic_ncsa_auth /etc/squid3/password
auth_param basic children 5
auth_param basic realm ServerName
auth_param basic credentialsttl 24 hour
acl password proxy_auth REQUIRED
acl localnet src 10.0.0.0/8 # RFC 1918 possible internal network
acl localnet src 172.16.0.0/12 # RFC 1918 possible internal network
acl localnet src 192.168.0.0/16 # RFC 1918 possible internal network
acl localnet src fc00::/7 # RFC 4193 local private network range
acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged) machines
acl SSL_ports port 443 # https
acl SSL_ports port 22 # ssh
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 22 # ssh
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 CONNECT method CONNECT
http_access allow password
http_access allow Safe_ports
http_access allow CONNECT SSL_ports
http_access allow localnet
http_access deny all
request_header_access X-Forwarded-For deny all
request_header_access Via deny all
request_header_access Cache-Control deny all
Немного изменился синтаксис. В частности значение в процентах для кэша больше не работает и для авторизации используетя "basic_ncsa_auth". Конфигурация для 3.1 вызовет падения сервера версии 3.3.
Для перезагрузки нужно использовать команду "service squid3 restart", в "init.d" от Squid больше ничего нет.