Domen avtorizatsiyasiga ega korxona uchun bepul proksi-server

Domen avtorizatsiyasiga ega korxona uchun bepul proksi-server

https filtrli pfSense+Squid + Active Directory guruh filtri bilan bir marta kirish (SSO)

Qisqa ma'lumot

Kompaniya foydalanuvchilar qo'shimcha parollarni kiritmasliklari va veb-interfeysdan boshqarilishi uchun saytlarga (shu jumladan https) AD guruhlari bo'yicha kirishni filtrlash imkoniyatiga ega proksi-serverni joriy etishi kerak edi. Yaxshi dastur, shunday emasmi?

To'g'ri javob Kerio Control yoki UserGate kabi echimlarni sotib olish bo'ladi, lekin har doimgidek pul yo'q, lekin ehtiyoj bor.

Bu erda eski yaxshi Squid yordamga keladi, lekin yana - veb-interfeysni qayerdan olsam bo'ladi? SAMS2? Axloqiy jihatdan eskirgan. Bu erda pfSense yordamga keladi.

tavsifi

Ushbu maqolada Squid proksi-serverini qanday sozlash kerakligi tasvirlangan.
Kerberos foydalanuvchilarni avtorizatsiya qilish uchun ishlatiladi.
SquidGuard domen guruhlari bo'yicha filtrlash uchun ishlatiladi.

Monitoring uchun Lightsquid, sqstat va ichki pfSense monitoring tizimlari qo'llaniladi.
Shuningdek, u yagona tizimga kirish (SSO) texnologiyasini joriy etish bilan bog'liq umumiy muammoni, ya'ni tizim hisobi bilan kompas hisobi ostida Internetda kezishga harakat qiladigan ilovalarni hal qiladi.

Squid o'rnatishga tayyorlanmoqda

pfSense asos qilib olinadi, O'rnatish bo'yicha ko'rsatmalar.

Uning ichida biz domen hisoblari yordamida xavfsizlik devorining o'zida autentifikatsiyani tashkil qilamiz. Ko'rsatmalar.

Juda muhim!

Squid-ni o'rnatishni boshlashdan oldin, siz pfsense-da DNS-serverni sozlashingiz, DNS-serverimizda A yozuvi va PTR yozuvini yaratishingiz va vaqt domen boshqaruvchisidagi vaqtdan farq qilmasligi uchun NTP-ni sozlashingiz kerak.

Sizning tarmog'ingizda pfSense WAN interfeysi Internetga o'tish va mahalliy tarmoq foydalanuvchilari LAN interfeysiga, shu jumladan 7445 va 3128 portlarida (mening holimda 8080) ulanish imkoniyatini taqdim eting.

Hammasi tayyor? LDAP ulanishi pfSense-da avtorizatsiya qilish uchun domen bilan o'rnatilganmi va vaqt sinxronlashtiriladimi? Ajoyib. Asosiy jarayonni boshlash vaqti keldi.

O'rnatish va oldindan sozlash

Squid, SquidGuard va LightSquid pfSense paket menejeridan "Tizim / Paket menejeri" bo'limida o'rnatiladi.

Muvaffaqiyatli o'rnatishdan so'ng, "Xizmatlar / Squid Proksi serveri /" ga o'ting va birinchi navbatda, Mahalliy kesh ko'rinishida keshlashni sozlang, men hamma narsani 0 ga qo'ydim, chunki Men saytlarni keshlashda unchalik ma'no ko'rmayapman, brauzerlar bu bilan juda yaxshi ish qilishadi. Sozlagandan so'ng, ekranning pastki qismidagi "Saqlash" tugmasini bosing va bu bizga asosiy proksi sozlamalarini o'rnatish imkoniyatini beradi.

Asosiy sozlamalar quyidagilar:

Domen avtorizatsiyasiga ega korxona uchun bepul proksi-server

Standart port 3128, lekin men 8080 dan foydalanishni afzal ko'raman.

Proksi-server yorlig'ida tanlangan parametrlar bizning proksi-serverimiz qaysi interfeyslarni tinglashini aniqlaydi. Ushbu xavfsizlik devori Internetda WAN interfeysi sifatida ko'rinadigan tarzda qurilganligi sababli, LAN va WAN bir xil mahalliy quyi tarmoqda bo'lishi mumkin, men proksi-server uchun LANdan foydalanishni tavsiya qilaman.

Sqstat ishlashi uchun orqaga qaytish kerak.

Quyida siz Shaffof (shaffof) proksi-server sozlamalarini, shuningdek, SSL filtrini topasiz, ammo ular bizga kerak emas, bizning proksi-serverimiz shaffof bo'lmaydi va https filtrlash uchun biz sertifikatni almashtirmaymiz (bizda hujjat oqimi, bank bor) mijozlar va boshqalar), keling, qo'l siqishni ko'rib chiqaylik.

Ushbu bosqichda biz domen kontrollerimizga o'tishimiz kerak, unda autentifikatsiya hisobini yaratishimiz kerak (siz pfSense-ning o'zida autentifikatsiya qilish uchun sozlanganidan ham foydalanishingiz mumkin). Bu erda juda muhim omil - agar siz AES128 yoki AES256 shifrlashdan foydalanmoqchi bo'lsangiz - hisob sozlamalaringizdagi tegishli katakchalarni belgilang.

Agar sizning domeningiz ko'p sonli kataloglarga ega bo'lgan juda murakkab o'rmon bo'lsa yoki sizning domeningiz .local bo'lsa, bu MUMKIN, ammo aniq emas, bu hisob uchun oddiy paroldan foydalanishga to'g'ri keladi, xato ma'lum, lekin u oddiygina murakkab parol bilan ishlamasligi mumkin, siz aniq bir ishni tekshirishingiz kerak.

Domen avtorizatsiyasiga ega korxona uchun bepul proksi-server

Shundan so'ng biz kerberos uchun kalit faylni yaratamiz, domen boshqaruvchisida administrator huquqlariga ega buyruq satrini ochamiz va quyidagilarni kiritamiz:

# 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-ni ko'rsatganimizda, ishni hurmat qilishni unutmang, mapuser parametriga domen hisobimiz va uning parolini kiriting va kriptoda biz shifrlash usulini tanlaymiz, men ish uchun rc4 dan foydalanardim va -out maydonida biz qayerni tanlaymiz tayyor kalit faylimizni yuboradi.
Kalit faylni muvaffaqiyatli yaratgandan so'ng, biz uni pfSense-ga yuboramiz, men buning uchun Far-dan foydalandim, lekin siz buni buyruqlar va macun yordamida yoki "Diagnostika buyruq qatori" bo'limidagi pfSense veb-interfeysi orqali ham qilishingiz mumkin.

Endi biz /etc/krb5.conf ni tahrirlash/yaratishimiz mumkin

Domen avtorizatsiyasiga ega korxona uchun bepul proksi-server

bu erda /etc/krb5.keytab biz yaratgan kalit fayldir.

Kinit yordamida kerberosning ishlashini tekshirishga ishonch hosil qiling, agar u ishlamasa, keyingi o'qishdan foyda yo'q.

Squid autentifikatsiyasini va kirish ro'yxatini autentifikatsiyasiz sozlash

Kerberosni muvaffaqiyatli sozlaganimizdan so'ng, biz uni Squid-ga mahkamlaymiz.

Buni amalga oshirish uchun ServicesSquid Proksi-serveriga o'ting va asosiy sozlamalarda eng pastki qismga o'ting, u erda "Kengaytirilgan sozlamalar" tugmachasini topamiz.

Maxsus parametrlar (authdan oldin) maydoniga quyidagilarni kiriting:

#Хелперы
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

qayerda auth_param muzokaralar dasturi /usr/local/libexec/squid/negotiate_kerberos_auth - bizga kerak bo'lgan autentifikatsiya kerberos yordamchisini tanlaydi.

Kalit -s ma'no bilan GSS_C_NO_NAME — kalit fayldan istalgan hisobdan foydalanishni belgilaydi.

Kalit -k ma'no bilan /usr/local/etc/squid/squid.keytab - ushbu maxsus klaviatura faylidan foydalanishni belgilaydi. Mening holimda, bu biz yaratgan o'sha keytab fayli, men uni /usr/local/etc/squid/ katalogiga ko'chirib, nomini o'zgartirdim, chunki kalamar bu katalog bilan do'st bo'lishni istamagan, shekilli, yo'q edi. etarli huquqlar.

Kalit -t ma'no bilan -t yo'q - domen boshqaruvchisiga tsiklik so'rovlarni o'chirib qo'yadi, bu sizning 50 dan ortiq foydalanuvchilaringiz bo'lsa, undagi yukni sezilarli darajada kamaytiradi.
Sinov muddati davomida siz -d tugmachasini ham qo'shishingiz mumkin - ya'ni diagnostika, ko'proq jurnallar ko'rsatiladi.
auth_param muzokaralar bolalar 1000 - bir vaqtning o'zida qancha avtorizatsiya jarayonlarini bajarish mumkinligini aniqlaydi
auth_param muzokaralar keep_alive on - avtorizatsiya zanjiri so'rovi paytida ulanishni buzishga yo'l qo'ymaydi
acl auth proxy_auth TALAB - avtorizatsiyadan o'tgan foydalanuvchilarni o'z ichiga olgan kirishni boshqarish ro'yxatini yaratadi va talab qiladi
acl nonauth dstdomain "/etc/squid/nonauth.txt" - biz kalamarga har doim kirish huquqiga ega bo'lgan maqsadli domenlarni o'z ichiga olgan autentifikatsiya qilinmagan kirish ro'yxati haqida xabar beramiz. Biz faylni o'zi yaratamiz va uning ichiga formatdagi domenlarni kiritamiz

.whatsapp.com
.whatsapp.net

Whatsapp bejiz misol sifatida qo'llanilmaydi - u autentifikatsiya bilan proksi-server haqida juda sinchkovlik bilan ishlaydi va agar autentifikatsiyadan oldin ruxsat berilmasa, ishlamaydi.
http_access noauth ruxsat beradi - barchaga ushbu ro'yxatga kirishga ruxsat bering
http_access inkor !auth - biz ruxsatsiz foydalanuvchilarning boshqa saytlarga kirishini taqiqlaymiz
http_access avtorizatsiyaga ruxsat beradi - avtorizatsiya qilingan foydalanuvchilarga kirishga ruxsat berish.
Hammasi shunday, kalamarning o'zi sozlangan, endi guruhlar bo'yicha filtrlashni boshlash vaqti keldi.

SquidGuard sozlanmoqda

ServicesSquidGuard proksi filtriga o'ting.

LDAP Options-da biz kerberos autentifikatsiyasi uchun ishlatiladigan hisob qaydnomamiz ma'lumotlarini kiritamiz, lekin quyidagi formatda:

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

Agar bo'shliqlar yoki lotin bo'lmagan belgilar mavjud bo'lsa, ushbu yozuvning barchasi bitta yoki ikkita tirnoq ichiga olinishi kerak:

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

Keyin, ushbu katakchalarni belgilashni unutmang:

Domen avtorizatsiyasiga ega korxona uchun bepul proksi-server

Keraksiz DOMAINpfsense-ni o'chirish uchun DOMAINButun tizim juda sezgir bo'lgan .LOCAL.

Endi biz Group Acl-ga o'tamiz va domenga kirish guruhlarimizni bog'laymiz, men group_0, group_1 va hokazo kabi oddiy nomlardan foydalanaman.

Guruhlar quyidagi tarzda bog'langan:

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

guruhimizni saqlang, Times-ga o'ting, u erda men har doim ishlash uchun bitta bo'shliq yaratdim, endi Maqsadli toifalarga o'ting va o'z ixtiyorimizga ko'ra ro'yxatlar yarating, ro'yxatlarni yaratgandan so'ng biz guruhlarimizga qaytamiz va guruh ichida tugmalar yordamida kim borishi mumkinligini tanlaymiz. qayerda va kim qaerda qila olmaydi.

LightSquid va sqstat

Agar konfiguratsiya jarayonida biz squid sozlamalarida loopback-ni tanlagan bo'lsak va xavfsizlik devorida ham tarmog'imizda, ham pfSense-ning o'zida 7445-ga kirish imkoniyatini ochgan bo'lsak, Squid Proxy Reports Diagnostics-ga o'tayotganda biz sqstat va Lighsquid-ni osongina ochishimiz mumkin, ikkinchisi uchun bizga kerak bo'ladi Xuddi shu joyda, foydalanuvchi nomi va parolni o'ylab toping va dizaynni tanlash imkoniyati ham mavjud.

Tugatish

pfSense - bu juda ko'p narsalarni qila oladigan juda kuchli vosita - trafikni proksi qilish va foydalanuvchining Internetga kirishini nazorat qilish butun funksionallikning faqat bir qismidir, ammo 500 ta mashinaga ega korxonada bu muammoni hal qildi va tejaydi. proksi sotib olish.

Umid qilamanki, ushbu maqola kimgadir o'rta va yirik korxonalar uchun juda dolzarb bo'lgan muammoni hal qilishga yordam beradi.

Manba: www.habr.com

a Izoh qo'shish