වසම් අවසරය සහිත ව්‍යවසාය සඳහා නොමිලේ ප්‍රොක්සි සේවාදායකය

වසම් අවසරය සහිත ව්‍යවසාය සඳහා නොමිලේ ප්‍රොක්සි සේවාදායකය

pfSense+Squid with https filtering + Active Directory group filtering සමග තනි පුරනය (SSO)

කෙටි පසුබිම

පරිශීලකයින්ට අමතර මුරපද කිසිවක් ඇතුළත් නොකිරීමට සහ වෙබ් අතුරු මුහුණතෙන් පරිපාලනය කිරීමට හැකි වන පරිදි AD වෙතින් කණ්ඩායම් විසින් අඩවි වලට (https ඇතුළුව) ප්‍රවේශය පෙරීමේ හැකියාව සහිත ප්‍රොක්සි සේවාදායකයක් ක්‍රියාත්මක කිරීමට සමාගමට අවශ්‍ය විය. හොඳ යෙදුමක්, එහෙම නේද?

නිවැරදි පිළිතුර වනුයේ Kerio Control හෝ UserGate වැනි විසඳුම් මිලදී ගැනීමයි, නමුත් සෑම විටම මෙන් මුදල් නැත, නමුත් අවශ්‍යතාවයක් ඇත.

හොඳ පැරණි දැල්ලන් ගලවා ගැනීමට පැමිණෙන්නේ මෙහිදීය, නමුත් නැවතත් - මට වෙබ් අතුරු මුහුණතක් ලබා ගත හැක්කේ කොතැනින්ද? SAMS2? සදාචාරාත්මකව යල් පැන ගිය. මෙතනදි තමයි pfSense උදව්වට එන්නේ.

විස්තර

Squid proxy සේවාදායකය වින්‍යාස කරන්නේ කෙසේද යන්න මෙම ලිපියෙන් විස්තර කෙරේ.
පරිශීලකයින්ට අවසර දීමට Kerberos භාවිතා කරනු ඇත.
වසම් කණ්ඩායම් අනුව පෙරීමට SquidGuard භාවිතා කරනු ඇත.

Lightsquid, sqstat සහ අභ්යන්තර pfSense අධීක්ෂණ පද්ධති අධීක්ෂණය සඳහා භාවිතා කරනු ඇත.
තනි පුරනය වීමේ (SSO) තාක්‍ෂණය හඳුන්වාදීම හා සම්බන්ධ පොදු ගැටළුවක් ද එය විසඳනු ඇත, එනම් ඔවුන්ගේ පද්ධති ගිණුම සමඟ මාලිමා ගිණුම යටතේ අන්තර්ජාලයේ සැරිසැරීමට උත්සාහ කරන යෙදුම්.

Squid ස්ථාපනය කිරීමට සූදානම් වෙමින්

pfSense පදනම ලෙස ගනු ලැබේ, ස්ථාපන උපදෙස්.

එහි ඇතුළත අපි වසම් ගිණුම් භාවිතයෙන් ෆයර්වෝල් එකේම සත්‍යාපනය සංවිධානය කරමු. උපදෙස්

ඉතා වැදගත්!

ඔබ Squid ස්ථාපනය කිරීම ආරම්භ කිරීමට පෙර, ඔබ DNS සේවාදායකය pfsense වලින් වින්‍යාස කර, අපගේ DNS සේවාදායකයේ ඒ සඳහා A වාර්තාවක් සහ PTR වාර්තාවක් සාදා, වසම් පාලකයේ වේලාවට වඩා වේලාව වෙනස් නොවන පරිදි NTP වින්‍යාසගත කළ යුතුය.

ඔබේ ජාලයේ, pfSense හි WAN අතුරුමුහුණත අන්තර්ජාලයට යාමට හැකියාව ලබා දෙන්න, සහ දේශීය ජාලයේ පරිශීලකයින්ට 7445 සහ 3128 වරායන් ඇතුළුව LAN අතුරුමුහුණතට සම්බන්ධ වීමට (මගේ නඩුවේදී 8080).

සියල්ල සූදානම්ද? PfSense මත අවසරය සඳහා වසම සමඟ LDAP සම්බන්ධතාවය ස්ථාපිත කර ඇති අතර කාලය සමමුහුර්ත කර තිබේද? මහා. ප්රධාන ක්රියාවලිය ආරම්භ කිරීමට කාලයයි.

ස්ථාපනය සහ පූර්ව වින්යාසය

Squid, SquidGuard සහ LightSquid "System / Package Manager" කොටසේ pfSense පැකේජ කළමනාකරු වෙතින් ස්ථාපනය කෙරේ.

සාර්ථක ස්ථාපනයකින් පසු, "සේවා / දැල්ලන් ප්‍රොක්සි සේවාදායකය /" වෙත ගොස්, ප්‍රථමයෙන්, දේශීය හැඹිලි පටිත්තෙහි, හැඹිලි වින්‍යාස කරන්න, මම සියල්ල 0 ලෙස සකසමි, මන්ද මම හැඹිලි අඩවි වල වැඩි ප්‍රයෝජනයක් දකින්නේ නැහැ, බ්‍රව්සර් මේ සමඟ විශාල කාර්යයක් කරයි. සැකසීමෙන් පසු, තිරයේ පතුලේ ඇති "සුරකින්න" බොත්තම ඔබන්න, මෙය අපට මූලික ප්‍රොක්සි සැකසුම් කිරීමට අවස්ථාව ලබා දෙනු ඇත.

ප්රධාන සැකසුම් පහත පරිදි වේ:

වසම් අවසරය සහිත ව්‍යවසාය සඳහා නොමිලේ ප්‍රොක්සි සේවාදායකය

පෙරනිමි වරාය 3128, නමුත් මම 8080 භාවිතා කිරීමට කැමැත්තෙමි.

ප්‍රොක්සි අතුරුමුහුණත පටිත්තෙහි තෝරාගත් පරාමිති අපගේ ප්‍රොක්සි සේවාදායකයට සවන් දෙන්නේ කුමන අතුරුමුහුණතද යන්න තීරණය කරයි. LAN සහ WAN එකම දේශීය උපජාලයක තිබිය හැකි වුවද, මෙම ෆයර්වෝලය අන්තර්ජාලයේ WAN අතුරු මුහුණතක් ලෙස පෙනෙන ආකාරයට ගොඩනගා ඇති බැවින්, මම ප්‍රොක්සි සඳහා LAN භාවිතා කිරීම නිර්දේශ කරමි.

sqstat වැඩ කිරීමට Loopback අවශ්‍ය වේ.

පහතින් ඔබට විනිවිද පෙනෙන (විනිවිද පෙනෙන) ප්‍රොක්සි සැකසුම් මෙන්ම 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 භාවිතා කළෙමි, නමුත් ඔබට මෙය විධාන සහ පුට්ටි සමඟ හෝ "Diagnostics Command Line" කොටසේ pfSense වෙබ් අතුරු මුහුණත හරහාද කළ හැකිය.

දැන් අපට /etc/krb5.conf සංස්කරණය/නිර්මාණය කළ හැක

වසම් අවසරය සහිත ව්‍යවසාය සඳහා නොමිලේ ප්‍රොක්සි සේවාදායකය

එහිදී /etc/krb5.keytab යනු අප විසින් නිර්මාණය කරන ලද ප්‍රධාන ගොනුවයි.

kinit භාවිතයෙන් kerberos වල ක්‍රියාකාරිත්වය පරීක්ෂා කිරීමට වග බලා ගන්න, එය ක්‍රියා නොකරන්නේ නම්, වැඩිදුර කියවීමේ තේරුමක් නැත.

Authentication නොමැතිව Squid Authentication සහ Access List වින්‍යාස කිරීම

kerberos සාර්ථකව වින්‍යාස කර ඇති පසු, අපි එය අපගේ දැල්ලන් වෙත සවි කරන්නෙමු.

මෙය සිදු කිරීම සඳහා, ServicesSquid Proxy Server වෙත ගොස් ප්‍රධාන සැකසුම් වලදී ඉතා පහළට යන්න, එහිදී අපට "උසස් සැකසුම්" බොත්තම හමුවනු ඇත.

අභිරුචි විකල්ප (Auth ට පෙර) ක්ෂේත්රය තුළ, ඇතුල් කරන්න:

#Хелперы
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 negotiate keep_alive on - අවසර දාමයේ ඡන්ද විමසීමේදී සම්බන්ධතාවය බිඳ දැමීමට ඉඩ නොදේ
acl auth proxy_auth අවශ්‍යයි - අවසරය සමත් වූ පරිශීලකයින් ඇතුළත් ප්‍රවේශ පාලන ලැයිස්තුවක් නිර්මාණය කර අවශ්‍ය වේ
acl nonauth dstdomain "/etc/squid/nonauth.txt" - ගමනාන්ත වසම් අඩංගු, සෑම කෙනෙකුටම සැමවිටම ප්‍රවේශ වීමට අවසර දෙන, nonauth ප්‍රවේශ ලැයිස්තුව ගැන අපි දැල්ලන්ට දන්වන්නෙමු. අපි ගොනුව ම සාදා, එය තුළ අපි ආකෘතියෙන් වසම් ඇතුළත් කරන්නෙමු

.whatsapp.com
.whatsapp.net

උදාහරණයක් ලෙස Whatsapp නිෂ්ඵල ලෙස භාවිතා නොවේ - එය සත්‍යාපනය සමඟ ප්‍රොක්සි ගැන ඉතා අච්චාරු වන අතර එය සත්‍යාපනයට පෙර ඉඩ නොදෙන්නේ නම් ක්‍රියා නොකරනු ඇත.
http_access noauth ඉඩ දෙන්න - සෑම කෙනෙකුටම මෙම ලැයිස්තුවට ප්‍රවේශ වීමට ඉඩ දෙන්න
http_access deny !auth - අනවසර පරිශීලකයින්ට වෙනත් වෙබ් අඩවි වලට ප්‍රවේශ වීම අපි තහනම් කරමු
http_access අවසර auth - බලයලත් පරිශීලකයින්ට ප්රවේශ වීමට ඉඩ දෙන්න.
එපමණයි, දැල්ලන්ම වින්‍යාස කර ඇත, දැන් කණ්ඩායම් අනුව පෙරීම ආරම්භ කිරීමට කාලයයි.

SquidGuard වින්‍යාස කිරීම

ServicesSquidGuard Proxy Filter වෙත යන්න.

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 කපා හැරීමට ඩොමේන්මුළු පද්ධතියම ඉතා සංවේදී වන .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

වින්‍යාස කිරීමේ ක්‍රියාවලියේදී අපි දැල්ලන් සැකසුම් තුළ ලූප්බැක් එකක් තෝරාගෙන ෆයර්වෝලයේ 7445 වෙත පිවිසීමේ හැකියාව අපගේ ජාලයේ සහ pfSense මත විවෘත කළහොත්, Squid Proxy Reports Diagnostics වෙත යන විට, අපට පහසුවෙන් sqstat සහ Lighsquid දෙකම විවෘත කළ හැකිය. දෙවැන්න සඳහා අපට අවශ්‍ය වනු ඇත්තේ එම ස්ථානයේම, පරිශීලක නාමයක් සහ මුරපදයක් ඉදිරිපත් කරන්න, තවද මෝස්තරයක් තෝරා ගැනීමටද අවස්ථාව තිබේ.

සම්පූර්ණ කිරීම

pfSense යනු බොහෝ දේ කළ හැකි ඉතා ප්‍රබල මෙවලමකි - රථවාහන ප්‍රොක්සි කිරීම සහ අන්තර්ජාලයට පරිශීලක ප්‍රවේශය පාලනය කිරීම යන දෙකම සමස්ත ක්‍රියාකාරීත්වයේ කොටසක් පමණි, කෙසේ වෙතත්, යන්ත්‍ර 500 කින් යුත් ව්‍යවසායයක, මෙය ගැටළුව විසඳා ඉතිරි කර ඇත. ප්‍රොක්සියක් මිලදී ගැනීම.

මධ්‍යම හා විශාල ව්‍යවසායන් සඳහා තරමක් අදාළ වන ගැටළුවක් විසඳීමට මෙම ලිපිය යමෙකුට උපකාරී වනු ඇතැයි මම බලාපොරොත්තු වෙමි.

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න