|
Bog BOS: Squid: примеры установки (RedHat, Solaris)
|
Последнее изменение файла: 2010.03.12
Скопировано с www.bog.pp.ru: 2024.11.21
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-2024 Sergey E. Bogomolov; www.bog.pp.ru