Crossroads » Linux » Минимальная конфигурация Squid 3

Минимальная конфигурация Squid 3

  • Dislike
  • +5
  • Like
Минимальная конфигурация прокси сервера Squid 3 (3.1.20) для доступа в Интернет по паролю. В данной конфигурации прокси делает то, что от него требуется, при этом не выдаёт себя (не показывает IP клиента за ним). То есть у нас получается так называемый "элитный" прокси. Я использую для выхода в интернет из локальной сети, но по сути нет разницы в том, как далеко Squid от рабочего места. В приведённой ниже конфигурации он прекрасно будет себя чувствовать и на удалённом сервере и на VPS.

И так, ставим 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. Для этих целей можно использовать любой онлайн генератор. В первую строку вводите пароль, во второй получаете его хэш сумму. Её и следует использовать в качестве пароля в файле "pass". Естественно, при обращении к прокси пароль вводится уже обычным текстом.

Сохраняем файл и перезагружаем 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 можно использовать дополнение FoxyProxy Basic, которое избавить вас от ручного ввода пароля каждый раз при открытии браузера и позволит переключаться между прокси и обычным режимом в один клик. Дополнение FoxyProxy Standart имеет белее глубокие настройки, позволяющие создавать правила, определяющие как какому адресу (или типу адресов) следует обращаться через прокси, а к какому напрямую. Для Google Chrome также существует это дополнение, доступное в Chrome Web Store.

***
обновлено
В свете выхода 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 больше ничего нет.
Like Dislike




Tags: Linux, Debian, Squid, Proxy


 
  • Creative Commons Licence
  • Norton Safeweb
  • Website Uptime Monitoring By ServiceUptime.com