LINUX.ORG.RU
ФорумAdmin

Помогите настроить squid


0

0

acl pass_user proxy_auth REQUIRED acl limit_user src "/usr/local/asquila/exceeds.asq" http_access allow pass_user http_access deny limit_user deny_info ERR_LIMIT_EXCEEDED limit_user Вот как я пытаюсь настроить. Файл "/usr/local/asquila/exceeds.asq" в нем имена пользователей превысивших лимит. ERR_LIMIT_EXCEEDED Эта страничка которая должна выдаваться пользователям превысившим лимит. Я её переделал из ERR_ACCESS_DENIED - поменял в ней строку. Почему не работает?

anonymous

1. Ставить "User line breaks", а то читать очень неудобно.
2. acl limit_user proxy_auth "/usr/local/asquila/exceeds.asq"
3. Поменять местами deny и access.

anonymous
()
Ответ на: комментарий от anonymous

Вот переделал, но не работает. Пользователям limit_user не выдает ERR_LIMIT_EXCEEDED. Вылетает DNS error. acl pass_user proxy_auth REQUIRED acl limit_user proxy_auth "/usr/local/asquila/exceeds.asq" http_access deny limit_user http_access allow pass_user deny_info ERR_LIMIT_EXCEEDED limit_user

anonymous
()
Ответ на: комментарий от anonymous

acl all src 0.0.0.0/0.0.0.0
deny_info ERR_BAD_PASSWORD all
http_access deny all
Выдает другую страницу ошибки! Хотя такая есть!
FAQ я почитаю.
acl limit_user proxy_auth "/usr/local/asquila/exceeds.asq"
В этом файле "/usr/local/asquila/exceeds.asq"
лежат имена пользователей без всяких там паролей просто:
denis
pol
Может у меня здесь косяк?

anonymous
()

Если выдает другую страницу, значит срабатывает другое правило.
Изменить уровень отладки и смотреть cache.log

anonymous
()

1) какую proxy_auth используешь такое и правило написания файла
exceeds.asq

2) чего-то я не понял, зачем ты пишешь http_access deny all
это правило безусловно выполняется и по идее доступ всех пользователей к проксе должен быть запрещен или это пример факов?

3) зачем тебе такие заморочки???
пиши в ту же страницу ERR_ACCESS_DENY что-то типа:

"Доступ к кэшу запрещен. Это может быть связано с:
1) Вы неправильно набрали имя пользователя и пароль
2) Ваша квота исчерпана"


anonymous
()
Ответ на: комментарий от anonymous

1)Вообще я пытаюсь настроить пакет asquila. Это пакет запрещает пользователям превышать их лимит. Там есть файл который запускаешь по таймеру и он по логу squid считает траффик и всех пользователей превысивших свои лимиты (это пишется в другом файле их лимиты) записывает в файл exceeds.asq.
В squid нужно прописать редиректор простенький который идет вместе с пакетом:
#!/usr/bin/perl
$error_message="http://localhost/";
$|=1;
while (<>) {
@X = split;
$url = $X[0];
$url_user = $X[2];
open(F_EXC,"/usr/local/asquila/exceeds.asq");
while(<F_EXC>){
chomp;
$exc_user=$_;
if ($exc_user eq $url_user){
$url=$error_message;
}
}
close(F_EXC);
print "$url\n";
}
Проблема вот в этой строке
$error_message="http://localhost/limit.html";
limit.html - файл с надписью ваш лимит исчерпан.
$error_message="http://192.168.0.1/limit.html";
$error_message="http://127.0.0.1/limit.html";
Это все не работает, т.к. вылетает ошибка DNS!
Можно конечно сделать так
$error_message="http://внешний интерфейс/limit.html";
т.е. внешняя карточка у меня имеет реальный ip и открыть 80 порт, тогда все работает, но это как мне кажется идиотизм!
Можно конечно разрешить доступ только из нашей сетки к внешнему интерфейсу (если я не ошибаюсь).
Вот в чем моя проблема.
Подскажи как быть. У меня стоит файрволл iptables. Может с ним что покрутить.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.