Авторизация в squid через базу данных FireBird |
[исправить] |
в squid.conf добавляем:
auth_param basic program /usr/sbin/firebird_auth
auth_param basic children 5
auth_param basic realm Proxy
auth_param basic credentialsttl 2 hours
acl your_net src 10.1.0.0/24
acl passwd proxy_auth REQUIRED
http_access allow your_net passwd
http_access deny all
/usr/sbin/firebird_auth - наш скрипт для проверки
#!/usr/local/bin/php
<?
while(1) {
$buf = fgets(STDIN);
$buf = substr($buf,0,-1);
$account_data = explode(" ",$buf);
$link = ibase_connect("10.1.0.200:/var/db/firebird/storage/squid.fdb","SYSDBA","<your_pass>");
$res = ibase_query("SELECT * FROM users WHERE LOGIN = '".
$account_data[0]."' AND PASSWD = '".$account_data[1]."'")
$row = ibase_fetch_object($res);
if(isset($row->LOGIN)) { echo "OK\n"; } else { echo "ERR\n"; }
ibase_free_result($res);
ibase_close($link);
}
?>
ну и не забудьте сделать табличку users в вашей базе в firebird такого содержания:
ID,LOGIN,PASSWD,FIO..
|
|
|
|
Раздел: Корень / Администратору / Сетевые сервисы / Прокси сервер Squid / ACL, ограничения трафика и пользователей |