WireGuard കോൺഫിഗ് Interface മുതൽ Peer വരെ വരി വരിയായി വായിക്കുക
Interface കീകൾ ഈ അറ്റത്തിന്റേതാണ്, peer കീകൾ മറുവശത്തിന്റേതും. ഓരോ വരിയും ഒരു ദിശയായി വായിച്ച്, wg-quick പ്രോട്ടോക്കോളിനു ചുറ്റും എന്ത് ചേർത്തുവെന്ന് പരിശോധിക്കുക.
കേടായ WireGuard കോൺഫിഗുകളിൽ മിക്കതും മൂല്യത്തിൽ തെറ്റുന്നില്ല; ശരിയായ മൂല്യത്തെ തെറ്റായ വശത്ത് വയ്ക്കുകയാണ്. സ്വകാര്യ കീ ഈ യന്ത്രത്തിന്റേതാണ്, peer മറ്റേ യന്ത്രത്തിന്റെ പൊതു കീ കൊണ്ടുനടക്കുന്നു, ടണൽ എവിടെ താമസിക്കുന്നു എന്ന് വിവരിക്കുന്നുണ്ടെങ്കിലും വിലാസം interface ബ്ലോക്കിൽ ഇരിക്കുന്നു. ഫയലിനെ കൂടിച്ചേരുന്ന രണ്ട് ദിശകളായി വായിച്ച്, സഹായ സ്ക്രിപ്റ്റ് മുകളിൽ എന്ത് ചേർത്തുവെന്ന് പരിശോധിക്കുക. പ്രോട്ടോക്കോളിൽ ഫയലിനെക്കാൾ കുറവ് ഫീൽഡുകളുണ്ട്, അധികമുള്ളവ പ്രത്യേകം അറിയുന്നത് ഉപകാരപ്രദമാണ്.
interface കീകൾ ഈ യന്ത്രത്തെ വിവരിക്കുന്നു
interface ബ്ലോക്ക് ഈ അറ്റത്തിന്റെ സ്വന്തം അടയാളം സൂക്ഷിക്കുന്നു. PrivateKey ആ അടയാളമാണ്, ഹോസ്റ്റ് ഒരിക്കലും വിടുന്നില്ല; അതിൽനിന്ന് ബന്ധപ്പെട്ട പൊതു കീ ഉരുത്തിരിയുന്നു, മറ്റ് peers അതാണ് പട്ടികപ്പെടുത്തുന്നത്. ListenPort ഈ വശം കൈകൊടുക്കലുകൾ സ്വീകരിക്കുന്ന സ്ഥലമാണ്, അതിനാൽ ഒരു വിലാസത്തിനു പിന്നിലുള്ള രണ്ട് ക്ലയന്റുകൾക്ക് വ്യത്യസ്ത പോർട്ടുകൾ വേണം.
Address ഈ ഹോസ്റ്റ് ഉത്തരം നൽകുന്ന ടണൽ വിലാസമാണ്, അത് ഉപയോഗിക്കുന്ന ഉറവിടവും അതുതന്നെയായതിനാൽ പ്രിഫിക്സ് നീളത്തോടെ എഴുതുന്നു. ഇവിടെ പ്രിഫിക്സ് തെറ്റായാൽ ഏതൊക്കെ ലക്ഷ്യങ്ങളെ ഹോസ്റ്റ് നേരിട്ട് ബന്ധിപ്പിച്ചതായി കരുതുന്നു എന്നത് മാറുന്നു, അത് കോൺഫിഗല്ല, റൂട്ടിംഗ് പോലെ തോന്നുന്ന തകരാറുകൾ ഉണ്ടാക്കുന്നു.
യഥാർത്ഥ ക്ലയന്റുള്ള [Interface] ബ്ലോക്കിലെ ബാക്കിയെല്ലാം സാധാരണയായി wg-quick ചേർക്കുന്നു: DNS, MTU, Table, കൂടാതെ ഹുക്ക് വരികളും. ഇവ പ്രോട്ടോക്കോൾ ഫീൽഡുകളല്ല, വെറും wg ക്രമീകരണം ഇവയെ പൂർണ്ണമായി അവഗണിക്കുന്നു.
ഓരോ peer എൻട്രിയും മറ്റൊരു വശത്തെ വിവരിക്കുന്നു
[Peer] ബ്ലോക്ക് ദൂരെയുള്ള കക്ഷിയാണ്. PublicKey ആ കക്ഷിയുടെ ഉരുത്തിരിഞ്ഞ കീയാണ്, ഒരിക്കലും അവരുടെ സ്വകാര്യ കീയല്ല, കൂടാതെ PresharedKey ഇരുവശവും ഒരുപോലെ സൂക്ഷിക്കേണ്ട ഐച്ഛിക അധിക രഹസ്യമാണ്. Endpoint എവിടേക്ക് അയക്കണം എന്നതാണ്, കൂടാതെ PersistentKeepalive മറ്റൊന്നും പുറത്തേക്ക് പോകാത്തപ്പോൾ ഇടവേളയ്ക്കു ശേഷം ഈ ഹോസ്റ്റ് പാക്കറ്റ് അയക്കാൻ ആവശ്യപ്പെടുന്നു.
ഇവിടത്തെ ആശയക്കുഴപ്പത്തിന്റെ ഭൂരിഭാഗവും രണ്ട് തെറ്റുകൾ വിശദീകരിക്കുന്നു. സ്വന്തം സ്വകാര്യ കീ peer ബ്ലോക്കിലേക്ക് പകർത്തിയാൽ രണ്ട് അറ്റങ്ങളും ഒരേ അടയാളം പങ്കിടുന്നു, കൈകൊടുക്കൽ മോശമായി രേഖപ്പെടുത്തുന്ന രീതിയിൽ പരാജയപ്പെടുന്നു. Endpoint ഒരു ക്ലയന്റിൽ ഒഴിവാക്കുന്നത് സാധാരണയായി ബോധപൂർവമാണ്, കാരണം വരുന്ന കൈകൊടുക്കലിൽനിന്ന് സർവർ വിലാസം പഠിക്കുന്നു; ആരംഭിക്കേണ്ട സർവറിൽ അത് ഒഴിവാക്കുന്നത് അങ്ങനെയല്ല. keepalive ഒരു NAT മാപ്പിംഗ് തുറന്നു സൂക്ഷിക്കുന്നു എന്നും, അത് ത്രൂപുട്ട് മെച്ചപ്പെടുത്തുന്നില്ല, കാലതാമസം കുറയ്ക്കുന്നുമില്ല എന്നും ഓർക്കുക, അതിനാൽ ട്രാഫിക് ഇതിനകം ഒഴുകുന്നുണ്ടെങ്കിൽ മുപ്പത് സെക്കൻഡ് അധിക പാക്കറ്റുകൾ ഒന്നും വാങ്ങുന്നില്ല.
AllowedIPs റൂട്ടിംഗാണ്, അനുമതിപ്പട്ടികയല്ല
AllowedIPs WireGuard-ന്റെ ക്രിപ്റ്റോകീ റൂട്ടിംഗാണ്. പുറത്തേക്ക്, ലക്ഷ്യത്തിന്റെ അടിസ്ഥാനത്തിൽ ഏത് peer പാക്കറ്റ് സ്വീകരിക്കുന്നു എന്ന് തീരുമാനിക്കുന്നു. അകത്തേക്ക്, ആ peer-ൽനിന്ന് വരുന്ന പാക്കറ്റ് അതിന്റെ ഉറവിടത്തിന്റെ അടിസ്ഥാനത്തിൽ സ്വീകരിക്കണോ എന്ന് തീരുമാനിക്കുന്നു. അതേ ഫീൽഡ് രണ്ടു ജോലിയും ചെയ്യുന്നു, അതുകൊണ്ട് ഇത് ആക്സസ് നിയന്ത്രണ പട്ടികയല്ല, അനുവദനീയമായ വെബ്സൈറ്റുകളുടെ പട്ടികയുമല്ല.
ഇടുങ്ങിയ AllowedIPs സർവറിൽ ഒരു ക്ലയന്റിനുവേണ്ടി എന്നാൽ ആ ഉറവിടങ്ങൾ അവകാശപ്പെടുന്ന പാക്കറ്റുകൾ മാത്രം സർവർ സ്വീകരിക്കും, ആ ലക്ഷ്യങ്ങൾ മാത്രം ആ ക്ലയന്റിന് അയക്കും. ഒരു വശം മറ്റേത് വിശാലമാക്കാതെ വിശാലമാക്കിയാൽ, ഉയരുന്നതും ഒന്നും കടത്തിവിടാത്തതുമായ ഒരു ടണൽ ലഭിക്കും.
wg-quick പ്രോട്ടോക്കോളിനു ചുറ്റും എന്ത് ചേർക്കുന്നു
wg-quick അതേ ഫയൽ വായിച്ച് പ്രോട്ടോക്കോൾ ഓപ്പറേറ്റിംഗ് സിസ്റ്റത്തിന് വിടുന്ന നെറ്റ്വർക്ക് ഘട്ടങ്ങൾ നിർവഹിക്കുന്നു. interface വിലാസം നൽകുന്നു, AllowedIPs-ൽനിന്ന് ഉരുത്തിരിഞ്ഞ റൂട്ടുകൾ ചേർക്കുന്നു, റിസോൾവർ ക്രമീകരണങ്ങൾ എഴുതുന്നു, ഹുക്ക് കമാൻഡുകൾ ക്രമത്തിൽ പ്രവർത്തിപ്പിക്കുന്നു.
ആ പാളി ക്ലാസിക് അസമമിതി വിശദീകരിക്കുന്നു. 0.0.0.0/0 ഉം DNS വരിയും ഉള്ള ഫയൽ ക്ലയന്റിന് ഡിഫോൾട്ട് റൂട്ടും റിസോൾവറും നൽകുന്നു, സർവറിന്റെ ഫോർവേഡിംഗ് അല്ലെങ്കിൽ NAT നിയമങ്ങളിൽ ഒന്നും ചെയ്യുന്നുമില്ല. അവ സർവറിന്റെ സ്വന്തം കോൺഫിഗിന്റേതാണ്, ഒരു ക്ലയന്റ് ഫയലിനും അവ നൽകാനാവില്ല.
ഫയലിന് ഒരു ഉടമ മാത്രം സൂക്ഷിക്കുക. SaveConfig സജീവമായിരിക്കുമ്പോൾ അത് കൈകൊണ്ട് തിരുത്തുന്നത് അർത്ഥം അടുത്ത തവണ interface താഴുമ്പോൾ നിങ്ങളുടെ തിരുത്ത് അപ്രത്യക്ഷമാകും, interface അത് സംഭവിച്ചു എന്ന് പറയുകയുമില്ല.
ഫയലല്ല, പ്രയോഗിച്ച അവസ്ഥ പരിശോധിക്കുക
ഫയൽ ഒരു ഉദ്ദേശമാണ്. പ്രയോഗിച്ച അവസ്ഥ കർണൽ സൂക്ഷിക്കുന്നതാണ്, സജീവമാക്കിയതിനു ശേഷം ഒരു സഹായി, drop-in അല്ലെങ്കിൽ ഹുക്ക് എന്തെങ്കിലും തിരുത്തിയാൽ അവ രണ്ടും വേർതിരിയുന്നു.
ജീവനുള്ള അവസ്ഥയും വിലാസനിർണ്ണയവും ഒരുമിച്ച് വായിച്ച്, പിന്നെ രണ്ടും നിങ്ങൾ എഴുതിയതുമായി താരതമ്യം ചെയ്യുക:
sudo wg show
ip -4 addr show dev wg0
ip -4 route show dev wg0
grep -v "^#" /etc/wireguard/wg0.confpeer പട്ടിക ശൂന്യമാണെങ്കിൽ, interface അതിന്റെ കോൺഫിഗ് പ്രയോഗിക്കാതെയാണ് സൃഷ്ടിച്ചത്. വിലാസങ്ങളും റൂട്ടുകളും ഉണ്ടെങ്കിലും കൗണ്ടറുകൾ പൂജ്യത്തിൽ തുടരുകയാണെങ്കിൽ, ഫയൽ ലോഡ് ആയി കൈകൊടുക്കൽ പരാജയപ്പെടുകയാണ്, അത് സെക്ഷൻ ക്രമത്തിന്റെയല്ല, കീയുടെയോ അറ്റത്തിന്റെയോ പ്രശ്നമാണ്. തിരുത്തുന്നതിനു മുമ്പ് രണ്ട് കാഴ്ചകളും താരതമ്യം ചെയ്യുക, കാരണം അവ തമ്മിലുള്ള വിടവാണ് സാധാരണയായി യഥാർത്ഥ തകരാർ.