Домен авторизациясы бар кәсіпорынға арналған тегін прокси сервер

Домен авторизациясы бар кәсіпорынға арналған тегін прокси сервер

https сүзгісі бар pfSense+Squid + Active Directory топтық сүзгісі бар бір рет кіру (SSO)

Қысқаша фон

Компания пайдаланушылар ешқандай қосымша құпия сөздерді енгізбеуі және веб-интерфейстен басқарылуы үшін AD топтары бойынша сайттарға (соның ішінде https) кіруді сүзгілеу мүмкіндігі бар прокси серверді енгізуі керек болды. Жақсы қолданба, солай емес пе?

Дұрыс жауап Kerio Control немесе UserGate сияқты шешімдерді сатып алу болады, бірақ әрқашан ақша жоқ, бірақ қажеттілік бар.

Бұл жерде жақсы ескі кальмар құтқаруға келеді, бірақ тағы да – веб-интерфейсті қайдан алуға болады? SAMS2? Моральдық тұрғыдан ескірген. Бұл жерде pfSense көмекке келеді.

сипаттамасы

Бұл мақалада Squid прокси серверін конфигурациялау жолы сипатталады.
Kerberos пайдаланушыларды авторизациялау үшін пайдаланылады.
SquidGuard домен топтары бойынша сүзу үшін пайдаланылады.

Бақылау үшін Lightsquid, sqstat және ішкі pfSense мониторинг жүйелері пайдаланылады.
Сондай-ақ, ол бір реттік кіру (SSO) технологиясын енгізумен байланысты жалпы мәселені шешеді, атап айтқанда жүйелік тіркелгісі арқылы компас тіркелгісі арқылы Интернетті шарлауға тырысатын қолданбалар.

Squid орнатуға дайындалуда

pfSense негізге алынады, Орнату нұсқаулары.

Оның ішінде біз домен тіркелгілерін пайдаланып брандмауэрдің өзінде аутентификацияны ұйымдастырамыз. Нұсқаулық.

Өте маңызды!

Squid орнатуды бастамас бұрын, pfsense жүйесінде DNS серверін конфигурациялау керек, ол үшін DNS серверінде A жазбасын және PTR жазбасын жасаңыз және уақыт домен контроллеріндегі уақыттан ерекшеленбейтін етіп NTP конфигурациялауыңыз керек.

Сіздің желіңізде pfSense WAN интерфейсінің Интернетке өту мүмкіндігін және жергілікті желідегі пайдаланушылардың LAN интерфейсіне, соның ішінде 7445 және 3128 порттарында (менің жағдайда 8080) қосылу мүмкіндігін қамтамасыз етіңіз.

Бәрі дайын? LDAP қосылымы pfSense жүйесінде авторизациялау үшін доменмен орнатылған және уақыт синхрондалған ба? Тамаша. Негізгі процесті бастау уақыты келді.

Орнату және алдын ала конфигурациялау

Squid, SquidGuard және LightSquid «Жүйе/пакет менеджері» бөліміндегі pfSense пакет менеджерінен орнатылады.

Сәтті орнатудан кейін «Қызметтер / Squid прокси сервері /» бөліміне өтіңіз және ең алдымен, Жергілікті кэш қойындысында кэштеуді конфигурациялаңыз, мен бәрін 0-ге қойдым, себебі Мен сайттарды кэштеуде көп нәрсені көрмеймін, браузерлер мұнымен жақсы жұмыс істейді. Орнатқаннан кейін экранның төменгі жағындағы «Сақтау» түймесін басыңыз, бұл бізге негізгі прокси параметрлерін орнату мүмкіндігін береді.

Негізгі параметрлер келесідей:

Домен авторизациясы бар кәсіпорынға арналған тегін прокси сервер

Әдепкі порт 3128, бірақ мен 8080 пайдаланғым келеді.

Прокси интерфейс қойындысында таңдалған параметрлер біздің прокси сервер қай интерфейстерді тыңдайтынын анықтайды. Бұл желіаралық қалқан Интернетте WAN интерфейсі ретінде көрінетін етіп салынғандықтан, LAN және WAN бір жергілікті ішкі желіде болуы мүмкін болса да, прокси үшін LAN пайдалануды ұсынамын.

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 веб-интерфейсі арқылы да жасай аласыз.

Енді біз /etc/krb5.conf файлын өңдей/жаса аламыз

Домен авторизациясы бар кәсіпорынға арналған тегін прокси сервер

мұндағы /etc/krb5.keytab - біз жасаған негізгі файл.

Kinit көмегімен kerberos жұмысын тексеруді ұмытпаңыз, егер ол жұмыс істемесе, одан әрі оқудың қажеті жоқ.

Squid аутентификациясын және аутентификациясыз кіру тізімін теңшеу

Керберостарды сәтті конфигурациялаудан кейін біз оны кальмарымызға бекітеміз.

Мұны істеу үшін ServicesSquid прокси серверіне өтіңіз және негізгі параметрлерде ең төменгі жағына өтіңіз, сонда біз «Қосымша параметрлер» түймесін табамыз.

Теңшелетін опциялар (аутентификациядан бұрын) өрісіне мынаны енгізіңіз:

#Хелперы
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 - осы арнайы пернетақта файлын пайдалануды анықтайды. Менің жағдайда, бұл біз жасаған сол пернетақта файлы, мен оны /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 қабылдамау !auth - біз рұқсат етілмеген пайдаланушыларға басқа сайттарға кіруге тыйым саламыз
http_access аутентификацияға рұқсат береді - авторизацияланған пайдаланушыларға рұқсат беру.
Міне, кальмардың өзі конфигурацияланған, енді топтар бойынша сүзуді бастау уақыты келді.

SquidGuard конфигурациялануда

ServicesSquidGuard прокси сүзгісіне өтіңіз.

LDAP опцияларында біз 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 және т.

Топтар келесідей байланысқан:

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))

тобымызды сақтаңыз, Times-қа өтіңіз, мен әрқашан жұмыс істеу үшін бір бос орын жасадым, енді Мақсатты санаттарға өтіңіз және өз қалауымыз бойынша тізімдер жасаңыз, тізімдерді жасағаннан кейін біз топтарымызға ораламыз және топтың ішінен кім бара алатынын таңдаймыз. қайда, ал кім қайда алмайды.

LightSquid және sqstat

Егер конфигурациялау процесі кезінде біз squid параметрлерінде кері циклды таңдап, желіаралық қалқанда 7445-ке желіде де, pfSense-тің өзінде де кіру мүмкіндігін ашсақ, Squid прокси есептерінің диагностикасына өткенде, біз sqstat және Lighsquid, соңғысы үшін бізге қажет болады Сол жерде пайдаланушы аты мен құпия сөзді ойлап табыңыз, сонымен қатар дизайнды таңдау мүмкіндігі бар.

Аяқтау

pfSense - бұл көп нәрсені жасай алатын өте қуатты құрал - трафикті проксилеу және пайдаланушының Интернетке кіруін бақылау - бұл бүкіл функционалдылықтың бір бөлігі ғана, дегенмен 500 машинасы бар кәсіпорында бұл мәселені шешіп, үнемдеді. прокси сатып алу.

Бұл мақала біреуге орта және ірі кәсіпорындар үшін өте өзекті мәселені шешуге көмектеседі деп үміттенемін.

Ақпарат көзі: www.habr.com

пікір қалдыру