Страница 1 из 1

squid + rejik + перенаправить некоторых юзеров

Добавлено: 2009-07-27 11:28:56
suspender
Настроен squid по статье lissyara (с авторизацией по доменным группам).
Раз в какое то время запускается скрипт, который делает ротацию логов squid и сбрасывает все в mysql, затем смотрит не израсходовал ли кто нить квоту, и если находит - то записывает в /usr/local/work/squidacls/users_blocked имена соответствующих пользователей. Затем тот же скрипт делает релоад сквиду.
в конфиге сквида есть такие строчки

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

...
acl users_blocked proxy_auth "/usr/local/work/squidacls/users_blocked"
...
http_access deny users_blocked
...
То есть пока что, если чувак сьел свой траффик - ему тупо выкидывается окошко с предложением ввести логин пароль, и если не вводит - то пишут доступ запрещен.
Хочется перенаправлять таких чуваков на страничку с надписью "Ваш трафик сьеден". Как это сделать проще всего ?
Пытался сделать так :
Поставил rejik, в redirector.conf прописал

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

error_log /usr/local/rejik/redirector.err
change_log /usr/local/rejik/redirector.log
make-cache /usr/local/rejik/make-cache
work_id /usr/local/work/squidacls/users_blocked
raw_change * http://10.0.1.10:8081/limit.htm
в squid.conf добавил

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

url_rewrite_program /usr/local/rejik/redirector /usr/local/rejik/redirector.conf
url_rewrite_children 15
При такой конфигурации реджика при запуске сквида, валятся по очереди все процессы redirector и сквид тоже валится вслед за ними.
Сквид на боевой тачке, особо экспериментировать нельзя. Подскажите как сконфигать реджик. Или мб сквид сам может перенаправлять чуваков из определенного acl?

Re: squid + rejik + перенаправить некоторых юзеров

Добавлено: 2009-07-28 15:48:45
Cardinal
В rejik пишешь секцию типа

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

<disabled_id>
work_id f:/usr/local/work/squidacls/users_blocked
ban_dir /usr/local/rejik/banlists/localhosts
url http://server_ip/blocked.php?url=#URL#&user=#IDENT#
reverse
Далее создаешь файлик blocked.php следующего содержания

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

<?php
if(isset($_GET["url"])) $url=$_GET["url"];
if(isset($_GET["user"])) $user=$_GET["user"];
print("  <HTML lang=\"ru\"><HEAD>\n");
print("  </HEAD>\n");
print("  <TITLE>Proxy server disabled.</TITLE>\n");
print("  <META  content=\"text/html; charset=koi8-r\" http-equiv=\"Content-Type\">\n");
print("  <BODY>\n");
print("  <TABLE BORDER=0 WIDTH=\"95%\" >");
  print("<TR><TD><IMG SRC=\"http://server_ip/denied.gif\">\n");
  print("<TD>\n");
       print("<H2>Пользователь <FONT COLOR=\"BLUE\">$user</H2></FONT> \n");
       print("<P><FONT COLOR=\"RED\"><B><H2>Доступ к URL <FONT COLOR=\"BLACK\">$url</FONT> запрещен!!!</H2></B></FONT> \n");
       print("<P><FONT COLOR=\"RED\"><B><H2>Вы отключены</H2></B></FONT>\n");
       print("<H2><FONT COLOR=\"RED\">Превышено ограничение объема полученной информации</H2></FONT> \n");
  print(" </TD></TD></TR>\n");
  print("  </TABLE></BODY></HTML>");
?>
И в папке /usr/local/rejik/banlists/localhosts создаешь файл urls содержащий ip твоего прокси (но только не пустой)

Re: squid + rejik + перенаправить некоторых юзеров

Добавлено: 2009-07-29 9:10:14
suspender
спасибо, буду пробовать

Re: squid + rejik + перенаправить некоторых юзеров

Добавлено: 2009-07-30 10:05:20
skeletor
А вы не хотите попробовать sams? Он как раз делает то, что нужно.