【发布时间】:2014-11-20 16:19:45
【问题描述】:
我想设置 squid,就像所有用户和组/acl 都是从 centos 6.5 中的 mysql 数据库中获取的。我尝试了很多,但我没有找到任何设置它的包或方法。
用户名、密码和 acl 是动态更改的,并且基于更改 squid 必须提供访问权限。
【问题讨论】:
我想设置 squid,就像所有用户和组/acl 都是从 centos 6.5 中的 mysql 数据库中获取的。我尝试了很多,但我没有找到任何设置它的包或方法。
用户名、密码和 acl 是动态更改的,并且基于更改 squid 必须提供访问权限。
【问题讨论】:
可以使用 external_acl 或 rewrite_program。
对于编程使用 C、Perl、PHP、ShellScript。
您只需要返回ERR 否定或OK 允许访问。
在 external_acl 上,您可以传递任何参数、url、端口目标、端口源、ip 源、域目标、用户来编程。
基本示例,允许访问“google”
#!/usr/bin/php -q
<?php
include "mysql.php";
include "funcoes.php";
$temp = array();
stream_set_timeout(STDIN, 86400);
if (!defined(STDIN)) {
define("STDIN", fopen("php://stdin", "r"));
}
while (!feof(STDIN)) {
$input = trim(fgets(STDIN));
$found = 0;
$login = 0;
$temp = split(' ', $input);
$output = $temp[0] . "\n";
$url_output = $output;
$url_output_debug = $temp[0];
$pos = strpos($url_output, 'google');
if ($pos !== false) {
$output = "OK \n";
$found = 1;
} else {
$output = "ERR \n";
}
fwrite(STDOUT, $output);
}
?>
【讨论】: