Squid + squidGuard没有在duckduckgo.com上强制执行安全搜索

时间:2015-03-30 08:56:54

标签: search ssl squid intercept enforcement

该项目的目的是强制安全搜索主要搜索引擎。

我设法安装Squid(版本3.3)和SquidGuard,将Squid配置为透明代理并使用SSL拦截......

我设法在Google,Yahoo和Bing上强制执行安全搜索,但我无法与Duckduckgo一起找到任何合理的解释(无论是我自己还是在网络上)。

我的Squid.conf是:

    acl localnet src 192.168.1.0/24 # RFC1918 possible internal network
    acl localnet src fc00::/7       # RFC 4193 local private network range
    acl localnet src fe80::/10      # RFC 4291 link-local (directly plugged) machin$

    acl SSL_ports port 443
    acl Safe_ports port 80          # http
    acl Safe_ports port 21          # ftp
    acl Safe_ports port 443         # https
    acl Safe_ports port 70          # gopher
    acl Safe_ports port 210         # wais
    acl Safe_ports port 1025-65535  # unregistered ports
    acl Safe_ports port 280         # http-mgmt
    acl Safe_ports port 488         # gss-http
    acl Safe_ports port 591         # filemaker
    acl Safe_ports port 777         # multiling http

    acl CONNECT method CONNECT

    acl engines dstdomain .yahoo.com
    acl engines dstdomain .duckduckgo.com
    acl engines dstdomain .google.com
    acl engines dstdomain .bing.com

    cache deny all
    http_access deny !Safe_ports

    http_access deny CONNECT !SSL_ports

    http_access allow localhost manager
    http_access deny manager

    log_access allow all
    url_rewrite_program /usr/bin/squidGuard -c /etc/squid/squidGuard.conf
    url_rewrite_children 500

    http_access allow localnet
    http_access allow localhost

    http_access deny all

    http_port 3129
    http_port 3128 intercept
    https_port 3130 intercept ssl-bump connection-auth=off generate-host-certificates=on cert=/etc/squid/control.com.au.pem key=/etc/squid/control.com.au.pem cipher=ECDHE-RSA-RC4-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES128-SHA:DHE-RSA-CAMELLIA128-SHA:RC4-SHA:HIGH:!aNull:!MD5:!ADH
    ssl_bump none localhost
    ssl_bump server-first engines
    #ssl_bump server-first all
    ssl_bump none all

    always_direct allow all
    sslproxy_cert_error deny all
    sslproxy_flags DONT_VERIFY_PEER

    refresh_pattern ^ftp:           1440    20%     10080
    refresh_pattern ^gopher:        1440    0%      1440
    refresh_pattern -i (/cgi-bin/|\?) 0     0%      0
    refresh_pattern .               0       20%     4320

SquidGuard中的重写规则是:

    rewrite engines {
        s@.*bing.com/search.*@&\&adlt=strict@i
        s@.*bing.com/images.*@&\&adlt=strict@i
        s@.*bing.com/videos.*@&\&adlt=strict@i
        s@.*au.search.yahoo.com.*@&\&vm=r@i
        s@.*duckduckgo.com.*@&\&kp=1@i
        s@.*google.com.au.*@1&safe=strict@i
        s@.*google.com.*@1&safe=strict@i
        s@.*bing.com.*@&\&adlt=strict@i
    }

我很确定squidGuard重写规则很好,因为如果我更改Squid配置以拦截所有 SSL通信,那么 duckduckgo.com将被强制执行。 问题是我应该输入什么而不是:

    acl engines dstdomain .duckduckgo.com

____

提前致谢

3 个答案:

答案 0 :(得分:1)

我敢打赌,在2015年6月23日之后,上述内容对SquidGuard不起作用

“2015年6月23日,Google搜索服务将所有搜索结果移至SSL加密后。这意味着所有搜索结果将使用”https“提供,并在网络浏览器中显示安全挂锁。”

现在许多学校和企业都很生气,他们正在使用:

“'SSL拦截'功能可以在Google实施更改后拦截和过滤Google搜索结果。这也可以随后解决已经转移到SSL的其他Google服务(如YouTube)的现有问题。”

答案 1 :(得分:0)

您可以通过设置:

强制透明搜索google(http和https)
rsp

完成!!!!它有效。

EXTRA BONUS:

如果您想要阻止所有访问以及bing和duckduckgo以及其他域名,请使用:

struct BigUdt's

这会阻止http和https上的bing和ask以及duckduckgo域。

答案 2 :(得分:0)

这是事实后的一年多一点,但我发现这个线程试图自己解决这个问题,所以这里就是这样。

在你的squid配置中,你有:

acl engines dstdomain .yahoo.com
acl engines dstdomain .duckduckgo.com
acl engines dstdomain .google.com
acl engines dstdomain .bing.com

但这意味着duckduckgo.com下面的任何子域名(即www.duckduckgo.comsearch.duckduckgo.com),但不是duckduckgo.com

当我进行DDG搜索时,它只是使用https://duckduckgo.com/$search_string,因此:

example duckduckgo search

因此,简而言之,您的显式ssl-bump acl engines与duckduckgo不匹配,因为它期望子域,而不是域本身。当您将配置更改为“全部碰撞”时,它显然会抓住它,因为它正在抓住所有内容。

如果你换这行

acl engines dstdomain .duckduckgo.com

对于这一行

acl engines dstdomain duckduckgo.com

它会起作用。