Docker තුළ PPTP සත්යාපනය වේ නමුත් ට්රැෆික් ගෙනයන්නේ නැත
PPTP ට පාලනය සඳහා TCP 1723 සහ ගෙනයන දත්ත සඳහා GRE අවශ්ය වේ. කන්ටේනරයක conntrack සහායක බොහෝ විට නොමැති බැවින් පිවිසීම ක්රියා කරයි, අනෙක කිසිවක් නොවේ.
සේවාදායකය සත්යාපනය කරයි, PPP ලිපිනයක් සාකච්ඡා කරයි, ඉන්පසු කිසිවක් චලනය නොවේ. Ping අසාර්ථක වේ, බ්රව්සරය අසාර්ථක වේ, කන්ටේනරය සෑම විටම සම්බන්ධ ලෙස පෙනේ. මෙම රටාව භාවිත මාර්ග වගුවේ ගැටලුවක් නොවේ, මන්ද භාවිත මාර්ග ගැටලු සාමාන්යයෙන් පාලන සම්බන්ධතාවය ද කඩයි. එය ගෙනයන දත්තවල මාර්ගයයි, සහ PPTP තුළ ගෙනයන දත්ත දැන් සාර්ථක වූ ප්රොටෝකෝලයට වඩා වෙනස් ප්රොටෝකෝලයකි.
වැඩිම කාලය ඉතිරි කරන අනුපිළිවෙලින් පරීක්ෂණ පහක්.
පරීක්ෂණය 1: පාලන නාලිකාව ගෙනයන දත්තවලින් වෙන් කරන්න
PPTP TCP 1723 හරහා සත්යාපනය කර පසුව PPP දත්ත GRE, IP ප්රොටෝකෝලය 47 තුළ ගෙනයයි. GRE TCP හෝ UDP නොවේ, එබැවින් පාලන වරාය යොමු කරන සෑම නියමයක්ම ඒ ගැන කිසිවක් නොකියයි. 1723 පසු කරන NAT හෝ ගිනි තාප්පයකට ප්රොටෝකෝලය 47 පැමිණිල්ලකින් තොරව ඉවත් කළ හැකි අතර සැසිය සාර්ථකත්වයක් ලෙස පෙනෙන ආකාරයෙන් අඩක් ගොඩනගා තබයි.
පිවිසීම ක්රියා කරන අතර කිසිදු පැකට්ටුවක් ආපසු නොඑන්නේ නම්, පළමුව GRE යැයි උපකල්පනය කර පසුව එය ඔප්පු කරන්න.
පරීක්ෂණය 2: සත්කාරක කර්නලයේ සහායකය තහවුරු කරන්න
සම්බන්ධතා නිරීක්ෂණයට සහායකයකින් තොරව TCP පාලන සම්බන්ධතාවයක් GRE ප්රවාහයකට සම්බන්ධ කළ නොහැක. මොඩියුලය nf_conntrack_pptp වේ, එය සත්කාරක කර්නලයේ ජීවත් වේ, සහ කන්ටේනර රූපය තුළ එය පූරණය කිරීමෙන් කිසිවක් නොවේ මන්ද මොඩියුල මුළු සත්කාරකයටම අදාළ වේ. Docker සත්කාරකයේ lsmod | grep nf_conntrack_pptp යනු පරීක්ෂණයයි. එය නොමැති නම්, modprobe nf_conntrack_pptp එය ක්රියාත්මක වන කර්නලය සඳහා පූරණය කර ඊළඟ ඇරඹුම ගැන කිසිවක් නොකියයි, එබැවින් එය සත්කාරක වින්යාසයට ද එක් කරන්න.
නැවත ඇරඹීමේදී අතුරුදහන් වන මොඩියුලය ඊළඟ මාසයේ එම ටිකට්පතම බවට පත්වේ.
පරීක්ෂණය 3: එය අක්රීය කරන කර්නල ප්රතිපත්තිය කියවන්න
මොඩියුලය තිබියදීත්, 4.7 සිට කර්නල net.netfilter.nf_conntrack_helper පෙරනිමියෙන් 0 ලෙස සකසයි, එය සෑම ප්රොටෝකෝලයකටම ස්වයංක්රීය සහායක පැවරීම අක්රීය කරයි. එම පෙරනිමිය නිසාම නිවැරදිව ස්ථාපනය කළ මොඩියුලයක් තවමත් කිසිවක් නොකරයි: කේතය ඇති අතර ප්රතිපත්තිය එය භාවිත නොකරන්න යැයි කියයි. sysctl net.netfilter.nf_conntrack_helper වත්මන් අගය වාර්තා කරන අතර, ධාවන කාලයේදී එය 1 ලෙස සැකසීම සහායකය නැවත ලබා ගත හැකි කරයි. නිර්මාණය අවසර දෙන්නේ නම් සත්කාරකයේ sysctl වින්යාසය හරහා අගය රඳවා ගන්න.
ස්වයංක්රීය පැවරීම මගින් රථවාහනයට ව්යංගව අපේක්ෂා ඇති කිරීමට ඉඩ දෙයි, පෙරනිමිය වෙනස් වූයේ එබැවිනි. එය විශ්වාසනීය සත්කාරකයට සීමා කරන්න, නැතහොත් සහායකය ඉලක්ක කරන පැහැදිලි නියමයක් භාවිත කරන්න.
පරීක්ෂණය 4: කන්ටේනරයේ මාර්ගය වෙන වෙනම බලන්න
පූරණය කළ සහායකය මාර්ගයක් සාදන්නේ නැත. කන්ටේනරයට PPTP සේවාදායකයට මාර්ගයක් අවශ්ය වන අතර සත්කාරක යොමු කිරීම GRE දෙපැත්තටම අවසර දිය යුතුය: iptables -L FORWARD -v -n ප්රොටෝකෝලය 47 පිළිගැනෙන්නේද සහ ගණකයන් චලනය වන්නේද යන්න පෙන්වයි. Docker හි masquerade නියම TCP සහ UDP පරිවර්තනය කරයි, ප්රොටෝකෝලය 47 නොවේ, එබැවින් පාලම් කන්ටේනරයකට පැහැදිලි forward අනුමැතියක් සහ සමහර සත්කාරකවල තමන්ගේම පරිවර්තන නියමයක් අවශ්ය විය හැක. කන්ටේනරයට එහි රූපය අපේක්ෂා කරන PPP උපාංග සහාය ඇති බවද තහවුරු කරන්න.
නියමයේ පෙළ නොව ගණකයන් කියවන්න. පවතින නමුත් කිසිවකට නොගැලපෙන නියමය සැරසිල්ලකි.
පරීක්ෂණය 5: GRE නිරීක්ෂණය වන බව ඔප්පු කර, පසුව PPTP ගැන තීරණය කරන්න
සේවාදායකය ක්රියාත්මක වන අතරතුර නිරීක්ෂණ වගුව කියවන්න. ස්ථාපිත PPTP පාලන සටහනක් සහ ඊට සම්බන්ධ GRE සටහනක් යනු සහායකය ප්රවාහ සම්බන්ධ කරන බවත් ඉතිරි දෝෂය වෙනත් තැනක ඇති බවත්ය. GRE සටහනක් නොමැති පාලන සටහනක් යනු දත්ත ඉවත් කරන බවත් හෝ නිරීක්ෂණය නොකරන බවත්ය, එය ඔබව පරීක්ෂණ 2 සහ 3 වෙත ආපසු ගෙන එයි.
PPTPම යල් පැන ගිය අතර MS-CHAPv2 දුර්වලය. සේවාදායකය L2TP/IPsec, IKEv2 හෝ WireGuard ද ලබා දෙන්නේ නම්, ඒවායින් එකකට මාරු වීම මෙම මුළු ගැටලු පන්තියම ඉවත් කරයි.
PPTP රැඳී සිටිය යුතු තැන, කන්ටේනරය තුළ නොව සත්කාරකයේ සේවාදායකය ධාවනය කිරීම NAT සහ පෙරීමේ එක් ස්ථරයක් ඉවත් කරයි, එය බොහෝ විට ලාභදායී තීරණයකි.