VPN மற்றும் வலைக்கான ஒரே பொது ஹோஸ்ட்: பாத்திரங்களை எவ்வாறு பிரிப்பது
ஒரு பொது IP சுரங்கங்களை முடிக்கலாம், HTTPS வழங்கலாம் மற்றும் இரண்டு தனியார் LAN-களை அடையலாம். முதலில் முகவரி, ஒவ்வொரு போர்ட் மற்றும் அனுப்புதல் கொள்கையின் உரிமையை தீர்மானிக்கவும்.
ஒரு இயந்திரம் மூன்று தேவைகளையும் ஒரே நேரத்தில் பூர்த்தி செய்யலாம்: சுரங்கங்களை முடித்தல், HTTPS-க்கு பதிலளித்தல் மற்றும் இரண்டு தனியார் LAN-களுக்கு இடையே அனுப்புதல். அது நியாயமானதா என்பது காகிதத்தில் தீர்மானிக்கக்கூடிய மூன்று விஷயங்களைப் பொறுத்தது: பொது முகவரி யாருக்கு சொந்தம், ஒவ்வொரு போர்ட் மற்றும் நெறிமுறை இணை யாருக்கு சொந்தம், எந்த செயல்முறைக்கு பாக்கெட்டுகளை அனுப்ப அனுமதி உள்ளது. இவை சரியாக இருந்தால், பகிரப்பட்ட ஹோஸ்ட் சிறப்பானது அல்ல. தவறாக இருந்தால், சுத்தமாக தொடங்கி ஒருபோதும் பதிலளிக்காத சேவையில் வார இறுதியை செலவிடுவீர்கள்.
அடுத்து வருவது ஒரு முடிவு நடைமுறை, கட்டுமான தாள் அல்ல. ஒவ்வொரு படியும் இப்போது சேர்த்த பாத்திரம் உண்மையில் தனிமைப்படுத்தப்பட்டது என்பதை நிரூபிக்கும் சரிபார்ப்பில் முடிகிறது.
போர்ட்களுக்கு முன் முகவரியின் உரிமையாளரை தேர்ந்தெடுக்கவும்
சுரங்கத்தின் முடிவு முனையும் வலை சேவையகமும் ஒரே கர்னலை பகிரலாம்; ஒரே நேரத்தில் ஒரு முகவரி, போர்ட் மற்றும் நெறிமுறையைப் பகிர்வதே தோல்வியடைவது. WireGuard வழக்கமாக UDP 51820 எடுக்கும், OpenVPN UDP 1194 அல்லது TCP 443 எடுக்கும், வலை சேவையகம் TCP 443 எடுக்கும். வலியைத் தரும் இணை HTTPS-க்கு அருகில் TCP 443-ல் OpenVPN ஆகும், ஏனெனில் இரண்டும் ஒரே சாக்கெட்டை விரும்புகின்றன, கர்னல் அதை முதலில் பிணைத்தவருக்கு தருகிறது. முன்னால் உள்ள டிமல்டிபிளக்சர் மட்டுமே, எடுத்துக்காட்டாக sslh அல்லது TLS அறிந்த ப்ராக்ஸி, அவற்றை அந்த போர்ட்டைப் பகிர அனுமதிக்கிறது, மேலும் அதன் தோல்வி ஃபயர்வால் சிக்கலைப் போலவே தோன்றும் ஒரு கூறைச் சேர்க்கிறது.
எதையும் மாற்றுவதற்கு முன் உரிமையாளர்களைப் பாருங்கள்: ss -lntup கேட்கும் ஒவ்வொரு சாக்கெட்டின் உள்ளூர் முகவரி, போர்ட் மற்றும் செயல்முறையை அச்சிடுகிறது. காட்டும் இரண்டு வரிகள் 0.0.0.0:443 என்றால் இரண்டாவது சேவை ஒருபோதும் பிணைக்கப்படவில்லை, அதன் init ஸ்கிரிப்ட் எவ்வளவு மகிழ்ச்சியாக இருந்தாலும். பிரிட்ஜிங் உரிமையாளரையும் நகர்த்துகிறது. எப்போது eth0 உடன் இணைகிறது br0, IP br0 க்கு செல்கிறது மற்றும் eth0 என்று பெயரிடும் ஒவ்வொரு ஃபயர்வால் விதியும் பொருந்துவதை நிறுத்துகிறது, எனவே சேவைகளை பிரிட்ஜில் பிணைத்து ip -br addr மூலம் உறுதிப்படுத்துங்கள்.
அதே உரிமை விதி மெய்நிகர் இயந்திரங்களுடன் தோன்றும் ஒரு ஆச்சரியத்தை விளக்குகிறது. அதே LAN-ல் உள்ள விருந்தினரின் உள்ளே இயங்கும் சுரங்க சேவையகம் விருந்தினரின் முகவரியை வைத்திருக்கிறது, எனவே ஹோஸ்ட்டின் சொந்த முகவரியை நோக்கிய இணைப்புகள் ஹோஸ்ட்டிலேயே இருக்கும், விருந்தினரின் சுரங்கம் அவற்றை ஒருபோதும் பார்ப்பதில்லை, கிளையண்ட் சுயவிவரம் என்ன சொன்னாலும்.
இரண்டு LAN-களுக்கு இடையே வழிப்படுத்துங்கள் அல்லது ஒரு பக்கத்தை NAT செய்யுங்கள்
ஒருவரை ஒருவர் பார்க்காத இரண்டு LAN-கள் ஒவ்வொன்றும் பொது ஹோஸ்ட்டை அழைக்கலாம், அது பின்னர் சுரங்கங்களுக்கு இடையே அனுப்பும். அந்த வழிப்படுத்தப்பட்ட வடிவமைப்பிற்கு மூன்று விஷயங்கள் தேவை: அனுப்புதல் இயக்கத்தில், ஒவ்வொரு தொலை முன்னொட்டுக்கும் வழி மற்றும் போக்குவரத்தை கடக்க அனுமதிக்கும் அனுப்புதல் கொள்கை. sysctl -w net.ipv4.ip_forward=1 முதல் ஒன்றை உள்ளடக்குகிறது, ip route add 10.20.0.0/24 dev wg1 இரண்டாவதை, மற்றும் nftables வரி nft add rule inet filter forward iifname "wg0" oifname "wg1" accept மூன்றாவதை.
மூல NAT சேர்ப்பது எளிது, பிழைத்திருத்தம் கடினம். மாஸ்கரேடிங் கிளையண்டின் முகவரியை மீண்டும் எழுதுகிறது, எனவே தொலை பக்கம் உண்மையான ஹோஸ்ட்டை அல்ல, ஹப்பைப் பார்க்கிறது, அதன் அணுகல் விதிகள் மற்றும் பதிவுகள் பணிக்கூட்டலுக்கு பயனற்றதாகின்றன. இரண்டு நெட்வொர்க்குகளும் உங்களுடையதாக இருந்தால் வழிப்படுத்துங்கள். ஒரு பக்கம் திரும்பும் வழியைச் சேர்க்காத மூன்றாம் தரப்புக்கு சொந்தமானது என்றால், NAT இந்த வாரம் வெளியிடப்படும் தேர்வு. எப்படியிருந்தாலும் முகவரித் திட்டத்தை எழுதுங்கள், ஏனெனில் இரண்டு மேலெழுதும் /24-ஐ எந்த அமைப்பும் வழிப்படுத்த முடியாது.
மடிக்கணினிக்கான இணைய வெளியேற்றமாக செயல்படுவது அதே பெட்டி உள்வரும் சுரங்கங்களை முடிப்பதைத் தடுக்காது. மேலெழுதும் முகவரிகள் மட்டுமே தடுக்கின்றன, அதனால்தான் முகவரித் திட்டம் முக்கியமான ஆவணம்.
இரண்டு பாத்திரங்கள் நிறுத்தப்பட்டிருக்கும்போது பிரிவை சோதிக்கவும்
பயனுள்ள சோதனை கழித்தல்: இரண்டு பாத்திரங்களை நிறுத்தி மூன்றாவது இன்னும் பதிலளிக்கிறதா என உறுதிப்படுத்துங்கள். சுரங்க சேவை அணைக்கப்பட்டிருக்கும்போது வலை கோரிக்கை முடிய வேண்டும், வலை சேவையகம் நிறுத்தப்பட்டிருக்கும்போது சுரங்க கைக்குலுக்கல் முடிய வேண்டும். எல்லாம் இயங்கும்போது மட்டுமே இரண்டும் வேலை செய்தால், உங்களுக்கு தற்செயலான சார்பு உள்ளது, எடுத்துக்காட்டாக பகிரப்பட்ட ஃபயர்வால் அட்டவணை, வழிதவறிய வழி அல்லது தவறான முகவரியைக் காட்டும் பெயர்.
மூன்று கட்டளைகள் அந்த சோதனையை உறுதியானதாக்குகின்றன. curl -sk --resolve example.test:443:203.0.113.10 https://example.test/ வெளிப்புற DNS இல்லாமல் உள்ளூர் கேட்பவர் பதிலளிக்கிறது என்பதை நிரூபிக்கிறது, wg show கிளையண்டில் கைக்குலுக்கல் முடிந்தது என்பதை நிரூபிக்கிறது, மற்றும் tcpdump -ni any port 51820 ஹப்பில் வழிப்படுத்தல் சிக்கலை சாவி சிக்கலில் இருந்து பிரிக்கிறது. பிடிப்பில் ஒருபோதும் தோன்றாத கைக்குலுக்கல் ஹோஸ்ட்டுக்கு முன்பே இறந்தது: வழங்குநரின் ஃபயர்வால், தவறான பொது முகவரி அல்லது வழியில் NAT விதி.
அனுப்பப்படும் LAN-களுக்கு கழித்தலை மீண்டும் செய்யவும். ஒரு சக கணினி துண்டிக்கப்பட்டால், ஹப் வழியாக ping தோல்வியடைய வேண்டும்; மீண்டும் இணைக்கப்பட்டால், எந்த விதியையும் தொடாமல் ping மீள வேண்டும். சுரங்கத்தை மீண்டும் தொடங்கிய பிறகு மட்டுமே மீளும் ping அடையக்கூடிய தன்மையை அல்ல, கொள்கையைச் சுட்டுகிறது, அது வேறு திருத்தம்.
பாத்திரங்களைக் கழிக்கும்போது விதித் தொகுப்பை படிக்கக்கூடியதாக வைத்திருங்கள். nft list ruleset உண்மையில் தேவையான ஒவ்வொரு திசைக்கும் ஒரு ஏற்பு விதியைக் காட்ட வேண்டும், எல்லாவற்றையும் ஏற்கும் அனுப்புதல் சங்கிலி பிரிவினை அல்ல, அது வேலை செய்யும் செயல்விளக்கம்.
IPv6 மட்டும் அணுகல் இணைப்புகள் மற்றும் IPv4 சேவைகள்
சில அணுகல் இணைப்புகள் IPv6 அடைவை மட்டுமே தருகின்றன, சேவைகள் இன்னும் IPv4 வழியாக வெளியிடப்பட வேண்டும். சுரங்கம் தானே இன்னும் போக்குவரத்தைக் கடக்கும் குடும்பத்தின் வழியாகப் பயணிக்கிறது, வெளியிடப்பட்ட சேவை சுரங்கத்திற்குள் உள்ள முகவரியில் அமர்கிறது. இது வழக்கமான அனுமானத்தைத் திருப்பி, கண்காணிப்பை அமைதியாக உடைக்கிறது: IPv4 பாதைக்காக எழுதப்பட்ட ஃபயர்வால் விதி அல்லது இயக்க நேர சரிபார்ப்பு இப்போது எதையும் சுமக்காத இடைமுகத்தைக் கவனிக்கிறது.
ஒவ்வொரு குடும்பத்தையும் தனித்தனியாக சோதிக்கவும் curl -4 மற்றும் curl -6 மூலம், ஏனெனில் ஒரு வெற்றிகரமான கோரிக்கை நீங்கள் முயற்சிக்காத பாதையைப் பற்றி எதையும் சொல்லாது. போர்ட் உரிமை குடும்பங்களுக்கு இடையே மாறாது, ஆனால் கேட்பவர் மாறுகிறார்: ss -lntup IPv4 மற்றும் IPv6 சாக்கெட்டுகளை தனி வரிகளில் பட்டியலிடுகிறது, மற்றும் 0.0.0.0:443 மறைக்கவில்லை [::]:443 செயல்முறை dual-stack சாக்கெட்டைக் கேட்காவிட்டால்.
ஒரு குடும்பத்தில் பதிலளித்து மற்றொன்றில் மறுக்கும் சேவை பொதுவாக கேட்பவர் சிக்கல், வழிப்படுத்தல் அல்ல. வடிவமைப்பை முடிந்ததாக அறிவிக்கும் முன், ஒவ்வொரு பாத்திரமும் அதன் சொந்த முகவரி அல்லது போர்ட்டைக் கொண்டுள்ளது, அனுப்புதல் இயக்கத்தில் மற்றும் அனுமதிக்கப்பட்டுள்ளது, மற்ற இரண்டும் நிறுத்தப்பட்டிருக்கும்போதும் ஒவ்வொரு பாத்திரமும் பதிலளிக்கிறது என்பதை உறுதிப்படுத்துங்கள்.