Автор Тема: Фильтрация контента в школах (вопросы организации и т.п.)  (Прочитано 45139 раз)

Оффлайн Alukardd

  • Участник
  • *
  • Сообщений: 197
ой как тяжело читать что. то чужое...
в общем во первых возьмите за правило сначала описывать все ACL, а потом уже правила их фильтрации!
Идем дальше, вот это ваше правило - http_access allow it-group all разрешает всё всем!!! из него надо удалить all - оно-то все и портит...

дальше я не очень понимаю как у вас происходит аутентификация в итоге...(зачем у вас строчка с LDAP?) лично у меня это делается в пару строк...(у меня всё через LDAP)
примерauth_param basic program /usr/lib/squid3/squid_ldap_auth -R -D squidreader@school.ru -W /etc/squid3/adpw.txt -b "dc=school,dc=ru" -f "sAMAccountName=%s" 192.168.0.1

external_acl_type ldap_users %LOGIN /usr/lib/squid3/squid_ldap_group -R -b "dc=school,dc=ru" -f "(&(sAMAccountName=%v)(memberOf=cn=%a,ou=groups,ou=school,dc=school,dc=ru))" -D squidreader@school.ru -W /etc/squid3/adpw.txt 192.168.0.1

acl students external ldap_users GroupStudents
acl workers external ldap_users GroupWorkers
acl administrations external ldap_users GroupAdministrations
acl admins external ldap_users GroupAdmins
ну и дальше думаю ясно, что работать я могу именно с группами students и прочими... Для самой проверки заведен в AD пользователь squidreader с паролем лежащим в файле /etc/squid3/adpw.txt, адрес windows сервера с AD - 192.168.0.1.

Свою авторизацию я для примера привёл - если у вас все работает кроме того злосчастного правило, то работайте как есть)

далее# Разрешаем инет обычным пользователям
http_access allow AUTHENTICATED uch-group
# Класс ходит только по открытым серверам
http_access deny AUTHENTICATED class-group !class-domen

# оставленно от стандартных настроек
# Access policy for authenticated users
http_access allow AUTHENTICATED
в эих строчках у вас явно пере мудрено, осмыслите их и перепишите...

и строчка http_access allow all перед такой же deny, явно лишняя...
« Последнее редактирование: 17.08.2010 20:57:54 от Alukardd »
Debian Lenny 6.0, Ubuntu 10.04 Lucid Lynx

Оффлайн Istorik

  • Участник
  • *
  • Сообщений: 117
  • Alt Linux 5.0.1
А если нет виндос сервера с АД

# Разрешаем инет обычным пользователям
http_access allow AUTHENTICATED uch-group
# Класс ходит только по открытым серверам
http_access deny AUTHENTICATED class-group !class-domen

# оставленно от стандартных настроек
# Access policy for authenticated users
http_access allow AUTHENTICATED

Говорю же брал пример из того что есть в коробке, там именно так acl задавалось и http_access, так же http_access allow all и http_access deny от туда осталось.

А тут я думаю можно оставить
http_access allow uch-group
http_access allow class-group class-domen
правильно ли я понял
учителя проходят
ученики проходят только на сайты class-domen

Сори если заполонил не совсем той тематикой.

К стати, где можно взять список сайтов полезных для образования и на оборот черный список =)
« Последнее редактирование: 17.08.2010 21:53:44 от Istorik »
Omnia me mecum porto

Оффлайн Alukardd

  • Участник
  • *
  • Сообщений: 197
я же сказал, что если у вас нормально работает авторизация через обычное unix логины(я понял у вас так) так и пусчай работает... зачем вам вообще строка с LDAP? И она какая-то странная почему пишете unix_group и тут же обращаетесь к squid_ldap_group???

p.s. я думаю вам стоит уяснить как вы хотите идентифицировать пользователя прочитать про конкретный метод аутентификации и всё лишнее удалить из конфигурационного файла! Не забываем о резервном копировании перед изменениями работающих настроек...
Debian Lenny 6.0, Ubuntu 10.04 Lucid Lynx

Оффлайн Istorik

  • Участник
  • *
  • Сообщений: 117
  • Alt Linux 5.0.1
я же сказал, что если у вас нормально работает авторизация через обычное unix логины(я понял у вас так) так и пусчай работает... зачем вам вообще строка с LDAP? И она какая-то странная почему пишете unix_group и тут же обращаетесь к squid_ldap_group???

p.s. я думаю вам стоит уяснить как вы хотите идентифицировать пользователя прочитать про конкретный метод аутентификации и всё лишнее удалить из конфигурационного файла! Не забываем о резервном копировании перед изменениями работающих настроек...

Я бы сам такое не сочинил т.к. вообще не понимаю что в той строчке написано, она была взята из стандартного файла squid в altlinux server 5.0

Думаю, что через LDAP будет удобнее.
Omnia me mecum porto

Оффлайн Alukardd

  • Участник
  • *
  • Сообщений: 197
Цитата: Istorik
К стати, где можно взять список сайтов полезных для образования и на оборот черный список =)
а ктож его знает)))

Не совсем понял, что из чего оставить, но вот что скажу без этих пониманий... поскольку class-group является частью AUTHENTICATED, то лучше не давать разрешения аналогичные друг другу, знаете ли избыточность не требуется, да и ваши правила не выполнятся, как вы хотите именно по той же причине!!! Думаю сам догадываетесь что произойдет???
Надо такhttp_access allow uch-group
http_access deny class-group !class-domen
http_access allow AUTHENTICATED
http_access deny all
так более грамотно и обобщенно, конечно это не единственный способ...
Debian Lenny 6.0, Ubuntu 10.04 Lucid Lynx

Оффлайн Alukardd

  • Участник
  • *
  • Сообщений: 197
если честно я не знаком со всей мощью и разнообразием авторизации в squid! Но подозреваю, что те строчки, что описаны у меня в конфиге и работают с AD Windows, будут работать и с локальным ldap сервером, на обычном openldap...
Debian Lenny 6.0, Ubuntu 10.04 Lucid Lynx

Оффлайн Istorik

  • Участник
  • *
  • Сообщений: 117
  • Alt Linux 5.0.1
Ладно  завтра попробую. Если что буду искать
Omnia me mecum porto

Оффлайн Istorik

  • Участник
  • *
  • Сообщений: 117
  • Alt Linux 5.0.1
Обрушил сервер =(

Но до этого выяснил, что при любых настройках (в ручную или веб админка) не работает логин. Точнее логин проходит, но разницы в логинах нет. То есть если одному разрешено все, а второму запрещено все кроме двух сайтов оба смогут ходить только на два сайта.

А обрушил все когда полез в ldap выяснять почему так.
Omnia me mecum porto

Оффлайн Alukardd

  • Участник
  • *
  • Сообщений: 197
обрушили это вы зря...
а в ldap косяк искать-о не чего, там мб только что вы включили их в одну группу случайно разве что...
все надо копать в правилах squid, вы не стесняйтесь, скидывайте тот конфиг который получился, а мы поправим вас...
самое тяжёлое это вникнуть в вашу структуру, обозначения и правила :-)

как возобновите работу сервера, и приступите к настройке squid ждём вас с конфигом) ну или просто удачи самому разобраться!
Debian Lenny 6.0, Ubuntu 10.04 Lucid Lynx

Оффлайн Istorik

  • Участник
  • *
  • Сообщений: 117
  • Alt Linux 5.0.1
Итог

auth_param basic program /usr/lib/squid/squid_ldap_auth -R -D istorik@school438.local -W /etc/squid/adpw.txt -b "dc=
auth_param basic program /usr/lib/squid/pam_auth
external_acl_type unix_group %LOGIN /usr/lib/squid/squid_ldap_group -R -b "dc=school438,dc=local" -f "(&(sAMAccountN

acl manager proto cache_object
acl AUTHENTICATED proxy_auth REQUIRED
acl CONNECT method CONNECT
acl our_networks src 192.168.10.0/25    # Local
acl our_networks src 127.0.0.0/8    # LOCALHOST
acl uch-group external unix_group uch
acl uch-domains dstdomain .google.ru
acl istorik-group external unix_group istorik
http_access allow istorik-group
http_access deny uch-group !uch-domains
http_access allow AUTHENTICATED
http_access deny all
http_port 3128

cache_dir ufs /var/spool/squid 2048 16 256
maximum_object_size 65536 KB
cache_log /var/log/squid/cache.log
cache_store_log /var/log/squid/store.log
debug_options ALL,1

acl QUERY urlpath_regex cgi-bin \?
cache deny QUERY

refresh_pattern ^ftp:<-><------>1440<-->20%<--->10080
refresh_pattern ^gopher:<------>1440<-->0%<---->1440
refresh_pattern .<-----><------>0<----->20%<--->4320

Лог

Aug 19 14:03:29 Server squid[29831]: Squid Parent: child process 29833 exited due to signal 9
Aug 19 14:03:29 Server squid: squid shutdown succeeded
Aug 19 14:03:29 Server squid: 2010/08/19 14:03:29| WARNING: '0.0.0.0/0.0.0.0' is a subnetwork of '0.0.0.0/0.0.0.0'
Aug 19 14:03:29 Server squid: 2010/08/19 14:03:29| WARNING: because of this '0.0.0.0/0.0.0.0' is ignored to keep splay tree searching predictable
Aug 19 14:03:29 Server squid: 2010/08/19 14:03:29| WARNING: You should probably remove '0.0.0.0/0.0.0.0' from the ACL named 'all'
Aug 19 14:03:29 Server squid: squid startup succeeded
Aug 19 14:03:29 Server squid[30281]: Squid Parent: child process 30283 started
Aug 19 14:03:32 Server krb5kdc[9387]: AS_REQ (7 etypes {18 17 16 23 1 3 2}) 172.23.70.185: ISSUE: authtime 1282212212, etypes {rep=23 tkt=23 ses=16}, uch@SCHOOL438.LOCAL for krbtgt/SCHOOL438.LOCAL@SCHOOL438.LOCAL

Итог Istorik в инете без ограничений uch в инете без ограничений
« Последнее редактирование: 19.08.2010 14:44:06 от Istorik »
Omnia me mecum porto

Оффлайн Alukardd

  • Участник
  • *
  • Сообщений: 197
ну судя по тому, что он ругнулся в логе на объявленный acl all src 0.0.0.0/0.0.0.0, то лог вы скинули не от этого конфига... ;)

меня морозит и я не понимаю, как так можно написать? вы утверждаете, что такой пример есть в дэфолтом конфиге, но мне всё-равно не понятно как так -- unix_group и тут же squid_ldap_group либо вы, либо кто-то еще вумный объясните мне как такое может вообще работать?

моё умозаключение по всему этому - описываю, что реально у вас происходит:
все кто пытается авторизоваться и авторизуется делает это через модуль squid_ldap_auth, как у вас и описано,
а строчки с объявлением external_acl_type и последующее деление его на соответствующие группы просто не происходит :)
и ВСЕ ваши юзеры, включая вас и прочих идут через единственное действенное правило - http_access allow AUTHENTICATED.

вот моё мнение! кто может оспорить или подтвердить буду рад, а то что-то вы меня скоро совсем запутаете...
Debian Lenny 6.0, Ubuntu 10.04 Lucid Lynx

Оффлайн Istorik

  • Участник
  • *
  • Сообщений: 117
  • Alt Linux 5.0.1
То есть что бы эта строчка стала работать и логин проходил нужно написать ldap_users вместо unix_group
Omnia me mecum porto

Оффлайн Alukardd

  • Участник
  • *
  • Сообщений: 197
IMHO, да!
смотрите мой пример авторизации ниже...
Debian Lenny 6.0, Ubuntu 10.04 Lucid Lynx

Оффлайн Istorik

  • Участник
  • *
  • Сообщений: 117
  • Alt Linux 5.0.1
IMHO, да!
смотрите мой пример авторизации ниже...

Как я и предполагал не помогло =(
Omnia me mecum porto

Оффлайн Alukardd

  • Участник
  • *
  • Сообщений: 197
ыыы
блин ну я фиг знает, что там у вас и как сделано...

моё мнение по прежнему неизменно, дело в авторизации, значит по прежнему есть косяки в external_acl_type или external... ну или в самом ldap.
у меня просто нету других идей, где может быть затыка...

вот нашёл у себя в закромах, когда у себя настраивал авторизацию создал файлик с небольшой подсказкой для себя на будущее# требуется установленный squid3

aptitude install openldap-utils

# проверка работоспособности коннекта к AD и валидности созданного ака для чтения
ldapsearch -D "squidreader@school.ru" -x -W -b "dc=school,dc=ru" -h 192.168.0.1

# Создаём файл с паролем к учётной записи, которой мы читаем, к примеру он будет /etc/squid3/adpw.txt

# проверка групп в AD --> в терминале
/usr/lib/squid3/squid_ldap_group -R -b "dc=school,dc=ru" -f "(&(sAMAccountName=%v)(memberOf=cn=%a,ou=groups,ou=school,dc=school,dc=ru))" -D squidreader@school.ru -W /etc/squid3/adpw.txt 192.168.0.1

# проверка любого ака --> в терминале
/usr/lib/squid3/squid_ldap_auth -R -D squidreader@school.ru -W /etc/squid3/adpw.txt -b "dc=school,dc=ru" -f "sAMAccountName=%s" 192.168.0.1

# добавляем в squid.conf для описание метода автоизации
auth_param basic program /usr/lib/squid3/squid_ldap_auth -R -D squidreader@school.ru -W /etc/squid3/adpw.txt -b "dc=school,dc=ru" -f "sAMAccountName=%s" 192.168.0.1

# добавляем в squid.conf для описания внешних групп из ldap
external_acl_type ldap_users %LOGIN /usr/lib/squid3/squid_ldap_group -R -b "dc=school,dc=ru" -f "(&(cn=%v)(memberOf=cn=%a,ou=groups,ou=school,dc=school,dc=ru))" -D squidreader@school.ru -W /etc/squid3/adpw.txt 192.168.0.1

# описываем acl на основе ldap групп
acl students external ldap_users GroupStudents
Debian Lenny 6.0, Ubuntu 10.04 Lucid Lynx