прокси-сервер squid в Linux

Описание как быстро развернуть прокси-сервер squid с авторизацией по логину и паролю на примере Debian Lenny.

Ставим необходимые пакеты:
# apt-get install squid apache2-utils

сохраняем оригинальный конфиг:
# cp /etc/squid/squid.conf{,.orig}


правим /etc/squid/squid.conf , удаляем всё, добавляем следующее:

http_port 3128
hierarchy_stoplist cgi-bin ?
forwarded_for off
acl QUERY urlpath_regex cgi-bin \?
cache deny QUERY
acl apache rep_header Server ^Apache
broken_vary_encoding allow apache
access_log /var/log/squid/access.log squid
auth_param basic children 2
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off
auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/passwd
refresh_pattern ^ftp:		1440	20%	10080
refresh_pattern ^gopher:	1440	0%	1440
refresh_pattern .		0	20%	4320
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443 8443 2082 2095 81 85
acl Safe_ports port 80		# http
acl Safe_ports port 21		# ftp
acl Safe_ports port 443 8443 2082 2095 81 85	# 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 10000-10001 # webmin
acl CONNECT method CONNECT
acl authorized_guyz proxy_auth REQUIRED
http_access allow authorized_guyz
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost
http_access deny all
http_reply_access allow all
icp_access allow all
cache_mgr admin@localhost
coredump_dir /var/spool/squid

создаем файл паролей /etc/squid/passwd
# htpasswd -c /etc/squid/passwd user
Спросит пароль два раза, вводим. Строки отвечающие за авторизацию помечены красным. Рестартуем прокси-сервер:
# /etc/init.d/squid restart

проверяем, вписав настройки проски в браузере, ip машины с установленным squid, порт 3128, с логином user и паролем, который ввели.

если хотите добавить еще пользователей, то
# htpasswd /etc/squid/passwd newuser

если необходимо дать разрешение использовать прокси без авторизации для некоторых адресов, то добавляем в /etc/squid/squid.conf, в соответствующие секции:

acl home_net src 192.168.0.0/24
http_access allow home_net

до строки http_access allow authorized_guyz
перечитываем конфигурацию:
# squid -k reconfigure
и машины с указанными адресами могут использовать прокси без авторизации.

Удачи в настройках.

© shadow_alone