Squid и авторизация пользователей в AD по группам

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

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

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
aspera
рядовой
Сообщения: 12
Зарегистрирован: 2009-11-29 23:56:22
Откуда: Москва
Контактная информация:

Squid и авторизация пользователей в AD по группам

Непрочитанное сообщение aspera » 2010-02-09 11:16:20

Итак предыстория: опыт работы с прокси-сервером squid у меня большой, но после смены рабочего места (эх кризис) пришлось привыкать к тормознутости и неповоротливости Microsoft ISA Server, который выполнял задачи шлюза и прокси. Мириться с этим мне не хотелось, но в компании были исторически сложившиеся религиозные устои, а именно:
• Все администраторы специализировались на Windows платформах
• Существовало несколько ступеней доступа в сеть интернет
• Руководство было немного без головы и могло запросить статистику по пользователю аж за какой-то день хрен знает какого года до нашей эры, причем все это должно было быть красиво в графиках, закорючках и с уточнением посещенных сайтов и т.д…
Немного покопавшись в своей голове, взвесив все тяготы и последствия принятой инициативы, я убедил руководство отцепить резервный интернет канал от шлюза и дать мне месяц на настройку и доказательство жизнеспособности и конкурентоспособности нового творения. Конечно выбрал любимую FreeBSD. На то время уже был доступен релиз 7.2, на нем и было все построено.
В качестве шлюза я развернул FreeBSD, настроил на нем IPFW с «ядерным» натом, и считалочки трафика по интерфейсам trafd (что б было о чем раз в месяц с провайдером поговорить). И внутри сети уже был развернут отдельный сервер со Squid.
Распишу сразу особенности будущего прокси:
• Авторизация должна проходить без участия пользователя и на основании учетных данных AD
• Пользователи должны делиться на группы и иметь установленный политиками компании доступ в глобальную сеть
• Статистика по пользователям должна вестись непрерывно и на протяжении бесконечно огромного времени
Начнем:
Для реализации задачи нам потребуется:
• Squid 3.0.19
• Samba (вернее ее маленькая часть WinBIND)
• Lightsquid (для подсчета трафика)
По установке самбы и сквида в интернете есть куча howto, но на всякий случай повторюсь.
Устанавливаем самбу:

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

//>cd /usr/ports/net/samba3/
/usr/ports/net/samba3/>make config
Выбираем следующее:

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

[X] LDAP         With LDAP support
[X] ADS          With Active Directory support
[X] WINBIND      With WinBIND support
[X] SYSLOG       With Syslog support
[X] UTMP         With UTMP accounting support
[X] POPT         With system-wide POPT library
И собираем

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

/usr/ports/net/samba3/>make install clean
Копируем дефолтный конфиг и правим его для наших нужд

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

cd /usr/local/etc
/usr/local/etc/>cp smb.conf.sample smb.conf
/usr/local/etc/>mcedit smb.conf

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

#======================= Global Settings =====================================
[global]
# netbios имя нашего домена
   workgroup = MYDOMAIN
# Комментарий сервера
   server string = Corporate Proxy Server
# Режим безопасности
   security = ADS
# Указываем сети, которым разрешен досту к прокси
   hosts allow = 10.201.1.
# Указываем расположение логов
   log file = /var/log/samba/log.%m
# Указываем размер логов (в килобайтах)
   max log size = 1024
# Указываем имя контроллера домена (Внимание! Необходимо указать контроллер домена,
# выполняющий роль PDC, если он у вас один то не заморачивайтесь. У меня в сети много сайтов.)
   password server = dc4.mydomain.local
# Указываем полное имя нашего домена
   realm = mydomain.local
# Указываем тип хранилища
   passdb backend = tdbsam
# Сетевые настройки
   socket options = TCP_NODELAY
# Указываем самбе, что она не является PDC
   local master = no
   os level = 0
   domain master = no
   preferred master = no
   domain logons = no
# Настройки кодировки
   display charset = koi8-r
   unix charset = koi8-r
   dos charset = cp866
# Настройки winbind
   winbind use default domain = no
   winbind uid = 10000-20000
   winbind gid = 10000-20000
   winbind enum users = yes
   winbind enum groups = yes
Теперь необходимо внести изменения в nsswitch.conf для того, чтобы winbind получал информацию из AD. Нужно исправить всего две строки:

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

group: files winbind
passwd: files winbind
Теперь добавляем наш сервер в домен

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

//>net ads join -U user%pass
Using short domain name -- MYDOMAIN
Joined 'FREEBSD' to realm ‘mydomain.local’
Внимание!!! User – имя пользователя с привилегиями добавлять машины в домен (для особо непонятливых – это либо администратор домена, либо пользователь, которому были делегированы права администратором на сею экзекуцию тачек), pass – пароль этого пользователя!
Теперь настроим запуск winbind вместе с системой, добавляем в rc.conf следующие строки:

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

winbindd_enable="YES"
winbindd_flags="-d 1"
Осталось указать пользователя, от имени которого будет проходить аутентификация (для этих целей я создал отдельного пользователя, и делегировал ему нужные права (если не хочется заморачиваться дайте ему права администратора домена))

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

//>wbinfo --set-auth-user=MYDOMAIN\\proxy%password
//>wbinfo --get-auth-user
MYDOMAIN\proxy%password
Все с самбой разобрались.
Для упрощения своей работы по описанию установки и настройки самбы было взято первое попавшееся на глаза вменяемое howto. Оригинал здесь: http://sys-adm.org.ua/www/squid-ad.php


Теперь займемся установкой и настройкой Squid'a.
Устанавливаем:

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

//>cd /usr/ports/www/squid30
/usr/ports/www/squid30/>make config
Выбираем следующее:

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

[X] SQUID_LDAP_AUTH      Install LDAP authentication helpers
[X] SQUID_DELAY_POOLS    Enable delay pools
[X] SQUID_SNMP           Enable SNMP support
[X] SQUID_HTCP           Enable HTCP support
[X] SQUID_CACHE_DIGESTS  Enable cache digests
[X] SQUID_WCCP           Enable Web Cache Coordination Prot. v1
[X] SQUID_IDENT          Enable ident (RFC 931) lookups
[X] SQUID_ARP_ACL        Enable ACLs based on ethernet address
Устанавливаем

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

/usr/ports/www/squid30/>make install clean
Теперь перейдем к настройке (Внимание! Конфиг Squid'a очень большой. Я его переписывал почти полностью! Последовательность TAG должна быть как у меня.)

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

//>mcedit /usr/local/etc/squid/squid.conf
# Указываем Squid как проводить аутентификацию:
auth_param ntlm program /usr/local/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp
auth_param ntlm children 5
auth_param ntlm keep_alive on
authenticate_cache_garbage_interval 15 minute
authenticate_ttl 5 minute
auth_param basic program /usr/local/bin/ntlm_auth --helper-protocol=squid-2.5-basic
auth_param basic children 5
auth_param basic realm Squid Proxy-Server
auth_param basic credentialsttl 20 minute
auth_param basic casesensitive off
# Теперь указываем Squid где брать информацию о группах пользователей
external_acl_type nt_group %LOGIN /usr/local/libexec/squid/wbinfo_group.pl
# Рекомендованная минимальная конфигурация:
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32
acl localnet src 10.0.0.0/8 # RFC1918 possible internal network
acl localnet src 172.16.0.0/12 # RFC1918 possible internal network
acl localnet src 192.168.0.0/16 # RFC1918 possible internal network
# Описываем основные порты (с вашего позволения из этого списка я убираю порты для управления активным оборудованием, службами и сервисами, в т.ч. порты доступа по ssh (эти порты у меня не стандартные, что рекомендую всем остальным))
acl SSL_ports port 563 # snews
acl Safe_ports port 80 # http
acl FTP port 20 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl Safe_ports port 631 # cups
acl Safe_ports port 110 # POP3
acl Safe_ports port 25 # SMTP
acl purge method PURGE
acl CONNECT method CONNECT
# Указываем пулы адресов нашей сети/сетей
acl lan src 10.201.1.0/255.255.255.0
# Указываем диапазоны адресов серверных платформ, нуждающихся в обновлении через интернет 
# В моем случае это сервера WSUS, Symantec Endpoint Protection Manager и т.д.
acl Servers src 10.201.1.1-10.201.1.49
# Указываем адреса машин, которым интернет доступен без ограничений скорости (правильно админские)
acl Speed_Internet src 10.201.1.101 10.201.1.102
# Указываем диапазон адресов пользователей FTP
acl FTPusers src 10.201.1.101-10.201.1.102
# Указываем расположение и назначение словарей доступа в сеть интернет:
acl url-updates dstdomain "/usr/local/etc/squid/url-updates.txt" # Список сайтов для обновления серверов
acl url-mail-ru dstdomain "/usr/local/etc/squid/url-mail-ru.txt" # Доступ к почте mail.ru
acl url-good dstdomain "/usr/local/etc/squid/url-good.txt" # Список разрешенных сайтов (доступ к этим сайтам #будет возможен даже пользователям, кторым доступ в интернет запрещен)
acl urls-good urlpath_regex -i "/usr/local/etc/squid/urls-good.txt" # Тоже самое только по протоколу https
acl url-bad dstdomain "/usr/local/etc/squid/url-bad.txt" # Список запрещенных сайтов
acl urls-bad url_regex -i "/usr/local/etc/squid/urls-bad.txt" # Тоже самое только по протоколу https
acl url-webmail dstdomain "/usr/local/etc/squid/url-webmail.txt" # Список web-mail
acl urls-webmail url_regex -i "/usr/local/etc/squid/inet-webmails.txt" # web-mail по https
acl url-porno url_regex -i "/usr/local/etc/squid/url-porno.txt" # Список порносайтов
acl url-audio dstdomain "/usr/local/etc/squid/url-audio.txt" # Списки аудиоконтента
acl url-banners url_regex -i "/usr/local/etc/squid/url-banners.txt" # Список баннеров
acl url-JAVA dstdomain "/usr/local/etc/squid/url-java.txt" # Список сайтов, использующих для работы JAVA-#апплеты
acl url-netshare dstdom_regex -i "/usr/local/etc/squid/url-netshare.txt" # Списки netshare
acl url-redirector dstdom_regex -i "/usr/local/etc/squid/url-redirector" # Список анонимайзеров
acl urls-redirector url_regex -i "/usr/local/etc/squid/urls-redirector" # Тоже самое по https
#########################################################
Многие спросят нахрена одно и тоже и так много, ведь можно все объединить в один файл. Объясняю: во-первых часть списков будет содержать не адреса сайтов а регулярные выражения в ссылках, по которым сайты будут блокироваться (очень актуально для порнухи и web-mail ибо банить их просто устанешь). Так же данные ограничения буду применяться по разному для разных групп пользователей
#########################################################
# Указываем группы доступа
acl inet-admins external nt_group inet-admins # Доступ для админов
acl inet-directors external nt_group inet-directors # Как же их любимых с пользователями то ровнять
acl inet-mail.ru external nt_group inet-mail.ru # Избранные с правом доступа на почту mail.ru
acl inet-servers external nt_group inet-servers # Группа для обновлений серверов
acl inet-users external nt_group inet-users # Бедняги обычные смертные
acl inet-webmail external nt_group inet-webmail # Группа пользователей с голубой кровью, испытывающих #недостатки в работе с корпоративной почтой и предпочитающей альтернативы (думаю везде есть такие #уникумы)
acl GET method GET
acl inet-ftp external nt_group inet-ftp # Пользователи которым разрешен доступ к ftp-серверам

#  TAG: http_access
# Теперь начинаем процесс естественной селекции, указывая кому что можно, а именно сопоставляем группы #пользователей с ранее указанными словарями
# Для начала вводим ограничения по портам
http_access allow manager lan
http_access allow purge localhost
http_access deny !Safe_ports !FTP
http_access deny CONNECT !SSL_ports
http_access deny manager
http_access deny to_localhost
http_access allow localhost
http_access allow purge localhost
http_access deny purge
url_rewrite_access deny localhost
# Теперь указываем права доступа по словарям
http_access deny FTP !FTPusers
http_access allow url-JAVA
http_access allow url-good
http_access allow urls-good
http_access deny urls-bad
http_access deny url-bad
http_access deny urls-redirector
http_access deny url-redirector
# Теперь указываем в каких группах используются какие словари
http_access allow inet-directors !url-netshare
http_access allow url-mail-ru inet-mail.ru
http_access allow inet-webmail !url-porno !url-netshare
http_access allow url-updates inet-servers
http_access allow inet-mail.ru !url-webmail !urls-webmail !url-porno !url-netshare
http_access allow inet-admins !url-mail-ru !url-webmail !urls-webmail !url-porno
http_access allow inet-ftp !url-bad !urls-bad !url-webmail !urls-webmail !url-porno
http_access allow inet-users !url-mail-ru !url-good !url-bad !urls-bad !url-webmail !urls-webmail !url-porno !url-audio !url-banners !url-netshare !url-redirector !urls-redirector !inet-ftp
# Напоследок стандартные правила
http_access deny all
http_reply_access allow all
icp_access allow all

# Указываем порт, на котором будет слушать Squid
http_port 3128

# MEMORY CACHE OPTIONS
# -----------------------------------------------------------------------------
#  TAG: cache_mem       (bytes)
cache_mem 256 MB
#  TAG: maximum_object_size_in_memory   (bytes)
maximum_object_size_in_memory 80 KB

# DISK CACHE OPTIONS
# -----------------------------------------------------------------------------
#  TAG: cache_dir
cache_dir ufs /usr/local/squid/cache 1024 16 256
#  TAG: minimum_object_size     (bytes)
#Default:
minimum_object_size 10 KB
#  TAG: maximum_object_size     (bytes)
#Default:
maximum_object_size 32 MB
#  TAG: cache_swap_low  (percent, 0-100)
#  TAG: cache_swap_high (percent, 0-100)
#
cache_swap_low 90
cache_swap_high 95

# LOGFILE OPTIONS
# -----------------------------------------------------------------------------


#  TAG: access_log
access_log /usr/local/squid/logs/access.log squid

#  TAG: pid_filename
pid_filename /usr/local/squid/logs/squid.pid

#  TAG: ftp_user
ftp_user unix@mydomain.ru

#  TAG: ftp_passive
ftp_passive on

# OPTIONS FOR TUNING THE CACHE
# -----------------------------------------------------------------------------

#  TAG: cache
acl QUERY urlpath_regex cgi-bin \?

#  TAG: refresh_pattern
#Suggested default:
refresh_pattern ^ftp:           1440    20%     10080
refresh_pattern ^gopher:        1440    0%      1440
refresh_pattern (cgi-bin|\?)    0       0%      0
refresh_pattern .               0       20%     4320

#  TAG: quick_abort_min (KB)
#  TAG: quick_abort_max (KB)
#  TAG: quick_abort_pct (percent)
quick_abort_pct 80

# ADMINISTRATIVE PARAMETERS
# -----------------------------------------------------------------------------

#  TAG: cache_mgr
cache_mgr admins@mydomain.ru

#  TAG: cache_effective_user
cache_effective_user squid

#  TAG: delay_access
delay_access 1 allow url-bad !Speed_Internet
delay_access 2 allow Speed_Internet
delay_access 2 allow url-updates
delay_access 3 deny all
delay_access 4 allow lan !Speed_Internet
delay_access 4 deny all
delay_access 1 allow urls-bad !Speed_Internet
delay_access 1 allow url-audio !Speed_Internet
delay_access 2 deny all

#  TAG: delay_parameters
delay_class 1 2
delay_class 2 2
delay_class 3 3
delay_class 4 2
delay_parameters 1 32000/128000 8000/8000
delay_parameters 2 250000/1000000 125000/512000
delay_parameters 3 64000/512000 125000/2000000 32000/1000000
delay_parameters 4 250000/2000000 32000/512000

#  TAG: delay_initial_bucket_level      (percent, 0-100)
delay_initial_bucket_level 50

#  TAG: error_directory
error_directory /usr/local/etc/squid/errors/Russian-1251

#  TAG: hosts_file
hosts_file /etc/hosts

#  TAG: fqdncache_size  (number of entries)
fqdncache_size 16386

#  TAG: memory_pools_limit      (bytes)
memory_pools_limit 64 MB

#  TAG: forwarded_for   on|off
forwarded_for off

#  TAG: cachemgr_passwd
cachemgr_passwd “your password” all

#  TAG: coredump_dir
coredump_dir /usr/local/squid/cache

no_cache deny QUERY manager localhost to_localhost SSL_ports CONNECT url-JAVA
visible_hostname proxy.mydomain.local
dns_nameservers 10.201.0.1 10.201.1.1
Все с настройкой squid’a закончили. Теперь необходимо внести сообтветствующие изменения:
Создаем словари в директории /usr/local/etc/squid/
Примеры содержания словарей.

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

/usr/local/etc/squid/>cat url-updates.txt
.microsoft.com
.microsoft.ru

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

/usr/local/etc/squid/ >cat url-mail-ru.txt
.mail.ru

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

/usr/local/etc/squid/>cat url-good.txt
.rbc.ru
news.mail.ru

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

/usr/local/etc/squid/>cat urls-good.txt
services.mozilla.com:443
msexchange
smsexpress
procmail
userMessageCreate
=emailform
adsi_mailboxes

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

/usr/local/etc/squid/>cat url-bad.txt
.1tvrus.com
.2krota.ru
.72.ru
.KM.ru
.a91.ru
.addictinggames.com
.amba.ru
.amobil.ru
.anekdot.ru

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

/usr/local/etc/squid/>cat urls-bad.txt
spine.heightanxiety.com
kamerton.com.ua

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

/usr/local/etc/squid/>cat url-webmail.txt
.AEmail4U.com
.AviationEmail.com
.BankersMail.com
.BlazeMail.com
.BornAgain.com
.BuildTraffic.com
.CBGB.com
.CarJunky.com
.ChefMail.com
.CoolYork.com
.DarkSites.com

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

/usr/local/etc/squid/>cat inet-webmails.txt
mail
inbox
message
pochta

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

/usr/local/etc/squid/>cat url-porno.txt
porn
sex
xxx
teen
fuck

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

/usr/local/etc/squid/>cat url-audio.txt
\.(ra?m|wma|mp2|mpv2|mp3|asx)($|\?)
\.(mpe?g?|wmv|mov|movie|qt|avi|dvd?|divx|flv|iflv)($|\?)
\.(iso|exe|vbs)($|\?)

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

/usr/local/etc/squid/>cat url-banners.txt
/ads/
/ad/
/banner/
/sponsor/
/event.ng/
/Advertisement
/adverts/

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

/usr/local/etc/squid/>cat url-java.txt
.forexpf.ru

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

/usr/local/etc/squid/>cat url-netshare.txt
11mbit.in
allfiles.ru
cyberupload.com
depositfiles.com

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

/usr/local/etc/squid/>cat url-redirector
zonefast.info
zonesafe.info
zoom.selfip.net
zroxee.com
zroxi.com

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

/usr/local/etc/squid/>cat urls-redirector
207.156.166.165/anonymiser
66.75.98.129/cgi-bin/nph-ssl.cgi
charter.com/cgi-bin/nph-815764.cgi/010110A/
Создаем группы пользователей в AD. Внимание группы должны располагаться в корне AD. Хоть убей, но я так и не смог заставить Squid читать группы из разных Организационных юнитов, поэтому создал их в корне.
Список нужных нам групп:
inet-admins
inet-directors
inet-mail.ru
inet-servers
inet-users
inet-webmail
inet-ftp
Внимание: при создании группы учитывать: тип группы – глобальная группа распространения!
Теперь добавляем пользователь в нужные группы!
Добавляем Squid в rc.conf

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

squid_enable=”YES”
Теперь для простоты использования сего творения сочиняем пару простеньких скриптиков. Директорию размещения скриптов оставляю вам на выбор.
Первый скрипт поможет нам перезагружать все это безобразие «одной кнопкой».
Я его обозвал коротко и локанично «restart_all»

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

#! /bin/sh
/usr/local/etc/rc.d/samba stop
/usr/local/etc/rc.d/samba start
wbinfo -p
wbinfo -u
wbinfo -g
/usr/local/etc/rc.d/squid stop
/usr/local/etc/rc.d/squid start
Данный скрипт перезапускает winbind, проверяет связь с AD и перезапускает Squid.
И второй скриптик более важный. Он не перезагружает демонов, а заставляет Squid перечитать словари доступа, что требуется значительно чаще. Хоть по содержанию он совсем прост.

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

#!/bin/sh
/usr/local/etc/rc.d/squid reload
Последний скрипт пихаем в cron с частотой запуска примерно раз в 2 часа (хотя нужды у всех разные и решать это опять Вам).
Теперь осталось дать доступ виндовым админам к нашим файликам доступа пользователей. Каким образом вы это сделаете решать тоже вам, лично я их расшарил по сети, а случайным образом придуманное расширение .txt не заставит бедняг рвать волосы на голове не понимая как это открывать… А всю работу сделает скриптик в кроне.
Подсчетом статистики у меня занимается lightsquid. Писать про его настройку я не стану. В интернете про это написаны даже докторские диссертации.
Спасибо. Ваши комментарии:
Добрым словом и пистолетом можно добиться гораздо большего, нежели просто добрым словом! (Аль Капоне, 1933г.)

Хостинговая компания 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/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

arkan
ст. прапорщик
Сообщения: 559
Зарегистрирован: 2008-08-03 19:58:13
Откуда: Новосибирск
Контактная информация:

Re: Squid и авторизация пользователей в AD по группам

Непрочитанное сообщение arkan » 2010-02-09 12:42:07

Статья конечно на 5+

Но когда отвалится такая связка то пожалуйста ненадо упоминать что это сервер на FreeBSD
у меня такое работало работало а потом бац и пол дня контора без инета сидела - достаточно почитать этот форум что у очень даже многих такая связка работает до поры до времяни

Да и не секьюкно это

aspera
рядовой
Сообщения: 12
Зарегистрирован: 2009-11-29 23:56:22
Откуда: Москва
Контактная информация:

Re: Squid и авторизация пользователей в AD по группам

Непрочитанное сообщение aspera » 2010-02-09 14:18:53

1. Не секъюрно что именно? Сервер не шлюз, и находится как и остальные внутри сети. Снаружи его никоем образом не видно. В каком месте не секъюрно?
2. В каком месте ненадежно??? На предыдущем месте работы у этой связки не возникало проблем в течение ДВУХ лет, на новом месте это работает без перезагрузок уже 8 месяцев, не одного сбоя.

Спасибо что оценили статью, однако ваши аргументы против не прикреплены ни одним весомым аргументом... Так общие слова. Уточните пожалуйста в каком месте оно не секъюрно и почему у людей, у которых тем или иным образом неверно настроены контроллеры домена оно вдруг падает? Лично я за без маленького 3 года не встречал таких проблем.

Да весомое дополнение к статье!!! Если вы хотите указать несколько контроллеров домена в разных сайтах, небходимо будет для каждого создать отдельный билетик kerberos. В этом случае при перезагрузке какого либо контроллера пользователи не утратят доступа в сеть.
Добрым словом и пистолетом можно добиться гораздо большего, нежели просто добрым словом! (Аль Капоне, 1933г.)

arkan
ст. прапорщик
Сообщения: 559
Зарегистрирован: 2008-08-03 19:58:13
Откуда: Новосибирск
Контактная информация:

Re: Squid и авторизация пользователей в AD по группам

Непрочитанное сообщение arkan » 2010-02-09 15:02:40

1) Не секьюрно в том плане что любой троян и любой стукачливый софт проходит спокойно через проксю эту Squid+AD и стучит в любую точку мира
2) ненадежно по той самой причине что достаточно посмотреть на колличество сообщений за последние пол года о том что слетает авторизация эта - а до этого (примерно до прошлого лета все работало как часы несколько лет) а потом или разрабы винбинда чтото там перемудрили или в сквиде чтото не так но вобщем связка Squid+Winbindd+AD оставляет желать лучшего
У меня эта связка работала несколько лет как часы а вот в последнее пол года началось то одни грабли то другие так и пришлось всю контору перевести на NCSA авторизацию
То что авторизация пропадает иногда это дело поправимо рестартом сервисов но то что любой софт наружу лазает без разрешения это уже слишком

aspera
рядовой
Сообщения: 12
Зарегистрирован: 2009-11-29 23:56:22
Откуда: Москва
Контактная информация:

Re: Squid и авторизация пользователей в AD по группам

Непрочитанное сообщение aspera » 2010-02-09 15:16:58

1. К данной связке свободно прикручивается антивирус. Да и тема шпионского тряхомудья это уже отдельная история у которой конца не видно и решений существует множество
2. До сих пор проблем не испытывал, хотя опять же я бы не валил всех собак именно на сквид или самбу. ИМХО майкрософтовские обновления безопасности творят такие вещи что волосы дыбом встают. У нас как то после такого "обновления" сервак вообще из сети вылетел, точнее отрубилось сетевое обнаружение...
То что авторизация пропадает иногда это дело поправимо рестартом сервисов но то что любой софт наружу лазает без разрешения это уже слишком
В этом наверно у меня огромное преимущество. У меня в сети рабочих станций нет вообще. Все пользователи через тонких клиентов коннектятся к терминальному кластеру, а там "любой софт" - не живет, у пользователей там прав хватает на штамповку документов, притом профили храняться отдельно и постоянно под присмотром специально обученного софта...
Добрым словом и пистолетом можно добиться гораздо большего, нежели просто добрым словом! (Аль Капоне, 1933г.)

_Менделеев
проходил мимо

Re: Squid и авторизация пользователей в AD по группам

Непрочитанное сообщение _Менделеев » 2010-02-09 15:20:20

arkan писал(а):.... То что авторизация пропадает иногда это дело поправимо рестартом сервисов...
не понял при каком виде иногда пропадает авторизация? при AD или при NCSA?
просто тока начал вопрос окучивать...
кстати автору респект, опробую.

arkan
ст. прапорщик
Сообщения: 559
Зарегистрирован: 2008-08-03 19:58:13
Откуда: Новосибирск
Контактная информация:

Re: Squid и авторизация пользователей в AD по группам

Непрочитанное сообщение arkan » 2010-02-09 17:31:07

_Менделеев писал(а):не понял при каком виде иногда пропадает авторизация? при AD или при NCSA?
Слетает авторизация именно при использовании AD
aspera писал(а):1. К данной связке свободно прикручивается антивирус. Да и тема шпионского тряхомудья это уже отдельная история у которой конца не видно и решений существует множество
Мухахаха АНТИВИРУС - прям звучит то как панацея
По несколько раз в неделю ловлю у себя в сети вирусню разных масей и ниодин вменяемый антивирусник их не распознает
Был даже случай отправил кашмарскому одного трояна а они его так и не внесли в базу

Прокси сервер нужен не только для того чтоб трафик считать а в первую очередь чтоб жестко разделить интернет и пользователя

aspera
рядовой
Сообщения: 12
Зарегистрирован: 2009-11-29 23:56:22
Откуда: Москва
Контактная информация:

Re: Squid и авторизация пользователей в AD по группам

Непрочитанное сообщение aspera » 2010-02-09 17:57:36

Мухахаха АНТИВИРУС - прям звучит то как панацея
А что звучит не как панацея? Один кошмаровский уже звучит как приговор. Собственна на эту тему можно общаться до потери пульса. А с утверждением для чего нужен прокси абсолютно согласен!
Добрым словом и пистолетом можно добиться гораздо большего, нежели просто добрым словом! (Аль Капоне, 1933г.)

Larin
лейтенант
Сообщения: 975
Зарегистрирован: 2008-01-29 20:08:41
Откуда: РБ, Минск

Re: Squid и авторизация пользователей в AD по группам

Непрочитанное сообщение Larin » 2010-02-09 18:05:00

третьий год сквид с авторизацией через винбинд не падает.

arkan
ст. прапорщик
Сообщения: 559
Зарегистрирован: 2008-08-03 19:58:13
Откуда: Новосибирск
Контактная информация:

Re: Squid и авторизация пользователей в AD по группам

Непрочитанное сообщение arkan » 2010-02-09 19:08:36

Larin писал(а):третьий год сквид с авторизацией через винбинд не падает.
А слабо обновить софт ?

Аватара пользователя
InventoR
ст. лейтенант
Сообщения: 1344
Зарегистрирован: 2006-12-10 19:43:25
Контактная информация:

Re: Squid и авторизация пользователей в AD по группам

Непрочитанное сообщение InventoR » 2010-02-09 20:48:31

Один вопрос: кто поборол чтобы сервера на 2008 нормально обновлялись через прокси с авторизацией как из этой статьи?
ну вот и сказочке конец, кто слушал, тот молодец.

Larin
лейтенант
Сообщения: 975
Зарегистрирован: 2008-01-29 20:08:41
Откуда: РБ, Минск

Re: Squid и авторизация пользователей в AD по группам

Непрочитанное сообщение Larin » 2010-02-09 22:54:11

arkan писал(а):
Larin писал(а):третьий год сквид с авторизацией через винбинд не падает.
А слабо обновить софт ?
зачем?)
намекаешь на то, что винбинд отвалиться?

Burner
лейтенант
Сообщения: 693
Зарегистрирован: 2009-06-14 7:02:26

Re: Squid и авторизация пользователей в AD по группам

Непрочитанное сообщение Burner » 2010-02-10 7:05:04

aspera писал(а):Итак предыстория: опыт работы с прокси-сервером squid у меня большой, но после смены рабочего места (эх кризис) пришлось привыкать к тормознутости и неповоротливости Microsoft ISA Server, который выполнял задачи шлюза и прокси. Мириться с этим мне не хотелось, но в компании были исторически сложившиеся религиозные устои, а именно:
• Все администраторы специализировались на Windows платформах
• Существовало несколько ступеней доступа в сеть интернет
• Руководство было немного без головы и могло запросить статистику по пользователю аж за какой-то день хрен знает какого года до нашей эры, причем все это должно было быть красиво в графиках, закорючках и с уточнением посещенных сайтов и т.д…

.....
Спасибо. Ваши комментарии:
задротство.

arkan
ст. прапорщик
Сообщения: 559
Зарегистрирован: 2008-08-03 19:58:13
Откуда: Новосибирск
Контактная информация:

Re: Squid и авторизация пользователей в AD по группам

Непрочитанное сообщение arkan » 2010-02-10 8:08:02

InventoR писал(а):Один вопрос: кто поборол чтобы сервера на 2008 нормально обновлялись через прокси с авторизацией как из этой статьи?
Были проблеммки
пришлось ставить WSUS и на него уже натравливать индус сервера но всеравно както не очень это работало
Larin писал(а): зачем?)
намекаешь на то, что винбинд отвалиться?
и отвалится и еще очень много головников прибавится

Так же очень большим недостатком этой связки SQUID+AD это то что многий бухгалтерский софт неумеет так работать а через NCSA авторизацию беспроблемм

Larin
лейтенант
Сообщения: 975
Зарегистрирован: 2008-01-29 20:08:41
Откуда: РБ, Минск

Re: Squid и авторизация пользователей в AD по группам

Непрочитанное сообщение Larin » 2010-02-10 10:52:13

arkan писал(а):
Larin писал(а): зачем?)
намекаешь на то, что винбинд отвалиться?
и отвалится и еще очень много головников прибавится

Так же очень большим недостатком этой связки SQUID+AD это то что многий бухгалтерский софт неумеет так работать а через NCSA авторизацию беспроблемм
ncsa можно совместно использовать с ntlm

aspera
рядовой
Сообщения: 12
Зарегистрирован: 2009-11-29 23:56:22
Откуда: Москва
Контактная информация:

Re: Squid и авторизация пользователей в AD по группам

Непрочитанное сообщение aspera » 2010-02-10 11:00:27

arkan писал(а):
InventoR писал(а):Один вопрос: кто поборол чтобы сервера на 2008 нормально обновлялись через прокси с авторизацией как из этой статьи?
Были проблеммки
пришлось ставить WSUS и на него уже натравливать индус сервера но всеравно както не очень это работало
Larin писал(а): зачем?)
намекаешь на то, что винбинд отвалиться?
и отвалится и еще очень много головников прибавится

Так же очень большим недостатком этой связки SQUID+AD это то что многий бухгалтерский софт неумеет так работать а через NCSA авторизацию беспроблемм
Если уж на то пошло, то нахрена бухгалтерам вообще интернет облакатился? На DHCP для их машин делается банальное резервирование и TAXCOM и CryptoPRO выпускается в мир через фаервол до определенного адреса назначения, там всего то 3 порта используется (причем один из них 25). А все новости из мира они получают через диски ИТС, благо подписка на них есть практически во всех компаниях.

Что касается 2008 сервера: 2008 R2 Enteprise через WSUS полет нормальный. Было такое предположение, что их гребаный GeniueAdventage хочет значительно больше, чем может предложить прокси, а открывать им чего то больше стремно. Кстати 2008 сервера не прошли сертификации в ФСБ и официально запрещены для использования в госструктурах, отсюда и ежику понятно что они ну слишком много инфы сливают в непонятном направлении.
Добрым словом и пистолетом можно добиться гораздо большего, нежели просто добрым словом! (Аль Капоне, 1933г.)

Аватара пользователя
InventoR
ст. лейтенант
Сообщения: 1344
Зарегистрирован: 2006-12-10 19:43:25
Контактная информация:

Re: Squid и авторизация пользователей в AD по группам

Непрочитанное сообщение InventoR » 2010-02-10 11:18:53

Там с этим обновлением у меня по крайней мере какая-то хрень.

В общем примерно так:

Если на сервере идет авторизация по логину и пасу из домена на ntlm, то в 2008 в Explorer прописуешь адрес прокси и тогда у тебя при обновлении запрашивает логин и пасс, при попытках его ввести тебя посылает далеко и на долго.
К стати вот еще, он запрашивает логин и пасс всего 2 раза, а на сколько вижу по логам squid не всегда показывается что зверь авторизируется через NTLM, вроде сперва пытается просто по ip пролезть.
Говорят что помогает настройки winhttp, якобы так кому-то удавалось.

В общем там еще ms что-то натворила с этой авторизацией.
ну вот и сказочке конец, кто слушал, тот молодец.

aspera
рядовой
Сообщения: 12
Зарегистрирован: 2009-11-29 23:56:22
Откуда: Москва
Контактная информация:

Re: Squid и авторизация пользователей в AD по группам

Непрочитанное сообщение aspera » 2010-02-10 11:29:04

Если у тебя сервер в домене, то попробуй через групповые политики настроить ему прокси, а так же выстрой параметры Windows Update тем же способом. Проблема там скорее всего в том, что они запрашивают повышение прав до локального админа для внесения изменений в систему. Так же капни в сторону локальных политик сервера... Там в политиках безопасности посмотри какие у кого права на систему
Добрым словом и пистолетом можно добиться гораздо большего, нежели просто добрым словом! (Аль Капоне, 1933г.)

Masty
проходил мимо

Re: Squid и авторизация пользователей в AD по группам

Непрочитанное сообщение Masty » 2010-03-20 20:19:04

Мммм... Про отваливания позволю себе вдогонку напомнить с этого-же сайта слова про "врезку" в АД (не дословно): "... не забываем синхронизировать время с АДом...".
У мну только в проблемах с керберосом и разницей во времени отваливания есть.

aspera
рядовой
Сообщения: 12
Зарегистрирован: 2009-11-29 23:56:22
Откуда: Москва
Контактная информация:

Re: Squid и авторизация пользователей в AD по группам

Непрочитанное сообщение aspera » 2010-03-21 21:04:35

Мммм... Про отваливания позволю себе вдогонку напомнить с этого-же сайта слова про "врезку" в АД (не дословно): "... не забываем синхронизировать время с АДом...".
У мну только в проблемах с керберосом и разницей во времени отваливания есть.
Хорошее замечание насчет времени, но позволю себе напомнить, что практически любой хоть раз в жизни пытался добавить в ад машину с кривым временем и получал шиш))) Так что уповая на грамотность и наличие NTP сервера (думаю если есть домен, значит есть PDC, а в домене время машины спрашивают у него... грех NTP не настроить...) об этом я умолчал, а что касается билетиков кербероса: единственный раз в жизни я столкнулся с этой проблемой при миграции ада в новое доменное имя, да и то это было только из-за собственной невнимательности (просто забыл), да и то отваливания как такового не было, все работало как часы за одним исключением: новые пользователи не заводились и исключения не добавлялись, пришлось копаться
Добрым словом и пистолетом можно добиться гораздо большего, нежели просто добрым словом! (Аль Капоне, 1933г.)

Аватара пользователя
ban
мл. сержант
Сообщения: 145
Зарегистрирован: 2009-07-22 22:36:29
Откуда: г.Волжский Волг. обл.

Re: Squid и авторизация пользователей в AD по группам

Непрочитанное сообщение ban » 2010-05-04 10:05:27

тут же керберос не используется?
кто никуда не торопится, тот везде успевает

Andrey Zentavr
проходил мимо
Сообщения: 1
Зарегистрирован: 2010-06-04 2:28:19

Re: Squid и авторизация пользователей в AD по группам

Непрочитанное сообщение Andrey Zentavr » 2010-06-04 3:37:24

aspera писал(а): Создаем группы пользователей в AD. Внимание группы должны располагаться в корне AD. Хоть убей, но я так и не смог заставить Squid читать группы из разных Организационных юнитов, поэтому создал их в корне.
Два скрипта которые понимают группы, в том числе и с русскими названиями в Microsoft AD
P.S.: Кодировка UTF-8

Вызывается это дело так:

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

auth_param basic program /usr/local/sbin/squid_login
И для группы:

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

external_acl_type ldap_users children=15 %LOGIN /usr/local/sbin/squid_ldap_group
Вложения
squid_login.txt
(4.95 КБ) 482 скачивания
squid_ldap_group.txt
(3.39 КБ) 176 скачиваний

Nickuz
рядовой
Сообщения: 28
Зарегистрирован: 2009-09-22 11:48:31

Re: Squid и авторизация пользователей в AD по группам

Непрочитанное сообщение Nickuz » 2010-06-07 8:18:07

aspera писал(а): Кстати 2008 сервера не прошли сертификации в ФСБ и официально запрещены для использования в госструктурах, отсюда и ежику понятно что они ну слишком много инфы сливают в непонятном направлении.
Да не, там, похоже, просто по откатам не договорились.

Siro
проходил мимо

Re: Squid и авторизация пользователей в AD по группам

Непрочитанное сообщение Siro » 2010-07-15 15:20:24

Огромное спасибо автору! Курил все это долго, но результат таки есть, помогло.
Ставил на 8.0, самба 34, сквид 31. Хочу добавить:

Все чудно работает через глобальные группы безопасности, которые спокойно распиханы по организационным подразделениям.
Хелпер не работает, если у сквида нет прав на папку winbindd_privileged:

# chown -R root:squid /var/db/samba/winbindd_privileged/
# chmod -R 750 /var/db/samba/winbindd_privileged/

Ну и вопрос родился:

acl inet-users external nt_group inet-users # Сюда входят пользователи с правом ходить в инет
http_access deny !inet-users # При таком раскладе запрещает доступ, если я не вхожу в группу
# inet-users, но браузер не выводит красивую страничку на тему пшел нафиг, а методично
# спрашивает пароль. Есть ли способ в корне пресечь это попрошайство?

xl
проходил мимо
Сообщения: 1
Зарегистрирован: 2010-07-19 1:50:23

Re: Squid и авторизация пользователей в AD по группам

Непрочитанное сообщение xl » 2010-07-19 2:18:39

Спасибо за статью.
Возник вопрос: в AD есть две группы, одна привязана к ограничению скорости (например, speedlimit16k), другая разрешает сайты только из вайтлиста (например, whitelist).
Есть пользователь, который входит в обе группы. Порядок acl такой:

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

delay_class 1 1
delay_access 1 allow speedlimit16k
delay_access 1 deny all
delay_parameters 1 16000/16000

http_access allow whitelist whiteurls
http_access deny all
Т.е. оно должно было для сайтов из вайтлиста ограничить скорость до 16кбс, на деле сайты из вайтлиста доступны на полной скорости.
Конечно, можно сделать железное ограничение на whiteurls, но хочется проверку по двум или даже трем группам в AD. Как можно это реализовать? :)