Настройка squid в качестве реверсивного https-прокси

Документация связанная с установкой, настройкой и работой пользовательского ПО
Ответить
Аватара пользователя
Raven
Бородатый сис
Бородатый сис
Сообщения: 2800
Зарегистрирован: 03 мар 2010, 15:12
ОС: RHEL 8
Откуда: Из серверной

Настройка squid в качестве реверсивного https-прокси

Сообщение Raven » 13 мар 2013, 13:20

Предыстория:
Имеется некий сервис крутящийся на локальном серваке, за шлюзом, висящий на 443 порту тамошнего апача. Возникла необходимость периодически выдавать кому-либо доступы на него извне. Ну правила фаервола-то на шлюзе настроить не проблемно, беда в том, что сервис закрытый и открывать доступ всем тоже не айс. Конечно, админка сервиса требует http-авторизации в AD, но как быть с неадминкой? от локалки-то ее не спрячешь. Можно открывать доступ только для определенных IP, но тогда как быть с динамическими IP? Это можно было бы решить переездом на apache 2.4, но ввиду особенностей сервиса такой апдейт оказался нереален. После кучи раздумий и проб с разными сторонними штуковинами пришло весьма неожиданное решение - настроитьв качестве фронтэнда к апачу squid...

В атаку!
Итак, ставим squid (у меня OracleLinux, так что ставим из CentALT версию 3.2), и настраиваем:

Код: Выделить всё

visible_hostname office.local   

https_port 444 accel cert=/etc/pki/tls/certs/server.crt key=/etc/pki/tls/private/server.key defaultsite=office.local vhost # Слушаем порт 444, на него потом будем заворачивать фаерволлом запросы извне на 443 порт
cache_peer office.local parent 443 0 no-query originserver ssl sslflags=NO_DEFAULT_CA sslflags=DONT_VERIFY_PEER login=PASS name=officesrv # Рассказываем сквиду куда и как слать запросы (не проверяем сертификат сервера на том конце, иначе не пройдем, делимся с апачем логином и паролем юзера)

auth_param basic program /usr/lib/squid/basic_ldap_auth -P -v 3 -b cn=Users,dc=ad,dc=local -D "administrator@ad.local" -w rooter -f sAMAccountName=%s -h ad.local # Авторизация в ActiveDirectory
auth_param basic children 5                                                                                                                                    
auth_param basic realm Varnish Cache Admin                                                                                                                     
auth_param basic credentialsttl 1 minute                                                                                                                       

acl git proxy_auth REQUIRED # Авторизация обязательна

acl officesite dstdomain office.local 
acl officeip dst 192.168.0.2

acl SSL_ports port 443
acl Safe_ports port 443
acl purge method PURGE
acl CONNECT method CONNECT
acl HTTPS proto HTTPS

cache_peer_access officesrv allow HTTPS officesite
cache_peer_access officesrv deny all

cache deny officesite # Контент бэкенда сильно динамичен, поэтому кэшировать нам его не нужно

# Кому верить в случае если сертификат бэкенда не прошел проверку
sslproxy_cert_error allow officesite
sslproxy_cert_error allow localhost
sslproxy_cert_error allow officeip
sslproxy_cert_error deny all

http_access allow git
http_access allow officesite
http_reply_access allow git

http_access allow purge localhost
http_access allow localhost
http_access allow manager localhost

http_access deny manager
http_access deny purge
http_access deny CONNECT !SSL_ports
http_access deny !Safe_ports
http_access deny all

forwarded_for on
redirect_rewrites_host_header off
buffered_logs on

cache_effective_user squid
cache_effective_group squid

coredump_dir /var/spool/squid

logformat combined %>a %ui %un [%tl] "%rm %ru HTTP/%rv" %>Hs %<st "%{Referer}>h" "%{User-Agent}>h" %Ss:%Sh
access_log /var/log/squid/access.log combined

cache_log /var/log/squid/cache.log
logfile_rotate 10
Вот в принципе и все. Заворачиваем 443-й порт снаружи на 444 порт в локалке и получаем всегда доступный извне сервис с обязательной авторизацией.
Я не злопамятный, я просто часто ковыряю логи
glucosechoco
Юзер
Юзер
Сообщения: 1
Зарегистрирован: 11 мар 2015, 16:51
ОС: MSDOS
Контактная информация:

Re: Настройка squid в качестве реверсивного https-прокси

Сообщение glucosechoco » 11 мар 2015, 17:24

That is what I have for a long time. But I can not find it anymore.
Ответить

Вернуться в «Документация *nix»