Добро пожаловать на форум, Гость!
Войдите или зарегистрируйтесь!
Имя пользователя:   Пароль:  
Запомнить меня 




Начать новую тему Ответить на тему   [ Сообщений: 2 ] 
Автор Сообщение
СообщениеДобавлено: 13 мар 2013, 13:20 
Бородатый сис
Аватар пользователя
Статус: Не в сети

GeoIP: Kyrgyzstan

Сообщений: 2898
Откуда: Из серверной
Зарегистрирован: 03 мар 2010, 15:12
Благодарил (а): 19 раз.
Поблагодарили: 121 раз.
ОС: RHEL 6.7
Предыстория:
Имеется некий сервис крутящийся на локальном серваке, за шлюзом, висящий на 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 порт в локалке и получаем всегда доступный извне сервис с обязательной авторизацией.


Я не злопамятный, я просто часто ковыряю логи
Изображение


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 11 мар 2015, 17:24 
Юзер
Аватар пользователя
Статус: Не в сети

GeoIP: Thailand

Сообщений: 1

Зарегистрирован: 11 мар 2015, 16:51
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
ОС: MSDOS
That is what I have for a long time. But I can not find it anymore.


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 2 ] 
   Похожие темы   Автор   Ответов   Просмотров   Последнее сообщение 
Перенесенная ^_^

в форуме Linux

root

3

38

02 мар 2010, 16:15

Gen1us2k Перейти к последнему сообщению



Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Собрано Raven. Русская поддержка phpBB
phpBB SEO