Squid с HTTPS филтриране без заместване на сертификат, интеграция с Active Directory 2012R2 WPAD
1.1 Опростена схема на работа на WPAD
— Клиент на Windows OS осъществява достъп до DNS сървъра със заявка за хостwpad.example.ruи името на DNS сървъра на съответния запис показва къде да отиде. След това клиентът влиза в wpad.example.ru с искане за файл с настройки. След като го получи, той започва да действа според инструкциите в него.
1.2 Защо тази технология е добра
- „Автоматично получаване на настройки“ може да бъде деактивирано за всеки потребител, така че е по-добре да оставите тази функция активирана и да забраните промяната й чрез GPO
1.3 Squid Peek-n-splice - как работи
Служител се опитва да получи достъп до сайт с https чрез прокси. Когато се установи криптирана връзка, възниква „поздрав“, който се предава в ясен текст, прокси сървърът го прихваща и въз основа на конфигурацията squid разрешава или отказва връзката. Тези. прихванат, за да видят "поздрава", разрешиха или прекъснаха връзката.
1.4 Плюсове и минуси на peek-n-splice
- Това не е MITM атака и няма да има проблеми с банкови клиенти - Показване на имена на домейни в статистиката на сайтове, заявени през https
1.5 И така, сега си струва да се отбележи какво е дадено
2 Конфигуриране на операционната система и инсталиране на Squid
Няма смисъл да описвам процеса на инсталиране на CentOS. Така че нека имаме предвид, че имаме прясно инсталирана CentOS 7 x64. И така, за да може Squid да работи еднакво добре с http и https трафик, имате нужда от следното:
2.1 Squid трябва да бъде изграден с тези опции
Или можете да изтеглитеархивас изградения squid и неговите зависимости.
2.2 Инсталиране на необходимите пакети от официалните хранилища
Струва си да се отбележи, че за инсталиране на squid са необходими някои зависимости. За съжаление, CentOS има доста оскъдни официалнихранилища, така че някои пакети трябва да бъдат изтеглени от неофициални. Инсталиране на необходимите пакети от официалните хранилища:
2.3 Ръчно инсталиране на Squid и допълнителни пакети
Ако нещо не е наред, терминалът ще покаже какво липсва.
2.4 Задаване на разрешения за swap директорията
2.5 конфигурационен файл /etc/squid/squid.conf
squ >### преговаряне на kerberos auth_param преговаряне на програма /usr/lib64/squid/negotiate_kerberos_auth -s HTTP/[email protected] auth_param преговаряне на деца 60 auth_param преговаряне keep_alive изключен
external_acl_type inet_medium ttl=300 negative_ttl=60 %LOGIN /usr/lib64/squid/ext_kerberos_ldap_group_acl -g [email protected] external_acl_type inet_full ttl=300 negative_ttl=60 %LOGIN /usr/lib64/squid/ext_kerberos_ ldap_group_ acl -g [email protected] external_acl_type inet_low ttl=300 negative_ttl=60 %LOGIN /usr/lib64/squid/ext_kerberos_ldap_group_acl -g [email protected]
acl localnet src 10.0.0.0/24 acl localnet src 192.168.0.0/24
acl my_full external inet_full acl my_medium external inet_medium acl my_low external inet_low acl auth proxy_auth ИЗИСКВА
# в допълнение към 443 по подразбиране, за sebra онлайн бизнес са ви необходими доп. порт 9443 acl SSL_ports порт 443 9443 acl Safe_ports порт 80 # http acl Safe_ports порт 21 # ftp acl Safe_ports порт 443 # https acl Safe_ports порт 70 # gopher acl Safe_ports порт 210 # wais acl Safe_port s порт 1025 -65535 # нерегистрирани портове acl Safe_ports порт 280 # http-mgmt acl Safe_ports порт 488 # gss-http acl Safe_ports порт 591 # filemaker acl Safe_ports порт 777 # multiling http acl CONNECT метод CONNECT
#В тази конфигурация белият списък е списък с разрешени сайтове за[email protected] потребителски групи (достъп само до тези сайтове в whitelist.txt) #А blocked_http.txt — списък на блокираните сайтове за групата [email protected] (всички сайтове могат да бъдат достъпни с изключение на тези в blocked_http.txt) acl white_list dstdomain "/etc/squid/whitelist.txt" acl black_list dst домейн " /etc/squid/blocked_http.txt" dns_nameservers 10.0.0.9
http_access deny !Safe_ports http_access deny CONNECT !SSL_ports http_access разреши локален хост мениджър http_access deny мениджър http_access deny !auth
http_access deny my_medium black_list http_access enable my_medium http_access enable my_low white_list http_access deny my_low all http_access enable my_full # Allow localhost http_access enable localhost
# Откажи всичко останало http_access откажи всичко
#Непрозрачен порт, през който клиентските хостове комуникират с прокси сървъра
http_port 10.0.0.10:3130 опции=NO_SSLv3:NO_SSLv2
always_direct разреши всички sslproxy_cert_error разреши всички sslproxy_flags DONT_VERIFY_PEER
#Тази опция е необходима, за да работи peek-n-splice правилно. Самият файл blocked_https.txt не влияе на нищо, но и не трябва да е празен. Магия. #
acl блокиран ssl::server_name "/etc/squid/blocked_https.txt" acl стъпка1 at_step SslBump1 ssl_bump peek стъпка1
#прекъсване на връзката, ако клиентът има достъп до забранен ресурс ssl_bump прекратяване на блокиране ssl_bump снаждане на всички
coredump_dir /var/spool/squid 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
cache_dir aufs /var/spool/squid 20000 49 256 maximum_object_size 61440KB минимален_размер_на_обект 3 KB
#httpd_suppress_version_string на #visible_hostname PROXYSERVER
cache_swap_low 90 cache_swap_high 95 maximum_object_size_in_memory 512 KB memory_replacement_policy lru logfile_rotate 4
2.6 Първо трябва да пренесете файла/etc/hostsкъм това съдържание
2.7 Настройка на selinux
Файлът/etc/selinux/configтрябва да съдържа стойността:
Инсталирайте пакета selinux:
Добавяне на правила за selinux
Разрешаваме връзки към squid:
Разрешаваме връзки към squid на порт 3130:
След като промените опциите на selinux, трябва да рестартирате системата, за да ги приложите.
2.8 генериране на суап
2.9 Активиране на squid daemon, проверка на конфигурационния файл
Предупреждения и грешки не трябва да има. Ако има нещо, трябва да проверите настройките.
2.10 Активиране на пренасочване на трафик
Приложете настройката в движение:
3 Интегриране с 2012R2 домейн контролер на Active Directory
3.1 Конфигурационен файл /etc/krb5.conf
Конфигурационният файл/etc/krb5.confтрябва да изглежда така:
[libdefaults] default_realm = EXAMPLE.RU ticket_lifetime = 24h default_keytab_name = /etc/krb5.keytab
[realms] EXAMPLE.RU = kdc = dc1.example.ru admin_server = dc1.example.ru default_domain = example.ru >
[domain_realm] .example.ru = EXAMPLE.RU example.ru = EXAMPLE.RU
3.2 Създаване на DNS запис
3.3 Опции за интегриране на домейн
И така, има два стола на опцията за интегриране на домейн. Първата опция е с помощта на Windows (ktpass), втората е с помощта на Linux (Msktutil). Опцията за Windows е добра, защото можетезабранете изтичането на паролата за потребителsquid. Версията за Linux е хубава, защото може да бъде въведена в домейн чрез създаване на компютърен акаунт.
3.3.1 Интеграция с Windows
Създайте потребител в AD, напримерsquidСега генерирайтеkrb5.keytab. От команден ред на домейн контролер с администраторски права трябва да изпълните следната команда:
Преместете самия файлkrb5.keytab(Можете да използвате WinSCP) вsq.example.ruв директорията/etc.
3.3.2 Интеграция с Linux
Архивът с squid и зависимости също съдържа msktutil, инсталирайте го:
Сега изпълнете следната команда:
Ако е успешна, резултатът от командата ще бъде голям, не виждам причина да копирам тук. Не трябва да има грешки или предупреждения. Обърнете внимание, че--име-компютър sq-kне е печатна грешка. Името на хоста трябва да е различно.
С оглед на необходимостта от актуализиране на паролата за акаунта на компютъра, това може да стане чрез cron.
Трябва да добавите задача към него:
3.4 Препоръчителни разрешения за файла krb5.keytab
След като преместитеkrb5.keytab, се препоръчва да намалите разрешенията за файла
3.5 AD групи за достъп
В ActiveDirectory вOUUsersтрябва да създадете три групи, според които ще се разпределя достъпът до Интернет:Интернет-пълен,Интернет-среден,Интернет-нисък.
Резултатът от командата трябва да изглежда по следния начин:
klistтрябва да показва следното:
Кеш на билети: FILE:/tmp/krb5cc_0 Принципал по подразбиране: HTTP/[email protected]
Това завършва конфигурацията на Squid, сега рестартираме хоста, за да приложим настройките. След като рестартирате за теста, можете да пишете ръчнопрокси в настройките наsq.example.ru, указващи порт3130.
4.1 Инсталиране и конфигуриране на уеб сървъра apache2
След инсталирането включете в автоматичното зареждане:
Ако се опитате да отворите името на домейна sq.example.ru в браузър, трябва да се отвори тестовата страница на apache2.
4.2 Описание на файла wpad.dat
По подразбиране в директорията /var/www/html/wpad.dat файлът се предоставя на всички без допълнителни настройки на apache2 и точно това е необходимо за правилното взаимодействие с клиентските машини на Windows OS.
Посочете, че обажданията към хостовете в подмрежите 192.168.0.0/24, 10.0.0.0/24 и 127.0.0.0/8 (последното е необходимо за правилната работа на услугите при достъп до localhost) се предават директно и се осъществява връзка директно към хостовете на домейна .example.ru:
Отбележете, че при достъп до имена на домейни .inet-example.ru,
Ако заявеният ресурс не отговаря на горните условия, се извършва следното:
4.3 Създаване на CNAME
Създайтеcnamewpad(FQDN wpad.example.ru) на sq.example.ru на DNS сървъра на Active Directory.
За да проверите, трябва да отворитеwpad/wpad.datв браузъра и файлътwpad.datтрябва да се изтегли автоматично. По този начин всички хостове изтеглят този файл и действат въз основа на съдържанието. Препоръчително е да влезете отново или да рестартирате всички компютри в домейна на Windows OS, за да изтеглите файла.
5 Статистика
5.1 Инсталиране на SARG от източници
Ако не сте инсталирали gcc преди, сега е моментът да:
Във файлаpo/Makefile.in.inверсията на gettext е посочена като 0.18, така че да няма грешка по време на make install, тя трябва да бъде променена на 0.19:
5.2 SARG конфигурация
Конфигурационният файл по подразбиране/usr/local/etc/sarg.confе най-добре архивиран:
5.3 Планирайте отчитане с cron
Този ред показва, че отчетите ще се генерират всеки ден и за текущия ден в 23:55
5.4 Конфигуриране на уеб сървър
Псевдоним /отчети /var/www/html/squid-reports/
AuthType Basic AuthName "Basic Authentication" AuthUserFile /etc/httpd/conf/.htpasswd require valid-user AddDefaultCharset UTF-8
5.5 Авторизация на сайта със статистика
6 Групови политики
Тук всичко е двусмислено и може да зависи от някои характеристики. В текущата задача беше разумно решение да се изключи възможността за настройка на потребителски прокси сървър или деактивиране на „Автоматично откриване на параметри“.
6.1 Редактиране на GPO
Можете да използвате групови правила, за да предотвратите влизане в прокси сървър или промяна на настройките за автоматично откриване на параметри. Създайте и свържете групова политика къмOU, напр.office.
Редактиране на груповата политика:
Потребител > Правила > Административни шаблони > Компоненти на Windows > Internet Explorer
В тази директория намерете параметрите и променете състоянието"Активирано":
„Забрана на промяната на настройките на прокси сървъра“„Забрана на промяната на автоматичните настройки“
В заключение мога да кажа това, тази конфигурация работи успешно от пролетта на 2016 г. и се е доказала добре. Ще се радвам да отговоря на всички въпроси.
UPD #1: 12.11.16 1 Допълнителни редове на портове 3128 и 3129 бяха премахнати от конфигурацията на squid. 2 активирани selinux и добавени правила. 3 Генерирането на сертификата от ръководството беше премахнато (работи и без него) 4Малки поправкиUPD #2: 20.11.16 1 Допълнителните редове бяха премахнати от конфигурацията на krb5.conf 2 Добавен е метод за AD интеграция чрез Msktutil 3 Добавено е пренасочване 4 Актуализиран архив с squid и зависимости
В анкетата могат да участват само регистрирани потребители. Влез Моля.
Можете да помогнете и да прехвърлите средства за развитието на сайта