Squid — программный пакет, реализующий функцию кэширующего прокси-сервера для протоколов HTTP, FTP, Gopher и (в случае соответствующих настроек) HTTPS. Использование кэширующего прокси-сервера становится выгодно примерно с 2000 посетителей в сутки.
Squid поддерживает несколько видов идентификации пользователей:
- По IP-адресу (или доменному имени узла)
- По переданным реквизитам (логин/пароль)
- По идентификатору пользовательского агента (браузера)
Для идентификации по логину/паролю возможно использовать:
- Обычные логин/пароль
- NTLM-авторизацию
- Внешние программы авторизации (определяющие формат авторизации)
В этой заметке приведены основные строки конфигурационного файла squid, необходимые для создания простого прозрачного прокси-сервера с авторизацией по паролю.
# WELCOME TO SQUID 2.7.STABLE9 # ---------------------------- auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/passwd #Recommended minimum configuration: acl passwd proxy_auth "/etc/squid/passwd" 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 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 acl purge method PURGE acl CONNECT method CONNECT #Default: http_access allow passwd # Deny requests to unknown ports http_access deny !Safe_ports # Deny CONNECT to other than SSL ports http_access deny CONNECT !SSL_ports #Allow ICP queries from local networks only icp_access allow localnet icp_access deny all access_log /var/log/squid/access.log squid #Suggested default: 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 # Show hosts file hosts_file /etc/hosts # Leave coredumps in the first cache dir coredump_dir /var/spool/squid # ports for connection http_port 192.168.1.7:443 https_port 127.0.0.1:443
Как добавлять пользователей
В конфигурационном файле несколько полей отвечают за запрос пароля у подключающихся пользователей.
Эта строка разрешает доступ к серверу по паролю:
http_access allow passwd
Эта строка определяет, каким механизмом будет производиться авторизация, и в каком файле хранятся сведения о пользователях:
auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/passwd
Добавление/изменение пользователей осуществляется с помощью проги htpasswd.
Создание нового файла passwd делается только первый раз. passwd — это файл, где будут храниться пароли с именами name_user. После ввода команда запросит пароль и потверждение пароля.
htpasswd -c /etc/squid/passwd name_user
Добавление следующих пользователей делается так:
htpasswd /etc/squid/passwd name_user
Изменение пароля пользователей выполняется так же, как и создание, просто перезаписывается существующая строка.
Удаление пользователя выполняется простым удалением строки с нужным именем из файла /etc/squid/passwd в любом текстовом редакторе.
Источник www.squid-cache.ru
http_access allow ncsa_users
для моего сервака только так заработало