Squid හරහා එක් VPN අන්ත ලක්ෂ්යයක්: පටු CONNECT ව්යතිරේකයක්
එක් අනුමත මූලාශ්රයකට Squid හරහා 1194 වරායේ ඇති එක් VPN ද්වාරයකට ළඟා වීමට ඉඩ දෙන්න, ගෝලීය වරාය ආරක්ෂක රඳවා ගන්න, සහ වෙන කිසිවක් නොවිවෘත වූ බව ඔප්පු කරන්න.
Squid එක CONNECT ඉල්ලීමකට ගැළපෙන පළමු http_access පේළියෙන් පිළිතුරු දෙයි, එම පේළිය ප්රතික්ෂේපයක් විය හැක. මෙම එකම කරුණ නිසා VPN අන්ත ලක්ෂ්යයක් සඳහා වන ව්යතිරේකය සාමාන්යයෙන් පළමු උත්සාහයේදීම අසාර්ථක වන්නේ මන්දැයි පැහැදිලි වේ, මන්ද ඉල්ලීම කිසිදා පහළින් කෙනෙකු එකතු කළ අවසරයට ළඟා නොවේ. පටු නිවැරදි කිරීමක් පවතින වරාය ආරක්ෂක රඳවා ගනිමින් සමාලෝචිත මූලාශ්රයක්, ගමනාන්තයක් සහ වරායක් ගැන ඔවුන්ට උගන්වයි. ප්රොක්සියේ අනෙක් සියල්ල පෙර මෙන්ම හැසිරේ.
Squid එක CONNECT ඉල්ලීමක් තීරණය කරන ආකාරය
CONNECT ඉල්ලීමක් සත්කාරකයක් සහ වරායක් නම් කරයි, Squid එක http_access පේළි අනුපිළිවෙලින් ගමන් කරයි, ඉන් එකක් නොගැළපෙන තෙක්. ගැළපෙන ප්රතික්ෂේපයක් විග්රහය වහාම අවසන් කරයි, සේවාලාභියාට ප්රොක්සියෙන් 403 ලැබේ. එබැවින් රීතියක ස්ථානය එහි වචනවලට වඩා වැදගත් වේ. එම පේළියම එක් පියවරක් ඉහළට ගෙන යාම ප්රතිඵලය සම්පූර්ණයෙන්ම වෙනස් කළ හැක.
සම්ප්රදායික ආරක්ෂකයන් Safe_ports වලින් පිටත සියල්ල ප්රතික්ෂේප කරයි, SSL_ports වලින් පිටත CONNECT ප්රතික්ෂේප කරයි. එම නම් ඔබේම වින්යාසයේ අර්ථ දක්වා ඇති ACL වේ, එබැවින් ඒවායේ අන්තර්ගතය ප්රොටෝකෝලයට නොව ඔබට අයත් වේ. බෙදාහැරීමක් Safe_ports ලෙස පුළුල් වරාය පරාසයක් අනුමත කරමින් CONNECT වෙන වෙනම සීමා කළ හැක. වරායක් නිර්මාණයෙන්ම අවහිර කර ඇතැයි උපකල්පනය කිරීමට පෙර සජීවී අගයන් කියවන්න.
ඉල්ලීම ප්රතික්ෂේප කරන සංරචකය ප්රොක්සිය බව තහවුරු කරන්න. Squid විසින් ජනනය කරන 403 එක VPN සේවාදායකයේ TLS අනතුරු ඇඟවීමකට කිසිසේත් සමාන නොවේ, දෙකම එක් ගැටලුවකට එකතු කිරීම පළමු පැය වැය කරයි. ඉල්ලීම සඳහා ප්රවේශ ලොග් පේළිය පරීක්ෂා කරන්න, එය ක්රියාව සහ එය ජනනය කළ රීතිය දෙකම වාර්තා කරයි.
තනි වෙන් වූ ACL තුනක් වෙනුවට එක් ඒකාබද්ධ ගැළපීමක් ගොඩනගන්න
ව්යතිරේකය කරුණු තුනකින් ගොඩනගන්න: අනුමත මූලාශ්ර පරාසයක්, අනුමත ගමනාන්ත ලිපිනයක් සහ අන්ත ලක්ෂ්යය සවන් දෙන එකම වරාය. වෙන් වූ ACL දෙකක් සහ එක් ඒකාබද්ධ ගැළපීමක් ඉතා වෙනස් ප්රතිපත්තියක් ලබා දෙයි, මන්ද විග්රහ කරන්නේ ඒකාබද්ධයයි. ඒකාබද්ධ ACL එක එය අනුමත කරන දේ අනුව නම් කරන්න, එය රැගෙන යන ක්රමය අනුව නොව.
පහත ආකෘතිය සමාලෝචිත අගයන්ගෙන් ප්රතිස්ථාපනය කළ යුතු ලේඛන පරාස භාවිතා කරයි. Squid මෙම නම් කිසිවක් තමන් සඳහා වෙන් නොකරයි, එබැවින් ඒවා තෝරා ගැනීම සහ ස්ථාවරව තබා ගැනීම ඔබේ කාර්යයයි. මෙම වට්ටෝරුව all-of කණ්ඩායමට සහාය දෙන ලේඛනගත වින්යාසයක් සහිත Squid 6 සහ 7 ට පමණක් සීමා වේ. වර්තමාන යොමුව එම නියෝග Squid 8 හි නොමැති ලෙස සලකුණු කරයි, එබැවින් මෙය සංක්රමණ මාර්ගයක් නොව අනුවාදයට බැඳුණු වට්ටෝරුවක් ලෙස සලකන්න, යෙදීමට පෙර ඔබේම අනුවාදයේ යොමුවේ නියෝගය පරීක්ෂා කරන්න.
acl pvpn_src src 192.0.2.128/25
acl pvpn_dst dst 198.51.100.77/32
acl pvpn_port port 1194
acl pvpn_ok all-of CONNECT pvpn_port pvpn_dst pvpn_srcall-of කණ්ඩායම සෑම සාමාජිකයෙක්ම ගැළපෙන විට පමණක් ගැළපේ, එනම් මූලාශ්රය, ගමනාන්තය සහ වරාය එක් පේළියක පරීක්ෂා කෙරේ. කණ්ඩායම තනිව කිසිවක් ලබා නොදෙයි, කරුණු තුනෙන් දෙකක් සමඟ පමණක් ගැළපෙන ඉල්ලීමකට එය තෘප්තිමත් කළ නොහැක. එම ගුණය නිසා පසුව කෙනෙකු දෙවන ද්වාරයක් එකතු කළ විටද ව්යතිරේකය පටුව පවතී. එක්කෝ නව ගමනාන්තය හිතාමතා එකතු කෙරේ, නැතහොත් ඉල්ලීම මුල් ආරක්ෂකයන් වෙත ආපසු යයි.
වරාය ආරක්ෂක ඉවත් නොකර නමන්න
ඒවායේ වර්තමාන ස්ථානවල, සම්ප්රදායික ආරක්ෂක පේළි දෙක මෙසේ පෙනේ. ඒවා සාමාන්යයෙන් සත්යාපනයෙන් පසුව සහ සියල්ලට අවසර දෙන ප්රතිපත්ති පේළිවලට පෙර පිහිටයි.
http_access deny !Safe_ports
http_access deny CONNECT !SSL_portsඑක් එක් පේළියට ප්රතික්ෂේපිත ඒකාබද්ධ ගැළපීම එකතු කරන්න, එවිට ගැළපෙන ව්යතිරේකයක් එසේ නොමැති නම් එය ප්රතික්ෂේප කරන ආරක්ෂකයෙන් ගැලවේ. වෙනස් වන්නේ ආරක්ෂක පේළි පමණක් වන අතර, එක් එක් පේළියට එක් අමතර කොන්දේසියක් පමණි.
http_access deny CONNECT !SSL_ports !pvpn_ok
http_access deny !Safe_ports !pvpn_okඑක් ප්රවේශ පේළියක කොන්දේසි ඒකාබද්ධ වේ, එබැවින් පේළිය දැන් ප්රතික්ෂේප කරන්නේ මුල් පරීක්ෂාවේද සහ ව්යතිරේකයේද යන දෙකෙහිම අසාර්ථක වන ඉල්ලීම් පමණි. අනුමත අන්ත ලක්ෂ්යය සඳහා ඉල්ලීම ඉදිරියට යයි, අනෙක් සෑම ඉල්ලීමක්ම පැරණි වරාය හැසිරීම රඳවා ගනී. මෙය වරාය ගෝලීය SSL_ports ලැයිස්තුවකට එකතු කිරීමට වඩා පටු ය, එය එම වරාය සෑම ගමනාන්තයකටම අනුමත කරනු ඇත. වරාය දැනටමත් එම ලැයිස්තුවේ තිබේ නම්, මෙම ACL කිසිවක් පටු නොකරයි, පැරණි, පුළුල් අවසරය අනෙක් ගමනාන්තවලට තවමත් අදාළ වේ, එබැවින් ව්යතිරේකය වරාය විවෘත කළ බව පැවසීමට පෙර සජීවී ලැයිස්තුව කියවන්න. එය ආපසු හැරවිය හැකි ද වේ, මන්ද පේළි දෙකක් ඒවායේ පෙර ස්වරූපයට ආපසු යයි. ප්රවේශ පාලන යොමුව මෙම වෙනස්කම් රඳා පවතින අනුපිළිවෙල සහ සම්ප්රදායික ආරක්ෂකයන් ලේඛනගත කරයි.
ව්යතිරේකය නොතැබිය යුතු තැන
පෙළඹවීම වන්නේ ආරක්ෂකයන්ට ඉහළින් අවසරයක් තබා අවසන් කිරීමයි. එම ස්ථානගත කිරීම ක්රියාකාරී වින්යාසයක ඉහළට ළඟාවන සත්යාපන සහ දේශීය ගමනාන්ත ආරක්ෂණ ද මඟ හරියි. ප්රතිඵලය පටු ව්යතිරේකයක් නොව, ඉහළින් අදහසක් ඇති සිදුරකි. ඕනෑම නව අවසරයක් සේවාලාභී ප්රතිපත්තියේ අනෙක් කොටස් මෙන්ම එකම සමාලෝචිත අදියරේ තබන්න.
වරාය ආරක්ෂකයන්ට පසුව ඉල්ලීමට තවමත් අවශ්ය දේ පරීක්ෂා කරන්න. සත්යාපිත ගිණුමක්, අනුමත සේවාලාභී ලිපිනයක් සහ ගමනාන්ත ප්රතිපත්තියක් තවමත් අදාළ වේ, ව්යතිරේකය ඒවායින් කිසිවක් වෙනස් නොකරයි. ඔබේ ප්රොක්සිය දැනටමත් අනුමත ගිණුමට අත්තනෝමතික ගමනාන්තවලට ළඟා වීමට ඉඩ දෙන්නේ නම්, වරාය ආරක්ෂකය කිසිදා සැබෑ පාලනය නොවීය.
අන්ත ලක්ෂ්යය ඇත්තෙන්ම TCP දැයි සලකා බලන්න. CONNECT ව්යතිරේකයක් TCP ප්රවාහ රැගෙන යයි, UDP භාවිතා කරන OpenVPN පැතිකඩක් එය හරහා ළඟා විය හැකි නොවනු ඇත. සේවාදායකය එසේ සවන් දෙන්නේ නම් සහ ක්රියාකරු හැසිරීමේ වෙනස පිළිගන්නේ නම් පමණක් පැතිකඩ TCP ලෙස වෙනස් කරන්න.
විග්රාහකය සහ සැබෑ ඉල්ලීමක් සමඟ මායිම පරීක්ෂා කරන්න
නැවත පූරණය කිරීමට පෙර වින්යාසය විග්රහ කරන්න, එසේ කරන අතරතුර දෙවන සැසියක් විවෘතව තබන්න. නැවත පූරණයේදී වාක්ය ව්යුහ දෝෂයක් ප්රොක්සිය පැරණි වින්යාසයේ තැබිය හැක හෝ නව එක සම්පූර්ණයෙන්ම ප්රතික්ෂේප කළ හැක. විග්රාහකය ප්රතික්ෂේප කළ පේළිය වාර්තා කරයි, එය සේවාලාභී දෝෂය පවසන දෙයට වඩා වැඩි ය.
පසුව නැවත පූරණය කර අනුමත මූලාශ්රයකින් ප්රොක්සිය හරහා සැබෑ CONNECT එකක් යවන්න. විග්රාහකය ධාවනය කිරීම පළමුව එයි, මන්ද ටයිප් දෝෂයක් සහිත නැවත පූරණයක් ප්රතිපත්තිය ගැන ඔබට කිසිවක් උගන්වන්නේ නැත.
squid -k parse
squid -k reconfigure
curl -v -p -x http://proxy.lab.internal:3128 https://vpn.lab.internal:1194/ --max-time 5අවස්ථා තුනක් අත්හදා බලන්න: අනුමත මූලාශ්රය සහ ගිණුම, අනුමත නොකළ මූලාශ්රය, සහ එකම වරායේ වෙනත් ගමනාන්තයක්. තුන්වන අවස්ථාව ව්යතිරේකය පටු බව ඔප්පු කරයි, මන්ද එය ගමනාන්ත ගැළපීමකින් තොරව වරාය භාවිතා කරයි. සේවාලාභී පණිවිඩය විශ්වාස කරනවාට වඩා තුනටම ප්රවේශ ලොගය කියවන්න. සාර්ථක CONNECT එකක් TCP ප්රවාහයක් පමණක් ස්ථාපිත කරයි, ඊට වඩා නොවේ, එබැවින් VPN අතට අත දීම වෙනම පරීක්ෂණයක් ලෙසම පවතී.