ප්‍රවේශ ලොගයේ සෑම පේළියක්ම එකම loopback ලිපිනය පෙන්වයි, නමුත් පිටුවම පූරණය වන අතර සහතිකය නිවැරදිව තහවුරු වේ. ළඟා විය නොහැකි යන අර්ථයෙන් කිසිවක් කැඩී නැත, එබැවින්ම මෙම තත්ත්වය මාස ගණනක් පවතී. කැඩී ඇත්තේ ආරෝපණයයි: වෙබ් පසුපස කොටස සම්බන්ධතාවය යැවූ පිම්මේ ලිපිනය සටහන් කරයි, ලොගය විශ්වාස කළ සෑම පසු විසඳුමක්ම එම වැරදි පිළිතුරම උරුම විය.

පහත පරීක්ෂණ කේබලයේ සිට ඇතුළට යයි. ඔබ දකින අගය පැහැදිලි කරන පළමු පරීක්ෂණයේදී නවතින්න, මන්ද සෑම ඊළඟ පියවරක්ම පෙර පියවර දැනටමත් සත්‍ය යැයි උපකල්පනය කරයි. ඒවායින් කිසිවක් ඉදිරිපස සැකසුම අනුමාන කිරීම ඉල්ලා නොසිටියි.

ලොග් පේළිය නොව සම්බන්ධතා දෙක අනුගමනය කරන්න

Port-Share එක් TCP ශ්‍රෝතාවක් මත ප්‍රොටෝකෝල දෙකක් බහුගුණ කරයි. OpenVPN එන සම්බන්ධතාවයේ පළමු බයිට් පරීක්ෂා කර, එය තම ප්‍රොටෝකෝලයට සමාන නම් එය රඳවා ගනී, අනෙක් සියල්ල දෙවන ගමනාන්තයට භාර දෙයි. එම ගමනාන්තය සාමාන්‍යයෙන් එකම සත්කාරකයේ වෙබ් සේවාදායකය වන බැවින් වෙබ් සේවාදායකය පිළිගත් සොකට්ටුවේ සහකරු OpenVPN ක්‍රියාවලිය වේ.

ss -ltnp 'sport = :443'
ss -tnp 'dport = :8080'

පළමු විධානය පෙන්වන්නේ පොදු ශ්‍රෝතාව කා සතුද යන්නයි. දෙවැන්න පසුපස කොටසේ තොටුපොළට පැමිණෙන සම්බන්ධතා පෙන්වයි, ඒවායේ සහකරු ලිපිනය ප්‍රවේශ ලොගය මුද්‍රණය කරන ලිපිනයයි. එම සහකරු loopback නම් ලොගය නිවැරදි වන අතර තොරතුරු එක් ස්තරයක් පෙරම නැති වී ඇත. ලොග් ක්ෂේත්‍රය නම් වෙනස් කිරීම හෝ සේවාලාභී IP මොඩියුලය සක්‍රීය කිරීම සම්බන්ධතාවය කිසිදා ගෙන නොගිය ලිපිනයක් ආපසු නොගෙනෙයි.

මෙය අනෙක් සියල්ල තීරණය කරන පරීක්ෂණයයි. පසුපස කොටසේ සහකරු බ්‍රව්සරයේ ලිපිනය නම්, තොටුපොළ බෙදාගැනීම ඔබේ ගැටලුව නොවේ, ලොග් ආකෘතියයි.

ප්‍රවාහන යැවීම යනු ශීර්ෂක එන්නත් කිරීම නොවේ

යවන්නා බයිට් ගෙනයයි. එය HTTP විග්‍රහ නොකරන බැවින්, කිසිදා ඉල්ලීමක් ලෙස නොකියවන ඉල්ලීමකට ශීර්ෂකයක් ඇතුළු කළ නොහැක, ස්පර්ශ නොකර යවන TLS ප්‍රවාහයකට කිසිවක් එකතු කළ නොහැක. ප්‍රොක්සි ශීර්ෂකයක් බලාපොරොත්තු වන මොඩියුලයක් කිසිදු අංගයක් නිපදවන එකක් එනතුරු රැඳී සිටියි.

මූල ලිපිනය ගෙනයා හැකි ක්‍රම දෙකක් ඇති අතර දෙකටම දෙපස එකඟතාව අවශ්‍යයි. PROXY ප්‍රොටෝකෝලය සම්බන්ධතාවයේ ආරම්භයට කුඩා ශීර්ෂකයක් එකතු කරන අතර පසුපස කොටස එය බලාපොරොත්තු වන ලෙස වින්‍යාස කළ යුතුය; එය බලාපොරොත්තු නොවන පසුපස කොටස එම බයිට් ඉල්ලීමේ ආරම්භය ලෙස සලකා අවුල් සහගත ලෙස අසාර්ථක වේ. X-Forwarded-For වැනි විශ්වාසදායක ප්‍රොක්සි ශීර්ෂක HTTP තේරුම් ගන්නා ප්‍රොක්සියක් ඒවා සකසන විට සහ කුමන සහකරුවන්ට ඒවා තහවුරු කළ හැකිදැයි පසුපස කොටසට කියන විට ක්‍රියා කරයි.

දෙකෙන් කිසිවක් ස්වයංක්‍රීය නොවන අතර කිසිවක් පෙරනිමියෙන් ආරක්ෂිත නොවේ. එන ඕනෑම යැවූ ශීර්ෂකයක් විශ්වාස කරන පසුපස කොටස සේවාලාභියාට තම ලිපිනය තෝරාගැනීමට ඉඩ දෙන අතර එය ලොගයේ ඇති අනිවාර්යතාවක් ප්‍රවේශ පාලනය මඟහැරීමක් බවට පත් කරයි. නිෂ්පාදන මාර්ගයක කිසිදු ශීර්ෂකයක් විශ්වාස කිරීමට පෙර දර්ශනය එක් වරක් වේදිකා සත්කාරකයක ධාවනය කරන්න.

curl -sS -H 'X-Forwarded-For: 127.0.0.1' https://site.example.com/health
grep -F '127.0.0.1' /var/log/nginx/access.log | tail -n 3

විකල්ප මූලාශ්‍ර සිතියම් බහාලුම

තොටුපොළ බෙදාගැනීමට විකල්ප බහාලුම් තර්කයක් ඇති අතර එය විශේෂාංගය ක්‍රියාත්මක කර ඇති වේදිකාවල මූල මූලාශ්‍ර ලිපිනය සහ යැවීමේ සම්බන්ධතාවය අතර සිතියම්කරණයක් සටහන් කරයි. වෙබ් පැත්ත එම සිතියම්කරණය බලාපොරොත්තු වේ; එය ශීර්ෂකයක් නොවන අතර ඉල්ලීමට එන්නත් නොකෙරේ.

එම නිර්මාණය දැනගැනීම වටී, මන්ද බාහිරව එකම ඉදිරිපස වින්‍යාසයක් තිබියදීත් සමහර යෙදවීම් සැබෑ ලිපින වාර්තා කරන අතර තවත් ඒවා නොකරන්නේ ඇයිද යන්න එය පැහැදිලි කරයි. වෙනස ලැබෙන පැත්තේ ඇති අතර එය සාමාන්‍යයෙන් ඇසුරුම් කළ වෙබ් සේවාදායක බොහොමයක් පෙරනිමියෙන් සක්‍රීය නොකරන මොඩියුලයක හෝ පැච් එකක පවතී. ඔබේ වෙබ් සේවාදායකයේ ලේඛනවල එය ලබා දෙන නිශ්චිත කොක්ක කියවා, උපකල්පනය නොකර මොඩියුලය පූරණය වී ඇති බව තහවුරු කරන්න.

මෙම මාර්ගය ගන්නවා නම්, එය කොටස් දෙකක ඒකාබද්ධතාවයක් ලෙස සලකන්න: යවන්නා ලියන සිතියම්කරණය සහ පසුපස කොටස කරන සෙවීම. දෙකම තහවුරු කර, බහාලුම නැවත ආරම්භයෙන් පසුවද පවතින බවත් කාර්යබහුල ශ්‍රෝතාවක සීමාවකින් තොරව නොවැඩෙන බවත් තහවුරු කරන්න.

ලිපිනය සහතික කරන්නේ කුමන අංගයදැයි තීරණය කරන්න

වින්‍යාසය වෙනස් කිරීමට පෙර, සේවාලාභී ලිපිනයක් තහවුරු කිරීමට අවසර ඇති අංගය සහ එය විශ්වාස කිරීමට අවසර ඇති අංග නම් කරන්න. ලියා ඇති එක් පිළිතුරක් ස්තර තුනක් එකිනෙකට වෙනස් මූලාශ්‍ර විශ්වාස කරන සුපුරුදු අපගමනය වළක්වයි.

නිර්මාණ තුනක් බොහෝ අවශ්‍යතා ආවරණය කරයි. පොදු ශ්‍රෝතාව සහ වෙබ් ශ්‍රෝතාව වෙන් කර තබන්න, එවිට වෙබ් සේවාදායකය සැබෑ සහකරුවන් දකින අතර ආරෝපණ ගැටලුවක් නොපවතී. ඉදිරියෙන් HTTP තේරුම් ගන්නා ප්‍රතිලෝම ප්‍රොක්සියක් තබා, ඉල්ලීම එහිම අවසන් කරන්න හෝ විග්‍රහ කරන්න, එම ප්‍රොක්සිය පමණක් විශ්වාස කරන පසුපස කොටසක් සඳහා යැවූ ශීර්ෂකයක් සැකසීමට ඉඩ දෙන්න. නැතහොත් තොටුපොළ බෙදාගැනීම තබාගෙන ලොග පිම්ම පෙන්වන බව පිළිගන්න, ප්‍රවේශ නීති ලිපිනයට එරෙහිව නොව යෙදුම් අනන්‍යතාවයට එරෙහිව ලියැවේ.

ක්‍රියා නොකරන දෙය නම් යැවූ loopback ලිපිනය ඉල්ලීම මෙම යන්ත්‍රයේ ඇති වූ බවට සාක්ෂියක් ලෙස සැලකීමයි. එම අනුමානය හරියටම ප්‍රතිවිරුද්ධයි: ලිපිනය පවතින්නේම දේශීය අංගයක් සම්බන්ධතාවය සෑදූ නිසාය. එසේ ලියූ නීතියක් ශ්‍රෝතාවට ළඟා විය හැකි ඕනෑම අයෙකු පිළිගනී.

පිටුව නොව නීතිය පරීක්ෂා කරන්න

පූරණය වන පිටුව යැවීමේ මාර්ගය ක්‍රියා කරන බව සාධනය කරන අතර ආරෝපණය ගැන කිසිවක් නොකියයි. ලිපිනයේ පරිභෝජකයා පරීක්ෂා කරන්න: ප්‍රවේශ නීතිය, වේග සීමාව, විගණන සටහන, භූගෝලීය සෙවීම.

curl -sS -o /dev/null -w '%{http_code}\n' https://site.example.com/
tail -n 5 /var/log/nginx/access.log
grep -c '' /var/log/nginx/access.log

අවසර ලත් බාහිර ඉල්ලීමක් ඉදිරිපස සහ පසුපස යන දෙකෙහිම වාර්තා සමඟ සසඳා, ප්‍රතික්ෂේප කළ යුතු නීතිය තවමත් ප්‍රතික්ෂේප කරන බවත් පිළිගත යුතු නීතිය තවමත් පිළිගන්නා බවත් තහවුරු කරන්න. ලොග් පේළිය නිවැරදි වුවත් නීතිය තවමත් සියල්ලන් දේශීය ලෙස සලකා හැසිරෙනවා නම්, නීතිය ඔබ නිවැරදි කළ ක්ෂේත්‍රයට වඩා වෙනත් ක්ෂේත්‍රයක් කියවයි.

යෙදවීම් සටහන්වල ආරෝපණ දාමය ලිවීමෙන් අවසන් කරන්න: කුමන ශ්‍රෝතාව, කුමන යවන්නා, කුමන ශීර්ෂකය හෝ සිතියම්කරණය, සහ කුමන පසුපස කොටස එය විශ්වාස කිරීමට වින්‍යාස කර ඇත. ලොග් පේළියක් කියවන ඊළඟ පුද්ගලයාට හතරම අවශ්‍ය වන අතර එම සටහන නොමැති වීම නිසාම එකම ටිකට් වසරකට පසු නැවත විවෘත වේ. එය චැට් තන්තුවක නොව වින්‍යාසය අසල තබන්න.

අදාළ ලිපි