在我的组织中,我试图允许谷歌应用程序帐户,并使用squid代理阻止用户Google帐户。根据这链接,Google说我们可以使用以下步骤来完成:
在参考了几个在线博客和指南之后,我编译并安装了squid,并在我的squid.conf中添加了以下条目:
http_port 3128 intercept
http_port 3129
https_port 3130 intercept ssl-bump generate-host-certificates=on dynamic_cert_mem_cache_size=4MB
acl localnet1 dstdomain .google.com
ssl_bump server-first localnet1
always_direct allow localnet1
sslproxy_cert_error allow all
sslproxy_flags DONT_VERIFY_PEER
request_header_add X-GoogApps-Allowed-Domains "mydomain.com" localnet1
cert=/usr/local/squid/cert/server.crt key=/usr/local/squid/cert/server.key
sslcrtd_program /usr/local/squid/libexec/ssl_crtd -s /usr/local/squid/var/ssl_db -M 20MB
sslcrtd_children 100使用上面的配置,每个请求(http和https)都是通过我的代理服务器进行路由的,但是它不能阻止用户Google帐户,而且我能够登录到它。
我还添加了代理IP作为到节点系统的网关,在代理服务器中,我在Iptable中添加了以下规则
iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 3130
iptables -I INPUT -p tcp -m tcp --dport 3130 -j ACCEPT那么,我还需要做些什么来阻止消费者的谷歌账户呢?我是不是漏掉了什么?
编辑:在做完上面的工作后,我意识到我犯了一个错误。我在squid.conf文件中的端口设置如下:
http_port 3128 intercept
http_port 3129
https_port 3130 intercept ssl-bump generate-host-certificates=on dynamic_cert_mem_cache_size=4MB 我在我的节点系统中设置了全局代理。在IP字段中,我放置了代理服务器的IP,在端口字段中,我放置了3129。因此,我所有的请求都是通过3129端口进行的,因此它没有被拦截,并且能够登录到用户Google帐户。因此,我从节点系统中删除了代理设置,只保留代理服务器ip作为它的网关。在此之后,我的每个请求都会到达代理服务器,但我认为它不会被路由到squid.conf中指定的端口。也就是说,80端口到3128,443端口到3130,现在由于这个原因,一切都被阻塞了。
我已经尝试在Iptables中为端口的内部路由设置规则,但是没有任何工作。我只有一个以太网接口作为我的代理服务器的eth0。有人会在这个问题上给我指点吗?
发布于 2015-02-17 17:24:47
我唯一的建议是先忽略squid截取/透明iptables之类的东西--用一个web代理设置配置浏览器,并让它首先工作--至少这样,需要处理的“移动部件”就会稍微少一些。
https://serverfault.com/questions/647892
复制相似问题