Etki alanı yetkilendirmeli işletmeler için ücretsiz proxy sunucusu

Etki alanı yetkilendirmeli işletmeler için ücretsiz proxy sunucusu

https filtrelemeli pfSense+Squid + Active Directory grup filtrelemeli çoklu oturum açma (SSO)

Kısa arka plan

Şirketin, sitelere erişimi (https dahil) AD'den gruplara göre filtreleme yeteneğine sahip bir proxy sunucusu uygulaması gerekiyordu, böylece kullanıcılar herhangi bir ek parola girmez ve web arayüzünden yönetilebilir. Güzel bir uygulama değil mi?

Doğru cevap, Kerio Control veya UserGate gibi çözümler satın almak olacaktır, ancak her zaman olduğu gibi para yok, ancak ihtiyaç var.

Burası eski güzel Squid'in kurtarmaya geldiği yer, ama yine - bir web arayüzünü nereden bulabilirim? SAMS2? Ahlaki olarak modası geçmiş. İşte burada pfSense imdada yetişir.

Açıklama

Bu makale, Squid proxy sunucusunun nasıl yapılandırılacağını açıklayacaktır.
Kerberos, kullanıcıları yetkilendirmek için kullanılacaktır.
SquidGuard, etki alanı gruplarına göre filtrelemek için kullanılacaktır.

İzleme için Lightsquid, sqstat ve dahili pfSense izleme sistemleri kullanılacaktır.
Ayrıca, çoklu oturum açma (SSO) teknolojisinin tanıtımıyla ilgili yaygın bir sorunu, yani sistem hesaplarıyla pusula hesabı altında İnternette gezinmeye çalışan uygulamaları da çözecektir.

Squid'i yüklemeye hazırlanıyor

pfSense esas alınacaktır, Kurulum Talimatları.

İçinde etki alanı hesaplarını kullanarak güvenlik duvarının kendisinde kimlik doğrulaması düzenliyoruz. Öğretim.

Çok önemli!

Squid kurulumuna başlamadan önce, pfsense'de DNS sunucusunu yapılandırmanız, DNS sunucumuzda bunun için A kaydı ve PTR kaydı oluşturmanız ve NTP'yi etki alanı denetleyicisindeki saatten farklı olmayacak şekilde yapılandırmanız gerekir.

Ve ağınızda, 7445 ve 3128 bağlantı noktaları (benim durumumda 8080) dahil olmak üzere, pfSense'in WAN arabiriminin İnternet'e ve yerel ağdaki kullanıcıların LAN arabirimine bağlanmasına olanak sağlayın.

Her şey hazır mı? pfSense üzerinde yetkilendirme için domain ile LDAP bağlantısı kuruluyor mu ve zaman eşitleniyor mu? Harika. Ana süreci başlatmanın zamanı geldi.

Kurulum ve ön yapılandırma

Squid, SquidGuard ve LightSquid, "System / Package Manager" bölümündeki pfSense paket yöneticisinden kurulacaktır.

Başarılı bir kurulumdan sonra, "Hizmetler / Squid Proxy sunucusuna /" gidin ve her şeyden önce Yerel Önbellek sekmesinde önbelleği yapılandırın, her şeyi 0 olarak ayarlıyorum çünkü Siteleri önbelleğe almanın pek bir anlamı yok, tarayıcılar bununla harika bir iş çıkarıyor. Ayarlamadan sonra ekranın alt kısmındaki "Kaydet" düğmesine basın ve bu bize temel proxy ayarlarını yapma fırsatı verecektir.

Ana ayarlar aşağıdaki gibidir:

Etki alanı yetkilendirmeli işletmeler için ücretsiz proxy sunucusu

Varsayılan bağlantı noktası 3128'dir, ancak ben 8080 kullanmayı tercih ediyorum.

Proxy Arayüzü sekmesinde seçilen parametreler, proxy sunucumuzun hangi arayüzleri dinleyeceğini belirler. Bu güvenlik duvarı, Internet'te bir WAN arabirimi gibi görünecek şekilde oluşturulduğundan, LAN ve WAN aynı yerel alt ağda bulunabilse de, proxy için LAN kullanmanızı öneririm.

Sqstat'ın çalışması için geri döngü gereklidir.

Aşağıda Şeffaf (şeffaf) proxy ayarlarını ve SSL Filtresini bulacaksınız, ancak bunlara ihtiyacımız yok, proxy'miz şeffaf olmayacak ve https filtreleme için sertifikayı değiştirmeyeceğiz (belge akışımız var, banka müşteriler, vb.), hadi sadece el sıkışmaya bakalım.

Bu aşamada, etki alanı denetleyicimize gitmemiz, içinde bir kimlik doğrulama hesabı oluşturmamız gerekiyor (pfSense'in kendisinde kimlik doğrulama için yapılandırılmış olanı da kullanabilirsiniz). Burada çok önemli bir faktör var - AES128 veya AES256 şifreleme kullanmayı düşünüyorsanız - hesap ayarlarınızda uygun kutuları işaretleyin.

Etki alanınız çok sayıda dizine sahip çok karmaşık bir ormansa veya etki alanınız .local ise, bu hesap için basit bir parola kullanmanız MUHTEMELDİR, ancak kesin değildir, hata bilinir, ancak karmaşık bir parolayla çalışmayabilir, belirli bir durumu kontrol etmeniz gerekir.

Etki alanı yetkilendirmeli işletmeler için ücretsiz proxy sunucusu

Bundan sonra, kerberos için bir anahtar dosyası oluşturuyoruz, etki alanı denetleyicisinde yönetici haklarına sahip bir komut istemi açıp şunu giriyoruz:

# 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'imizi belirttiğimiz yerde, duruma saygı gösterdiğinizden emin olun, mapuser parametresine etki alanı hesabımızı ve şifresini girin ve crypto'da şifreleme yöntemini seçiyoruz, iş için rc4 kullandım ve -out alanında nerede olduğumuzu seçiyoruz. bitmiş anahtar dosyamızı gönderecek.
Anahtar dosyasını başarılı bir şekilde oluşturduktan sonra pfSense'imize göndereceğiz, bunun için Far'ı kullandım ama bunu hem komutlar ve macun ile hem de "Diagnostics Command Line" bölümündeki pfSense web arayüzü aracılığıyla da yapabilirsiniz.

Artık /etc/krb5.conf düzenleyebilir/oluşturabiliriz

Etki alanı yetkilendirmeli işletmeler için ücretsiz proxy sunucusu

/etc/krb5.keytab oluşturduğumuz anahtar dosyasıdır.

Kerberos'un çalışmasını kinit kullanarak kontrol ettiğinizden emin olun, eğer çalışmazsa, daha fazla okumanın bir anlamı yoktur.

Kalamar Kimlik Doğrulamasını ve Erişim Listesini Kimlik Doğrulaması Olmadan Yapılandırma

Kerberos'u başarıyla yapılandırdıktan sonra, onu Squid'imize bağlayacağız.

Bunu yapmak için ServicesSquid Proxy Sunucusuna gidin ve ana ayarlarda en alta inin, orada "Gelişmiş ayarlar" düğmesini bulacağız.

Özel Seçenekler (Doğrulamadan Önce) alanına şunu girin:

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

Neresi auth_param görüşme programı /usr/local/libexec/squid/negotiate_kerberos_auth - ihtiyacımız olan kimlik doğrulama kerberos yardımcısını seçer.

Anahtar -s anlamı olan GSS_C_NO_NAME — anahtar dosyasından herhangi bir hesabın kullanımını tanımlar.

Anahtar -k anlamı olan /usr/local/etc/squid/squid.keytab - bu özel keytab dosyasını kullanmayı belirler. Benim durumumda, bu, /usr/local/etc/squid/ dizinine kopyaladığım ve yeniden adlandırdığım, oluşturduğumuz aynı keytab dosyasıdır, çünkü kalamar bu dizinle arkadaş olmak istemedi, görünüşe göre orada değildi. yeterli haklar.

Anahtar -t anlamı olan -t yok - 50'den fazla kullanıcınız varsa üzerindeki yükü büyük ölçüde azaltan etki alanı denetleyicisine yönelik döngüsel istekleri devre dışı bırakır.
Test süresi boyunca -d tuşunu da ekleyebilirsiniz - yani tanılama, daha fazla günlük görüntülenecektir.
auth_param 1000 çocukla pazarlık yap - kaç tane eş zamanlı yetkilendirme işleminin çalıştırılabileceğini belirler
auth_param keep_alive üzerinde pazarlık yap - yetkilendirme zincirinin sorgulanması sırasında bağlantının kesilmesine izin vermez
acl auth proxy_auth GEREKLİ - yetkilendirmeyi geçen kullanıcıları içeren bir erişim kontrol listesi oluşturur ve gerektirir
acl nonauth dstdomain "/etc/squid/nonauth.txt" - Kalamara, herkesin her zaman erişmesine izin verileceği, hedef etki alanlarını içeren, yetkisiz erişim listesi hakkında bilgi veririz. Dosyanın kendisini oluşturuyoruz ve içine etki alanlarını şu biçimde giriyoruz:

.whatsapp.com
.whatsapp.net

Whatsapp boşuna örnek olarak kullanılmaz - kimlik doğrulamalı proxy konusunda çok seçicidir ve kimlik doğrulamadan önce izin verilmezse çalışmaz.
http_access kimlik doğrulamasız izin ver - herkesin bu listeye erişmesine izin ver
http_access reddi !auth - yetkisiz kullanıcıların diğer sitelere erişimini yasaklıyoruz
http_access kimlik doğrulamaya izin verir - yetkili kullanıcılara erişime izin ver.
İşte bu, kalamarın kendisi yapılandırıldı, şimdi gruplara göre filtrelemeye başlama zamanı.

SquidGuard'ı Yapılandırma

ServicesSquidGuard Proxy Filtresi'ne gidin.

LDAP Seçeneklerinde, kerberos kimlik doğrulaması için kullanılan hesabımızın verilerini aşağıdaki biçimde giriyoruz:

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

Boşluk veya Latin olmayan karakterler varsa, bu girişin tamamı tek veya çift tırnak içine alınmalıdır:

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

Ardından, şu kutuları işaretlediğinizden emin olun:

Etki alanı yetkilendirmeli işletmeler için ücretsiz proxy sunucusu

Gereksiz DOMAINpfsense'i kesmek için ALAN.Bütün sistemin çok hassas olduğu YEREL.

Şimdi Group Acl'ye gidiyoruz ve etki alanı erişim gruplarımızı bağlıyoruz, group_0, group_1 gibi basit adlar kullanıyorum. 3'e kadar, burada 3 yalnızca beyaz listeye erişim ve 0 - her şey mümkündür.

Gruplar şu şekilde bağlanır:

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

grubumuzu kaydedin, Times'a gidin, orada her zaman çalışmak anlamına gelen bir boşluk oluşturdum, şimdi Hedef Kategoriler'e gidin ve kendi takdirimize bağlı olarak listeler oluşturun, listeleri oluşturduktan sonra gruplarımıza dönüyoruz ve grup içinde butonlarla kimlerin gidebileceğini seçiyoruz nerede, kim nerede olamaz.

LightSquid ve sqstat

Yapılandırma işlemi sırasında kalamar ayarlarında bir geri döngü seçip hem ağımızda hem de pfSense'in kendisinde güvenlik duvarında 7445'e erişim özelliğini açarsak, o zaman Squid Proxy Reports Diagnostics'e giderken hem sqstat'ı hem de Lighsquid'i kolayca açabiliriz, ikincisi için aynı yerde bir kullanıcı adı ve şifre bulmaya ihtiyacımız olacak ve ayrıca bir tasarım seçme fırsatı da var.

Tamamlama

pfSense, pek çok şey yapabilen çok güçlü bir araçtır - hem trafik proxy'si hem de İnternet'e kullanıcı erişimi üzerindeki kontrol, tüm işlevselliğin yalnızca bir kısmıdır, yine de, 500 makineli bir kuruluşta bu, sorunu çözdü ve tasarruf sağladı proxy satın alma.

Umarım bu makale, birisinin orta ve büyük işletmeler için oldukça alakalı bir sorunu çözmesine yardımcı olur.

Kaynak: habr.com

Yorum ekle