Bog BOS: Squid: примеры установки (RedHat, Solaris)
Последнее изменение файла: 2010.03.12
Скопировано с www.bog.pp.ru: 2023.09.22
Bog BOS: Squid: примеры установки (RedHat, Solaris)
Изолированный кеширующий прокси для отдела, немного фильтрации, отдельный канал, из пакетов.
установка пакета squid: настройки в /etc/squid/, хранилище в /var/spool/squid
при установке пакета заводятся группа squid (23) и пользователь squid (23, /var/spool/squid, nologin)
создание виртуального тома под squid (на отдельном физическом томе, размер определяется наличием оперативной памяти)
создание файловой системы (журнализация, без резервирования, маленький размер блока, dir_index):
mke2fs -j -b 2048 [-c] -m 0 -v -L имя-тома -T news -O dir_index,filetype имя-виртуального-тома
tune2fs -i 0 -c 0 имя-виртуального-тома
монтирование раздела (/etc/fstab) с noatime на /var/spool/squid
создание в нем подкаталогов cache и logs с правами для squid:squid, 750
состав пакета
/usr/sbin/
cossdump (?)
squid (собственно Squid)
squidclient - имитация удаленного управления squid-ом (Cache Manager) из
командной строки (в основном получение статистики)
/usr/lib64/squid/
cachemgr.cgi - WWW interface to the Cache Manager (надо поместить в
cgi-bin, а лучше не надо ;)
digest аутентификация: digest_pw_auth
diskd-daemon - ?
fakeauth_auth
basic аутентификация: getpwname_auth, squid_ldap_auth, ncsa_auth, pam_auth,
smb_auth, sb_auth.pl, smb_auth.sh, sasl_auth
ip_user_check (?)
ntlm аутентификация: msnt_auth, ntlm_auth (SMB)
внешние acl: squid_ldap_group, squid_unix_group, wbinfo_group.pl
unlinkd - программа, запускаемая в параллельном процессе занимающаяся
удалением (обрезанием) файлов из кеша
yp_auth
/etc/
squid/cachemgr.conf
squid/errors (ссылка на /usr/share/squid/errors/English, поменять)
squid/icons (ссылка на /usr/share/squid/icons)
squid/mib.txt (описание MIB SNMP)
squid/mime.conf
squid/mime.conf.default
squid/msntauth.conf (?)
squid/msntauth.conf.default (?)
squid/squid.conf - текущая конфигурация
squid/squid.conf.default (конфигурация по умолчанию)
httpd/conf.d/squid.conf (доступ к мониторингу через локальный apache)
logrotate.d/squid (управление ротацией журналов, поменять адрес журнала)
pam.d/squid (безопасность)
rc.d/init.d/squid (сервис)
sysconfig/squid (параметры сервиса)
/usr/share/doc/squid-2.6.STABLE21/
/usr/share/man/man8/ (squid.8, cachemgr.cgi.8, ncsa_auth.8, pam_auth.8, squid_ldap_auth.8, squid_ldap_group.8,
squid_unix_group.8)
/usr/share/squid/errors/ (каталог с текстами сообщений об ошибках (на различных языках))
/usr/share/squid/icons/ (каталог с картинками в формате gif
/var/logs/squid/ (журналы, сделать ссылку на /var/spool/squid/logs)
/var/spool/squid/ (хранилище объектов, поменять в настройках на /var/spool/squid/cache)
редактирование /etc/squid/squid.conf
acl all src 0.0.0.0/0.0.0.0
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl internal-with-internet-noauth src "/etc/squid/internal-with-internet-noauth.acl"
acl to-local-servers dst ...
acl to-local-domains dstdomain ...
acl manager proto cache_object
http_access allow manager localhost
http_access deny manager
acl snmppublic snmp_community пароль
acl CONNECT_ports port 80 443 6666 6667
acl CONNECT method CONNECT
http_access deny CONNECT !CONNECT_ports
acl Safe_ports port 80 21 443 3127 3128 3129
http_access deny to-local-servers !Safe_ports (запрещать доступ к
небезопасным портам только для своих серверов, зато и список
безопасных портов можно сократить)
acl PURGE method purge
http_access allow PURGE localhost
http_access deny PURGE
http_access allow to-local-servers
http_access allow to-local-domains
http_access allow localhost
http_access allow internal-with-internet-noauth
http_access deny all
icp_access deny all
#htcp_access deny all
#acl unlimit-size src ...
#acl size400m src ...
#reply_body_max_size 419430400 allow !to-local-servers size400m
#reply_body_max_size 78643200 allow !to-local-servers !unlimit-size !size400m
http_port адрес-в-локальной-сети:3128
http_port 127.0.0.1:3128
#tcp_outgoing_address адрес-в-локальной-сети to-local-servers
tcp_outgoing_address адрес-в-WAN
нет cache_peer
cache_mem 16 MB (патронов не жалеть!)
memory_replacement_policy heap GDSF
cache_replacement_policy heap LFUDA (оптимизируем byterate)
cache_dir aufs /var/spool/squid/cache 11000 32 256 # раздел 20GB
minimum_object_size 1 KB (быстрее скачать лишний раз)
maximum_object_size 8192 KB (для LFUDA)
cache_swap_low 96 (1% - это 110MB)
cache_swap_high 98
access_log /var/logs/squid/access.log squid
cache_log /var/logs/squid/cache.log
cache_store_log none (пользы от него никакой, если вы не любознательны)
logfile_rotate 0 (и не забыть внешнюю ротацию журналов)
pid_filename /var/run/squid.pid
log_ip_on_direct off (?)
strip_query_terms off (журнал д.б. закрыт на чтение для посторонних)
ftp_user squid@company.ru (некоторые сервера требуют почтовый адрес)
ftp_list_width 48
redirector_bypass off (?, поменялось умолчание в 2.6)
request_header_max_size 40 KB
quick_abort_min 0 KB
quick_abort_max 0 KB
negative_ttl 1 minutes
read_timeout 5 minutes
request_timeout 60 seconds
shutdown_lifetime 3 seconds (иначе не успевает реагировать на reboot)
cache_mgr почтовый-адрес-администратора
cache_effective_user squid
cache_effective_group squid
visible_hostname основное-имя-хоста (используется в сообщениях об ошибках)
delay_pools 1 (одна категория клиентов)
delay_class 1 2 (индивидуальные ограничения)
acl limited src ...
delay_access 1 allow limited
delay_access 1 deny all
delay_parameters 1 -1/-1 8000/4000 (достаточно для модемных клиентов)
snmp_port 0
snmp_access snmp_access deny all
icp_port 0
#htcp_port 0 (не надо, если сборка была без --enable-htcp)
udp_outgoing_address адрес-в-WAN (для DNS)
error_directory /usr/share/squid/errors/Russian-1251
always_direct allow to-local-servers
dns_nameservers адреса-DNS-серверов
ipcache_size 8192
memory_pools_limit 10 MB (это не единственный сервер на хосте)
forwarded_for off
cachemgr_passwd ...
coredump_dir /var/spool/squid/cache
pipeline_prefetch off (?, иначе проблемы с управлением трафиком и ACL)
high_response_time_warning 1000
настроить /etc/sysconfig/squid ("-D -s -Y -l local4")
занести /var/spool/squid/cache в /etc/updatedb.conf
setsebool -P squid_disable_trans=on (можно побороться)
пробный запуск "service squid start"
chkconfig --level 345 squid on
проделать дырки в экранах (от клиентов к squid)
в /usr/local/bin процедуру выдачи текущей статистики (statsquid.sh)
запуск logrotate (/etc/logrotate.d/squid, поменять адреса журналов)
настройка автоматической настройки клиентов (wpad )
сбор месячной статистики с помощью LightSquid
logwatch на syslog сервере (?!)
Головной кеширующий прокси для несамостоятельных филиалов,
NTLM аутентификация для локальных сотрудников, немного фильтрации,
распределение нагрузки по каналам. Ставится из исходников в параллель старому,
т.к. в RHEL5/Centos5 версия squid заморожена на 2.6.6.
пользователь и группа squid появился вместе с установленным пакетом,
иначе его пришлось бы создавать (с домашней директорией /var/spool/squid
и без возможности входа)
создание отдельного раздела под squid (fdisk, размер определяется
наличием оперативной памяти)
создание файловой системы (журнализация, без резервирования, маленький
размер блока, dir_index, large_file):
mke2fs -j -b 2048 [-c] -m 0 -v -L имя-тома -T news -O dir_index,filetype имя-раздела
монтирование раздела (/etc/fstab) с noatime
создание в нем поддиректорий cache и logs с правами для squid:squid, 750
./configure - нестандартные ключи:
--prefix=/usr/local/squid26
--enable-delay-pools (для справедливого деления канала)
--enable-kill-parent-hack (для нормального завершения)
--enable-snmp (сбор статистики mrtg )
--disable-http-violations (не надо жадничать)
--disable-ident-lookups (только зря время тратит)
--enable-truncate (ускоряет доступ к диску)
--enable-removal-policies="lru,heap" (улучшенные алгоритмы вместо LRU)
--enable-linux-netfilter (transparent для ядра Linux 2.4)
--enable-stacktraces (трассировка стека при аварийном завершении)
--enable-useragent-log (реально не используется)
--enable-referer-log (реально не используется)
--enable-forward-log
--enable-arp-acl
--enable-storeio="aufs,diskd,null,ufs"
--enable-htcp
--enable-ssl
--with-openssl=/usr/kerberos
--enable-cachemgr-hostname=localhost
--disable-carp
--disable-wccp
--disable-wccpv2
--enable-default-err-language=Russian-1251
нельзя --with-large-files
нельзя --enable-large-cache-files
--enable-follow-x-forwarded-for
--enable-epoll
--with-maxfd=16384
--enable-auth="basic,ntlm,digest"
--enable-basic-auth-helpers="getpwnam,LDAP,NCSA,PAM,SMB,SASL" (нужны пакеты openldap-devel,
cyrus-sasl-devel, pam-devel)
--enable-ntlm-auth-helpers="no_check,SMB"
--enable-digest-auth-helpers="password,ldap"
--enable-external-acl-helpers="ldap_group,unix_group,wbinfo_group"
make all
make install (создает /usr/local/squid26/)
bin
RunCache - скрипт для мониторинга и перезапуска squid
squidclient - имитация удаленного управления squid-ом (Cache Maanger) из
командной строки (в основном получение статистики)
sbin
libexec
diskd-daemon - ?
unlinkd - программа, запускаемая в параллельном процессе занимающаяся
удалением (обрезанием) файлов из кеша
cachemgr - WWW interface to the Cache Manager (надо поместить в
cgi-bin, а лучше не надо ;)
basic аутентификация: getpwname_auth, squid_ldap_auth, ncsa_auth, pam_auth,
smb_auth, smb_auth.sh, sasl_auth
ntlm аутентификация: no_check.pl, ntlm_auth (SMB)
digest аутентификация: digest_pw_auth, digest_ldap_auth
внешние acl: squid_ldap_group, squid_unix_group, wbinfo_group.pl
etc
squid.conf.default - конфигурация по умолчанию
mime.conf.default
squid.conf - текущая конфигурация
mime.conf
cachemgr.conf
share
mib.txt
icons - директория с картинками в формате gif
errors - директория с текстами сообщений об ошибках (на различных языках)
var/logs
man/man8/ (squid.8, cachemgr.cgi.8, ncsa_auth.8, pam_auth.8, squid_ldap_group.8,
squid_unix_group.8)
редактирование /etc/squid/squid.conf (в этой версии поменялся порядок директив)
auth_param ntlm program /usr/local/squid26/libexec/ntlm_auth домен/простое-имя-контроллера-AD
(люди вне домена AD вынуждены на первый запрос (пустой realm) нажимать "Отмена")
auth_param ntlm children 10
auth_param digest program /usr/local/squid26/libexec/digest_pw_auth
/usr/local/squid26/etc/digest_passwd (в формате "имя:пароль"; закрыть на чтение)
или
auth_param digest program /usr/local/squid26/libexec/digest_pw_auth
-c /usr/local/squid26/etc/digest_passwd_ha1
(в формате "имя:область:md5(имя:область:пароль)";
закрыть на чтение)
auth_param digest realm область-действия
auth_param basic program /usr/local/squid26/libexec/ncsa_auth
/usr/local/squid26/etc/ncsa_passwd (заполнить ncsa_passwd,
например, с помощью htpasswd из комплекта apache; закрыть на чтение)
auth_param basic realm область-действия
acl all src 0.0.0.0/0.0.0.0
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl DMZ src ...
acl external-net src гостевая-сеть
acl internal-net src ...
acl internal-with-internet-noauth src ...
acl internal-with-internet-auth src ...
acl internal-with-internet-authname src ...
acl to-local-servers dst ...
acl to-local-domains dstdomain ...
acl manager proto cache_object
http_access allow manager localhost
http_access deny manager
acl snmppublic snmp_community пароль
acl CONNECT_ports port 80 443 6666 6667
acl CONNECT method CONNECT
http_access deny CONNECT !CONNECT_ports
acl Safe_ports port 80 21 443 3127 3128 3129
http_access deny to-local-servers !Safe_ports (запрещать доступ к
небезопасным портам только для своих серверов, зато и список
безопасных портов можно сократить)
acl PURGE method purge
http_access allow PURGE localhost
http_access deny PURGE
acl password proxy_auth REQUIRED
acl password-name proxy_auth ...
http_access allow to-local-servers
http_access allow to-local-domains
http_access allow localhost
http_access allow DMZ
http_access allow external-net
http_access allow internal-with-internet-noauth
http_access allow internal-with-internet-authname password-name
http_access allow internal-with-internet-auth password
http_access deny all
icp_access deny all
acl unlimit-size src ...
acl size400m src ...
reply_body_max_size 419430400 allow !to-local-servers size400m
reply_body_max_size 78643200 allow !to-local-servers !unlimit-size !size400m
http_port имя-хоста:3128
http_port 127.0.0.1:3128
# клиент может выбрать исходящий адрес (и, соответственно, канал)
acl channel2 myip дополнительный-IP-сервера
tcp_outgoing_address альтернативный-исходящий-адрес channel2
tcp_outgoing_address исходящий-адрес
нет cache_peer
закоментировать "cache deny QUERY"
cache_mem 16 MB (патронов не жалеть!)
memory_replacement_policy heap GDSF
cache_replacement_policy heap LFUDA (оптимизируем byterate)
cache_dir aufs /squid26/cache 11000 32 256 # раздел 16GB
minimum_object_size 1 KB (быстрее скачать лишний раз)
maximum_object_size 8192 KB (для LFUDA)
cache_swap_low 96 (1% - это 110MB)
cache_swap_high 98
access_log /squid26/logs/access.log squid
cache_log /squid26/logs/cache.log
cache_store_log none (пользы от него никакой, если вы не любознательны)
logfile_rotate 0 (и не забыть внешнюю ротацию журналов)
pid_filename /usr/local/squid26/var/logs/squid.pid
log_ip_on_direct off (?)
strip_query_terms off (журнал д.б. закрыт на чтение для посторонних)
ftp_user squid@company.ru (некоторые сервера требуют почтовый адрес)
ftp_list_width 48
url_rewrite_program /usr/bin/squidGuard -c /etc/squid/squidguard-blacklists.conf
acl squidGuard src 0.0.0.0/0.0.0.0
url_rewrite_access allow squidGuard
redirector_bypass off (?, поменялось умолчание в 2.6)
request_header_max_size 40 KB
refresh_pattern . 1 20% 4320 (а то некоторые сумасшедшие делают
перерисовку своих страниц каждую секунду)
quick_abort_min 0 KB
quick_abort_max 0 KB
negative_ttl 1 minutes
read_timeout 5 minutes
request_timeout 60 seconds
shutdown_lifetime 3 seconds (иначе не успевает реагировать на reboot)
cache_mgr почтовый-адрес-администратора
cache_effective_user squid
cache_effective_group squid
visible_hostname основное-имя-хоста (используется в сообщениях об ошибках)
delay_pools 1 (одна категория клиентов)
delay_class 1 2 (индивидуальные ограничения)
acl limited src ...
delay_access 1 allow limited
delay_access 1 deny all
delay_parameters 1 -1/-1 8000/4000 (достаточно для модемных клиентов)
snmp_port 3401
snmp_access allow snmppublic localhost
icp_port 0
htcp_port 0 (не надо, если сборка была без --enable-htcp)
always_direct allow to-local-servers
append_domain .company.ru
ipcache_size 8192
memory_pools_limit 10 MB (это не единственный сервер на хосте)
forwarded_for off
cachemgr_passwd ...
coredump_dir /squid26/cache
pipeline_prefetch off (?, иначе проблемы с управлением трафиком и ACL)
high_response_time_warning 1000
скопировать /etc/sysconfig/squid в /etc/sysconfig/squid26 и настроить
скопировать и отредактировать /etc/init.d/squid в /etc/init.d/squid26 создать каталог /usr/local/squid26/var/logs/ (для squid.pid)
установить squidguard
занести /squid26/cache в /etc/updatedb.conf
пробный запуск "service squid26 start"
chkconfig --add squid26
chkconfig --level 345 squid26 on
проделать дырки в экранах (от клиентов к squid и от squid к DC)
в /usr/local/bin процедуру выдачи текущей статистики (statsquid26.sh)
запуск logrotate еженедельно (/etc/logrotate.d/squid26)
смена ссылок в DNS
простое имя DC в /etc/hosts
сбор месячной статистики с помощью sarg (/etc/sarg/sargsquid26.conf,
sarg_month_squid26.sh, /etc/sarg/sargsquid26.top10user.conf,
sarg_user_squid26.sh, в crontab на различные дни; требуется apache2 для доступа
clamav-squid26-scan.sh
logwatch на syslog сервере (?!)
Головной кеширующий прокси для несамостоятельных филиалов,
NTLM аутентификация для локальных сотрудников, немного фильтрации,
распределение нагрузки по каналам. Ставится из исходников в параллель старому,
т.к. в RHEL4/Centos4 версия squid заморожена на 2.5.
пользователь и группа squid появился вместе с установленным пакетом,
иначе его пришлось бы создавать (с домашней директорией /var/spool/squid
и без возможности входа)
создание отдельного раздела под squid (fdisk, размер определяется
наличием оперативной памяти)
создание файловой системы (журнализация, без резервирования, маленький
размер блока, dir_index, large_file):
mke2fs -j -b 2048 [-c] -m 0 -v -L имя-тома -T news -O dir_index,filetype имя-раздела
монтирование раздела (/etc/fstab) с noatime
создание в нем поддиректорий cache и logs с правами для squid:squid, 750
./configure - нестандартные ключи:
--prefix=/usr/local/squid26
--enable-delay-pools (для справедливого деления канала)
--enable-kill-parent-hack (для нормального завершения)
--enable-snmp (сбор статистики mrtg )
--disable-http-violations (не надо жадничать)
--disable-ident-lookups (только зря время тратит)
--enable-truncate (ускоряет доступ к диску)
--enable-removal-policies="lru,heap" (улучшенные алгоритмы вместо LRU)
--enable-linux-netfilter (transparent для ядра Linux 2.4)
--enable-stacktraces (трассировка стека при аварийном завершении)
--enable-useragent-log (реально не используется)
--enable-referer-log (реально не используется)
--enable-forward-log
--enable-arp-acl
--enable-storeio="aufs,diskd,null,ufs"
--enable-htcp
--enable-ssl
--with-openssl=/usr/kerberos
--enable-cachemgr-hostname=localhost
--disable-carp
--disable-wccp
--disable-wccpv2
--enable-default-err-language=Russian-1251
--with-large-files
--enable-large-cache-files
--enable-follow-x-forwarded-for
--enable-auth="basic,ntlm,digest"
--enable-basic-auth-helpers="getpwnam,LDAP,NCSA,PAM,SMB,SASL"
--enable-ntlm-auth-helpers="no_check,SMB"
--enable-digest-auth-helpers="password, ldap"
--enable-external-acl-helpers="ldap_group,unix_group,wbinfo_group"
make all
make install (создает /usr/local/squid26/)
bin
RunCache - скрипт для мониторинга и перезапуска squid
squidclient - имитация удаленного управления squid-ом (Cache Maanger) из
командной строки (в основном получение статистики)
sbin
libexec
diskd-daemon - ?
unlinkd - программа, запускаемая в параллельном процессе занимающаяся
удалением (обрезанием) файлов из кеша
cachemgr - WWW interface to the Cache Manager (надо поместить в
cgi-bin, а лучше не надо ;)
basic аутентификация: getpwname_auth, squid_ldap_auth, ncsa_auth, pam_auth,
smb_auth, smb_auth.sh, sasl_auth
ntlm аутентификация: no_check.pl, ntlm_auth (SMB)
digest аутентификация: digest_pw_auth, digest_ldap_auth
внешние acl: squid_ldap_group, squid_unix_group, wbinfo_group.pl
etc
squid.conf.default - конфигурация по умолчанию
mime.conf.default
squid.conf - текущая конфигурация
mime.conf
cachemgr.conf
share
mib.txt
icons - директория с картинками в формате gif
errors - директория с текстами сообщений об ошибках (на различных языках)
var/logs
man/man8/ (squid.8, cachemgr.cgi.8, ncsa_auth.8, pam_auth.8, squid_ldap_group.8,
squid_unix_group.8)
редактирование /etc/squid/squid.conf
http_port имя-хоста:3127 (на время работы старого сервера)
http_port 127.0.0.1:3127 (для сбора статистики)
icp_port 0
htcp_port 0 (не надо, если сборка была без --enable-htcp)
нет cache_peer
закоментировать "cache deny QUERY"
cache_mem 16 MB (патронов не жалеть!)
cache_swap_low 96 (1% - это 90MB)
cache_swap_high 98
maximum_object_size 8192 KB (для LFUDA)
minimum_object_size 1 KB (быстрее скачать лишний раз)
ipcache_size 8192
cache_replacement_policy heap LFUDA (оптимизируем byterate)
memory_replacement_policy heap GDSF
cache_dir aufs /squid26/cache 9000 32 256
access_log /squid26/logs/access.log squid
cache_log /squid26/logs/cache.log
cache_store_log none (пользы от него никакой, если вы не любознательны)
log_ip_on_direct off (?)
pid_filename /usr/local/squid26/var/logs/squid.pid
ftp_user squid@company.ru (некоторые сервера требуют почтовый адрес)
ftp_list_width 48
url_rewrite_program /usr/bin/squidGuard -c /etc/squid/squidguard-blacklists.conf
acl squidGuard src 0.0.0.0/0.0.0.0
url_rewrite_access allow squidGuard
auth_param ntlm program /usr/local/squid26/libexec/ntlm_auth домен/контроллер
(люди не в домене AD вынуждены на первый запрос (пустой realm) нажимать "Отмена")
auth_param digest program /usr/local/squid26/libexec/digest_pw_auth
/usr/local/squid26/etc/digest_passwd (в формате "имя:пароль"; закрыть на чтение)
или
auth_param digest program /usr/local/squid26/libexec/digest_pw_auth
-c /usr/local/squid26/etc/digest_passwd_ha1
(в формате "имя:область:md5(имя:область:пароль)";
закрыть на чтение)
auth_param digest realm область-действия
auth_param basic program /usr/local/squid26/libexec/ncsa_auth
/usr/local/squid26/etc/ncsa_passwd (заполнить ncsa_passwd,
например, с помощью htpasswd из комплекта apache; закрыть на чтение)
auth_param basic realm область-действия
request_header_max_size 40 KB
refresh_pattern . 1 20% 4320 (а то некоторые сумасшедшие делают
перерисовку своих страниц каждую секунду)
quick_abort_min 0 KB
quick_abort_max 0 KB
negative_ttl 1 minutes
read_timeout 5 minutes
request_timeout 60 seconds
shutdown_lifetime 3 seconds (иначе не успевает реагировать на reboot)
acl all src 0.0.0.0/0.0.0.0
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl DMZ src ...
acl external-net src гостевая-сеть
acl internal-net src ...
acl internal-with-internet-noauth src ...
acl internal-with-internet-auth src ...
acl to-local-servers dst ...
acl to-local-domains dstdomain ...
acl manager proto cache_object
http_access allow manager localhost
http_access deny manager
acl snmppublic snmp_community пароль
acl CONNECT_ports port 80 443 6666 6667
acl CONNECT method CONNECT
http_access deny CONNECT !CONNECT_ports
acl Safe_ports port 80 21 443 3127 3128 3129
http_access deny to-local-servers !Safe_ports (запрещать доступ к
небезопасным портам только для своих серверов, зато и список
безопасных портов можно сократить)
acl PURGE method purge
http_access allow PURGE localhost
http_access deny PURGE
http_access allow to-local-servers
http_access allow to-local-domains
http_access allow localhost
http_access allow DMZ
http_access allow external-net
http_access allow internal-with-internet-noauth
acl password proxy_auth REQUIRED
http_access allow internal-with-internet-auth password
http_access deny all
icp_access deny all
acl unlimit-size src ...
reply_body_max_size макс-размер allow !to-local-servers !unlimit-size
cache_mgr почтовый-адрес-администратора
cache_effective_user squid
cache_effective_group squid
visible_hostname основное-имя-хоста
logfile_rotate 0 (и не забыть внешнюю ротацию журналов)
append_domain .company.ru
memory_pools_limit 10 MB (это не единственный сервер на хосте)
cachemgr_passwd ...
always_direct allow local-servers
snmp_port 3401
snmp_access allow snmppublic localhost
delay_pools 1 (одна категория клиентов)
delay_class 1 2 (индивидуальные ограничения)
acl limited src ...
delay_access 1 allow limited
delay_access 1 deny all
delay_parameters 1 -1/-1 8000/4000 (достаточно для модемных клиентов)
strip_query_terms off (журнал д.б. закрыт на чтение для посторонних)
coredump_dir /squid26/cache
redirector_bypass on (поменялось умолчание в 2.6)
pipeline_prefetch off (иначе проблемы с управлением трафиком и ACL)
high_response_time_warning 1000
скопировать /etc/sysconfig/squid в /etc/sysconfig/squid26
скопировать и отредактировать /etc/init.d/squid в /etc/init.d/squid26 создать каталог /usr/local/squid26/var/logs/ (для squid.pid)
проделать дырки в экранах
пробный запуск "service squid26 start"
в /usr/local/bin процедуру выдачи текущей статистики (statsquid26.sh)
занести /squid26/cache в /e/tc/updatedb.conf
запуск logrotate еженедельно (/etc/logrotate.d/squid26)
сбор месячной статистики с помощью sarg (/etc/sarg/sargsquid26.conf,
sarg_month_squid26.sh, /etc/sarg/sargsquid26.top10user.conf,
sarg_user_squid26.sh, в crontab на другие дни
clamav-squid26-scan.sh
chkconfig --add squid26
chkconfig --level 345 squid26 on
logwatch на syslog сервере (?!)
Прокси в филиале, basic аутентификация, немного фильтрации.
Ставится из исходников, т.к. в RHEL4/Centos4 версия squid заморожена на 2.5.
создать пользователя и группу squid
(с домашней директорией /var/spool/squid и без возможности входа)
создание отдельного раздела под squid (LVM)
создание раздела типа 0x8e (lvm) на весь диск sdc
создание раздела типа 0x8e (lvm) на весь диск sdd
pvcreate /dev/sdc1 и pvcreate /dev/sdd1
vgcreate data /dev/sdc1 /dev/sdd1
lvcreate --name squid --size 20G --stripes 2 data
создание файловой системы (журнализация, без резервирования):
mke2fs -j [-c] -m 0 -v -L имя-тома имя-раздела
монтирование раздела (/etc/fstab) с noatime
создание в нем поддиректорий cache и logs с правами для squid:squid, 750
./configure - нестандартные ключи:
--prefix=/usr/local/squid26
--enable-delay-pools (для справедливого деления канала)
--enable-kill-parent-hack (для нормального завершения)
--enable-snmp (сбор статистики mrtg )
--disable-http-violations (не надо жадничать)
--disable-ident-lookups (только зря время тратит)
--enable-truncate (ускоряет доступ к диску)
--enable-removal-policies="lru,heap" (улучшенные алгоритмы вместо LRU)
--enable-linux-netfilter (transparent для ядра Linux 2.4)
--enable-stacktraces (трассировка стека при аварийном завершении)
--enable-useragent-log (реально не используется)
--enable-referer-log (реально не используется)
--enable-forward-log
--enable-arp-acl
--enable-storeio="aufs,diskd,null,ufs"
--enable-htcp
--enable-ssl
--with-openssl=/usr/kerberos
--enable-cachemgr-hostname=localhost
--disable-carp
--disable-wccp
--disable-wccpv2
--enable-default-err-language=Russian-1251
нельзя --with-large-files
нельзя --enable-large-cache-files
--enable-follow-x-forwarded-for
--enable-epoll
--with-maxfd=16384
--enable-auth="basic,ntlm,digest"
--enable-basic-auth-helpers="getpwnam,LDAP,NCSA,PAM,SMB,SASL"
--enable-ntlm-auth-helpers="no_check,SMB"
--enable-digest-auth-helpers="password, ldap"
--enable-external-acl-helpers="ldap_group,unix_group,wbinfo_group"
make all
make install (создает /usr/local/squid26/, состав см. выше )
редактирование /usr/local/squid26/etc/squid.conf
http_port имя-хоста:3128 (на время работы старого сервера)
http_port 127.0.0.1:3128 (для сбора статистики)
icp_port 0
htcp_port 0 (не надо, если сборка была без --enable-htcp)
нет cache_peer
закоментировать "cache deny QUERY"
cache_mem 16 MB (патронов не жалеть!)
cache_swap_low 96 (1% - это 90MB)
cache_swap_high 98
maximum_object_size 8192 KB (для LFUDA)
minimum_object_size 1 KB (быстрее скачать лишний раз)
ipcache_size 8192
cache_replacement_policy heap LFUDA (оптимизируем byterate)
memory_replacement_policy heap GDSF
cache_dir aufs /squid/cache 15000 32 256
access_log /squid/logs/access.log squid
cache_log /squid/logs/cache.log
cache_store_log none (пользы от него никакой, если вы не любознательны)
log_ip_on_direct off (?)
pid_filename /usr/local/squid26/var/logs/squid.pid
ftp_user squid@company.ru (некоторые сервера требуют почтовый адрес)
ftp_list_width 48
url_rewrite_program /usr/bin/squidGuard -c /etc/squid/squidguard-blacklists.conf
acl squidGuard src 0.0.0.0/0.0.0.0
url_rewrite_access allow squidGuard
# пока только basic, т.к. нет связи с AD
#auth_param ntlm program /usr/local/squid26/libexec/ntlm_auth домен/контроллер
(люди не в домене AD вынуждены на первый запрос (пустой realm) нажимать "Отмена")
#auth_param digest program /usr/local/squid26/libexec/digest_pw_auth
/usr/local/squid26/etc/digest_passwd (в формате "имя:пароль"; закрыть на чтение)
#или
#auth_param digest program /usr/local/squid26/libexec/digest_pw_auth
-c /usr/local/squid26/etc/digest_passwd_ha1
(в формате "имя:область:md5(имя:область:пароль)";
закрыть на чтение)
#auth_param digest realm область-действия
auth_param basic program /usr/local/squid26/libexec/ncsa_auth
/usr/local/squid26/etc/ncsa_passwd (заполнить ncsa_passwd,
например, с помощью htpasswd из комплекта apache; закрыть на чтение)
auth_param basic realm область-действия
request_header_max_size 40 KB
refresh_pattern . 1 20% 4320 (а то некоторые сумасшедшие делают
перерисовку своих страниц каждую секунду)
quick_abort_min 0 KB
quick_abort_max 0 KB
negative_ttl 1 minutes
read_timeout 5 minutes
request_timeout 60 seconds
shutdown_lifetime 3 seconds (иначе не успевает реагировать на reboot)
acl all src 0.0.0.0/0.0.0.0
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl DMZ src ...
acl internal-net src ...
acl internal-with-internet-noauth src "полное-имя-файла"
acl internal-with-internet-auth src "полное-имя-файла"
acl to-local-servers dst ...
acl to-local-domains dstdomain ...
acl manager proto cache_object
http_access allow manager localhost
http_access deny manager
acl snmppublic snmp_community пароль
acl CONNECT_ports port 80 443 свои порты для метода CONNECT
acl CONNECT method CONNECT
acl Safe_ports port 80 21 443 порты своих сервисов
http_access deny CONNECT !CONNECT_ports
http_access deny to-local-servers !Safe_ports (запрещать доступ к
небезопасным портам только для своих серверов, зато и список
безопасных портов можно сократить)
acl PURGE method purge
http_access allow PURGE localhost
http_access deny PURGE
http_access allow to-local-servers
http_access allow to-local-domains
acl to-open-domains dstdomain домены-для-свободного-доступа
http_access allow to-open-domains
acl to-open-ip dst адреса-для-свободного-доступа
http_access allow to-open-ip
http_access allow localhost
#http_access allow DMZ
http_access allow internal-with-internet-noauth
acl password proxy_auth REQUIRED
http_access allow internal-with-internet-auth password
http_access deny all
icp_access deny all
htcp_access deny all
acl unlimit-size src адреса, допущенных к столику
acl size400m src "полное-имя-файла"
reply_body_max_size 419430400 allow !to-local-servers size400m
reply_body_max_size макс-размер allow !to-local-servers !unlimit-size !size400m
cache_mgr почтовый-адрес-администратора
cache_effective_user squid
cache_effective_group squid
visible_hostname основное-имя-хоста
logfile_rotate 0 (и не забыть внешнюю ротацию журналов)
append_domain .company.ru
memory_pools_limit 10 MB (это не единственный сервер на хосте)
cachemgr_passwd ...
always_direct allow local-servers
snmp_port 3401
snmp_access allow snmppublic localhost
strip_query_terms off (журнал д.б. закрыт на чтение для посторонних)
coredump_dir /squid/cache
redirector_bypass on (поменялось умолчание в 2.6)
pipeline_prefetch off (иначе проблемы с управлением трафиком и ACL)
high_response_time_warning 1000
/etc/sysconfig/squid26 (SQUID_OPTS="-D -s -Y")
скопировать и отредактировать /etc/init.d/squid26 создать каталог /usr/local/squid26/var/logs/ (для squid.pid) и /var/log/squid (права)
проделать дырки в экранах
пробный запуск "service squid26 start"
в /usr/local/bin процедуру выдачи текущей статистики (statsquid26.sh)
занести /squid/cache в /etc/updatedb.conf
запуск logrotate еженедельно (/etc/logrotate.d/squid26)
настройка squidGuard
сбор месячной статистики с помощью sarg (/etc/sarg/sargsquid26.conf,
sarg_month_squid26.sh, /etc/sarg/sargsquid26.top10user.conf,
sarg_user_squid26.sh, в crontab на другие дни
clamav-squid26-scan.sh
chkconfig --add squid26
chkconfig --level 345 squid26 on
logwatch на syslog сервере (?!)
Обычный кеширующий прокси (немного фильтрации) ставится из RPM.
пакет собран с ключами (не хватает: --enable-kill-parent-hack, --enable-gnuregex,
--disable-http-violations):
--exec-prefix=/usr (одновременно --sysconfdir=/etc и --sysconfdir=/etc/squid!)
--enable-snmp
--enable-removal-policies=heap,lru
--enable-storeio=aufs,coss,diskd,null,ufs
--enable-ssl
--enable-delay-pools
--enable-linux-netfilter
--with-pthreads
--enable-ntlm-auth-helpers=SMB,winbind
--enable-external-acl-helpers=ip_user,ldap_group,unix_group,wbinfo_group,winbind_group
--disable-dependency-tracking
--enable-useragent-log, --enable-referer-log
--enable-cachemgr-hostname=localhost
--disable-ident-lookups
--enable-truncate
--enable-underscores
--enable-basic-auth-helpers=LDAP,MSNT,NCSA,PAM,SMB,YP,getpwnam,multi-domain-NTLM,SASL,winbind
при установке пакета заводятся группа squid (23) и пользователь squid (23, /var/spool/squid,
nologin)
создание отдельного раздела под squid (fdisk, размер определяется
наличием оперативной памяти)
создание файловой системы (журнализация, без резервирования, маленький
размер блока):
mke2fs -j -b 2048 -c -m 0 -v имя-раздела
монтирование раздела (/etc/fstab) с noatime
создание в нем поддиректорий cache и logs с правами для squid:squid, 750
состав пакета
/var/spool/squid (вместо него будет /squid/cache)
/var/log/squid (вместо него будет /squid/logs, но при запуске запись всё равно идёт в
/var/log/squid/squid.out)
/etc/logrotate.d/squid (поменять адрес журналов)
/etc/pam.d/squid
/etc/sysconfig/squid (-D -s -Y)
/etc/rc.d/init.d/squid
/etc/squid (*.default - это резервные копии)
squid.conf, squid.conf.default
mime.conf, mime.conf.default
msntauth.conf, msntauth.conf.default
mib.txt
/usr/sbin/squid, /usr/sbin/squidclient
/usr/lib/squid/
cachemgr.cgi
diskd, unlinkd
getpwname_auth, ip_user_check, *_auth, squid_ldap_group, squid_unix_group, wb_*
/usr/share/man/man8/ (squid.8, pam_auth.8, squid_unix_group.8, squid_ldap_auth.8,
squid_ldap_group.8)
/usr/share/squid/errors/
/usr/share/squid/icons/
/usr/share/doc/squid-2.5.STABLE6/
редактирование /etc/squid/squid.conf
http_port имя-хоста:3128 (для нормального прокси)
http_port 127.0.0.1:3128 (для сбора статистики)
http_port имя-хоста:3129 (для антибанерного прокси)
icp_port 0
htcp_port 0 (не надо, если сборка была без --enable-htcp)
нет cache_peer
закоментировать hierarchy_stoplist
закоментировать no_cache
cache_mem 16 MB (патронов не жалеть!)
cache_swap_low 96 (1% - это 90MB)
cache_swap_high 98
maximum_object_size 8192 KB (для LFUDA)
minimum_object_size 1 KB (быстрее скачать лишний раз)
ipcache_size 8192
cache_replacement_policy heap LFUDA (оптимизируем byterate)
memory_replacement_policy heap GDSF
cache_dir ufs /squid/cache 9000 32 256
cache_access_log /squid/logs/access.log
cache_log /squid/logs/cache.log
cache_store_log none (пользы от него никакой, если вы не любознательны)
log_ip_on_direct off (?)
ftp_user squid@deol.ru (некоторые сервера требуют почтовый адрес)
ftp_list_width 48
redirect_program /usr/lib/squid/banners.pl (empty.js, close.js)
acl antibanner myport 3129 (порт 3129 - антибаннер)
redirector_access allow antibanner
(обрабатывать только запросы на порт антибаннера)
refresh_pattern . 1 20% 4320 (а то некоторые сумасшедшие делают
перерисовку своих страниц каждую секунду)
quick_abort_min 0 KB
quick_abort_max 0 KB
negative_ttl 1 minutes
read_timeout 5 minutes
request_timeout 60 seconds
shutdown_lifetime 3 seconds (иначе не успевает реагировать на reboot)
acl clients src клиентские-адреса
acl staff src адреса-сотрудников
acl local-servers dst адреса-серверов
acl Safe_ports port 80 21 443 563 3128 3129 (все остальные "безопасные" порты
закомментировать)
http_access allow PURGE localhost
http_access deny PURGE
http_access deny local-servers !Safe_ports (запрещать доступ к
небезопасным портам только для своих серверов, зато и список
безопасных портов можно сократить)
acl banners_path_regex urlpath_regex -i "/etc/squid/banners_path_regex"
acl banners_regex url_regex -i "/etc/squid/banners_regex"
acl banners_exclusion url_regex -i "/etc/squid/banners_exclusion"
http_access deny antibanner banners_path_regex !banners_exclusion
http_access deny antibanner banners_regex !banners_exclusion
http_access allow clients
http_access allow staff
http_access deny all
icp_access deny all
cache_mgr почтовый-адрес-администратора
cache_effective_user squid
cache_effective_group squid
visible_hostname основное-имя-хоста
logfile_rotate 100
append_domain .deol.ru
memory_pools_limit 10 MB (это не единственный сервер на хосте)
always_direct allow local-servers
snmp_port 3401
acl snmppublic snmp_community пароль
snmp_access allow snmppublic localhost
as_whois_server 198.108.0.18 (whois.radb.net)
strip_query_terms off (журнал д.б. закрыт на чтение для посторонних)
coredump_dir /squid/cache
pipeline_prefetch off (иначе проблемы с управлением трафиком и ACL)
vary_ignore_expire on (?)
в /usr/local/bin процедуру выдачи статистики (statsquid.sh)
запуск logrotate еженедельно
проделать дырки для доступа в клиентском экране и на самом хосте
service squid start
chkconfig --level 345 squid on
Один за всех - обычный кеширующий прокси, прозрачный прокси,
фильтрация контента, распределение нагрузки по нескольким каналам.
заведение пользователя и группы squid с домашней директорией /usr/local/squid (/etc/group, /etc/passwd, /etc/shadow)
создание отдельного раздела под squid (fdisk, размер определяется
наличием оперативной памяти)
создание файловой системы (журнализация, без резервирования, маленький
размер блока):
mke2fs -j -b 2048 -c -m 0 -v имя-раздела
монтирование раздела (/etc/fstab) с noatime
создание в нем поддиректорий cache и logs с правами для squid:squid, 750
./configure - нестандартные ключи:
--prefix=/usr/local/squid
--enable-delay-pools (для справедливого деления канала)
--enable-kill-parent-hack (для нормального завершения)
--enable-snmp (сбор статистики mrtg )
--enable-gnuregex
--disable-http-violations (не надо жадничать)
--disable-ident-lookups (только зря время тратит)
--enable-truncate (ускоряет доступ к диску)
--enable-underscores (иначе имена хостов с подчеркиванием не обрабатываются)
--enable-dlmalloc
--enable-removal-policies="lru,heap" (улучшенные алгоритмы вместо LRU)
--enable-linux-netfilter (transparent для ядра Linux 2.4)
--enable-stacktraces (трассировка стека при аварийном завершении)
--enable-useragent-log (реально не используется)
--enable-referer-log (реально не используется)
--enable-arp-acl (реально не используется)
make all
make install (создает /usr/local/squid)
bin
squid - собственно Squid
squidclient - имитация удаленного управления squid-ом (Cache Maanger) из
командной строки (в основном получение статистики)
libexec
unlinkd - программа, запускаемая в параллельном процессе занимающаяся
удалением файлов из кеша
cachemgr - WWW interface to the Cache Manager (надо поместить в
cgi-bin, а лучше не надо ;)
etc
squid.conf.default - конфигурация по умолчанию
squid.conf - текущая конфигурация
mime.conf.default
mime.conf
share
mib.txt
icons - директория с картинками в формате gif
errors - директория с текстами сообщений об ошибках (по умолчанию
берется
английская версия, но есть и на русском в cp1251 и koi8-r)
var/logs
man/man8/squid.8
/usr/local/squid/bin/banners.pl (программа на perl для редиректора,
который заменяет нежелательные имена JavaScript на empty.js; chmod ugo+x)
/usr/local/squid/etc/banners_regex (шаблоны для резки баннеров)
/usr/local/squid/etc/banners_path_regex (обобщенные шаблоны для резки
баннеров)
/usr/local/squid/etc/banners_exclusion (исключения из шаблонов)
/usr/local/squid/etc/russian.as.cleared (список "российских" автономных
систем, точнее тех AS, траффик из которых обходится дешевле)
настройка конфигурации
http_port имя-хоста:3128 (для нормального прокси)
http_port 127.0.0.1:3128 (для сбора статистики)
http_port имя-хоста:3129 (для антибанерного прокси)
icp_port 0
htcp_port 0 (не надо, если сборка была без --enable-htcp)
нет cache_peer
закоментировать hierarchy_stoplist
закоментировать no_cache
cache_mem 16 MB (патронов не жалеть!)
cache_swap_low 96 (1% - это 90MB)
cache_swap_high 98
maximum_object_size 8192 KB (для LFUDA)
minimum_object_size 1 KB (быстрее скачать лишний раз)
ipcache_size 8192
cache_replacement_policy heap LFUDA (оптимизируем byterate)
memory_replacement_policy heap GDSF
cache_dir ufs /squid/cache 9000 32 256
cache_access_log /squid/logs/access.log
cache_log /squid/logs/cache.log
cache_store_log none (пользы от него никакой)
pid_filename /squid/logs/squid.pid
ftp_user squid@deol.ru (некоторые сервера требуют почтовый адрес)
ftp_list_width 48
redirect_program /usr/local/squid/bin/banners.pl (empty.js)
acl antibanner myport 3129 (порт 3129 - антибаннер)
redirector_access allow antibanner
(обрабатывать только запросы на порт антибаннера)
refresh_pattern . 1 20% 4320 (а то некоторые сумасшедшие делают
перерисовку своих страниц каждую секунду)
negative_ttl 1 minutes
read_timeout 5 minutes
request_timeout 60 seconds
client_lifetime 8 hour
half_closed_clients off
shutdown_lifetime 3 seconds (иначе не успевает реагировать на reboot)
acl clients src клиентские-адреса
acl staff src адреса-сотрудников
acl local-servers dst адреса-серверов
acl Safe_ports port 80 21 443 563 (все остальные "безопасные" порты
закомментировать)
http_access allow PURGE localhost
http_access deny PURGE
http_access deny local-servers !Safe_ports (запрещать доступ к
небезопасным портам только для своих серверов, зато и список
безопасных портов можно сократить)
acl banners_path_regex urlpath_regex -i "/usr/local/squid/etc/banners_path_regex"
acl banners_regex url_regex -i "/usr/local/squid/etc/banners_regex"
acl banners_exclusion url_regex -i "/usr/local/squid/etc/banners_exclusion"
http_access deny antibanner banners_path_regex !banners_exclusion
http_access deny antibanner banners_regex !banners_exclusion
http_access allow clients
http_access allow staff
http_access deny all
icp_access deny all
acl night time 01:00-11:00 (период слабой нагрузки)
acl night time 18:30-23:30 (период слабой нагрузки)
acl weekend time SA (период слабой нагрузки)
acl SC dst_as "/usr/local/squid/etc/russian.as.cleared"
(список автономных систем для загрузки второго канала)
acl SCadd dst адреса (список дополнительных адресов для загрузки
второго канала в "тяжелое" время)
tcp_outgoing_address адрес-второго-интерфеса SC
tcp_outgoing_address адрес-второго-интерфеса SCadd !night !weekend
tcp_outgoing_address адрес-основного-интерфейса
cache_mgr почтовый-адрес-администратора
cache_effective_user squid
cache_effective_group squid
visible_hostname основное-имя-хоста
httpd_accel_host virtual (для transparent proxy)
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
logfile_rotate 100
append_domain .deol.ru
memory_pools_limit 10 MB (это не единственный сервер на хосте)
client_db off
buffered_logs on
always_direct allow local-servers
minimum_retry_timeout 10 seconds
acl snmppublic snmp_community пароль
snmp_access allow snmppublic
as_whois_server 198.108.0.18 (whois.radb.net)
delay_pools 1 (одна категория клиентов)
delay_class 1 2 (индивидуальные ограничения)
delay_access 1 allow clients
delay_access 1 deny all
delay_parameters 1 -1/-1 8000/4000 (достаточно для модемных клиентов)
strip_query_terms off (журнал д.б. закрыт на чтение для посторонних)
coredump_dir /squid/cache
pipeline_prefetch off
vary_ignore_expire on (?)
создание директорий под кеш (squid -z)
в /etc/rc.d/init.d процедуру start/stop/restart/logrotate и ссылку на нее из rc2.d/rc3.d (запуск с ключами -sY)
в /usr/local/bin процедуру выдачи статистики (statsquid.sh)
запуск logrotate еженедельно
проделать дырки для доступа в клиентском экране и на самом хосте
Устанавливаем на один хост два сервера. Один режет баннеры
и перенаправляет запросы на основной сервер (
на другом компьютере ). Второй - вспомогательный сервер для
балансировки загрузки канала
берем источник
./configure - нестандартные ключи:
--prefix=/usr/local/squid
--enable-delay-pools (для справедливого деления канала)
--enable-useragent-log (реально не используется)
--enable-kill-parent-hack (для нормального завершения)
--enable-snmp (сбор статистики mrtg )
--enable-gnuregex
--disable-http-violations (не надо жадничать)
--disable-ident-lookups (только зря время тратит)
--disable-internal-dns (а может уже можно? )
--enable-truncate (ускоряет доступ к диску)
--enable-underscores (иначе имена хостов с подчеркиванием не обрабатываются)
--enable-dlmalloc
--enable-heap-replacement (улучшенные алгоритмы вместо LRU)
make all
заведение пользователя и группы squid с домашней директорией /usr/local/squid
make install (создает /usr/local/squid)
bin
RunCache - процедура для запуска squid и перезапуска в случае аварийного
завершения
RunAccel - аналогично для режима акселерации WWW-сайта
squid - собственно Squid
client - имитация удаленного управления squid-ом (Cache Maanger) из
командной строки (в основном получение статистики)
dnsserver - вспомогательная программа (DNS lookup и кеш, параллельно
запускается несколько штук)
unlinkd - программа, запускаемая в параллельном процессе занимающаяся
удалением файлов из кеша
cachemgr.cgi - WWW interface to the Cache Manager (надо поместить в
cgi-bin, а лучше не надо)
etc
mib.txt
squid.conf.default - конфигурация по умолчанию
squid.conf - текущая конфигурация
mime.conf.default
mime.conf
icons - директория с картинками в формате gif
errors - директория с текстами сообщений об ошибках (по умолчанию берется
английская версия, но есть и на русском в cp1251 и koi8-r)
делаем несколько поддиректорий под различные конфигурации: asquid
(распасовщик), bsquid (антибаннер) с правами только squid:squid, в каждой
из которых
logs (на большой диск и права только для squid:squid)
cache (на большой диск и права только для squid:squid)
конфигурирование распасовщика
нестандартный входной порт
никаких icp/htcp и соседей
tcp_outgoing_address из вспомогательной сетки
пытаюсь запретить кеширование вовсе с помощью no_cache и always_direct
allow all
очень маленький кеш - пусть 100 МБ
имена файлов под cache, logs и pid
запрет доступа к "небезопасным" портам своих хостов
конфигурирование антибаннера
создание директорий под кеш (squid -z -f имя-конфига)
в /etc/rc.d/init.d процедуру start/stop/restart/logrotate и ссылку на нее из rc2.d/rc3.d
в /usr/local/bin процедуру выдачи статистики (statsquid.sh)
запуск logrotate еженедельно
проделать дырки для доступа к антибанеру во внешнем firewall и на самом
хосте
Для кеширования запросов сотрудников, забывших ;)
сконфигурировать свои броузеры для использвания proxy.
берем источник
./configure - нестандартные ключи:
--prefix=/usr/local/squid
--enable-delay-pools
--enable-useragent-log
--enable-kill-parent-hack
--enable-snmp
--enable-gnuregex
--disable-http-violations
--disable-ident-lookups
--enable-arp-acl
--enable-truncate
--enable-underscores
--enable-dlmalloc
--enable-heap-replacement
на --enable-ipf-transparent ругается, что не нашел IP filter (и без этого
прекрасно работает в режиме transparent)
получаются
makefile
lib/Makefile
include/config.h
scripts/Makefile, RunCache, RunAccel
src/Makefile
contrib/Makefile
snmplib/Makefile
icons/...
error/...
authmodulesNCSA, PAM, SMB, LDAP, getpwnam
include/autoconf.h
make all
заведение пользователя и группы squid с домашней директорией
/usr/local/squid
make install (создает /usr/local/squid)
bin
RunCache - процедура для запуска squid и перезапуска в случае аварийного
завершения
RunAccel - аналогично для режима акселерации WWW-сайта
squid - собственно Squid
client - имитация удаленного управления squid-ом (Cache Maanger) из
командной строки (в основном получение статистики)
dnsserver - вспомогательная программа (DNS lookup и кеш, параллельно
запускается несколько штук)
unlinkd - программа, запускаемая в параллельном процессе занимающаяся
удалением файлов из кеша
cachemgr.cgi - WWW interface to the Cache Manager (надо поместить в
cgi-bin)
etc
mib.txt
squid.conf.default - конфигурация по умолчанию
squid.conf - текущая конфигурация
mime.conf.default
mime.conf
icons - директория картинками в формате gif
errors - директория с текста сообщений об ошибках (по умолчанию берется
английская версия, но есть и на русском в cp1251 и koi8-r)
logs (на большой диск и права для squid)
cache (на большой диск и права для squid, отдельная файловая система с
noatime и без резервирования места)
конфигурирование squid.conf
Вспомогательный сервер. Принимает запросы от других
серверов и выдает их от своего имени по резервному каналу (см.
балансировка каналов).
берем источник
./configure - нестандартные ключи:
--prefix=/usr/local/squid
--enable-delay-pools
--enable-useragent-log
--enable-kill-parent-hack
--enable-snmp
--enable-gnuregex
--disable-http-violations
--disable-ident-lookups
--disable-internal-dns
--enable-truncate
--enable-underscores
--enable-dlmalloc
make all
заведение пользователя и группы squid с домашней директорией
/usr/local/squid
make install (создает /usr/local/squid)
bin
RunCache - процедура для запуска squid и перезапуска в случае аварийного
завершения
RunAccel - аналогично для режима акселерации WWW-сайта
squid - собственно Squid
client - имитация удаленного управления squid-ом (Cache Maanger) из
командной строки (в основном получение статистики)
dnsserver - вспомогательная программа (DNS lookup и кеш, параллельно
запускается несколько штук)
unlinkd - программа, запускаемая в параллельном процессе занимающаяся
удалением файлов из кеша
cachemgr.cgi - WWW interface to the Cache Manager (надо поместить в cgi-bin)
etc
mib.txt
squid.conf.default - конфигурация по умолчанию
squid.conf - текущая конфигурация
mime.conf.default
mime.conf
icons - директория с картинками в формате gif
errors - директория с текстами сообщений об ошибках (по умолчанию берется
английская версия, но есть и на русском в cp1251 и koi8-r)
logs (на большой диск и права для squid)
cache (на большой диск и права для squid)
конфигурирование
нестандартный входной порт
никаких icp/htcp и соседей
tcp_outgoing_address из вспомогательной сетки
пытаюсь запретить кеширование вовсе с помощью no_cache и always_direct
allow all
очень маленький кеш - пусть 100 МБ
при установке linux был запрошен пакет squid-2.2STABLE1-1.i386.rpm, затем
заменен на squid-2.2STABLE4-5.i386.rpm из updates. Он там не сконцентрирован
в /usr/local/squid, а встроен в систему - /usr/lib/squid/ (cachemgr.cgi,
dnsserver, errors/, icons/, unlinkd), /etc/squid/ (errors, mib.txt, mime.conf,
squid.conf), /etc/rc.d/init.d/squid (но из rc2.d и rc3.d вызывается только
завершение), /etc/logrotate.d/squid (определяет правила для logrotate
по обрезанию журналов), /var/log/squid, /var/spool/squid, /usr/sbin/client,
/usr/sbin/squid, /usr/doc/squid-2.2STABLE4/. Почему-то отсутствует pinger,
RunCache и RunAccel (но аварийное завершение обрабатывается корректно).
Директории в кеше создает самостоятельно при первом запуске.
пользователь squid группы squid с домашней директорией /var/spool/squid
(там будет лежать кеш).
на диске, где много места, завожу директорию squid с поддиректориями cache
и log и соответствующими правами и делаю линки на них от /var/spool/squid
и /var/log/squid.
настройка squid.conf. Т.к. неизвестно с какими параметрами этот squid был
скомпилирован (--enable-htcp точно не было), то все имена файлов лучше
указать явно.
запуск по (можно поставить в /etc/rc.d/rc3.d/S25squid, чтобы стартовал
при перезагрузке) /etc/rc.d/init.d/squid start
Не советую, лучше сделать самому из исходников, а из rpm
взять процедуры запуска и обрезания журнала.
берем источник
не забыть добавить /usr/ccs/bin в PATH до конфигурации, а то ar не
найдет
./configure - нестандартные ключи:
--enable-htcp (разрешить общение по ICP соседями через TCP)
--prefix=/usr/local/squid (директория для установки)
--enable-useragent_log
--disable-ident
--enable-icmp (измерять путь до каждого HTTP-сервера при запросах)
--disable-http-violations (игнорировать все строки в конфигурации, которые
нарушают стандарты HTTP)
--enable-delay-pools
make all
заведение пользователя и группы squid с домашней директорией
/usr/local/squid
make install ( соответствующими правами)
bin
RunCache - процедура для запуска squid и перезапуска в случае аварийного
завершения
RunAccel - аналогично для режима акселерации WWW-сайта
squid - собственно Squid
client - имитация удаленного управления squid-ом (Cache Maanger) из
командной строки (в основном получение статистики)
dnsserver - вспомогательная программа (DNS lookup и кеш, параллельно
запускается несколько штук)
unlinkd - программа, запускаемая в параллельном процессе и занимающаяся
удалением файлов из кеша
cachemgr.cgi - WWW interface to the Cache Manager (надо поместить в
cgi-bin; не советую - съедят)
etc
mib.txt
squid.conf.default - конфигурация по умолчанию
squid.conf - текущая конфигурация
mime.conf.default
mime.conf
icons - директория картинками в формате gif
errors - директория с текста сообщений об ошибках (по умолчанию берется
английская версия, но есть и на русском в cp1251 и koi8-r)
logs - журналы (будет сильно расти в размере)
cache - собственно кеш (будет ОЧЕНЬ сильно расти в размере)
первый раз запустить "squid -z" чтобы он создал директории в кеше
Bog BOS: Squid: примеры установки (RedHat, Solaris)
Copyright © 1996-2023 Sergey E. Bogomolov; www.bog.pp.ru