Назад | Перейти на главную страницу

Разрешить приложения Google и заблокировать пользовательские аккаунты Google с помощью прокси-сервера Squid

В своей организации я пытаюсь разрешить учетную запись приложений Google и заблокировать учетные записи клиентов Google с помощью прокси-сервера Squid. В соответствии с этот ссылка, Google говорит, что мы можем сделать это, выполнив следующие действия:

    1. Route all traffic outbound to google.com through your web proxy server(s).

    2. Enable SSL interception on the proxy server.

    3. Since you will be intercepting SSL requests, you will need to configure every
       client device to trust your SSL proxy by deploying the Internal Root Certificate
       Authority used by the proxy and marking it as trusted.

    4. For each google.com request:

          a. Intercept the request.

          b. Add the HTTP header X-GoogApps-Allowed-Domains, whose value is a
             comma-separated list with allowed domain name(s). Include the domain you
             registered with Google Apps and any secondary domains you might have
             added.

Посмотрев несколько онлайн-блогов и руководств, я скомпилировал и установил 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

Итак, что еще мне нужно сделать, чтобы заблокировать учетную запись Google потребителя? Я что-то упустил?

РЕДАКТИРОВАТЬ: После работы над вышеуказанной проблемой я узнал, что делаю одну ошибку. Моя настройка порта в файле 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 для этой внутренней маршрутизации портов, но ничего не работает. У меня есть только один интерфейс Ethernet в качестве eth0 для моего прокси-сервера. Так кто-нибудь поможет мне в этом вопросе?

Мое единственное предложение - сначала игнорировать материал squid interception / transparent iptables - настройте свой браузер с настройкой веб-прокси и сначала заставьте это работать - по крайней мере, тогда будет немного меньше "движущихся частей", с которыми нужно иметь дело.