Мы — долго запрягаем, быстро ездим, и сильно тормозим.
|
|||||||||||||||||||||||||||
www.lissyara.su
—> статьи
—> FreeBSD
|
|
Одной из задач было использовать sqstat - поэтому пришлось отказаться от squidGuard в пользу родных методов ограничения сквида - при использовании внешних редиректоров пропадает "живая" статистика.
Поехали. Ставим самбу:
|
В вылезшем окошке расставляем такой набор галок:
|
Заметим, что в современных версиях FreeBSD керберос из портов ставить не обязательно - прекрасно работает и без него. После инсталляции самбы, рисуем для неё такой конфиг:
|
И для кербероса:
|
А также для nsswitch:
|
Особых комментариев нет - всё это я уже рассказывал раньше, в статье про samba и ACL.
Далее - ставим собственно сквид:
|
В окошке снимаем все галки - мне так ничё не нужно от него кроме авторизации и кэширования. Первый же возникающий вопрос - почему не ставил третий сквид? Ставил. Работает. Синтаксис как у 2.6 - но, QIP, сцуко, не может нативно авторизоваться. Авторизовалка ntlm у него кривая... Пришлось снести и поставить squid2.6.
После инсталляции, занимаемся самбой - надо ввести её в домен, но, вначале получаем билетик керберос:
|
Ну и вводим в домен:
|
Добавляем такие строки в /etc/rc.conf:
|
Мне сама самба не нужна - нужен тока винбинд, поэтому тока он. После этого запускаем самбу
|
Проверяем, что из всего этого получилось:
|
Всё нормально. Теперь проверяем работу хелпера отвечающего за группы. Это несложный перловый скрипт идущий в комплекте со сквидом - он тупо вызывает wbinfo на тему поиска СИДа группы, и ещё разок на тему принадлежности юзера к группе с найденным SID. Всё просто, но по три форка на запрос. Будет ли он кэшировать найденные значения - выясниться позже, когда запустим и посмотрим на скорость изменения PID`ов в шапке top`a (могу сразу успокоить - кэширует :))). Итак, проверяем хелпер:
|
Работает. Тока косяк - не удалось ему впарить группу (или юзера) с пробелом в названии - что для меня не очень существенно, всё равно для разруливания прав будут созданы отдельные группы - разумеется без пробелов. Заметим, что сам wbinfo - прекрасно обрабатывает и группы и имена пользователей с пробелами. В принципе, допилить наверно несложно, но - у меня желания нет. Если кому понадобиться - пилите и шлите разработчикам - будет со следующих версий всем щассье.
Далее, проверяем хелпер самого сквида:
squid$ ntlm_auth --helper-protocol=squid-2.5-basic --require-membership-of="mydomain\domain users" -d10 -I /tmp [2007/10/29 10:20:29, 5] lib/debug.c:debug_dump_status(391) INFO: Current debug levels: all: True/10 tdb: False/0 printdrivers: False/0 lanman: False/0 smb: False/0 rpc_parse: False/0 rpc_srv: False/0 rpc_cli: False/0 passdb: False/0 sam: False/0 auth: False/0 winbind: False/0 vfs: False/0 idmap: False/0 quota: False/0 acls: False/0 locking: False/0 msdfs: False/0 dmapi: False/0 akeda my_password [2007/10/29 10:20:30, 10] utils/ntlm_auth.c:manage_squid_request(2086) Got 'akeda my_password' from squid (length: 16). [2007/10/29 10:20:30, 3] utils/ntlm_auth.c:check_plaintext_auth(298) NT_STATUS_OK: Success (0x0) OK ^C squid$ |
'akeda' - это мой логин, 'my_password' - пароль. Всё нормально, пашет. Конечно, в итоге будет всё не так гладко, т.к. сквид запускается не от рута, от которого я запускал данный хелпер, и у него не хватит прав на доступ к сокету winbindd - поэтому, заранее исправляем сиё досадное упущение:
|
Теперь рисуем конфиг сквида:
|
Сам конфиг хорошо прокомментирован, поэтому, дополнительные камменты не делаю, тока привожу файлики которые в нём фигурируют:
|
|
|
|
|
|
|
После рисовки всех конфигов, делаем сквида владельцем директории с кэшем, и создаём субдиректории:
|
Всё. Запускаем и юзаем.
P.S. С вопросами - в форум а не в камменты - камменты для косяков.
P.S.2 По дефолту, ОС не отдайт приложению более 512 мегов рамы, поэтому на реальной эксплуатации было замечено, что сквид регулярно отлетает на этом числе используемой оперативки. Решение:
|
в /boot/loader.conf и проблемы сняло как рукой.
размещено: 2007-11-06,
последнее обновление: 2008-04-13,
автор: lissyara
Kolesya, 2007-11-06 в 17:10:20
Пора уже порт делать :)
Вот и название ему ADSambaSquid.
Кому статистика не критична, wbinfo_group.pl можно не юзать:
redirect_program /usr/local/rejik/redirector
redirect_children 15
auth_param ntlm program /usr/local/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp --require-membership-of=LOCAL\\internet
auth_param ntlm children 5
auth_param ntlm keep_alive on
auth_param basic program /usr/local/bin/ntlm_auth --helper-protocol=squid-2.5-basic --require-membership-of=LOCAL\\internet
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off
В redirector.conf используется доменный аккаунт без домена при настройке самбы "winbind use default domain = yes". Обратное не проверял.
Доступ юзеру будет предоставлен если он входит в группу "LOCAL\internet"
P.S. Firefox ходит через проксю по ntlm авторизации без проблем.
adsh, 2007-11-06 в 19:49:05
В качестве хранилища для кеша лучше юзать diskd и выставить:
cache_replacement_policy heap LFUDA
memory_replacement_policy heap GDSF
qqq, 2007-11-07 в 7:10:42
> chown -R squid:wheel /shares/squid
какого ... ? заменить на
chown -R squid:squid
lissyara, 2007-11-07 в 10:17:45
а у вас в группе wheel - кто попало?
У меня - нет.
gmn, 2007-11-07 в 16:18:54
> Для вопросов есть форум!
Укажите, плиз, ветку форума, куда писать вопросы, комментарии.
Их есть у меня :-)
mac, 2007-11-07 в 16:56:11
для cache_dir не рекомендуется использовать raid. Лучше для каждого винта указать отдельный cache_dir.
Причем непонятно зачем в этом рэйде избыточность? Или для вас содержимое кэша очень важно?
gmn, 2007-11-07 в 17:01:22
А как же aufs на FreeBSD после пятерки?
Я перешел с diskd на aufs - не жалею.
Диск с кешем монтирован с "noatime".
lissyara, может на форуме тему заведем?
Подобная схема работает у меня уже несколько лет и дорабатывается периодически. Есть чем поделиться.
adsh, 2007-11-07 в 17:40:26
Для больших кешей при интенсивном обмене diskd вообще то стал классикой - работает быстрее.
gmn, 2007-11-07 в 17:56:12
Зайдите на squid-cache.org и почитайте списки рассылок:
"if you have FreeBSD5 or higher, you can use aufs, which should be faster and doesn't require SHM tuning."
(насколько помню, было в теме о скорости работы кешей).
lissyara, 2007-11-08 в 0:58:31
обещщанная ветка. Делитесь наработками - потещу под нагрузкой - поправлю в статье и камментов подпишу, что лучше и почему.
Что касается избыточности для кэша - я не хочу с жопой в мыле править конфиг сквида, когда отдуплиться диск под кэшем. Лучше уж прочитаю об этом в ночном отчёте и спокойно закажу замену, чтоб поменять вечерком.
Basilio Cat, 2007-11-16 в 12:18:10
Решение пробелм с пробелами для wbinfo_group.sh - https://bugzilla.altlinux.org/attachment.cgi?id=669
внутри следующий скрипт
--------------------
#!/bin/sh
while read user group; do
g_sid=`wbinfo -n "$group"`
g_gid=`wbinfo -Y "$g_sid"`
wbinfo -r "$user" | grep -qs "^$g_gid\$" 2>/dev/null && echo "OK" || echo "ERR"
done
--------------------
И скажите после этого, что на перле писать удобнее ;)
bb, 2007-12-05 в 1:24:55
а как избавится от запроса на автаризацию если юзер не состоит в группе ?
Poppel, 2007-12-23 в 1:21:04
-— подрихтовано для свежей самбы (3.0.28) ---
#!/bin/sh
while read user group; do
g_sid=`wbinfo -n "$group" | awk '{ print $1 }'`
g_gid=`wbinfo -Y "$g_sid"`
wbinfo -r "$user" | grep -qs "^$g_gid\$" 2>/dev/null && echo "OK" || echo "ERR"
done
mandrake, 2008-01-10 в 21:36:31
Есть один косяк - когда пользователь из группы restricted заходит на дозволеный сайт на котором есть много чужих баннеров, картинок короче ссылок на другие запрещенные сайты, ему вылазит окошечко для ввода пользователя и пароля, причем ровно столько раз сколько этих ссылок. Получается очень неудобно. Конечно можна резать баннеры но имхо всех всеравно не вырежешь и потому проблема остается открытой.
Morty, 2008-01-25 в 0:47:39
всё кул!
только у меня пару мелких затыков было - добавлял
в squid.conf
visible_hostname gtw3.domain.local
dns_nameservers 210.210.210.210 <== эт не обязательно но мне нравиться так -)
------------
в smb.conf
password server = 10.5.5.1 (либо полное имя серва)
hosts allow = 10.5.0.0
Stalker, 2008-02-14 в 14:52:19
Странно вроде конфиг в норме с правами на папки и файлы тож все в порядке а выдает ошибку
failed to find or read error text file
UncleS, 2008-02-18 в 13:17:33
УВАЖАЕМЫЕ, а давайте статью чтоль по поводу сквида 3.0, что да как настроить и что там нового появилось.
Самому как-то экспериментировать на рабочей проксе страшновато. Лиссяра, давайте статью по настройке!
max, 2008-02-25 в 23:01:16
/etc/krb5.conf у меня нет и /etc/nsswitch.conf дефолтовый, а также тикет я не получал, только загнал тачку с сквидом и самбой в виндовый домен, как здесь было сказано: net ads join -U blablabla. Работает уже больше года без глюков и сбоев. :)
bracus, 2008-03-03 в 15:42:28
Вообщем у меня проблемка, начну с конкретной, а если кто отзовется опишу подробней.
Значит я пытаюсь идентифицировать пользователя по принадлежнности к доменной группе, если он принадлежит дать доступ в инет и наоборот.
external_acl_type nt_group %LOGIN \
/usr/local/libexec/squid/wbinfo_group.pl
acl internet external nt_group internet
http_access allow internet
А проблема вот в чем, если я в ADS исключаю(добавляю) пользователя из группы internet. То сквид понимает это только после перезапуска сквида.
bracus, 2008-03-03 в 17:06:09
Сорри Товарищщи!Разобрался надо было просто указать время в секунадах например ожидание 2 минуты ttl=120
external_acl_type nt_group ttl=120 %LOGIN \
/usr/local/libexec/squid/wbinfo_group.pl
artem, 2008-03-12 в 16:03:31
В ветке 2.6.STABLE произошли изменения и теперь вместо параметров redirect_program и redirect_children необходимо использовать url_rewrite_program и url_rewrite_children соответственно.
http://www.sys-adm.org.ua/www/squid-ncsa.php
Andrew, 2008-08-04 в 14:40:31
to mandrake, 2008-01-10 в 21:36:31
Фича: если надоело жать отмена на каждый запрещённый баннер - заведи одного юзера совсем без прав. Пусть проведут авторизацию под ним 1 раз и больше ни одного запроса не увидишь :)
Name, 2008-08-27 в 20:07:23
В статье не указано что нужно создать файлики с ошибками
ERR_BAD_URL
ERR_BAD_NETWORKS
ERR_DENY_DOMAINS
ERR_SAFE_PORTS
ERR_SSL_PORTS
ERR_INET_NO_ALLOW
Затем создать директорию для логов и дать на нее права.
Name, 2008-10-28 в 20:36:58
acl QUERY urlpath_regex cgi-bin \?
no_cache deny QUERY
у меня squid 2.6.STABLE16
там надо
acl QUERY urlpath_regex cgi-bin \?
cache deny QUERY
vova, 2008-12-09 в 11:19:11
Спасибо за статью. Делал по ней, все работает но есть одна маленькая неприятная вещь. Когда пользователь меняет пароль в AD то squid с новым паролем пользователя не может аутентифицировать. После рестарта сквида все работает. Кто-нить сталкивался с этим ? Научите плиз как победить. Заранее спасибо за советы.
atomic, 2009-01-13 в 14:47:16
2 vova:
он будет аутентифицироваться. только через определенное время. только надо ещё при этом перезайти в браузере
KaMa-CyTpA, 2009-02-14 в 18:02:26
ВОт надо было про sqstat писать?
Теперь сам от моника оторваться не могу, какое там начальство?!!!
РЕСПКЕТ ТЕБЕ!
m0ps, 2010-02-16 в 17:03:56
хотелось бы немного добавить:
если между прокси и КД есть нат, то билетик от кербероса получить не удастся. что бы это пофиксить, нужно создать конфиг /etc/krb5.conf и в секцию
[libdefaults]
добавить опцию
no-addresses = yes
пример конфига кербероса можно взять здесь:
http://www.lissyara.su/archive/samba+acl/
VP, 2010-04-12 в 10:42:41
В новой версии сквида нету ERR_BAD_URL
поэтому поменяйте
deny_info ERR_BAD_URL bad_url
на
deny_info ERR_INVALID_URL bad_url
roman_ssh, 2011-10-20 в 6:32:59
Ребята, не добавляйте эту хрень!
kern.maxdsiz="2610612736"
kern.dfldsiz="2610612736"
kern.maxssiz="2610612736"
3 месяца бился пока нашёл, получаю типа "cannot create main thread", вроде бы от ruby, не работают руби-сктипты, собственно сам руби18 через порты переустановиться не захотел, через pkg_add -r ruby установился, но так-же не работал.
Andrey, 2020-10-22 в 10:38:19
У кого криво пишутся русские логины в access.log, исправьте в исходниках Squid:
src/format/quoting.cc
|| c >= 0x7F
на
|| c >= 0xFA
Этот информационный блок появился по той простой причине,
что многие считают нормальным, брать чужую информацию не уведомляя автора
(что не так страшно), и не оставляя линк на оригинал и автора — что более существенно.
Я не против распространения информации — только за. Только условие простое — извольте
подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой,
незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
Если соизволите поставить автора в известность — то вообще почёт вам и уважение.
© lissyara 2006-10-24 08:47 MSK
Комментарии пользователей [31 шт.]