NAT-க்குப் பின்னால் உள்ள WireGuard peer-க்கு போர்ட் ஃபார்வர்டிங்: DNAT மற்றும் SNAT
DNAT கோரிக்கையை அனுப்புகிறது, ஆனால் பதில் தவறான முகவரியிலிருந்து வெளியேறுகிறது. பொருந்தும் SNAT விதியைச் சேர்த்து, சுரங்கப்பாதை உள்ளமைக்கப்பட்ட பிறகு இரண்டையும் வைக்கவும்.
ஒரு உலாவி https://203.0.113.10:8443 கோருகிறது, ப்ராக்ஸி இணைப்பை ஏற்கிறது, WireGuard peer-இல் உள்ள சேவை ஒருபோதும் பதிலளிக்காது. DNAT விதி தன் வேலையைச் செய்கிறது; தோல்வியடைவது பதில்தான். பாக்கெட்டை இரண்டு மொழிபெயர்ப்புகள் வழியாகப் பின்தொடர்ந்தால், இல்லாத விதி தெளிவாகும். தீர்வு சரியான hook-இல் மற்றொரு NAT கூற்று, புதிய சுரங்கப்பாதை அல்ல.
ஒரு கோரிக்கையை தொடக்கத்திலிருந்து இறுதி வரை பின்தொடரவும்
கோரிக்கை ப்ராக்ஸியின் பொது இடைமுகத்தை அடைகிறது, மூலம் வாடிக்கையாளரின் பொது முகவரி, இலக்கு ப்ராக்ஸியின் முகவரி. nat PREROUTING-இல் DNAT விதி இலக்கை peer-இன் சுரங்கப்பாதை முகவரி 10.90.0.2-க்கு மீண்டும் எழுதுகிறது. பின்னர் வழியமைப்பு முடிவு பாக்கெட்டை wg0 வழியாக வெளியே அனுப்புகிறது, முன்னனுப்பு பாதை நிறைவடைகிறது.
peer-இல் பாக்கெட் இப்போது அசல் பொது மூல முகவரியைச் சுமக்கிறது, ஏனெனில் எதுவும் அதை மீண்டும் எழுதவில்லை. சேவை இணைப்பை ஏற்று, தன் இயல்புநிலை நுழைவாயிலுக்கு பதிலை அனுப்புகிறது, அது peer-க்கு முன்னால் உள்ள வீட்டு ரவுட்டர். அந்த ரவுட்டரிடம் ஒருபோதும் பார்த்திராத ஓட்டத்திற்கு நிலை இல்லை, எனவே அது பாக்கெட்டை வீசிவிடும் அல்லது தன் பொது முகவரிக்கு மொழிபெயர்க்கும், வாடிக்கையாளர் அதை ஏற்கமாட்டார்.
சமச்சீரற்ற தன்மையே முழுப் பிரச்சினை: கோரிக்கை ப்ராக்ஸி வழியாகச் செல்கிறது, பதில் நேரடியாகச் செல்ல முயல்கிறது. ப்ராக்ஸியின் இணைப்புக் கண்காணிப்பு, பதில் ப்ராக்ஸி வழியாகத் திரும்பினால் மட்டுமே உதவும், மூல முகவரி இன்னும் அசல் வாடிக்கையாளரைக் காட்டும் வரை அது அங்கு திரும்ப முடியாது.
திரும்பும் மொழிபெயர்ப்பைச் சேர்க்கவும்
முன்னனுப்பப்படும் ஓட்டத்தின் மூலத்தை peer-க்கு செல்லும் முன் ப்ராக்ஸியின் சுரங்கப்பாதை முகவரிக்கு மீண்டும் எழுதுங்கள். பின்னர் சேவை 10.90.0.1-க்கு பதிலளிக்கிறது, ப்ராக்ஸி அதைப் பெறுகிறது, பாக்கெட் வாடிக்கையாளருக்குத் திரும்பும் முன் இணைப்புக் கண்காணிப்பு இரண்டு மொழிபெயர்ப்புகளையும் திருப்புகிறது.
iptables -t nat -A PREROUTING -p tcp -m multiport --dports 8080,8443 -j DNAT --to-destination 10.90.0.2
iptables -t nat -A POSTROUTING -d 10.90.0.2 -o wg0 -p tcp -m multiport --dports 8080,8443 -j SNAT --to-source 10.90.0.1POSTROUTING விதி வேண்டுமென்றே குறுகியது: அது மொழிபெயர்க்கப்பட்ட இலக்கு மற்றும் சுரங்கப்பாதை இடைமுகத்துடன் பொருந்துகிறது, எனவே wg0 வழியாகத் தற்செயலாக வெளியேறும் தொடர்பற்ற போக்குவரத்தை மீண்டும் எழுதாது. பரந்த masquerade விதி வாடிக்கையாளர் முகவரியையும் மறைக்கும், ஆனால் அதை ஒவ்வொரு ஓட்டத்திற்கும் செய்து NAT அட்டவணையை தணிக்கை செய்வதைக் கடினமாக்கும்.
சுரங்கப்பாதை இருக்கும் இடத்தில் விதிகளை வைக்கவும்
சுரங்கப்பாதை முகவரி அல்லது இடைமுகத்தைக் குறிக்கும் விதிகள் wg-quick அதை உள்ளமைத்த பிறகு இயங்க வேண்டும். இடைமுகம் PreUp-க்கு முன் உருவாக்கப்படுகிறது, ஆனால் முகவரிகள், MTU, DNS மற்றும் வழிகள் பின்னர் பயன்படுத்தப்படுகின்றன, அவை அனைத்தும் இடத்தில் இருந்தால் PostUp இயங்குகிறது. சேர்த்தல்களை PostUp-இலும் நீக்கல்களை PreDown-இலும் வைக்கவும்.
PostUp = iptables -t nat -A PREROUTING -p tcp -m multiport --dports 8080,8443 -j DNAT --to-destination 10.90.0.2
PostUp = iptables -t nat -A POSTROUTING -d 10.90.0.2 -o wg0 -p tcp -m multiport --dports 8080,8443 -j SNAT --to-source 10.90.0.1
PreDown = iptables -t nat -D PREROUTING -p tcp -m multiport --dports 8080,8443 -j DNAT --to-destination 10.90.0.2
PreDown = iptables -t nat -D POSTROUTING -d 10.90.0.2 -o wg0 -p tcp -m multiport --dports 8080,8443 -j SNAT --to-source 10.90.0.1நீக்கல்கள் சேர்த்தல்களுடன் டோக்கன் வாரியாகப் பொருந்த வேண்டும், multiport மற்றும் இடைமுகப் பொருத்தங்கள் உட்பட. ஒரு பொருத்தத்தில் வேறுபடும் நீக்கம் எதையும் நீக்காது, அடுத்த மறுஇணைப்பு விதியின் இரண்டாவது நகலைச் சேர்க்கிறது. சில மறுஇணைப்புகளுக்குப் பிறகு அட்டவணையில் உள்ளமைவு வரியுடன் இணைக்க கடினமான நகல்கள் இருக்கும்.
முடிவை iptables -t nat -S மூலம் மறுஇணைப்புக்குப் பிறகு சரிபார்க்கவும். அதே விதி இரண்டு முறை தோன்றினால் PreDown வரி பொருந்தவில்லை, சுத்தம் அமைதியாகத் தோல்வியடைகிறது.
முன்னனுப்பு, வடிகட்டுதல் மற்றும் மற்ற NAT
IPv4 முன்னனுப்பை நிரந்தரமாக இயக்கி, பின்னர் வடிகட்டி அட்டவணையில் முன்னனுப்பப்படும் ஓட்டத்திற்கு அனுமதி அளிக்கவும். DNAT FORWARD சங்கிலிக்கு முன் நிகழ்கிறது, எனவே வடிகட்டி விதி பொது முகவரியுடன் அல்ல, மொழிபெயர்க்கப்பட்ட இலக்குடன் பொருந்துகிறது. UFW ஃபயர்வாலை நிர்வகித்தால், அனுமதியை வழி விதியாக வெளிப்படுத்தவும்; சாதாரண host விதி முன்னனுப்பப்படும் போக்குவரத்தை உள்ளடக்காது.
ப்ராக்ஸி விதிகள் சரியாக இருந்தாலும் மற்ற இரண்டு NAT அடுக்குகள் பாதையை உடைக்கக்கூடும். வீட்டு இணைப்பில் பொது முகவரி ரவுட்டருக்குச் சொந்தம், அதன் ஃபயர்வாலில் போர்ட்டைத் திறப்பது அந்த போர்ட்டை ப்ராக்ஸிக்கு அனுப்பும் போர்ட்-ஃபார்வர்டு பதிவை உருவாக்குவதற்குச் சமமானதல்ல. வெளியில் திறந்ததாகத் தோன்றும் ஆனால் எதுவும் பதிலளிக்காத போர்ட்டில் அந்த மேப்பிங் பெரும்பாலும் இருக்காது.
NAT VPS-இல் வழங்குநர் பொது போர்ட்டை தனிப்பட்ட முகவரிக்கு மேப் செய்கிறார். மேப்பிங் நீங்கள் அறிவிக்கும் போர்ட்டுடன் பொருந்த வேண்டும், பொருந்தாமை உடைந்த சுரங்கப்பாதை போலவே தோன்றும். WireGuard உள்ளமைவை மாற்றும் முன் வழங்குநரின் மேப்பிங்கை உறுதிப்படுத்தவும்.
திரும்பும் பாதையைச் சரிபார்த்து செலவை ஏற்கவும்
ப்ராக்ஸியின் LAN அல்லாத நெட்வொர்க்கிலிருந்து இணைக்கவும், பின்னர் இணைப்பு திறந்திருக்கும் போது மொழிபெயர்ப்பு ஜோடியை ஆய்வு செய்யவும்:
conntrack -L -p tcp --dport 8080
tcpdump -ni any tcp port 8080conntrack பதிவு அசல் tuple, மொழிபெயர்க்கப்பட்ட tuple மற்றும் பதிலின் திசையைக் காட்ட வேண்டும். பதில் இல்லாவிட்டால் peer சுரங்கப்பாதை வழியாக அனுப்பவில்லை, அதாவது பொதுவாக SNAT விதி பயன்படுத்தப்படவில்லை அல்லது peer-இன் சொந்த ஃபயர்வால் ஓட்டத்தை வீசியது.
PostUp விதிகளை மீண்டும் பயன்படுத்துகிறது என்பதை நிரூபிக்க ஒருமுறை மறுதொடக்கம் செய்யவும், பின்னர் சுரங்கப்பாதையை நிறுத்தி PreDown அவற்றை நீக்கியதை உறுதிப்படுத்தவும். இணைப்பு துண்டிப்பைத் தாண்டி நீடிக்கும் இறந்த விதிகளே பிந்தைய மாற்றம் எதிர்பாராத வகையில் நடந்துகொள்வதற்குக் காரணம்.
இறுதியாக, SNAT-இன் செலவை ஏற்கவும். சேவை ஒவ்வொரு கோரிக்கையையும் ப்ராக்ஸியிலிருந்து வந்ததாகவே பார்க்கிறது, எனவே அணுகல் பதிவுகள், வாடிக்கையாளர் வாரியான வேக வரம்புகள் மற்றும் அனுமதிக்கப்பட்ட முகவரி பட்டியல்கள் இனி பயனர்களை வேறுபடுத்துவதில்லை. hairpin நிலைக்கு ப்ராக்ஸியின் LAN-இல் உள்ள வாடிக்கையாளர்களுக்கு அதன் சொந்த மூல மொழிபெயர்ப்பு தேவை. peer-க்கு உண்மையான வாடிக்கையாளர் முகவரிகள் தேவைப்பட்டால், மாற்று வழி வாடிக்கையாளர் நெட்வொர்க்கிற்குத் திரும்பும் வழி, அது அதிக வேலை ஆனால் தகவலைப் பாதுகாக்கிறது.