pfSense+Squid https szűréssel + Egyszeri bejelentkezés (SSO) Active Directory csoportszűréssel
Rövid háttér
A cégnek olyan proxyszervert kellett bevezetnie, amely képes a webhelyekhez való hozzáférést (beleértve a https-t is) csoportok szerint szűrni az AD-ből, hogy a felhasználók ne adjanak meg további jelszavakat, és a webes felületről adminisztrálható. Jó alkalmazás, nem?
A helyes válasz az lenne, ha olyan megoldásokat vásárolnánk, mint a Kerio Control vagy a UserGate, de mint mindig, nincs pénz, de igény van.
Itt jön a jó öreg Squid a megmentésére, de megint - hol lehet webes felületet szerezni? SAMS2? Erkölcsileg elavult. Itt jön a pfSense segítség.
Leírás
Ez a cikk leírja, hogyan kell konfigurálni a Squid proxykiszolgálót.
A Kerberos segítségével engedélyezik a felhasználókat.
A SquidGuard a tartománycsoportok szerinti szűréshez használható.
A megfigyeléshez Lightsquid, sqstat és belső pfSense felügyeleti rendszereket használnak majd.
Megoldja az egyszeri bejelentkezési (SSO) technológia bevezetésével kapcsolatos gyakori problémát is, nevezetesen azokat az alkalmazásokat, amelyek a rendszerfiókjukkal az iránytű fiók alatt próbálnak szörfözni az interneten.
Felkészülés a Squid telepítésére
a pfSense lesz az alap,
Ezen belül magán a tűzfalon szervezzük meg a hitelesítést domain fiókok segítségével.
Nagyon fontos!
Mielőtt elkezdené a Squid telepítését, be kell állítania a DNS-kiszolgálót a pfsense-ben, létre kell hoznia egy A-rekordot és egy PTR-rekordot a DNS-kiszolgálónkon, és úgy kell beállítania az NTP-t, hogy az idő ne térjen el a tartományvezérlőn lévő időtől.
A hálózatán pedig tegye lehetővé, hogy a pfSense WAN interfésze az internetre csatlakozzon, a helyi hálózat felhasználói pedig a LAN interfészhez csatlakozzanak, beleértve a 7445-ös és a 3128-as (az én esetemben a 8080-as) portot is.
Minden készen áll? Létrejön az LDAP-kapcsolat a tartományhoz a pfSense engedélyezéshez, és az idő szinkronizálva van? Nagy. Ideje elkezdeni a fő folyamatot.
Telepítés és előkonfigurálás
A Squid, a SquidGuard és a LightSquid a pfSense csomagkezelőből, a „Rendszer/Csomagkezelő” részben lesz telepítve.
Sikeres telepítés után lépjen a "Szolgáltatások / Squid Proxy szerver /" menüpontra, és először is a Helyi gyorsítótár lapon állítsa be a gyorsítótárat, mindent 0-ra állítok, mert Nem sok értelmét látom az oldalak gyorsítótárazásának, a böngészők remekül teljesítenek ezzel. A beállítás után nyomja meg a képernyő alján található "Mentés" gombot, és ez lehetőséget ad az alapvető proxy beállítások elvégzésére.
A fő beállítások a következők:
Az alapértelmezett port a 3128, de én inkább a 8080-at használom.
A Proxy Interface lapon kiválasztott paraméterek határozzák meg, hogy proxyszerverünk mely interfészekre figyel. Mivel ez a tűzfal úgy van felépítve, hogy az interneten WAN interfésznek néz ki, bár a LAN és a WAN lehet ugyanazon a helyi alhálózaton, ezért javaslom a LAN használatát a proxynak.
Loopback szükséges az sqstat működéséhez.
Alul megtalálod az Átlátszó (átlátszó) proxy beállításokat, valamint az SSL szűrőt, de nincs rájuk szükségünk, a proxynk nem lesz transzparens, https szűréshez pedig nem cseréljük ki a tanúsítványt (van dokumentumfolyamunk, bankunk ügyfelek stb.), nézzük csak a kézfogást.
Ebben a szakaszban fel kell lépnünk a tartományvezérlőnkre, és létre kell hoznunk benne egy hitelesítési fiókot (azt is használhatja, amely magán a pfSense-en volt hitelesítésre konfigurálva). Itt van egy nagyon fontos tényező - ha AES128 vagy AES256 titkosítást kíván használni - jelölje be a megfelelő négyzeteket a fiókbeállításokban.
Ha az Ön domainje egy nagyon összetett erdő, sok könyvtárral, vagy a domain .local, akkor LEHETSÉGES, de nem biztos, hogy ehhez a fiókhoz egyszerű jelszót kell használnia, a hiba ismert, de előfordulhat, hogy egyszerűen nem működik összetett jelszóval, akkor egy adott esetet kell ellenőriznie.
Ezt követően létrehozunk egy kulcsfájlt a kerberos számára, megnyitunk egy parancssort rendszergazdai jogokkal a tartományvezérlőn, és beírjuk:
# 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
Ahol feltüntetjük az FQDN pfSense-ünket, ügyeljünk a kis- és nagybetűk betartására, a mapuser paraméterbe írjuk be a domain fiókunkat és annak jelszavát, és crypto-ban kiválasztjuk a titkosítási módot, én az rc4-et használtam a munkához és az -out mezőben kiválasztjuk, hogy hol elküldi a kész kulcsfájlunkat.
A kulcsfájl sikeres elkészítése után elküldjük a pfSense-ünknek, ehhez a Fart használtam, de ezt megteheti parancsokkal és putty-val is, vagy a pfSense webes felületén keresztül a "Diagnosztika parancssor" részben.
Most már szerkeszthetjük/létrehozhatjuk az /etc/krb5.conf fájlt
ahol az /etc/krb5.keytab az általunk létrehozott kulcsfájl.
A kerberos működését mindenképpen nézd meg kinit segítségével, ha nem megy, akkor nincs értelme tovább olvasni.
A Squid hitelesítés és a hozzáférési lista konfigurálása hitelesítés nélkül
A kerberos sikeres konfigurálása után rögzítjük a Squid-ünkhöz.
Ehhez lépjen a ServicesSquid Proxy Server oldalra, és a fő beállításokban menjen le a legaljára, ahol megtaláljuk a "Speciális beállítások" gombot.
Az Egyéni beállítások (hitelesítés előtt) mezőbe írja be:
#Хелперы
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
ahol auth_param tárgyalási program /usr/local/libexec/squid/negotiate_kerberos_auth - kiválasztja a szükséges hitelesítési kerberos segítőt.
kulcs -s jelentéssel GSS_C_NO_NAME — meghatározza a kulcsfájl bármely fiókjának használatát.
kulcs -k jelentéssel /usr/local/etc/squid/squid.keytab - meghatározza, hogy ezt a kulcstáblát használja. Az én esetemben ez ugyanaz a keytab fájl, amit létrehoztunk, amit bemásoltam a /usr/local/etc/squid/ könyvtárba és átneveztem, mert a squid nem akart barátkozni azzal a könyvtárral, láthatóan nem voltak elég jog.
kulcs -t jelentéssel - egyik sem - letiltja a ciklikus kéréseket a tartományvezérlőhöz, ami nagymértékben csökkenti a terhelést, ha több mint 50 felhasználója van.
A teszt idejére a -d billentyűt is hozzáadhatja - azaz diagnosztika, több napló jelenik meg.
auth_param tárgyalni a gyerekekkel 1000 - meghatározza, hogy hány egyidejű engedélyezési folyamat futtatható
auth_param tárgyalni keep_alive on - nem teszi lehetővé a kapcsolat megszakítását a jogosultsági lánc lekérdezése során
acl auth proxy_auth KÖTELEZŐ - olyan hozzáférés-vezérlési listát hoz létre és igényel, amely tartalmazza a jogosultságon átesett felhasználókat
acl nonauth dstdomain "/etc/squid/nonauth.txt" - tájékoztatjuk a squid-et a nonauth hozzáférési listáról, amely cél tartományokat tartalmaz, amelyekhez mindig mindenki hozzáférhet. Magát a fájlt hozzuk létre, és azon belül a formátumban megadjuk a domaineket
.whatsapp.com
.whatsapp.net
A Whatsappot nem hiába használják példaként - nagyon válogatós a hitelesítéssel rendelkező proxy tekintetében, és nem fog működni, ha a hitelesítés előtt nem engedélyezik.
http_access nonauth engedélyezése - mindenkinek engedélyezni kell a hozzáférést ehhez a listához
http_access deny !auth - megtiltjuk az illetéktelen felhasználók hozzáférését más oldalakhoz
http_access hitelesítés engedélyezése - hozzáférés engedélyezése a jogosult felhasználók számára.
Ez az, maga a squid be van állítva, most itt az ideje elkezdeni a csoportok szerinti szűrést.
A SquidGuard beállítása
Nyissa meg a ServicesSquidGuard proxyszűrőt.
Az LDAP Opciókban megadjuk a kerberos hitelesítéshez használt fiókunk adatait, de a következő formátumban:
CN=pfsense,OU=service-accounts,DC=domain,DC=local
Ha szóközök vagy nem latin karakterek vannak, akkor ezt a teljes bejegyzést szimpla vagy dupla idézőjelek közé kell tenni:
'CN=sg,OU=service-accounts,DC=domain,DC=local'
"CN=sg,OU=service-accounts,DC=domain,DC=local"
Ezután feltétlenül jelölje be ezeket a négyzeteket:
A felesleges DOMAINpfsense levágásához
Most megyünk a Group Acl-be, és összekapcsoljuk a tartomány hozzáférési csoportjainkat, egyszerű neveket használok, mint a group_0, group_1 stb. 3-ig, ahol a 3 csak a fehérlistához való hozzáférést jelenti, a 0 pedig minden lehetséges.
A csoportok a következőképpen kapcsolódnak egymáshoz:
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))
mentsük el a csoportunkat, menjünk a Times-ba, ott létrehoztam egy rést, ami azt jelenti, hogy mindig működjön, most menjen a Célkategóriákba és hozzon létre listákat saját belátásunk szerint, a listák létrehozása után visszatérünk csoportjainkba és a csoporton belül gombokkal kiválasztjuk, hogy ki mehet hol, és ki nem tud hol .
LightSquid és sqstat
Ha a konfigurációs folyamat során a squid beállításaiban egy loopback-et választottunk, és a tűzfalban megnyitottuk a 7445 elérésének lehetőségét a hálózatunkon és magán a pfSense-en is, akkor a Squid Proxy Reports Diagnostics oldalra lépve könnyedén megnyithatjuk az sqstat és a Lighsquid alkalmazást is, az utóbbihoz szükségünk lesz Ugyanitt jöjjön létre egy felhasználónév és jelszó, valamint lehetőség van a design kiválasztására is.
Befejezés
A pfSense egy nagyon hatékony eszköz, amely sok mindenre képes – mind a forgalom proxyja, mind a felhasználói internet-hozzáférés vezérlése csak egy töredéke a teljes funkcionalitásnak, ennek ellenére egy 500 gépes vállalatnál ez megoldotta a problémát és megtakarította proxy vásárlása.
Remélem, hogy ez a cikk segít valakinek megoldani egy olyan problémát, amely a közép- és nagyvállalkozások számára meglehetősen releváns.
Forrás: will.com