【问题标题】:Squid with mysql鱿鱼与mysql
【发布时间】:2014-11-20 16:19:45
【问题描述】:

我想设置 squid,就像所有用户和组/acl 都是从 centos 6.5 中的 mysql 数据库中获取的。我尝试了很多,但我没有找到任何设置它的包或方法。

用户名、密码和 acl 是动态更改的,并且基于更改 squid 必须提供访问权限。

【问题讨论】:

    标签: mysql squid


    【解决方案1】:

    可以使用 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);
    }
    ?>
    

    【讨论】: