Бесплатен прокси-сервер за претпријатие со авторизација на домен

Бесплатен прокси-сервер за претпријатие со авторизација на домен

pfSense+Squid со филтрирање https + Технологија за еднократно најавување (SSO) со филтрирање по групи на Active Directory

Кратка позадина

Претпријатието требаше да имплементира прокси-сервер со можност за филтрирање на пристапот до страниците (вклучувајќи https) по групи од АД, така што корисниците не внесуваа дополнителни лозинки, а администрацијата може да се врши од веб-интерфејсот. Не е лоша апликација, нели?

Точниот одговор би бил да купите решенија како Kerio Control или UserGate, но како и секогаш нема пари, но има потреба.

Ова е местото каде што нè спасува стариот добар Squid, но повторно, каде можам да го добијам веб-интерфејсот? SAMS2? Морално застарено. Ова е местото каде што pfSense доаѓа на помош.

Опис

Оваа статија ќе опише како да конфигурирате прокси-сервер Squid.
Kerberos ќе се користи за овластување на корисниците.
SquidGuard ќе се користи за филтрирање по групи на домени.

За следење ќе се користат Lightsquid, sqstat и внатрешни системи за следење pfSense.
Ќе биде решен и заеднички проблем поврзан со имплементацијата на технологијата за едно најавување (SSO), имено апликациите кои се обидуваат да пристапат на Интернет под компас сметката на нивната системска сметка.

Се подготвува за инсталирање на Squid

pfSense ќе се користи како основа, Инструкции за инсталација.

Внатре во која организираме автентикација на самиот заштитен ѕид користејќи сметки на домен. Инструкции.

Тоа е многу важно!

Пред да започнете со инсталирање на Squid, треба да го конфигурирате DNS серверот во pfsense, да направите запис A и PTR за него на нашиот DNS сервер и да го конфигурирате NTP така што времето да не се разликува од времето на контролерот на доменот.

И во вашата мрежа, обезбедете можност за интерфејсот pfSense WAN да пристапува на Интернет и за корисниците на локалната мрежа да се поврзат со LAN интерфејсот, вклучително и преку портите 7445 и 3128 (во мојот случај, 8080).

Сè е подготвено? Дали доменот е поврзан преку LDAP за авторизација на pfSense и дали времето е синхронизирано? Одлично. Време е да се започне главниот процес.

Инсталација и претконфигурација

Ќе ги инсталираме Squid, SquidGuard и LightSquid од менаџерот на пакети pfSense во делот „Систем/управувач со пакети“.

По успешна инсталација, одете во „Услуги/Squid Proxy server/“ и најпрво во табот Локален кеш конфигурирајте кеширање, сè поставив на 0, бидејќи Не гледам многу поента во кеширањето на страниците; прелистувачите одлично се справуваат со ова. По поставувањето, притиснете го копчето „Зачувај“ на дното на екранот и тоа ќе ни даде можност да направиме основни поставки за прокси.

Главните поставки се како што следува:

Бесплатен прокси-сервер за претпријатие со авторизација на домен

Стандардната порта е 3128, но јас претпочитам да користам 8080.

Избраните параметри во картичката Interface за прокси одредуваат кои интерфејси ќе ги слуша нашиот прокси-сервер. Бидејќи овој заштитен ѕид е изграден на таков начин што гледа на Интернет преку WAN интерфејсот, иако LAN и WAN може да се на истата локална подмрежа, препорачувам да ја користите LAN за прокси.

Потребен е Loopback за да работи sqstat.

Подолу ќе ги најдете поставките за Транспарентен прокси, како и филтерот SSL, но не ни требаат, нашиот прокси нема да биде транспарентен, а за филтрирањето https нема да се занимаваме со замена на сертификатот (на крајот на краиштата, имаме управување со документи , банкарски клиенти итн.), Да го погледнеме само ракувањето.

Во оваа фаза, треба да одиме до нашиот контролер на домен, да создадеме сметка во неа за автентикација (исто така можете да ја користите онаа што сте ја конфигурирале за автентикација на самиот pfSense). Многу важен фактор овде е дека ако имате намера да користите шифрирање AES128 или AES256, проверете ги соодветните полиња во поставките на вашата сметка.

Ако вашиот домен е многу сложена шума со голем број директориуми или вашиот домен е .local, тогаш МОЖНО, но не сигурно, ќе треба да користите едноставна лозинка за оваа сметка, грешката е позната, но со сложена лозинка може едноставно да не работи, треба да проверите за одреден поединечен случај.

Бесплатен прокси-сервер за претпријатие со авторизација на домен

По сето ова, создаваме клучна датотека за Kerberos, на контролерот на доменот, отворете командна линија со администраторски права и внесете:

# ktpass -princ HTTP/[email protected] -mapuser pfsense -pass 3EYldza1sR -crypto {DES-CBC-CRC|DES-CBC-MD5|RC4-HMAC-NT|AES256-SHA1|AES128-SHA1|All} -ptype KRB5_NT_PRINCIPAL -out C:keytabsPROXY.keytab

Каде го означуваме нашиот FQDN pfSense, задолжително почитувајте го случајот, во параметарот mapuser ја внесуваме нашата сметка на доменот и неговата лозинка, а во крипто го избираме методот на криптирање, јас користев rc4 за работа и во полето -out избираме каде ќе ја испратиме нашата готова датотека со клучеви.
Откако успешно ќе ја креираме датотеката со клучеви, ќе ја испратиме до нашиот pfSense, јас користев Far за ова, но можете да го направите тоа со помош на команди, кит или преку веб-интерфејсот pfSense во делот „Diagnostics Command Line“.

Сега можеме да го уредиме создавањето /etc/krb5.conf

Бесплатен прокси-сервер за претпријатие со авторизација на домен

каде што /etc/krb5.keytab е клучната датотека што ја создадовме.

Не заборавајте да ја проверите работата на Kerberos користејќи кинит; ако не работи, нема смисла да читате понатаму.

Конфигурирање на автентикација на лигњи и список без пристап до автентикација

Откако успешно го конфигуриравме Kerberos, ќе го прикачиме на нашиот Squid.

За да го направите ова, одете во ServicesSquid Proxy Server и во главните поставки, одете до самото дно, таму ќе го најдеме копчето „Напредни поставки“.

Во полето Прилагодени опции (пред да се потврди) внесете:

#Хелперы
auth_param negotiate program /usr/local/libexec/squid/negotiate_kerberos_auth -s GSS_C_NO_NAME -k /usr/local/etc/squid/squid.keytab -t none
auth_param negotiate children 1000
auth_param negotiate keep_alive on
#Списки доступа
acl auth proxy_auth REQUIRED
acl nonauth dstdomain "/etc/squid/nonauth.txt" 
#Разрешения 
http_access allow nonauth 
http_access deny !auth
http_access allow auth

каде auth_param преговарачка програма /usr/local/libexec/squid/negotiate_kerberos_auth — го избира помошникот за автентикација на Kerberos што ни треба.

Клучни -s со значење GSS_C_NO_NAME — ја одредува употребата на која било сметка од датотеката со клучеви.

Клучни -k со значење /usr/local/etc/squid/squid.keytab — одредува да ја користи оваа конкретна датотека со тастатурата. Во мојот случај, ова е истата датотека keytab што ја генериравме, која ја копирав во директориумот /usr/local/etc/squid/ и го преименував затоа што лигњите не сакаа да се дружат со тој директориум, очигледно немав доволно права.

Клучни -t со значење - нема ништо — ги оневозможува цикличните барања до контролорот на доменот, што во голема мера го намалува оптоварувањето на него ако имате повеќе од 50 корисници.
За време на тестот, можете исто така да го додадете прекинувачот -d - т.е. дијагностика, ќе се прикажат повеќе дневници.
auth_param преговараат деца 1000 — одредува колку истовремени процеси за овластување може да се стартуваат
auth_param преговара за keep_alive на — го спречува исклучувањето на врската додека го избирате синџирот за овластување
acl auth proxy_auth БАРА — создава и бара список за контрола на пристап кој вклучува овластени корисници
acl nonauth dstdomain "/etc/squid/nonauth.txt" — ја информираме лигњите за списокот за неавтен пристап, кој содржи дестинации домени до кои на сите секогаш ќе им биде дозволен пристап. Ја креираме самата датотека и ги внесуваме домените во неа во формат

.whatsapp.com
.whatsapp.net

Whatsapp се користи како пример со причина - тој е многу пребирлив за проксите за автентикација и нема да работи ако не е дозволено пред автентикацијата.
http_access дозволи nonauth — дозволете пристап до оваа листа за сите
http_access deni !auth — забрануваме пристап до други страници за неовластени корисници
http_access дозволи авт — дозволи пристап до овластени корисници.
Тоа е тоа, самиот Squid е конфигуриран, сега е време да започнеме со филтрирање по групи.

Поставување на SquidGuard

Одете во филтер за прокси ServicesSquidGuard.

Во LDAP Options ги внесуваме деталите за нашата сметка што се користи за автентикација на Kerberos, но во следниов формат:

CN=pfsense,OU=service-accounts,DC=domain,DC=local

Ако има празни места или не-латински знаци, целиот овој запис треба да биде затворен во единечни или двојни наводници:

'CN=sg,OU=service-accounts,DC=domain,DC=local'
"CN=sg,OU=service-accounts,DC=domain,DC=local"

Следно, не заборавајте да ги проверите овие полиња:

Бесплатен прокси-сервер за претпријатие со авторизација на домен

За да го исклучите непотребниот DOMAINpfsense DOMAIN.LOCAL на кој целиот систем е многу чувствителен.

Сега да одиме во Group Acl и да ги поврземе нашите групи за пристап до домен, јас користам едноставни имиња како group_0, group_1 итн. до 3, каде што 3 значи пристап само до белата листа, а 0 значи дека сè е можно.

Групите се поврзани на следниов начин:

ldapusersearch ldap://dc.domain.local:3268/DC=DOMAIN,DC=LOCAL?sAMAccountName?sub?(&(sAMAccountName=%s)(memberOf=CN=group_0%2cOU=squid%2cOU=service-groups%2cDC=DOMAIN%2cDC=LOCAL))

ја зачувуваме нашата група, одиме во Тајмс, таму создадов една празнина што значи дека секогаш ќе работи, сега одиме во Целните категории и создаваме списоци по наша дискреција, по креирањето на списоците се враќаме во нашите групи и во групата користиме копчиња да изберете кој каде може да оди, а кој не може каде.

LightSquid и sqstat

Ако за време на процесот на поставување избравме loopback во поставките за лигњи и ја отворивме можноста за пристап до 7445 во заштитниот ѕид и на нашата мрежа и на самиот pfSense, тогаш кога одиме во DiagnosticsSquid Proxy Reports, лесно можеме да ги отвориме и sqstat и Lighsquid, за второто ќе ни треба Таму можете да излезете со најава и лозинка, а исто така можете да изберете дизајн.

Завршување

pfSense е многу моќна алатка која може да направи многу работи - проксирачкиот сообраќај и контролирањето на пристапот на корисниците на Интернет е само зрно од целата функционалност, но во претпријатие со 500 машини, го реши проблемот и ни овозможи да заштедиме при купување на полномошник.

Се надевам дека оваа статија ќе му помогне на некој да реши проблем што е доста релевантен за средните и големите претпријатија.

Извор: www.habr.com

Додадете коментар