Хочется странного - рулить rejik'ом из AD
Есть секция
<socialnet>
ban_dir /usr/local/rejik3/banlists/socnet
url http://192.168.0.1/rejik/access_denied.html
work_ip 192.168.0.0/255.255.255.0
хотелось бы просто включать/выключать запрет
помещая/убирая пользователя в определенные группы
в домене примерно как это делается в squid
auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp --require-membership-of="WORK\\internetusers"
тоесть примерно такого
allow_id WORK\\socialnet
Помещаем юзера в группу socialnet он получает доступ к соц сетям, убираем - блокируется
Возможно ли провернуть такое?
Простите за нубский вопрос просто руки не поднимаются проверить самому на живом сервере:)
ЗЫ Спасибо за rejik пользуюсь им уже года 4
Rejik + windows AD groups
Я управляю из лдапа следующим образом:
раз в 10 минут генерятся текстовые файлы списки пользователей, принадлежащих нужным группам.
Если списки изменились - перезагружаются режики.
В конфиге режика прописывается доступ к ресурсам в зависимости от наличия пользователя в этих текстовых файлах.
недостаток: изменения надо ждать 10 минут или запускать скрипт обновления вручную.
достоинство: режик не ходит за правами пользователей на какой-то сервер, что позволяет ему работать быстро.
раз в 10 минут генерятся текстовые файлы списки пользователей, принадлежащих нужным группам.
Если списки изменились - перезагружаются режики.
В конфиге режика прописывается доступ к ресурсам в зависимости от наличия пользователя в этих текстовых файлах.
недостаток: изменения надо ждать 10 минут или запускать скрипт обновления вручную.
достоинство: режик не ходит за правами пользователей на какой-то сервер, что позволяет ему работать быстро.
Не могу, слишком много приватной инфы о компании в этом скрипте, да и писал его не я.
Если коротко, то:
Если коротко, то:
Код: Выделить всё
#!/usr/bin/perl
use Net::LDAP;
use Net::LDAP::Entry;
use POSIX;
Конектимся
unless ($ldap = Net::LDAP->new($ldap_host))
{
print "Can't connect to ldap server $ldap_host: $@\n";
exit;
}
$mesg = $ldap->bind($ldap_login,password =>$ldap_pass);
if($mesg->code())
{
print "Can't LOGIN to ldap server $ldap_host: ". $mesg->error;
exit;
}
Делаем запрос
$mesg = $ldap->search(
base => $base,
filter => $filtr
);
if($mesg->code())
{
print "Can't SEARCH in ldap server ($_[1] $_[2]): ". $mesg->error;
exit;
}
разбираем результат
$max = $mesg->count;
for ( $i = 0 ; $i < $max ; $i++ )
{
unless($mesg->entry($i)->exists("uid"))
{
if ($mesg->entry($i)->dn() eq "ou=Users,dc=rdw,dc=ru"){next;}
print STDERR "NO UID in ",$mesg->entry($i)->dn(),"\n";
next;
}
$uid=$mesg->entry($i)->get_value("uid");
print "DOMEN/$uid\n";
}