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

රීතිය ලිවීමට පෙර සේවාදායකයා පින් කරන්න

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

ලිපිනය සහතිකයට බැඳීමට, client-config-dir නම් කරන නාමාවලියේ ගොනුවක් සාදා ගොනුවට සහතිකයේ common name හරියටම දෙන්න. එහි එක් උපදෙසක් තබන්න, ifconfig-push 10.8.0.6 255.255.255.0, එවිට එම සේවාදායකයා නැවත සම්බන්ධ වන විටද එම ටනල් ලිපිනයම රඳවා ගනී. මෙය ක්‍රියාත්මක වීමට සැකසුම් දෙකක් තිබිය යුතුය: සේවාදායක වින්‍යාසයේ client-config-dir ප්‍රකාශ කළ යුතුය, සහ යවන ලිපිනය සේවාදායකයට මාර්ගගත කළ හැකි උපජාලයක තිබිය යුතුය. එකක් මඟ හැරුණහොත් ගොනුව දෝෂයකින් තොරව නොසලකා හැරේ, එය ඊළඟ ෆයර්වෝල් පරීක්ෂණය නොමඟ යවයි.

තාවකාලික අවහිර කිරීමකට තටාක ලිපිනයක් භාවිත කළ හැක, එවේලාවේ කුමන සැසිය එය දරා සිටියාද යන්න ටිකට්පතේ සටහන් කර ඇත්නම්.

ක්‍රමය තීරණය කරන්නේ ඉවතලීම ක්‍රියාත්මක වේද යන්නයි

ටනලය සහ LAN අතර යොමු කරන Linux ද්වාරයේ පැකට් FORWARD දාමය හරහා ගමන් කරයි. පහත විධානය වාක්‍යයක් ලෙස කියවන්න: FORWARD හි මුලට ඇතුළු කරන්න, tun0 වෙතින් පැමිණෙන, එම එක් සත්කාරකයෙන් පමණක්, LAN උපජාලයට යොමු වූ ගමනාගමනය ගැළපා ඉවතලන්න.

iptables -I FORWARD -i tun0 -s 10.8.0.6/32 -d 192.168.1.0/24 -j DROP

-I යනු රීතිය ක්‍රියාත්මක කරන දෙයයි. -A සමඟ එකතු කළහොත් එය ටනල් උපජාලය සඳහා ඕනෑම පුළුල් අනුමැතියකට පහළින් වැටී කිසිදා පැකට් නොදකී. පිහිටීම iptables -vnL FORWARD --line-numbers සමඟ පරීක්ෂා කර ගණන් කරන යන්ත්‍ර ද කියවන්න: ඉහළින් ඇති ඉවතලීම කිසිවක් නොගණන් කරන්නේ නම් ගමනාගමනය වෙනත් මාර්ගයකින් පැමිණේ.

ද්වාරයේම LAN ලිපිනය වෙනත් මාර්ගයකි. පෙට්ටියටම යවන පැකට් INPUT වෙත යයි, FORWARD වෙත නොවේ, එබැවින් සේවාදායකයාට LAN සත්කාරකය අහිමි වුවත් රවුටරයේ පරිපාලන පිටුව විවෘත කළ හැක. එය වැදගත් වන විට ගැළපෙන INPUT රීතිය එකතු කරන්න.

පෙරහනට දැකිය නොහැකි දේ

පෙරහන් කිරීම සිදු වන්නේ පැකට් ඇගයීමේදීය, එබැවින් ස්ථාපිත TCP සැසියක් වැසීම හෝ නැවත සැකසීම දක්වා පවතින්නට පුළුවන. අවහිර කිරීම වහාම ක්‍රියාත්මක විය යුතු නම්, රීතිය ඇතුළු කළ පසු එම මූලාශ්‍රයේ නිරීක්ෂිත ප්‍රවාහ conntrack -D -s 10.8.0.6 සමඟ ඉවත් කරන්න. තත්පර කිහිපයක අතිච්ඡාදනය පිළිගත හැකි නම් එම තේරීම සටහන් කරන්න, ව්‍යංගයෙන් තැබීම වෙනුවට. කෙසේ වුවද, ඊළඟ පුද්ගලයා රීතිය ජීවමාන ගමනාගමනය නවත්වනවාද නැතහොත් නව සම්බන්ධතා පමණක්ද යන්න දැනගත යුතුය.

සමානයන් අතර ගමනාගමනය කිසිදා සත්කාරකයේ ෆයර්වෝල් ස්පර්ශ නොකරයි. client-to-client සක්‍රීය වූ විට OpenVPN එම පැකට් ඩීමන් තුළම යවයි, එබැවින් FORWARD හෝ INPUT ඒවා නොදකී. එකම විසඳුම් වන්නේ client-to-client අක්‍රීය කිරීම හෝ සමානයන්ට එකිනෙකාට ළඟා විය හැකි බව පිළිගැනීමයි; iptables රීතියක් එම ගමනාගමනය නොදකිනු ඇත.

IPv6, ඈති පද්ධතිය සහ නැවත ආරම්භයෙන් පසු ජීවත්වීම

IPv4 රීතියක් IPv6 ගැන කිසිවක් නොකියයි. ටනලය සහ LAN දෙකම පවුල් දෙක දරන්නේ නම්, සමාන රීතිය ip6tables තුළ හෝ එම සත්කාරකයේ ප්‍රතිපත්තිය හිමි nftables රීති කට්ටලයේ තිබිය යුතුය. රවුටර ඈති පද්ධතිය බොහෝ විට netfilter එහිම වියුක්තකරණය පිටුපස සඟවයි, එබැවින් සංසදයකින් පිටපත් කළ වාක්‍ය වින්‍යාසය සහ වගු නම් අදාළ නොවිය හැක.

OpenWrt හි ලේඛනගත මාර්ගය වන්නේ ෆයර්වෝල් වින්‍යාස සටහනක් මිස අතින් ලියන ලද iptables පේළියක් නොවේ, සහ අතින් ලියන ලද පේළියක් ෆයර්වෝල් නැවත පූරණය වන විට අතුරුදහන් විය හැක. අනෙක් බෙදාහැරීම් රීති netfilter-persistent, ආරම්භක ඒකකයක් හෝ සැපයුම්කරුගේ ගබඩාවක් හරහා ප්‍රතිස්ථාපනය කරයි, සහ එම යාන්ත්‍රණ හුවමාරු කළ නොහැක. ඔබ තෝරාගත් එක නැවත ආරම්භයකින් ඔප්පු කරන්න, මන්ද නැවත පූරණය වෙනත් මාර්ගයක් පුහුණු කරයි.

මාර්ගය අනුව පරීක්ෂා කර, පසුව පිරිසිදුව ආපසු හරවන්න

සෑම මාර්ගයක්ම වෙන වෙනම පරීක්ෂා කරන්න, මන්ද එක් සාර්ථක පරීක්ෂණයක් අනෙක් ඒවා සඟවයි. අවහිර කළ සේවාදායකයා ටනලය හරහා අන්තර්ජාලයට තවමත් ළඟා විය යුතු නමුත් LAN සත්කාරකයට එරෙහිව අසාර්ථක විය යුතුය, දෙවන සේවාදායකයා එම සත්කාරකයටම ළඟා විය යුතුය, සහ ද්වාර ලිපිනය සහ සමාන මාර්ගය එකින් එකට තමන්ගේම නිරීක්ෂණයක් අවශ්‍යය. ප්‍රතිඵල රීතිය අසල ලියන්න, එවිට ඊළඟ වෙනස්කමට පදනමක් ඇත. පහත වගුව ටිකට්පතේ තැබීම වටිනා කට්ටලයයි.

මාර්ගයරීතිය සමඟ අපේක්ෂිතඅසාර්ථක වන විට
අවහිර කළ සේවාදායකයා LAN සත්කාරකයටපිළිතුරක් නැතරීතිය අනුමැතියකට පහළින් ඇත, නැතහොත් මූලාශ්‍රය නොගැළපේ
අවහිර කළ සේවාදායකයා අන්තර්ජාලයටtun0 හරහා ක්‍රියා කරයිරීතිය ඉතා පුළුල්, ගමනාන්ත ගැළපීමක් නොමැතිව
දෙවන සේවාදායකයා එම LAN සත්කාරකයටක්‍රියා කරයිරීතිය අපේක්ෂිත සත්කාරකයට වඩා ගැළපුණි
අවහිර කළ සේවාදායකයා ද්වාරයේ LAN ලිපිනයටගැළපෙන INPUT රීතිය සමඟ පමණක් අවහිර වේINPUT රීතිය නොමැත
අවහිර කළ සේවාදායකයා සමානයෙකුගේ ටනල් ලිපිනයටතවමත් ක්‍රියා කරයිclient-to-client සක්‍රීයයි සහ ෆයර්වෝල් විෂය පථයෙන් පිටතය

ආපසු හැරවීම යනු පිරිවිතර අනුව මැකීමකි, ෆ්ලෑෂ් එකක් නොවේ: iptables -D FORWARD -i tun0 -s 10.8.0.6/32 -d 192.168.1.0/24 -j DROP හරියටම එම සටහන ඉවත් කර දාමයේ ඉතිරිය අකැඩී තබයි. ආරම්භයේදී රීති ප්‍රතිස්ථාපනය කරන ඕනෑම ගොනුවකින් එම පේළියම ඉවත් කර, එය නැවත පූරණය කර, සේවාදායකයා නැවත LAN සත්කාරකයට ළඟා වන බව තහවුරු කරන්න. FORWARD ෆ්ලෑෂ් කිරීම ඔබ නොලියූ රීති ද අවලංගු කරයි, එය ආපසු හැරවීම දෙවන සිදුවීමක් බවට පත් කරයි.

ටිකට්පත වැසීමට පෙර කරුණු තුනක් තහවුරු කරන්න: පින් කළ ලිපිනය සහතිකයට ගැළපේ, රීතිය අනුමැතිවලට ඉහළින් ඇති අතර ගණන් කරන යන්ත්‍රය ශුන්‍ය නොවේ, සහ ස්ථිරතා ගොනුවේ ඔබ පරීක්ෂා කළ එම රීතියම ඇත. මේවායින් එකක් නොමැති නම්, අවහිර කිරීම shell සැසියක ඇති මායාවකි.

අදාළ ලිපි