TUN OpenVPN സെർവർ വഴി host-only നെറ്റ്വർക്കിലെ VM ട്രാഫിക് റൂട്ട് ചെയ്യുക
ടണൽ, host-only പ്രിഫിക്സ് എന്നിവ വേർതിരിച്ച് നിർത്തുക, ഗസ്റ്റ് റൂട്ട് പുഷ് ചെയ്യുക, എന്നിട്ട് ഓരോ വെർച്വൽ മെഷീനും ഹോസ്റ്റ് വഴി ബോധപൂർവമായ മടക്കുവഴി നൽകുക.
host-only അഡാപ്റ്ററുകൾ പ്രാദേശിക വെർച്വൽ നെറ്റ്വർക്ക് സൃഷ്ടിക്കുന്നു, റൂട്ട് ചെയ്ത TUN ടണലുകൾ വിലാസങ്ങൾക്കിടയിൽ IP പാക്കറ്റുകൾ കൊണ്ടുപോകുന്നു. ഇവ രണ്ടും പരസ്പരം ബ്രിഡ്ജ് അല്ല, അതിനാൽ പ്രവർത്തിക്കുന്ന ഒരു കോൺഫിഗറേഷൻ ആരാണ് ഫോർവേഡ് ചെയ്യുന്നതെന്നും മടക്കുവഴി ആരുടേതാണെന്നും പറയണം. ഈ രണ്ട് ചുമതലകളും തെറ്റിച്ചാൽ, ടണൽ ക്ലയന്റ് ഒരിക്കലും ആവശ്യപ്പെടാത്ത ഒരു ഉറവിടവുമായി ഗസ്റ്റ് ടണലിനോട് പ്രതികരിക്കും. താഴെയുള്ള രൂപകൽപ്പന രണ്ട് പ്രിഫിക്സുകളും വേർതിരിച്ച് നിർത്തുന്നു, മടക്കുവഴി വ്യക്തമാക്കുന്നു.
രണ്ട് നെറ്റ്വർക്കുകൾ, രണ്ട് പ്രിഫിക്സുകൾ
ടണൽ പൂളിനും host-only നെറ്റ്വർക്കിനും വ്യത്യസ്ത പ്രിഫിക്സുകൾ നൽകുക, ഒന്ന് മറ്റൊന്നിനായി ഒരിക്കലും വീണ്ടും ഉപയോഗിക്കരുത്. ഈ ഉദാഹരണത്തിൽ VPN പൂൾ 10.44.0.0/24 ഉം host-only നെറ്റ്വർക്ക് 192.168.99.0/24 ഉം ആണ്, ഹോസ്റ്റ് 192.168.99.1-ലും ഗസ്റ്റ് 192.168.99.20-ലും ഉണ്ട്. ഒരേ പ്രിഫിക്സ് TUN ഉപകരണത്തിനും host-only അഡാപ്റ്ററിനും നൽകുന്നത് അവയെ ബന്ധിപ്പിക്കുന്നില്ല. അത് ഒരു വിലാസ പരിധിക്ക് രണ്ട് അവകാശവാദങ്ങൾ സൃഷ്ടിക്കുന്നു, റൂട്ടിംഗ് പട്ടിക പിന്നീട് യാദൃച്ഛികമായി സൂക്ഷിച്ച അവകാശവാദത്തിന് വേണ്ടി മറുപടി നൽകുന്നു.
host-only അഡാപ്റ്റർ ഹോസ്റ്റിലും ഗസ്റ്റിനുള്ളിലും നിലനിൽക്കുന്നു, സ്വയം അതിന് യന്ത്രത്തിന് പുറത്തേക്ക് വഴിയില്ല. ബ്രിഡ്ജ്, NAT കണക്ഷനുകൾക്ക് വ്യത്യസ്തമായ എക്സ്പോഷർ ഉണ്ട്, ഒരു ഗസ്റ്റ് സേവനത്തിൽ എത്താൻ ബ്രിഡ്ജ് മോഡിലേക്ക് മാറേണ്ടതില്ല.
ഹോസ്റ്റ് ഇതിനകം വഴി കൈവശം വയ്ക്കുന്നു
എന്തെങ്കിലും ചേർക്കുന്നതിന് മുമ്പ് എന്താണുള്ളതെന്ന് നോക്കുക. ഹോസ്റ്റിന് host-only നെറ്റ്വർക്കിൽ ഒരു ഇന്റർഫേസും ആ പ്രിഫിക്സിന് ഒരു റൂട്ടും ഉണ്ട്, രണ്ടും അഡാപ്റ്റർ ഉയർന്നപ്പോൾ സൃഷ്ടിച്ചതാണ്.
ip -br addr show
ip route show 192.168.99.0/24
sysctl net.ipv4.ip_forward
മൂന്നാമത്തെ വരി ഹോസ്റ്റിനെ ഒരു ഹോപ്പാക്കുന്ന സംവിധാനമാണ്. അതില്ലാതെ, ടണലിൽ നിന്ന് വരുന്ന പാക്കറ്റ് ഹോസ്റ്റിന് എത്താൻ കഴിയുന്ന, പക്ഷേ ഫോർവേഡ് ചെയ്യാത്ത ഒരു നെറ്റ്വർക്കിലേക്ക് അഡ്രസ് ചെയ്യപ്പെടുന്നു. ഫോർവേഡിംഗ് ആവശ്യമാണ്, മതിയാകുന്നില്ല. ടണൽ ഇന്റർഫേസും host-only ഇന്റർഫേസും തമ്മിലുള്ള ഒരു നിർദ്ദിഷ്ട ഫ്ലോ അനുവദനീയമാണോ എന്ന് ഫിൽട്ടർ നയം തീരുമാനിക്കുന്നു, ആ തീരുമാനം ആരും വായിക്കാത്ത ഒരു ഡിഫോൾട്ട് നയത്തിലല്ല, എഴുത്തിൽ ആയിരിക്കണം.
റൂട്ട് പുഷ് ചെയ്യുക, എന്നിട്ട് അത് എത്തുന്നത് ഫിൽട്ടർ ചെയ്യുക
പുഷ് ചെയ്ത റൂട്ടുകൾ സ്വീകരിക്കുന്ന ക്ലയന്റുകൾക്ക് സെർവർ host-only പ്രിഫിക്സ് നൽകാം, ഇത് ടണലിന് പിന്നിലെ മറ്റേതെങ്കിലും സബ്നെറ്റിന് ഉപയോഗിക്കുന്ന അതേ സംവിധാനമാണ്.
push "route 192.168.99.0 255.255.255.0"
iptables -A FORWARD -i tun0 -o vboxnet0 -d 192.168.99.20 -p tcp --dport 5432 -j ACCEPT
iptables -A FORWARD -i vboxnet0 -o tun0 -s 192.168.99.20 -p tcp --sport 5432 -m conntrack --ctstate ESTABLISHED -j ACCEPT
ഈ രണ്ട് നിയമങ്ങൾ ഒരു ദിശയിൽ ഒരു സേവനത്തിനും അതിന്റെ മറുപടികൾക്കും അനുമതി നൽകുന്നു. മുഴുവൻ പ്രിഫിക്സിലും എത്തുന്ന ഒരു റൂട്ടും ഒരു പോർട്ട് അനുവദിക്കുന്ന ഒരു ഫിൽട്ടറും ബോധപൂർവമായ കൂട്ടുകെട്ടാണ്; റൂട്ടും നിരുപാധികമായ അംഗീകാരവും ചേരുന്നത് ഒരു ലബോറട്ടറി സേവനം തുറന്ന സേവനമാകുന്ന വഴിയാണ്. പുഷ് ചെയ്ത റൂട്ട് അധികാരവുമല്ല. ക്ലയന്റ് അത് സ്വീകരിക്കുന്നു, ഹോസ്റ്റ് അത് ഫോർവേഡ് ചെയ്യുന്നു, ഗസ്റ്റ് ഫയർവാളും സേവനവും ഇപ്പോഴും അഭിപ്രായം പറയുന്നു.
ഗസ്റ്റിന് മടങ്ങാനുള്ള വഴി വേണം
10.44.0.x-ൽ നിന്ന് എത്തുന്ന ഗസ്റ്റ് അതിന്റെ മറുപടികൾ ഹോസ്റ്റിന്റെ host-only വിലാസത്തിലേക്ക് അയക്കണം, അല്ലെങ്കിൽ ഹോസ്റ്റ് ഉറവിടം വിവർത്തനം ചെയ്യണം. VirtualBox DHCP-ൽ നിന്ന് വിലാസം സ്വീകരിക്കുന്നത് ഈ രണ്ട് ക്രമീകരണങ്ങളെക്കുറിച്ചും ഒന്നും പറയുന്നില്ല.
ip route add 10.44.0.0/24 via 192.168.99.1 dev enp0s8
ip route get 10.44.0.15
ഗസ്റ്റിനുള്ളിൽ ആ റൂട്ട് ചേർക്കുന്നത് യഥാർത്ഥ ഉറവിടം സംരക്ഷിക്കുന്നു, ഇത് ഓരോ ക്ലയന്റിന്റെയും നയവും ലോഗുകളും അർത്ഥവത്താക്കുന്നു. ഹോസ്റ്റിൽ പരിമിതമായ ഉറവിട വിവർത്തനം ബദലാണ്, അത് പ്രവർത്തിക്കുന്നു, എന്നാൽ ഏത് ക്ലയന്റ് കണക്ട് ചെയ്തുവെന്ന് മറയ്ക്കുന്ന ചെലവിൽ. ഓവർലാപ്പ് മറ്റൊരു പരാജയ രീതിയാണ്. വീട്ടിലെ LAN ഇതിനകം 192.168.99.0/24 ഉപയോഗിക്കുന്ന ഒരു റിമോട്ട് ക്ലയന്റ് പുഷ് ചെയ്ത റൂട്ടിനെ സ്വന്തം നെറ്റ്വർക്കായി വായിക്കും, സെർവർ വശത്തെ ഒരു മാറ്റവും ആ ആശയക്കുഴപ്പം പരിഹരിക്കുന്നില്ല. ഒരു വശം പുനഃക്രമീകരിക്കുക അല്ലെങ്കിൽ കൂട്ടിയിടിക്കാൻ സാധ്യതയില്ലാത്ത ഒരു പ്രിഫിക്സ് തിരഞ്ഞെടുക്കുക.
TUN ഉപകരണം IP പാക്കറ്റുകൾ കൊണ്ടുപോകുന്നു, അതിനാൽ ഗസ്റ്റിനുള്ളിൽ ഒരു ഡിഫോൾട്ട് ഗേറ്റ്വേ ചേർക്കുന്നത് ടണലിനെ host-only അഡാപ്റ്ററുമായി ഒരു ഈതർനെറ്റ് സെഗ്മെന്റാക്കുന്നില്ല. TAP ബ്രിഡ്ജിംഗ് സ്വന്തം ക്ലയന്റ് പിന്തുണയും വിലാസ ഉടമസ്ഥതയുമുള്ള വേറെ ഒരു രൂപകൽപ്പനയാണ്, രണ്ട് വിവരണങ്ങളും കലർത്തുന്നത് ഒരിക്കലും ഒന്നിക്കാത്ത കോൺഫിഗറേഷനുകളിലേക്ക് നയിക്കുന്നു.
പരിശോധിച്ച്, എന്നിട്ട് അത് റീസ്റ്റാർട്ടിനെ അതിജീവിക്കുന്നതാക്കുക
സാധാരണ റിമോട്ട് ക്ലയന്റിൽ നിന്ന് ഒരു നിരുപദ്രവകരമായ സേവനം പരീക്ഷിക്കുക, ഗസ്റ്റിന്റെ മടക്കുവഴി പരിശോധിക്കുക, നിങ്ങൾ അനുവദിക്കാത്ത ഒരു സേവനം മന്ദഗതിയല്ല, മറിച്ച് നിരസിക്കപ്പെടുന്നു എന്ന് ഉറപ്പാക്കുക.
ss -lntp '( sport = :5432 )'
conntrack -L | grep 192.168.99.20
തുടർന്ന് VPN സേവനവും വെർച്വൽ മെഷീന്റെ നെറ്റ്വർക്കിംഗും റീസ്റ്റാർട്ട് ചെയ്ത് അതേ മൂന്ന് പരിശോധനകൾ ആവർത്തിക്കുക. കൈകൊണ്ട് ചേർത്ത റൂട്ട് അടുത്ത റീബൂട്ട് വരെ നിലനിൽക്കും, ചൂടുള്ള സെഷനിൽ മാത്രം പ്രവർത്തിക്കുന്ന കോൺഫിഗറേഷൻ രൂപകൽപ്പനയല്ല. രണ്ട് പ്രിഫിക്സുകൾ, ഫോർവേഡിംഗ് നയം, ഗസ്റ്റ് റൂട്ട് എന്നിവ ഒരുമിച്ച് രേഖപ്പെടുത്തുക. അടുത്ത വെർച്വൽ മെഷീൻ ചേർക്കുന്നയാൾക്ക് മൂന്നും വേണം, അല്ലെങ്കിൽ ഓരോ പരാജയപ്പെട്ട കണക്ഷനിലും അവ വീണ്ടും കണ്ടെത്തും.