Originally Posted by
RekoD
Для подсчёта per-IP, если это HTTP трафик через squid, легко использовать lightsquid.
Надо только:
0. squid
1. любой веб сервер
2. Perl
Для подсчёта per-user трафика (независимо от того на какую машину юзер пересел) на squid'e надо поднимать NCSA авторизацию.
Самый простой вариант (для меня) - вручную, но он мне к сожалению не подходит
Надо чтобы "бальшой дядька" без админов мог сам просто тыкнув в веб интерфейс: завести/удалить юзера, задать список запрещённых URL и расширений файлов.
Proxymin - идеальный вариант - не работает (локти кусаю
) т.к. python не умеет на wl500gPV2 работать с Berkley DB (ошибка на уровне архитектуры (если интересно: не поддерживаются fast mutexes) - поделать ничего нельзя).
Огород типа SAMS/TraffPro (т.е. ставить ещё mysql) и т.д. городить не хочется на таком слабом проце и таком кол-ве памяти.
Кто-нибудь делал подсчёт трафика per-user на squid с красивым веб интерфейсом или мне придётся (о ужас!
) писать самому (думаю Perl+sqlite подойдут) ?
Вот тебе скрипт на php который добавляет пользователя в фаил для авторизации через ncsa.
Заставляешь старого дядьку в 6.30 скрипты писать(
PHP Code:
<HTML>
<BODY>
Введите имя пользователя и пароль, которого хотите добавить<br>
<form name="form1" method="post" action="">
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td>Пользователь:</td>
<td><input type="user" name="user"></td>
</tr>
<tr>
<td>Пароль:</td>
<td><input type="password" name="password"></td>
</tr>
</table>
<input type="submit" name="Submit" value="Submit">
</form>
<?php
//Берем из формы Пользователя
$user = ($_POST["user"]);
//Берем из формы Пороль и делаем из него хэш md5
$password = md5($_POST["password"]);
//Указываем где лежит ваш фаил с паролями
$file = "/opt/etc/squid/squid_users";
//сам бог велел =)
$sr = fopen("$file", "a+");
//Проверка файла на налчичие
if(!$file)
{
echo ("File not found, or read-only");
}
else
{
//Если все хорошо пишем
fputs($sr,"\n$user:$password");
}
fclose($sr);
//Happy End =)
?>
</HTML>
Пиво высылай почтой =)
А лучше ещё вот так:
PHP Code:
<?php
if (isset($_COOKIE["myform"])) {
echo "Vi zapolnali formu";
exit(0);
} else {
if (isset($_POST[user1],$_POST[password1])) {
$user = ($_POST["user1"]);
$password = md5($_POST["password1"]);
$file = "/opt/etc/squid/squid.users";
$sr = fopen("$file", "a+");
if(!$file)
{
echo ("File not found, or read-only");
}
else
{
fputs($sr,"\n$user:$password");
}
fclose($sr);
setcookie("myform","myform");
}
}
echo "<form action=$_SERVER[PHP_SELF] method=POST>";
echo "<tr>Vvedite user and pass</tr>";
echo "<br>";
echo "<tr>";
echo "<td>USER:</td>";
echo "<input name=user1>";
echo "</tr>";
echo "<br>";
echo "<br>";
echo "<tr>";
echo "<td>Password</td>";
echo "<input name=password1>";
echo "<br>";
echo "<input type=submit value='Add'>";
echo "</form>";
?>