Squid кеширование Kerberos Авторизации

Проблемы с установкой, настройкой и работой системных и сетевых программ.

Модераторы: GRooVE, alexco

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Чистый
рядовой
Сообщения: 18
Зарегистрирован: 2014-12-30 17:45:54

Squid кеширование Kerberos Авторизации

Непрочитанное сообщение Чистый » 2015-04-27 9:38:25

Добрый день, есть настроеный Squid c Kerberos авторизацией через AD. Но вот вылезла проблема, что при большом количестве пользователей (200) идет очень большая нагрузка на CPU:
squid_idle.png
без авторизации
До 9 утра просто отсутствуют пользователи, рабочий день не начался, когда отключаю авторизацию, то нагрузка сразу пропадает:
squid.png
с авторизацией
По графику видно как в 9:24 я отключил авторизацию. Возможно ли как-то кеширировать авторизацию или затинюнговать ее что бы снизить нагрузку на процессор. Вариант отключить авторизацию не хорошо и вариант с Basic авторизации тоже не очень нравится. Хочется все же оставить kerberos. Cпасибо.

squid 3.5.3 (пробовал 3.3.13 нагрузка так же большая на процессор, 3.4.8 вовсе плохо себя ведет при пользователя больше 30)
ключи сборки:
configure options: '--build=i686-linux-gnu' '--prefix=/usr' '--includedir=/usr/include' '--mandir=/usr/share/man' '--datadir=/usr/share/squid' '--infodir=/usr/share/info' '--bindir=/usr/sbin' '--libexecdir=/usr/lib/squid' '--localstatedir=/var' '--sysconfdir=/etc/squid' '--enable-auth-basic=DB,fake,getpwnam,LDAP,NCSA,NIS,POP3,RADIUS,SASL,SMB' '--enable-auth-negotiate=kerberos,wrapper' '--enable-auth-ntlm=fake,smb_lm' '--enable-external-acl-helpers=file_userip,kerberos_ldap_group,LDAP_group,SQL_session,unix_group,wbinfo_group' '--enable-auth-digest=file,LDAP' '--enable-removal-policies=lru,heap' '--enable-inline' '-enable-async-io=8' '--enable-storeio=ufs,aufs,diskd,rock' '--enable-delay-pools' '--enable-cache-digests' '--enable-underscores' '--enable-icap-client' '--enable-follow-x-forwarded-for' '--enable-url-rewrite-helpers=fake' '--enable-eui' '--enable-esi' '--enable-zph-qos' '--with-swapdir=/var/spool/squid' '--with-pidfile=/var/run/squid.pid' '--with-filedescriptors=65536' '--with-large-files' '--with-default-user=squid' '--enable-linux-netfilter' '--enable-ltdl-convenience' '--srcdir=.' '--disable-mainteiner-mode' '--disable-dependency-tracking' '--disable-silent-rules' '--with-logdir=/var/log/squid' '--enable-auth' '--enable-epoll' '--enable-ident-lookups' '--enable-snmp' '--enable-wccpv2' '--enable-ssl' '--enable-ssl-crtd' '--enable-icmp' '--with-aio' '--with-dl' '--with-openssl' '--with-pthreads' '--with-included-ltdl' '--disable-arch-native' '--without-nettle' 'CFLAGS=-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables' 'CXXFLAGS=-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables -fPIC' 'build_alias=i686-linux-gnu'

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2460 рублей (8 CPU, 8Gb RAM, 2x500Gb HDD, RAID 3ware 9750):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
kharkov_max
капитан
Сообщения: 1790
Зарегистрирован: 2008-10-03 14:56:40

Squid кеширование Kerberos Авторизации

Непрочитанное сообщение kharkov_max » 2015-04-28 7:48:53

Где то читал что это косяк версии 3.5, а вот в 3.3 все нормально. В 3.5 похоже что хелпер полностью переписали

Чистый
рядовой
Сообщения: 18
Зарегистрирован: 2014-12-30 17:45:54

Squid кеширование Kerberos Авторизации

Непрочитанное сообщение Чистый » 2015-04-28 12:11:05

у меня на версии squid 3.3.13 тоже большая нагрузка на процессор при kerberos авторизации.. Какая ветка 3 версии нормально работает с kerberos ?

Аватара пользователя
Mox
лейтенант
Сообщения: 757
Зарегистрирован: 2008-12-16 16:04:14
Откуда: питер
Контактная информация:

Squid кеширование Kerberos Авторизации

Непрочитанное сообщение Mox » 2015-04-29 12:06:32

Чистый писал(а):у меня на версии squid 3.3.13 тоже большая нагрузка на процессор при kerberos авторизации.. Какая ветка 3 версии нормально работает с kerberos ?
У меня и 3.5.3 нормально работает

Отправлено спустя 2 минуты 2 секунды:
Чистый писал(а):Добрый день, есть настроеный Squid c Kerberos авторизацией через AD. Но вот вылезла проблема, что при большом количестве пользователей (200) идет очень большая нагрузка на CPU:
squid_idle.png
До 9 утра просто отсутствуют пользователи, рабочий день не начался, когда отключаю авторизацию, то нагрузка сразу пропадает:
squid.png
По графику видно как в 9:24 я отключил авторизацию. Возможно ли как-то кеширировать авторизацию или затинюнговать ее что бы снизить нагрузку на процессор. Вариант отключить авторизацию не хорошо и вариант с Basic авторизации тоже не очень нравится. Хочется все же оставить kerberos. Cпасибо.

squid 3.5.3 (пробовал 3.3.13 нагрузка так же большая на процессор, 3.4.8 вовсе плохо себя ведет при пользователя больше 30)
ключи сборки:
configure options: '--build=i686-linux-gnu' '--prefix=/usr' '--includedir=/usr/include' '--mandir=/usr/share/man' '--datadir=/usr/share/squid' '--infodir=/usr/share/info' '--bindir=/usr/sbin' '--libexecdir=/usr/lib/squid' '--localstatedir=/var' '--sysconfdir=/etc/squid' '--enable-auth-basic=DB,fake,getpwnam,LDAP,NCSA,NIS,POP3,RADIUS,SASL,SMB' '--enable-auth-negotiate=kerberos,wrapper' '--enable-auth-ntlm=fake,smb_lm' '--enable-external-acl-helpers=file_userip,kerberos_ldap_group,LDAP_group,SQL_session,unix_group,wbinfo_group' '--enable-auth-digest=file,LDAP' '--enable-removal-policies=lru,heap' '--enable-inline' '-enable-async-io=8' '--enable-storeio=ufs,aufs,diskd,rock' '--enable-delay-pools' '--enable-cache-digests' '--enable-underscores' '--enable-icap-client' '--enable-follow-x-forwarded-for' '--enable-url-rewrite-helpers=fake' '--enable-eui' '--enable-esi' '--enable-zph-qos' '--with-swapdir=/var/spool/squid' '--with-pidfile=/var/run/squid.pid' '--with-filedescriptors=65536' '--with-large-files' '--with-default-user=squid' '--enable-linux-netfilter' '--enable-ltdl-convenience' '--srcdir=.' '--disable-mainteiner-mode' '--disable-dependency-tracking' '--disable-silent-rules' '--with-logdir=/var/log/squid' '--enable-auth' '--enable-epoll' '--enable-ident-lookups' '--enable-snmp' '--enable-wccpv2' '--enable-ssl' '--enable-ssl-crtd' '--enable-icmp' '--with-aio' '--with-dl' '--with-openssl' '--with-pthreads' '--with-included-ltdl' '--disable-arch-native' '--without-nettle' 'CFLAGS=-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables' 'CXXFLAGS=-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables -fPIC' 'build_alias=i686-linux-gnu'
Конфиг-то свой покажите
"В мире программирования алгоритмы становятся более важными, чем код, и именно из-за академических корней в BSD изначально большое внимание уделялось проработке алгоритмов". Мэтт Диллон

Аватара пользователя
Mox
лейтенант
Сообщения: 757
Зарегистрирован: 2008-12-16 16:04:14
Откуда: питер
Контактная информация:

Squid кеширование Kerberos Авторизации

Непрочитанное сообщение Mox » 2015-04-29 17:41:39

Да и что за сервер у вас?
"В мире программирования алгоритмы становятся более важными, чем код, и именно из-за академических корней в BSD изначально большое внимание уделялось проработке алгоритмов". Мэтт Диллон

Чистый
рядовой
Сообщения: 18
Зарегистрирован: 2014-12-30 17:45:54

Squid кеширование Kerberos Авторизации

Непрочитанное сообщение Чистый » 2015-05-01 16:09:22

CentOS 6.6

Код: Выделить всё

visible_hostname squid
http_port 127.0.0.1:3128
http_port 192.168.1.65:3128
max_open_disk_fds 65536
max_filedesc 65536
httpd_suppress_version_string on
cache_mgr it@admin.com
icp_port 0
global_internal_static off
request_header_max_size 128 KB
reply_header_max_size 128 KB
buffered_logs on
negative_ttl 2 seconds
shutdown_lifetime 5 seconds
detect_broken_pconn on
half_closed_clients off
server_persistent_connections off
client_persistent_connections off
ignore_unknown_nameservers on
positive_dns_ttl 1 hour
negative_dns_ttl 30 seconds
dns_retransmit_interval 2 seconds
dns_timeout 20 seconds
check_hostnames on
uri_whitespace encode
allow_underscore off
relaxed_header_parser warn
forwarded_for delete
balance_on_multiple_ip off
connect_timeout 20 seconds
request_timeout 2 minutes
read_timeout 5 minutes
client_db on
coredump_dir /var/spool/squid
error_directory /usr/share/squid/errors/ru
error_default_language ru
include /etc/squid/auth.conf
include /etc/squid/acl.conf 
include /etc/squid/rejik.conf 
include /etc/squid/cache.conf 
include /etc/squid/delay.conf 
include /etc/squid/snmp.conf
auth.conf

Код: Выделить всё

#
# Kerberos
#
auth_param negotiate program /usr/lib/squid/negotiate_kerberos_auth -r -s HTTP/squid.com.loc@COM.LOC
auth_param negotiate children 100
auth_param negotiate keep_alive off
#
# BASIC
#
auth_param basic program /usr/lib/squid/basic_ldap_auth -v 3 -P -R -b "dc=com,dc=loc" -D ldapreader@com.loc -W /etc/squid/ldappass.txt -f sAMAccountName=%s -h dc1.com.loc
auth_param basic children 30
auth_param basic realm "Proxy Authentication!"
auth_param basic credentialsttl 2 hours
cache.conf

Код: Выделить всё

cache_mem 2048 MB
maximum_object_size_in_memory 2048 KB
memory_replacement_policy heap GDSF
cache_replacement_policy heap LFUDA
cache_dir ufs /mnt/squid-cache/ 22000 16 256
maximum_object_size 32768 KB
refresh_pattern \.bz2$          43200   100%    43200 
refresh_pattern \.exe$          43200   100%    43200 
refresh_pattern \.gif$          43200   100%    43200
refresh_pattern \.gz$           43200   100%    43200
refresh_pattern \.ico$          43200   100%    43200
refresh_pattern \.jpg$          43200   100%    43200
refresh_pattern \.mid$          43200   100%    43200
refresh_pattern \.mp3$          43200   100%    43200
refresh_pattern \.pdf$          43200   100%    43200
refresh_pattern \.swf$          43200   100%    43200
refresh_pattern \.tar$          43200   100%    43200
refresh_pattern \.tgz$          43200   100%    43200
refresh_pattern \.zip$          43200   100%    43200
refresh_pattern http://ad\.                        43200   100%    43200 
refresh_pattern http://ads\.                       43200   100%    43200
refresh_pattern http://adv\.                       43200   100%    43200
refresh_pattern http://click\.                     43200   100%    43200
refresh_pattern http://count\.                     43200   100%    43200
refresh_pattern http://counter\.                   43200   100%    43200
refresh_pattern http://engine\.                    43200   100%    43200
refresh_pattern http://img\.readme\.ru             43200   100%    43200
refresh_pattern http://userpic\.livejournal\.com   43200   100%    43200
refresh_pattern \.ru/bf-analyze                    43200   100%    43200
refresh_pattern \.ru/bf-si                         43200   100%    43200
refresh_pattern /advs/                             43200   100%    43200
refresh_pattern /banners/                          43200   100%    43200
refresh_pattern /cgi-bin/iframe/                   43200   100%    43200
refresh_pattern ^ftp:		1440	20%	10080
refresh_pattern ^gopher:	1440	0%	1440
refresh_pattern -i (/cgi-bin/|\?) 0	0%	0
refresh_pattern .		0	80%	14400
думаю что др настройки врядли могут влиять на процессорное время.

Аватара пользователя
Mox
лейтенант
Сообщения: 757
Зарегистрирован: 2008-12-16 16:04:14
Откуда: питер
Контактная информация:

Squid кеширование Kerberos Авторизации

Непрочитанное сообщение Mox » 2015-05-04 11:13:14

А с чего вы взяли, что это "проблема"? Вы не думали, что так и должно быть?
Посмотрите в top кто ест проц
"В мире программирования алгоритмы становятся более важными, чем код, и именно из-за академических корней в BSD изначально большое внимание уделялось проработке алгоритмов". Мэтт Диллон

Чистый
рядовой
Сообщения: 18
Зарегистрирован: 2014-12-30 17:45:54

Squid кеширование Kerberos Авторизации

Непрочитанное сообщение Чистый » 2015-05-04 11:36:24

Ну проц кушает как раз таки хелперы squid которые отвечают за kerberos авторизацию, в документации нашел что такую нагрузку может давать replay кеш:
squid doc писал(а): Kerberos can keep a replay cache to detect the reuse of Kerberos
tickets (usually only possible in a 5 minute window) . If squid is
under high load with Negotiate(Kerberos) proxy authentication requests
the replay cache checks can create high CPU load. If the environment
does not require high security the replay cache check can be disabled
for MIT based Kerberos implementations by adding the following to the
startup script

KRB5RCACHETYPE=none export KRB5RCACHETYPE
На дня попробую данную опцию и посмотрю как это будет влиять на CPU.

Чистый
рядовой
Сообщения: 18
Зарегистрирован: 2014-12-30 17:45:54

Squid кеширование Kerberos Авторизации

Непрочитанное сообщение Чистый » 2015-07-23 21:05:23

Пусть и слишком долго, но все же, выше описанная мною опция решило полностью проблему. Спасибо всем.

Павел
проходил мимо

Squid кеширование Kerberos Авторизации

Непрочитанное сообщение Павел » 2018-06-21 15:56:34

Подскажи куда и в какаю строку ты добавил krb5rcachetype=none export krb5rcachetype ???

Аватара пользователя
skeletor
майор
Сообщения: 2430
Зарегистрирован: 2007-11-16 18:22:04
Откуда: Kiev
Контактная информация:

Squid кеширование Kerberos Авторизации

Непрочитанное сообщение skeletor » 2018-06-22 9:26:42

Я добавил в /usr/local/etc/rc.d/squid сразу после

Код: Выделить всё

rcvar=squid_enable
Минус - при обновлении squid'a нужно добавлять эту строку заново. Возможно, правильнее добавить в другое место, но я не нашёл куда.
"Винда съела дрова и резет здесь не фурычит."
"Все говорят, что у меня /dev/hands криво и я всё делаю через /dev/ass. А у меня этих фалов вообще нет!"