Мы — долго запрягаем, быстро ездим, и сильно тормозим.

FreeBSD
  настройка
  подсчёт трафика
  программы
  frox
  SARG
  samba & ClamAV
  named
  proftpd
  cacti
  SAMBA+AD+NT ACL
  MySQL
  hylafax
  DDNS+DHCP
  cvsupd
  Samba как PDC
  Основы LDAP
  LDAP+SSL
  LDAP auth
  knockd
  rsync
  MRTG
  Rejik
  Jabber - OpenFire
  Samba(PDC) + Ldap
  squid+AD
  ATSlog
  vsftpd
  LDAP: samba, dns, dhcp
  Free-SA
  cups-samba на samba+AD
  irc + services
  Nagios - мониторинг сети
  TeamSpeak
  icecast2
  verlihub (p2p)
  Icecast2 + Darkice
  OOPS
  vsftpd + mysql
  Amanda
  HAVP
  Рыбалка на FreeBSD
  DNS сервер NSD
  DNS сервер Unbound
  mpd5, msmtp, dynamic ip
  ProFTPd + LDAP
  OpenVPN + LDAP
  Samba (PDC+BDC)
  BIND & AD
  POWERDNS
  3proxy
  eGroupWare
  GLPI
  SugarForge CRM
  Bacula
  Mysql - базовое описание
  Asterisk IP PBX
  Samba & CUPS & AD & ACL
  SMSTools 3
  Samba+ NT ACL
  phpmyadmin
  1С:Предприятие 8.1
  PurefFTPd
  qemu network
  AimSniff
  comms/scmxx
  Zoneminder
  Openfire Jabber Server
  Zoneminder 2
  Принт-Сервер Samba+LPD & AD
  Кластер OpenLDAP 2.4
  Lightsquid
  Установка Zabbix-1.6
  Установка net2ftp
  VSFTPD + AD && MySQL
  Network UPS Tools
  mpd5 L2TP client
  Apache 2.2 as a proxy
  ejabberd+mysql+icq
  HotSpot
  Установка и использование Zenoss на FreeBSD 7.2
  mysql-proxy
  DNS zones
  squid+sams+sqstat
  transmission-daemon
  Squid+AD (group access)
  SysAid Server
  MySQL Master+Master
  proftpd file auth&quota
  usb_modeswitch
  NSDadmin
  iperf Тест скорости между хостами
  Простой факс-сервер mgetty+sendfax
  SQUID-MultiCpuSystem
  vsftpd + system users
  Syslog server
  Температура в серверной
  Nagios+Digitemp
  Avast! FreeBSD
  Настройка git+gitosis
  Firefox SyncServer
  Scan+Print server FreeBSD 9
  proftpd,pgsql,web
  почтовые системы
  Шелезяки
  Мелочи
  Файловая система
  WWW
  Security
  system
  Games Servers
  X11
  Programming
Очумелые Ручки
OpenBSD
Cisco


www.lissyara.su —> статьи —> FreeBSD —> программы —> squid+AD

Авторизация пользователей squid в домене с доступом к ресурсам по группам

Автор: lissyara.


    Итак. Дошли руки до корпоративной прокси. Старая была на линухе, что не есть гуд - моё отношение к помойке хоршо известно. Хотя основным фактором стало не это - доступ рулился через текстовые файлы, хотя авторизовлись все в AD. Плюс конфиг был ну абсолютно непрозрачный - сказалось то что её, в общей сложности, админили 5 человек - и понять откуда растут рога вообще не представлялось возможным.
   Итак, задача - на правильной ОС поднять правильно настроенную проксю - т.е. авторизация в AD и руление доступа виндовыми группами через ту же AD - чтобы не напрягать ночных дежурных администраторов - пользователей в основном заводят они.
   Под это дело был выделен сервак - HP Proliant 380 G3, 2 ксенона по 3 чтоли гигарца, 4Gb RAM, и 6 "косых" U320 SCSI дисков (2x73G и 4x36G 10000RPM - разного размера, потому и косые). Соотвествено - под кэш были выделены 4 мелких - в 10 раид, под систему и логи - 2 больших, зеркалом. Получилось так:
squid$ df -h
Filesystem              Size    Used   Avail Capacity  Mounted on
/dev/da0s1a             496M     36M    420M     8%    /
devfs                   1.0K    1.0K      0B   100%    /dev
/dev/da1s1c              66G    108M     60G     0%    /shares
/dev/da0s1d             3.9G    403M    3.2G    11%    /tmp
/dev/da0s1e             7.7G    819M    6.3G    11%    /usr
/dev/da0s1f              52G     17M     48G     0%    /var
jabber:/shares/ports    206G     17G    172G     9%    /usr/ports
squid$

   Одной из задач было использовать sqstat - поэтому пришлось отказаться от squidGuard в пользу родных методов ограничения сквида - при использовании внешних редиректоров пропадает "живая" статистика.
   Поехали. Ставим самбу:
squid$ cd /usr/ports/net/samba3/
squid$ make install clean

   В вылезшем окошке расставляем такой набор галок:
+--------------------------------------------------------------------+
|                  Options for samba 3.0.26a_1,1                     |
| +----------------------------------------------------------------+ |
| |  [X] LDAP         With LDAP support                            | |
| |  [X] ADS          With Active Directory support                | |
| |  [ ] CUPS         With CUPS printing support                   | |
| |  [X] WINBIND      With WinBIND support                         | |
| |  [ ] ACL_SUPPORT  With ACL support                             | |
| |  [ ] FAM_SUPPORT  With File Alteration Monitor                 | |
| |  [ ] SYSLOG       With Syslog support                          | |
| |  [ ] QUOTAS       With Disk quota support                      | |
| |  [ ] UTMP         With UTMP accounting support                 | |
| |  [ ] MSDFS        With MSDFS support                           | |
| |  [ ] PAM_SMBPASS  With PAM authentication vs passdb backends   | |
| |  [ ] CLUSTER      With experimental cluster support            | |
| |  [ ] DNSUPDATE    With dynamic DNS update                      | |
| |  [ ] EXP_MODULES  With experimental modules                    | |
| |  [X] POPT         With system-wide POPT library                | |
+-+----------------------------------------------------------------+-+
|                       [  OK  ]       Cancel                        |
+--------------------------------------------------------------------+

   Заметим, что в современных версиях FreeBSD керберос из портов ставить не обязательно - прекрасно работает и без него. После инсталляции самбы, рисуем для неё такой конфиг:
squid$ more /usr/local/etc/smb.conf
# SAMBA for SQUID

[global]
        workgroup = MYDOMAIN
        security = ADS
        password server = MYDOMAIN.LOCAL
        realm = MYDOMAIN.LOCAL
        netbios name = SQUID
        server string = Proxy server of mydomain.local
#       log level = 10
        log file = /var/log/samba/%m.%U.log
        max log size = 50000
        winbind uid = 10000-20000
        winbind gid = 10000-20000
        winbind use default domain = yes
        display charset = koi8-r
        unix charset = koi8-r
        dos charset = 866
        # for mail
        template homedir = /usr/home/%D/%U
        template shell=/bin/csh
        # added by lissyara 2007-06-21 in 10:36
        #magic script = /root/scripts/create_user_dir.sh %U
[printers]
        comment = All Printers
        path = /var/spool/samba
        printable = Yes
        browseable = No
        use client driver = yes
        public = No

squid$

   И для кербероса:
squid$ more /etc/krb5.conf
#

[libdefaults]
        default_realm = MYDOMAIN.LOCAL

[realms]
        MYDOMAIN.LOCAL = {
                kdc = MYDOMAIN.LOCAL
                admin_server = MYDOMAIN.LOCAL
        }

[domain_realm]
        .mydomain.local = MYDOMAIN.LOCAL

[logging]
        kdc = FILE:/var/log/krb5kdc.log
        admin_server = FILE:/var/log/kadmin.log
        default = FILE:/var/log/krb5lib.log
squid$

   А также для nsswitch:
squid$ more /etc/nss
nsswitch.conf        nsswitch.conf.orig
squid$ more /etc/nsswitch.conf
group: files winbind
passwd: files winbind
group_compat: nis
passwd_compat: nis
hosts: files dns
networks: files
shells: files

squid$

   Особых комментариев нет - всё это я уже рассказывал раньше, в статье про samba и ACL.
   Далее - ставим собственно сквид:
squid$ cd /usr/ports/www/squid
squid$ make install clean

   В окошке снимаем все галки - мне так ничё не нужно от него кроме авторизации и кэширования. Первый же возникающий вопрос - почему не ставил третий сквид? Ставил. Работает. Синтаксис как у 2.6 - но, QIP, сцуко, не может нативно авторизоваться. Авторизовалка ntlm у него кривая... Пришлось снести и поставить squid2.6.
   После инсталляции, занимаемся самбой - надо ввести её в домен, но, вначале получаем билетик керберос:
squid$ kinit akeda
akeda@MYDOMAIN.LOCAL's Password:
kinit: NOTICE: ticket renewable lifetime is 1 week

   Ну и вводим в домен:
squid$ net join -U akeda
akeda's password:
Using short domain name -- MYDOMAIN
Joined 'SQUID' to realm 'MYDOMAIN.LOCAL'

   Добавляем такие строки в /etc/rc.conf:
# squid
winbindd_enable="YES"
squid_enable="YES"

   Мне сама самба не нужна - нужен тока винбинд, поэтому тока он. После этого запускаем самбу
squid$ /usr/local/etc/rc.d/samba start
Performing sanity check on Samba configuration: OK
Removing stale Samba tdb files: .. done
Starting winbindd.

   Проверяем, что из всего этого получилось:
squid$ id akeda
uid=10000(akeda) gid=10000(domain users) groups=10000(domain users)
squid$
squid$ wbinfo -g | wc -l
     398
squid$ wbinfo -u | wc -l
    1131
squid$

   Всё нормально. Теперь проверяем работу хелпера отвечающего за группы. Это несложный перловый скрипт идущий в комплекте со сквидом - он тупо вызывает wbinfo на тему поиска СИДа группы, и ещё разок на тему принадлежности юзера к группе с найденным SID. Всё просто, но по три форка на запрос. Будет ли он кэшировать найденные значения - выясниться позже, когда запустим и посмотрим на скорость изменения PID`ов в шапке top`a (могу сразу успокоить - кэширует :))). Итак, проверяем хелпер:
squid$ echo akeda bank | /usr/local/libexec/squid/wbinfo_group.pl
OK
squid$ echo akeda novosibirsk_gr | /usr/local/libexec/squid/wbinfo_group.pl
ERR
squid$ echo akeda omsk_gr | /usr/local/libexec/squid/wbinfo_group.pl
ERR
squid$

   Работает. Тока косяк - не удалось ему впарить группу (или юзера) с пробелом в названии - что для меня не очень существенно, всё равно для разруливания прав будут созданы отдельные группы - разумеется без пробелов. Заметим, что сам 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 - поэтому, заранее исправляем сиё досадное упущение:
squid$ chown root:squid /var/db/samba/winbindd_privileged

   Теперь рисуем конфиг сквида:
squid$ cat /usr/local/etc/squid/squid.conf
# squid conf
# начат lissyara, 2007-10-25 в 13:25

# порт где слушаем
http_port 3128

# список слов, которые будучи обнаруженными в URL
# вызывают обработку без кэширования
hierarchy_stoplist cgi-bin ?
# список ACL которые вызывают несовпадение с кэшем,
# и, запрос с ответом кэшироваться не будут
acl QUERY urlpath_regex cgi-bin \?
# собственно - правило что не кэшируем
no_cache deny QUERY
# сколько отдаём ему памяти (реально пожрёт втрое больше)
cache_mem 1024 MB
# Директория для кэша, числа - размер кэша в Mb,
# число директорий первого уровня, число директорий второго
# уровня в каждой директории первого.
cache_dir ufs /shares/squid/cache 50000 64 512
# лог доступа - первый параметр путь, второй - формат
# форматы описаны в дефолтовом файле.
access_log /var/log/squid/access.log squid
# лог активности менеджера хранилища. Показывает, какие
# объекты были сохранениы/удалены из кэша и как долго.
# мне он не нужен, а места занимает прилично.
cache_store_log none
# файл hosts, проверяемый при запуске. Из него берётся
# доменное имя и добавляется к неполным адресам (которые
# не содержат ни одной точки в имени)
hosts_file /etc/hosts
# домен добавляемый к неполным именам
append_domain .mydomain.local
# директория где хранятся HTML c текстами ошибок
error_directory /usr/local/etc/squid/errors/Russian-1251


# программа редиректор (у меня сквидгард) для более простой
# и тонкой настройки правил использования инета
#redirect_program /usr/local/bin/squidGuard -c \
#       /usr/local/etc/squid/squidguard.conf
# число процессов редиректора
#redirect_children 20

#cache_log /usr/local/squid/logs/cache.log
#debug_options ALL,5

# авторизация
# нативная авторизация ослика
auth_param ntlm program /usr/local/bin/ntlm_auth        \
        --helper-protocol=squid-2.5-ntlmssp
# число детишек для авторизации - сколько процессов запускать
auth_param ntlm children 30
# базовая авторизация для тех, кто не может нативную (я, например,
# т.к. сижу из под FreeBSD, да и многие программы - например,
# родной ICQ клиент от AOL)
auth_param basic program /usr/local/bin/ntlm_auth       \
        --helper-protocol=squid-2.5-basic
# Число процессов для базовой аворизации - значительно меньше
# чем для основной, т.к. таких юзеров/программ немного
auth_param basic children 4
# Заголовок окна выводимяй при запросе авторизации
auth_param basic realm Squid proxy-caching web server
# время жизни авторизации - сколько кэшировать данные
# (для базовой авторизации)
auth_param basic credentialsttl 2 hours



#refresh_pattern ^ftp:           1440    20%     10080
#refresh_pattern ^gopher:        1440    0%      1440
#refresh_pattern .               0       20%     4320

# внешняя ACL для разруливания по группам
external_acl_type nt_group %LOGIN       \
        /usr/local/libexec/squid/wbinfo_group.pl


# пользователи у которых просто интернет - с ограничениями
acl     inet_users      external nt_group inet_users
# пользователи у которых есть тока аська
acl     inet_icq        external nt_group inet_icq
# пользователи с полными парвами на доступ в инет
acl     inet_full       external nt_group inet_full
# люди с доступом к серверу аналитики
acl     inet_analit     external nt_group inet_analit
# пользователи с ограниченным доступом в инет - тока
# определённый набор ресурсов и всё.
acl     inet_restrict   external nt_group inet_restrict
# Пользователи которым разрешён метод CONNECT
acl     inet_connect    external nt_group inet_connect
# ACL авторизации на проксе
acl     MYDOMAIN            proxy_auth     REQUIRED


# Описываем порты на которые разрешено лазить
acl     SSL_ports               port    443 563
acl     SSL_for_client_banks    port    910 8443 4500
# порты на которе можно ходить юзерам
acl     safe_ports              port    80      # http
acl     safe_ports              port    21      # ftp
acl     safe_ports              port    443     # ssl
acl     ICQ_ports               port    5190    # ICQ
# надо ли? 1025-65535
acl     CONNECT                 method  CONNECT
# для /usr/ports/www/sqstat/
# копируете конфиг, ставите вместо 'host' - 'user'
# и начальство не оторвать от экрана :))
acl     manager                 proto   cache_object


# Описываем все сети все IP
acl all src 0.0.0.0/0.0.0.0
# описываем локалхост
acl localhost src 127.0.0.1/255.255.255.255
# acl до сайтов которые разрешены всем]
acl     mydomain_site      dstdomain       \
        "/usr/local/etc/squid/db/allow_all.txt"
# запрещённые в URL выражения (для всего УРЛа)
acl     bad_url         url_regex       \
        "/usr/local/etc/squid/db/deny_url.txt"
# запрещённые в URL выражения (для самого урла, без домена)
#acl    bad_url_2       urlpath_regex   \
#       "/usr/local/etc/squid/db/deny_url_2.txt"
# запрещённые доменные имена
acl     deny_domains    dstdomain       \
        "/usr/local/etc/squid/db/deny_domains.txt"
# acl для клиент-банков и прочих кому надо напрямую ходить
acl     client_banks    dst             \
        "/usr/local/etc/squid/db/clinet_banks.txt"
# сети в которые ходить не надо (ICQ и прочия)
acl     bad_networks    dst             \
        "/usr/local/etc/squid/db/bad_networks.txt"
# те кто ходят без авторизации
acl     not_autorized   src             \
        "/usr/local/etc/squid/db/not_autorized.txt"
# список сайтов для тех у кого их определённый набор
acl     domains_for_restrict dstdomain  \
        "/usr/local/etc/squid/db/domains_for_restrict.txt"

### настройки доступа ####

# вводим свои определения для сообщений о
# отказе по ACL - пригодиться когда кто-то
# воет что не может попасть на определённый сайт
deny_info       ERR_BAD_URL             bad_url
deny_info       ERR_BAD_NETWORKS        bad_networks
deny_info       ERR_DENY_DOMAINS        deny_domains
deny_info       ERR_SAFE_PORTS          safe_ports
deny_info       ERR_SSL_PORTS           SSL_ports


# пропускаем sqstat
http_access     allow   manager         localhost
http_access     deny    manager

# выпускаем на неавторизуемые сайты
http_access     allow   client_banks
# выпускаем тех кто не авторизуется в принципе
# т.к. они не в домене и т.п.
http_access     allow   not_autorized
# Разрешаем всем доступ на сайт конторы
# Этим же правилом срубаются все неавторизованные
http_access     allow   MYDOMAIN           mydomain_site
# Разрешаем доступ ко всему группе 'inet_full'
http_access     allow   inet_full       all
# Зарубаем запрещённые куски url
http_access     deny    bad_url
# Разрешаем асечный порт тем у кого есть аська
http_access     allow   inet_icq        ICQ_ports
# зарубаем запрещённые сети
http_access     deny    bad_networks
# зарубаем запрещённые домены
http_access     deny    deny_domains
# Зарубаем коннект кроме как к SSL (надо ли группе отдельной?)
http_access     deny    CONNECT         !SSL_ports
# зарубаем все порты проме safe_ports
http_access     deny    !safe_ports
# разрешаем инет обычным пользователям
http_access     allow   inet_users
# разрешаем инет ограниченным пользователям на разрешённые сайты
http_access     allow   inet_restrict   domains_for_restrict


# зарубаем всё нах :)
# Для начала кустомизируем сообщение о ошибке.
# ERR_INET_NO_ALLOW - это имя файла в
# /usr/local/etc/squid/errors/Russian-1251
# синтаксис описан
# http://wiki.squid-cache.org/SquidFaq/MiscFeatures
deny_info       ERR_INET_NO_ALLOW       all
http_access     deny                    all

   Сам конфиг хорошо прокомментирован, поэтому, дополнительные камменты не делаю, тока привожу файлики которые в нём фигурируют:
squid$ more /usr/local/etc/squid/db/allow_all.txt
# файл с сайтами доступ на которые разрешён всем
squid
mydomain.ru
ttb.kz
squid$


squid$ more /usr/local/etc/squid/db/deny_domains.txt
# файл со списком запрещённых доменов
# если надо весь домен с субдоменами - в начало
# надо поставить точку

# из файла mydomain_bad
download.zachot.ru
goblin.faberz.com
muzoff.ru
.udaff.ru
.udaff.com
.ziza.ru
.rapidshare.de
stream.fluendo.com
realaudio.aradio.ru
.mp3real.ru
files.rfonline.ru
files1.rfonline.ru
files2.rfonline.ru
files3.rfonline.ru
.proxy80.com
.cloakme.net
stream03.rambler.ru
.odnoklassniki.ru
.odnoklasniki.ru
.mamba.ru
.cirota.ru
.vkontakte.ru
.youtube.com
.video.google.com

# из сквидгарда - аудио-видео

123mp3links.tsx.org
128.242.103.21
128.242.103.22
128.242.103.23


squid$ more /usr/local/etc/squid/db/deny_url.txt
# url на котоые нельзя никому кроме тех у кого полный доступ
#
# ya[a-z/0-9/-]+dex\.ru диапазон буквы (мелкие), цифры и дефис
# ya.+ex\.ru - всё что начинается на ya и кончается на ex.ru
# объединение (gaz|plan)(eta) порубаются gazeta planeta
# Ахтунг! Длинна строки имеет ограничения, когда оно превышено он
# тупо отсекает лишнюю часть и ругается на несбалансированные
# скобки (у меня такое было на регулярных выражениях)
porn
sex
# из скивдгарда - реклама
/ads/
/ad/
/banner/
/sponsor/
/event.ng/
/Advertisement
/adverts/
# из сквидгарда - сайты для взрослых
# ... покоцано ... строки длинные - дезигн портят :)

#из сквидгарда - аудио-видео
\.(ra?m|wma|mp2|mpv2|mp3|asx)($|\?)
\.(mpe?g?|wmv|mov|movie|qt|avi|dvd?|divx|flv|iflv)($|\?)
\.(iso|exe|vbs)($|\?)


squid$ more /usr/local/etc/squid/db/clinet_banks.txt
# всякие назначения на которые надо попадать напрямую

# WU
206.211.228.242/32
206.211.227.242/32

# RF
217.227.42.3/32

# STC ATNN
213.191.224.0/19

# SB
213.85.162.11/32
193.33.122.18/32
194.84.227.220/32


squid$ more /usr/local/etc/squid/db/bad_networks.txt
# сети в которые ограничен доступ - ICQ и прочия

# переенсены из конфига старого прокси
81.19.68.114/32
217.16.18.76/32

# ICQ
64.12.0.0/16
205.188.0.0/16


squid$ more /usr/local/etc/squid/db/not_autorized.txt
# те кто ходят неавторизованными

# _guests
172.30.105.38/32
172.30.101.17/32

# notariat
172.30.19.92/32
172.30.19.93/32
172.30.19.103/32

squid$  


squid$ more /usr/local/etc/squid/db/domains_for_restrict.txt
# список доменов для юзеров с ограниченным доступом в инет.

# из файла good
mydomain.ru
localhost.mydomain.local
maps.yandex.ru
img.yandex.net
img.yandex.ru
postindex.otrok.ru


# из файла good
mts.ru
gismeteo.ru
yandex.ru

   После рисовки всех конфигов, делаем сквида владельцем директории с кэшем, и создаём субдиректории:
squid$ chown -R squid:wheel /shares/squid
squid$ squid -z
2007/10/29 12:38:02| Creating Swap Directories
2007/10/29 12:38:02| /shares/squid/cache exists
2007/10/29 12:38:02| Making directories in /shares/squid/cache/00
2007/10/29 12:38:02| Making directories in /shares/squid/cache/01
2007/10/29 12:38:02| Making directories in /shares/squid/cache/02
2007/10/29 12:38:02| Making directories in /shares/squid/cache/03
2007/10/29 12:38:02| Making directories in /shares/squid/cache/04
2007/10/29 12:38:02| Making directories in /shares/squid/cache/05
2007/10/29 12:38:03| Making directories in /shares/squid/cache/06
2007/10/29 12:38:03| Making directories in /shares/squid/cache/07
2007/10/29 12:38:03| Making directories in /shares/squid/cache/08
2007/10/29 12:38:03| Making directories in /shares/squid/cache/09
2007/10/29 12:38:03| Making directories in /shares/squid/cache/0A
2007/10/29 12:38:03| Making directories in /shares/squid/cache/0B
2007/10/29 12:38:03| Making directories in /shares/squid/cache/0C
2007/10/29 12:38:04| Making directories in /shares/squid/cache/0D
2007/10/29 12:38:04| Making directories in /shares/squid/cache/0E
2007/10/29 12:38:04| Making directories in /shares/squid/cache/0F
squid$

   Всё. Запускаем и юзаем.

P.S. С вопросами - в форум а не в камменты - камменты для косяков.
P.S.2 По дефолту, ОС не отдайт приложению более 512 мегов рамы, поэтому на реальной эксплуатации было замечено, что сквид регулярно отлетает на этом числе используемой оперативки. Решение:
kern.maxdsiz="2610612736"
kern.dfldsiz="2610612736"
kern.maxssiz="2610612736"

в /boot/loader.conf и проблемы сняло как рукой.



Ссылка на обсуждение: http://forum.lissyara.su/viewtopic.php?f=14&t=5716.

размещено: 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


Оставьте свой комментарий:
Ваше имя:   *
e-mail:  
жирный
наклонный
подчёркнутый
ссылка
цвет
Нынешний год:   *
 


Хостинг HOST-FOOD

2014-07-27, lissyara
gmirror

Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
2013-08-20, zentarim
Scan+Print server FreeBSD 9

Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540
2011-11-20, BlackCat
Разъём на WiFi-карту

Делаем съёмной несъёмную антену на WiFi-карте путём установки ВЧ-разъёма
2011-09-14, manefesto
Настройка git+gitosis

Настройка системы контроля версия исходного кода в связке git+gitosis+ssh
2011-08-14, zentarim
Wi-FI роутер + DHCP + DNS

Настройка Wi-Fi роутера на Freebsd 8 + DNS сервер + DHCP сервер: чтобы Wi-Fi клиенты были в одной подсети с проводными, проводные и беспроводные клиенты получали адреса автоматически по DHCP, кэширующ
2011-06-15, -ZG-
Охранная система на FreeBSD+LPT

В этой статье описана попытка реализации простой охранной системы на базе FreeBSD с подключением к ней охранных устройтсв на LPT порт и видеорегистрацией.
2011-03-13, terminus
ng_nat

Описание работы ng_nat, практическое использование, достоинства и недостатки в сравнении с ipfw nat
2011-02-20, Капитан
Nagios+Digitemp

Статья описывает создание системы оповещения о превышении температуры в специальных помещениях на основе Nagios с использованием программы Digitemp.
2011-02-17, Le1
Zyxel Configuration

Скрипт для массового изменения конфига свичей Zyxel. Берет из файла iplist список ip-шек, заходит последовательно на каждый и выполняет комманды из файла commands, записывая происходящее в лог файл.
2011-02-16, fox
hast carp zfs ucarp cluster

HAST (Highly Available Storage), CARP, UCARP, ZFS, Cluster настройка и одаптация плюс личные размышления…
2011-02-04, BlackCat
Восстановление ZFS

История о том, как был восстановлен развалившийся RAIDZ ZFS-пул (перешедший в FAULTED) с помощью скотча и подручных средств. Или о том, какие приключения ожидают тех, кто не делает резервных копий.
2011-02-03, Капитан
1-Wire

Статья описывает самостоятельное изготовление контроллера DS9097 для съёма показаний с датчиков температуры DS1820 с помощью программы Digitemp.
2011-01-28, Капитан
Температура в серверной

Статья описывает построение системы наблюдения за температурой в помещении серверной с использованием программы Digitemp и выводом графиков в MRTG
2011-01-21, m4rkell
Syslog server

Как то буквально на днях, у нас завалилось, что то в еве) или не в еве не суть. Суть в том, что когда захотели снять логи с хостов esx обнаружили, что хранят эти негодяи логии только за последнии сутк
2011-01-07, lissyara
Canon/gphotofs

Монтирование цифровых фотоаппаратов Canon (PTP) как файловой системы, автоматизация этого процесса через события devd и внешние скрипты.
2010-12-13, Al
IPSec

Описание принципов работы IPSEC и способов аутентификации.
2010-12-07, manefesto
FreeBSD on flash

Было принято решении переехать на USB Flash и установить минимальный джентельменский набор для работы своего роутера. Делаем =)
2010-12-05, Fomalhaut
root ZFS, GPT

Инструкция по установке FreeBSD с использованием в качестве таблицы разделов GPT и в качестве основной файловой системы - ZFS
2010-09-05, Cancer
Настройка аудиоплеера на ximp3

Цели: Простенький аудиоплеер, для того что бы тетя продавец в магазине утром пришла нажала на кнопку Power и заиграла в зале музыка, так же был доступ по сети, общая шара куда можно заливать музыку, к
2010-08-31, Cancer
Установка и настройка OpenVPN

На днях появилась задача - объединить головной офис и 3 филиала в одну сеть через интернет посредством OpenVPN, чтобы люди могли подключаться через RDP к базам 1С на серверах.
2010-08-25, manefesto
freebsd lvm

Использование linux_lvm для работы с LVM разделами из-под FreeBSD. Проблемы которые возники при монтирование lvm раздела
2010-04-30, gonzo111
proftpd file auth&quota

Proftpd - квоты и авторизация из файлов, без использования базы данных и/или системных пользователей
2010-04-22, lissyara
tw_cli

Пошаговая инструкция по восстановлению RAID на контроллере 3ware, из которого выпал один диск. Настройка мониторинга состояния рейда и отчётов о его состоянии на email.
2010-04-14, fox
MySQL Master+Master

MySQL (Master Master) and (Master Slave) Как настроить репликацию…
2010-03-09, terminus
DNS zones

Краткий ликбез про управление DNS зонами. Примеры проведения делегирования прямых и обратных DNS зон.
2010-03-09, aspera
Squid+AD (group access)

Настройка прокси сервера SQUID с автроризацией пользователей в AD. Разделение пользователей на группы
2010-03-02, BlackCat
Шлюз: Часть 4

Настройка дополнительных сервисов: синхронизация времени (OpenNTPD), клиент DynDNS.org.
2010-03-01, BlackCat
Шлюз: Часть 3

Настройка DHCP и DNS серверов для работы внутри частной сети, c поддержкой внутренних (частных зон) DNS, а так же интеграция DHCP и DNS сервисов.
2010-03-01, BlackCat
Шлюз: Часть 2

Конфигурация МСЭ pf для проброса портов с изменением порта назначения и без, а так же поддержки активного режима FTP и ограничения максимального размера сегмента
2010-03-01, BlackCat
Шлюз: Часть 1

Быстрая настройка шлюза/маршрутизатора с установлением PPPoE-соединения, поддержкой NAT и DNS-forwarding.
2010-02-23, Morty
darkstat

Простая считалка траффика, со встроенным веб-сервером. Очень маленькая, может делать отчеты трафика по хостам, портам, протоколам, а также строить графики
2010-01-23, gonzo111
squid+sams+sqstat

Пилим squid и sams - примеры конфигов с объяснениями. Установка SqStat.
2009-12-19, schizoid
mpd5 + radius + ng_car + Abills

Настройка pppoe-сервера с биллинговой системой Abills и шейпером ng_car
2009-11-16, lissyara
UFS->ZFS

Удалённая миграция с UFS на ZFS. Загрузка с раздела zfs. Настройка для работы с малым количеством памяти под архитектурой i386.
2009-11-13, gx_ua
fusefs-ntfs

Установка, настройка и использование fusefs-ntfs, драйвер NTFS, предназанченного для монтирования NTFS разделов под FreeBSD
2009-11-12, Morty
LiveCD

Создание собственного LiveCD с необходимыми вам изменениями, автоматизирование данного процесса, а так же вариант скоростной сборки СД.
2009-09-27, lissyara
Samba как PDC

Контроллер домена - аналог M$ NT4 домена под самбой, без использования LDAP и прочей хиромантии. Просто и быстро =)
2009-08-30, terminus
ipfw nat

Подробное руководство по ipfw nat, сложные случаи конфигурации.
2009-08-24, levantuev
HotSpot

Установка Hotspot системы в общественное заведение.
2009-08-18, lissyara
diskless

Создание бездисковых терминалов под управлением FreeBSD - с загрузкой по сети. Используются для старта rdesktop и подключения к виндовому серверу терминалов.
2009-07-29, BAV_Lug
Видеонаблюдение

Настройка бюджетного варианта видеонаблюдения на удаленном объекте
2009-07-22, Cancer
OpenLDAP адресная книга

Настройка и создание адресной книги на базе OpenLDAP + phpLDAPadmin
2009-06-30, SergeySL
AimSniff

Руководство по созданию системы мониторинга ICQ-переписки на базе AimSniff, использующей базу данных MySQL для хранения и Web-интерфейс WAS (Web Aim Sniff) для просмотра перехваченных сообщений
2009-06-25, atrium
Управление правами доступа

Полномочия пользователей и файлов, принадлежащих им, формирует концепцию ОС UNIX.
2009-06-16, DNK
Exim+PgSQL

Установка почтовой системы exim+pgsql на FreeBSD 7.1
2009-05-30, mvalery
HDD(mbr) -> HDD(gpt)

Как разбить диск размером более 2TB на разделы, сделать загрузочным, а затем перенести на него информацию с рабочей системы — донора.
2009-05-22, Cancer
SendXMPP

Отправка сообщений на Джаббер сервер по средствам SendXMPP
2009-05-11, Raven2000
Network UPS Tools

Network UPS Tools представляет собой набор программ, которые обеспечивают общий интерфейс для мониторинга и администрирование UPS оборудования.
2009-04-29, m0ps
IPSEC over GRE with RIP

Пример IPSEC over GRE и динамическим роутингом (RIP), с ADSL в качестве последней мили на оборудовании Cisco.
2009-04-24, WhiteBear777
qemu network

Появилась необходимость поставить на БСД эмулятор(qemu) и настроить в качестве гостевой ОС Windows XP, предоставив ей выход в локалку и в сеть internet...
2009-04-22, vp
freebsd + huawei 162 gsm modem

В статье описывается простой способ подключения модема huawei 162 к freebsd + первичная настройка smstools
2009-04-12, mvalery
Мониторинг RAID

Мониторинг из командной строки RAID компаний AMCC 3ware, HighPoint, Dell (Perc 5/i и PERC 6/i) и LSI (MegaRAID SAS 8408E и SAS1078)
2009-04-09, texnotronic
RAID1 via LAN

Функциональности DRBD во FreeBSD можно добиться примонтировав блочное устройство по сети при помощи GEOM Gate (ggate) и добавив его в зеркало с локальным диском средствами gmirror.
2009-04-03, Raven2000
Оптимизация хоста для CMS

В последнее время на старый и не очень быстрый ПК (Celeron 800 RAM 256) мною было навешано с десяток сайтов и некоторые были из серии тяжелых CMS. И так нам дано FreeBSD 7.1 и ~10 сайтов/CMS.
2009-04-01, atrium
VSFTPD + AD && MySQL

Настройка самого безопасного сервера FTP - vsftpd.
2009-03-31, Dron
Peoplenet + C-motech (3G)

Описание подключения к сети Peoplenet посредством 3G модема С-motech CCu-650U на FreeBSD
2009-03-25, lissyara
mod_auth_external

mod_auth_external - авторизация пользователей в apache c помощью внешней программы - например, системных пользователей.
2009-03-24, gx_ua
Lightsquid

Частично lightsquid может заменить sams: быстрая и простая инсталляция, быстрый парсер, cgi скрипт для динамической генерации отчета, нет привязки к БД, различные графические отчеты, мультиязычный инт
2009-03-18, LHC
Установка Zabbix-1.6

Установка и первоначальная настройка системы мониторинга Zabbix (версия 1.6)
2009-03-16, Cancer
Принт-Сервер Samba+LPD & AD

Простейшая настройка Принт-Сервера на FreeBSD используя Samba+LPD & AD
2009-03-04, Mad_caterpillar
ipsec_vpnc

Настройка VPN IPSec концентратора на FreeBSD 6.2 для клиента cisco с использованием ipsec-tools и авторизацией в активной директории
2009-02-18, Andy
Free-SA

Программа анализирует log файлы Squid'а и формирует по ним отчет.
2009-02-02, Cancer
Openfire Jabber Server

Установка Jabber сервера на примере Openfire
2009-01-28, Cancer
mpd5 + сжатие и шифрование

Установка VPN сервера mpd5 + сжатие и шифрование
подписка

    вверх      
Статистика сайта
Сейчас на сайте находится: 29 чел.
За последние 30 мин было: 59 человек
За сегодня было
2339 показов,
571 уникальных IP
 

  Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
  Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

© lissyara 2006-10-24 08:47 MSK

Время генерации страницы 0.0694 секунд
Из них PHP: 57%; SQL: 43%; Число SQL-запросов: 77 шт.
Исходный размер: 256848; Сжатая: 43725