நெட்வொர்க்குகளை ஒரு L2 நெட்வொர்க்கில் இணைக்க OpenVPN இலிருந்து WireGuard க்கு மாறுகிறது

நெட்வொர்க்குகளை ஒரு L2 நெட்வொர்க்கில் இணைக்க OpenVPN இலிருந்து WireGuard க்கு மாறுகிறது

மூன்று புவியியல் ரீதியாக தொலைதூர அடுக்குமாடி குடியிருப்புகளில் நெட்வொர்க்குகளை இணைப்பதில் எனது அனுபவத்தை பகிர்ந்து கொள்ள விரும்புகிறேன், ஒவ்வொன்றும் OpenWRT உடன் ரவுட்டர்களை ஒரு நுழைவாயிலாக, ஒரு பொதுவான நெட்வொர்க்கில் பயன்படுத்துகிறது. சப்நெட் ரூட்டிங்குடன் L3 மற்றும் பிரிட்ஜிங்குடன் L2 நெட்வொர்க்குகளை இணைக்கும் முறையை தேர்ந்தெடுக்கும் போது, ​​அனைத்து நெட்வொர்க் நோட்களும் ஒரே சப்நெட்டில் இருக்கும் போது, ​​இரண்டாவது முறைக்கு முன்னுரிமை கொடுக்கப்பட்டது, இது கட்டமைக்க கடினமாக உள்ளது, ஆனால் அதிக வாய்ப்புகளை வழங்குகிறது. வேக்-ஆன்-லான் மற்றும் டிஎல்என்ஏ உருவாக்கப்பட்ட நெட்வொர்க்கில் தொழில்நுட்பங்களின் வெளிப்படையான பயன்பாடு திட்டமிடப்பட்டது.

பகுதி 1: பின்னணி

முதலில் இந்த பணியை செயல்படுத்துவதற்கான நெறிமுறையாக OpenVPN தேர்வு செய்யப்பட்டது, ஏனெனில், முதலில், இது ஒரு குழாய் சாதனத்தை உருவாக்க முடியும், அது சிக்கல்கள் இல்லாமல் பிரிட்ஜில் சேர்க்கப்படலாம், இரண்டாவதாக, OpenVPN TCP நெறிமுறையில் செயல்படுவதை ஆதரிக்கிறது, இதுவும் முக்கியமானது, ஏனெனில் எதுவும் இல்லை. அபார்ட்மெண்ட்களில் ஒரு பிரத்யேக IP முகவரி இருந்தது, மேலும் என்னால் STUN ஐப் பயன்படுத்த முடியவில்லை, ஏனெனில் எனது வழங்குநர் சில காரணங்களால் அவர்களின் நெட்வொர்க்குகளிலிருந்து உள்வரும் UDP இணைப்புகளைத் தடுக்கிறார், அதே நேரத்தில் TCP நெறிமுறையானது VPN சேவையக போர்ட்டை SSH ஐப் பயன்படுத்தி வாடகை VPSக்கு அனுப்ப அனுமதித்தது. ஆம், இந்த அணுகுமுறை ஒரு பெரிய சுமையை அளிக்கிறது, ஏனெனில் தரவு இரண்டு முறை குறியாக்கம் செய்யப்பட்டுள்ளது, ஆனால் எனது தனிப்பட்ட நெட்வொர்க்கில் VPS ஐ அறிமுகப்படுத்த விரும்பவில்லை, ஏனெனில் மூன்றாம் தரப்பினரின் கட்டுப்பாட்டைப் பெறும் ஆபத்து இன்னும் உள்ளது, எனவே, அத்தகைய சாதனம் உள்ளது எனது வீட்டு நெட்வொர்க்கில் மிகவும் விரும்பத்தகாததாக இருந்தது மற்றும் ஒரு பெரிய மேல்நிலையுடன் பாதுகாப்புக்கு பணம் செலுத்த முடிவு செய்யப்பட்டது.

சேவையகத்தை வரிசைப்படுத்த திட்டமிடப்பட்ட திசைவியில் போர்ட்டை அனுப்ப, sshtunnel நிரல் பயன்படுத்தப்பட்டது. அதன் உள்ளமைவின் நுணுக்கங்களை நான் விவரிக்க மாட்டேன் - இது மிகவும் எளிதாக முடிந்தது, TCP போர்ட் 1194 ஐ திசைவியிலிருந்து VPS க்கு அனுப்புவதே அதன் பணி என்பதை நான் கவனிக்கிறேன். அடுத்து, OpenVPN சேவையகம், br-lan பிரிட்ஜுடன் இணைக்கப்பட்ட tap0 சாதனத்தில் கட்டமைக்கப்பட்டது. மடிக்கணினியிலிருந்து புதிதாக உருவாக்கப்பட்ட சேவையகத்திற்கான இணைப்பைச் சரிபார்த்த பிறகு, போர்ட் பகிர்தல் யோசனை நியாயமானது மற்றும் எனது மடிக்கணினி திசைவியின் நெட்வொர்க்கில் உறுப்பினரானது, அது உடல் ரீதியாக இல்லாவிட்டாலும்.

செய்ய ஒரே ஒரு சிறிய விஷயம் மட்டுமே உள்ளது: வெவ்வேறு அடுக்குமாடி குடியிருப்புகளில் ஐபி முகவரிகளை விநியோகிக்க வேண்டியது அவசியம், இதனால் அவை முரண்படாது மற்றும் ரூட்டர்களை OpenVPN கிளையண்ட்களாக உள்ளமைக்க வேண்டும்.
பின்வரும் திசைவி IP முகவரிகள் மற்றும் DHCP சேவையக வரம்புகள் தேர்ந்தெடுக்கப்பட்டன:

  • 192.168.10.1 வரம்புடன் 192.168.10.2 - 192.168.10.80 சர்வருக்கு
  • 192.168.10.100 வரம்புடன் 192.168.10.101 - 192.168.10.149 அடுக்குமாடி எண் 2 இல் உள்ள திசைவிக்கு
  • 192.168.10.150 வரம்புடன் 192.168.10.151 - 192.168.10.199 அடுக்குமாடி எண் 3 இல் உள்ள திசைவிக்கு

OpenVPN சேவையகத்தின் கிளையன்ட் ரவுட்டர்களுக்கு அதன் கட்டமைப்பில் வரியைச் சேர்ப்பதன் மூலம் இந்த முகவரிகளை சரியாக ஒதுக்க வேண்டியது அவசியம்:

ifconfig-pool-persist /etc/openvpn/ipp.txt 0

மேலும் /etc/openvpn/ipp.txt கோப்பில் பின்வரும் வரிகளைச் சேர்த்தல்:

flat1_id 192.168.10.100
flat2_id 192.168.10.150

இதில் flat1_id மற்றும் flat2_id ஆகியவை OpenVPN உடன் இணைப்பதற்கான சான்றிதழ்களை உருவாக்கும் போது குறிப்பிடப்படும் சாதனப் பெயர்கள்

அடுத்து, OpenVPN கிளையண்டுகள் ரூட்டர்களில் கட்டமைக்கப்பட்டன, இரண்டிலும் உள்ள tap0 சாதனங்கள் br-lan பிரிட்ஜில் சேர்க்கப்பட்டன. இந்த கட்டத்தில், மூன்று நெட்வொர்க்குகளும் ஒருவரையொருவர் பார்த்து ஒன்றாக வேலை செய்வதால் எல்லாம் நன்றாக இருப்பதாகத் தோன்றியது. இருப்பினும், மிகவும் இனிமையான விவரம் வெளிப்பட்டது: சில சமயங்களில் சாதனங்கள் ஐபி முகவரியை அவற்றின் ரூட்டரிலிருந்து பெற முடியாது, அடுத்தடுத்த அனைத்து விளைவுகளுடன். சில காரணங்களால், அடுக்குமாடி குடியிருப்பில் உள்ள ரூட்டருக்கு சரியான நேரத்தில் DHCPDISCOVER க்கு பதிலளிக்க நேரம் இல்லை மற்றும் சாதனம் நோக்கம் இல்லாத முகவரியைப் பெற்றது. ஒவ்வொரு ரூட்டரிலும் இதுபோன்ற கோரிக்கைகளை tap0 இல் வடிகட்ட வேண்டும் என்பதை நான் உணர்ந்தேன், ஆனால் அது மாறியது போல், iptables ஒரு பிரிட்ஜின் ஒரு பகுதியாக இருந்தால் சாதனத்துடன் வேலை செய்ய முடியாது மற்றும் ebtables எனக்கு உதவ வேண்டும். எனது வருத்தத்திற்கு, இது எனது ஃபார்ம்வேரில் இல்லை, மேலும் ஒவ்வொரு சாதனத்திற்கும் படங்களை மீண்டும் உருவாக்க வேண்டியிருந்தது. இதைச் செய்து, ஒவ்வொரு திசைவியின் /etc/rc.local இல் இந்த வரிகளைச் சேர்ப்பதன் மூலம், சிக்கல் தீர்க்கப்பட்டது:

ebtables -A INPUT --in-interface tap0 --protocol ipv4 --ip-protocol udp --ip-destination-port 67:68 -j DROP
ebtables -A INPUT --in-interface tap0 --protocol ipv4 --ip-protocol udp --ip-source-port 67:68 -j DROP
ebtables -A FORWARD --out-interface tap0 --protocol ipv4 --ip-protocol udp --ip-destination-port 67:68 -j DROP
ebtables -A FORWARD --out-interface tap0 --protocol ipv4 --ip-protocol udp --ip-source-port 67:68 -j DROP

இந்த அமைப்பு மூன்று ஆண்டுகள் நீடித்தது.

பகுதி 2: வயர்கார்டை அறிமுகப்படுத்துகிறது

சமீபத்தில், இணையத்தில் உள்ளவர்கள் WireGuard பற்றி பேசத் தொடங்கியுள்ளனர், அதன் உள்ளமைவின் எளிமை, அதிக பரிமாற்ற வேகம், ஒப்பிடக்கூடிய பாதுகாப்புடன் குறைந்த பிங் ஆகியவற்றைப் பாராட்டுகிறார்கள். இதைப் பற்றிய கூடுதல் தகவல்களைத் தேடுவது, பிரிட்ஜ் உறுப்பினராக வேலை செய்யவில்லை அல்லது TCP நெறிமுறையில் வேலை செய்யவில்லை என்பது தெளிவாகிறது, இது எனக்கு OpenVPN க்கு இன்னும் மாற்று வழிகள் இல்லை என்று நினைக்க வைத்தது. அதனால் வயர்கார்டைத் தெரிந்து கொள்வதைத் தள்ளிப் போட்டேன்.

சில நாட்களுக்கு முன்பு, பதிப்பு 5.6 இல் தொடங்கி WireGuard இறுதியாக Linux கர்னலில் சேர்க்கப்படும் என்று தகவல் தொழில்நுட்பம் தொடர்பான ஆதாரங்களில் ஒரு வழி அல்லது மற்றொரு செய்தி பரவியது. செய்திக் கட்டுரைகள், எப்போதும் போல், வயர்கார்டைப் பாராட்டின. நல்ல பழைய OpenVPN ஐ மாற்றுவதற்கான வழிகளுக்கான தேடலில் நான் மீண்டும் மூழ்கினேன். இந்த முறை நான் ஓடினேன் இந்த கட்டுரை. GRE ஐப் பயன்படுத்தி L3 மீது ஈத்தர்நெட் சுரங்கப்பாதையை உருவாக்குவது பற்றி அது பேசியது. இந்தக் கட்டுரை எனக்கு நம்பிக்கையைத் தந்தது. UDP நெறிமுறையை என்ன செய்வது என்பது தெளிவாகத் தெரியவில்லை. UDP போர்ட்டை அனுப்புவதற்கு SSH சுரங்கப்பாதையுடன் இணைந்து socat ஐப் பயன்படுத்துவது பற்றிய கட்டுரைகளுக்கு தேடல் என்னை அழைத்துச் சென்றது, இருப்பினும், இந்த அணுகுமுறை ஒற்றை இணைப்பு பயன்முறையில் மட்டுமே செயல்படும், அதாவது பல VPN கிளையண்டுகளின் வேலை சாத்தியமற்றது என்று அவர்கள் குறிப்பிட்டனர். ஒரு VPS இல் VPN சேவையகத்தை நிறுவி வாடிக்கையாளர்களுக்கு GRE ஐ அமைக்கும் யோசனையை நான் கொண்டு வந்தேன், ஆனால் அது மாறியது போல், GRE குறியாக்கத்தை ஆதரிக்காது, இது மூன்றாம் தரப்பினர் சேவையகத்தை அணுகினால். , எனது நெட்வொர்க்குகளுக்கு இடையேயான அனைத்து போக்குவரமும் அவர்கள் கைகளில் இருக்கும் , இது எனக்குப் பொருந்தாது.

மீண்டும், பின்வரும் திட்டத்தைப் பயன்படுத்தி VPN வழியாக VPN ஐப் பயன்படுத்தி, தேவையற்ற குறியாக்கத்திற்கு ஆதரவாக முடிவு எடுக்கப்பட்டது:

நிலை XNUMX VPN:
VPS வாக்குமூலம் அது ஆகிறது சர்வர் உள் முகவரியுடன் 192.168.30.1
எம் அது ஆகிறது வாடிக்கையாளர் உள் முகவரியுடன் VPS 192.168.30.2
MK2 அது ஆகிறது வாடிக்கையாளர் உள் முகவரியுடன் VPS 192.168.30.3
MK3 அது ஆகிறது வாடிக்கையாளர் உள் முகவரியுடன் VPS 192.168.30.4

இரண்டாம் நிலை VPN:
எம் அது ஆகிறது சர்வர் வெளிப்புற முகவரி 192.168.30.2 மற்றும் உள் 192.168.31.1
MK2 அது ஆகிறது வாடிக்கையாளர் எம் முகவரியுடன் 192.168.30.2 மற்றும் உள் IP 192.168.31.2 உள்ளது
MK3 அது ஆகிறது வாடிக்கையாளர் எம் முகவரியுடன் 192.168.30.2 மற்றும் உள் IP 192.168.31.3 உள்ளது

* எம் - அபார்ட்மெண்ட் 1 இல் உள்ள திசைவி-சேவையகம், MK2 - அபார்ட்மெண்ட் 2 இல் உள்ள திசைவி, MK3 - அபார்ட்மெண்ட் 3 இல் உள்ள திசைவி
* கட்டுரையின் முடிவில் சாதன உள்ளமைவுகள் ஸ்பாய்லரில் வெளியிடப்படும்.

எனவே, பிங்ஸ் நெட்வொர்க் முனைகள் 192.168.31.0/24 இடையே இயங்குகிறது, இது ஒரு GRE சுரங்கப்பாதையை அமைப்பதற்குச் செல்ல வேண்டிய நேரம். இதற்கு முன், திசைவிகளுக்கான அணுகலை இழக்காமல் இருக்க, போர்ட் 22 ஐ VPS க்கு அனுப்புவதற்கு SSH சுரங்கங்களை அமைப்பது மதிப்புக்குரியது, எடுத்துக்காட்டாக, அபார்ட்மெண்ட் 10022 இன் திசைவி VPS இன் போர்ட் 2 இல் அணுகக்கூடியதாக இருக்கும். அபார்ட்மெண்ட் 11122 இலிருந்து ரூட்டரை அபார்ட்மெண்ட் 3 இலிருந்து போர்ட் XNUMX ரூட்டரில் அணுக முடியும். அதே sshtunnel ஐப் பயன்படுத்தி பகிர்தலை உள்ளமைப்பது சிறந்தது, ஏனெனில் அது தோல்வியுற்றால் அது சுரங்கப்பாதையை மீட்டெடுக்கும்.

சுரங்கப்பாதை கட்டமைக்கப்பட்டுள்ளது, நீங்கள் அனுப்பப்பட்ட போர்ட் வழியாக SSH உடன் இணைக்கலாம்:

ssh root@МОЙ_VPS -p 10022

அடுத்து நீங்கள் OpenVPN ஐ முடக்க வேண்டும்:

/etc/init.d/openvpn stop

இப்போது அபார்ட்மெண்ட் 2 இலிருந்து திசைவியில் ஒரு GRE சுரங்கப்பாதையை அமைப்போம்:

ip link add grelan0 type gretap remote 192.168.31.1 local 192.168.31.2
ip link set grelan0 up

உருவாக்கப்பட்ட இடைமுகத்தை பிரிட்ஜில் சேர்க்கவும்:

brctl addif br-lan grelan0

சேவையக திசைவியில் இதேபோன்ற நடைமுறையைச் செய்வோம்:

ip link add grelan0 type gretap remote 192.168.31.2 local 192.168.31.1
ip link set grelan0 up

மேலும் உருவாக்கப்பட்ட இடைமுகத்தை பாலத்தில் சேர்க்கவும்:

brctl addif br-lan grelan0

இந்த தருணத்திலிருந்து, பிங்ஸ் வெற்றிகரமாக புதிய நெட்வொர்க்கிற்குச் செல்லத் தொடங்குகிறது, நான் திருப்தியுடன் காபி குடிக்கச் செல்கிறேன். பின்னர், வரிசையின் மறுமுனையில் நெட்வொர்க் எவ்வாறு செயல்படுகிறது என்பதை மதிப்பீடு செய்ய, நான் அபார்ட்மெண்ட் 2 இல் உள்ள கணினிகளில் ஒன்றில் SSH செய்ய முயற்சிக்கிறேன், ஆனால் ssh கிளையண்ட் கடவுச்சொல்லை கேட்காமல் உறைகிறது. நான் போர்ட் 22 இல் உள்ள டெல்நெட் வழியாக இந்த கணினியுடன் இணைக்க முயற்சிக்கிறேன், இணைப்பு நிறுவப்பட்டது, SSH சேவையகம் பதிலளிக்கிறது என்பதை நான் புரிந்து கொள்ளக்கூடிய ஒரு வரியைப் பார்க்கிறேன், ஆனால் சில காரணங்களால் அது என்னை உள்நுழையத் தூண்டவில்லை. உள்ளே

$ telnet 192.168.10.110 22
SSH-2.0-OpenSSH_8.1

நான் VNC வழியாக இணைக்க முயற்சிக்கிறேன் மற்றும் கருப்பு திரையைப் பார்க்கிறேன். ரிமோட் கம்ப்யூட்டரில் பிரச்சனை என்று என்னை நானே சமாதானப்படுத்துகிறேன், ஏனென்றால் உள் முகவரியைப் பயன்படுத்தி இந்த அபார்ட்மெண்டிலிருந்து திசைவிக்கு எளிதாக இணைக்க முடியும். இருப்பினும், இந்த கணினியின் SSH உடன் திசைவி மூலம் இணைக்க முடிவு செய்தேன், இணைப்பு வெற்றிகரமாக இருப்பதைக் கண்டு ஆச்சரியப்படுகிறேன், மேலும் தொலை கணினி மிகவும் சாதாரணமாக வேலை செய்கிறது, ஆனால் அது எனது கணினியுடன் இணைக்க முடியாது.

நான் பிரிட்ஜில் இருந்து grelan0 சாதனத்தை அகற்றி, அபார்ட்மெண்ட் 2 இல் உள்ள ரூட்டரில் OpenVPN ஐ இயக்கி, நெட்வொர்க் எதிர்பார்த்தபடி மீண்டும் செயல்படுவதையும் இணைப்புகள் கைவிடப்படாமல் இருப்பதையும் உறுதிசெய்கிறேன். தேடுவதன் மூலம் மக்கள் அதே பிரச்சனைகளைப் பற்றி புகார் செய்யும் மன்றங்களை நான் காண்கிறேன், அங்கு அவர்கள் MTU ஐ உயர்த்த அறிவுறுத்தப்படுகிறார்கள். சீக்கிரம் சொல்லிவிட முடியாது. இருப்பினும், MTU போதுமான அளவு உயரமாக அமைக்கப்படும் வரை - 7000 gretap சாதனங்களுக்கு, TCP இணைப்புகள் கைவிடப்பட்டன அல்லது குறைந்த பரிமாற்ற விகிதங்கள் காணப்பட்டன. கிரேடாப்பிற்கான உயர் MTU காரணமாக, லேயர் 8000 மற்றும் லேயர் 7500 வயர்கார்டு இணைப்புகளுக்கான MTUகள் முறையே XNUMX மற்றும் XNUMX ஆக அமைக்கப்பட்டன.

அபார்ட்மெண்ட் 3 இலிருந்து திசைவியில் இதேபோன்ற அமைப்பை நான் மேற்கொண்டேன், ஒரே வித்தியாசம் என்னவென்றால், grelan1 என்ற பெயரிடப்பட்ட இரண்டாவது கிரேடாப் இடைமுகம் சர்வர் ரூட்டரில் சேர்க்கப்பட்டது, இது br-lan பிரிட்ஜிலும் சேர்க்கப்பட்டது.

எல்லாம் வேலை செய்கிறது. இப்போது நீங்கள் gretap சட்டசபையை தொடக்கத்தில் வைக்கலாம். இதற்காக:

இந்த வரிகளை அபார்ட்மெண்ட் 2 இல் உள்ள ரூட்டரில் /etc/rc.local இல் வைத்தேன்:

ip link add grelan0 type gretap remote 192.168.31.1 local 192.168.31.2
ip link set dev grelan0 mtu 7000
ip link set grelan0 up
brctl addif br-lan grelan0

அபார்ட்மெண்ட் 3 இல் உள்ள ரூட்டரில் இது /etc/rc.local இல் சேர்க்கப்பட்டது:

ip link add grelan0 type gretap remote 192.168.31.1 local 192.168.31.3
ip link set dev grelan0 mtu 7000
ip link set grelan0 up
brctl addif br-lan grelan0

மற்றும் சர்வர் திசைவியில்:

ip link add grelan0 type gretap remote 192.168.31.2 local 192.168.31.1
ip link set dev grelan0 mtu 7000
ip link set grelan0 up
brctl addif br-lan grelan0

ip link add grelan1 type gretap remote 192.168.31.3 local 192.168.31.1
ip link set dev grelan1 mtu 7000
ip link set grelan1 up
brctl addif br-lan grelan1

கிளையன்ட் ரவுட்டர்களை மறுதொடக்கம் செய்த பிறகு, சில காரணங்களால் அவை சேவையகத்துடன் இணைக்கப்படவில்லை என்பதைக் கண்டுபிடித்தேன். அவர்களின் SSH உடன் இணைக்கப்பட்ட பிறகு (அதிர்ஷ்டவசமாக, இதற்கு முன்பு நான் sshtunnel ஐ உள்ளமைத்திருந்தேன்), WireGuard சில காரணங்களால் இறுதிப்புள்ளிக்கான வழியை உருவாக்குவது கண்டுபிடிக்கப்பட்டது, ஆனால் அது தவறானது. எனவே, 192.168.30.2 க்கு, ரூட் டேபிள் pppoe-wan இடைமுகத்தின் வழியாக ஒரு வழியைக் குறிக்கிறது, அதாவது இணையம் வழியாக, அதற்கான பாதை wg0 இடைமுகத்தின் மூலம் அனுப்பப்பட்டிருக்க வேண்டும். இந்த வழியை நீக்கிய பிறகு, இணைப்பு மீட்டமைக்கப்பட்டது. இந்த வழிகளை உருவாக்க வேண்டாம் என்று WireGuard ஐ எவ்வாறு கட்டாயப்படுத்துவது என்பதற்கான வழிமுறைகளை எங்கும் என்னால் கண்டுபிடிக்க முடியவில்லை. மேலும், இது OpenWRT அல்லது WireGuard இன் அம்சமா என்பது கூட எனக்குப் புரியவில்லை. நீண்ட காலமாக இந்தச் சிக்கலைச் சமாளிக்காமல், இந்த வழியை நீக்கிய டைம்ட் ஸ்கிரிப்டில் இரண்டு ரவுட்டர்களுக்கும் ஒரு வரியைச் சேர்த்துள்ளேன்:

route del 192.168.30.2

சுருக்கமாக

நான் இன்னும் OpenVPN ஐ முழுமையாக கைவிடவில்லை, ஏனெனில் நான் சில நேரங்களில் மடிக்கணினி அல்லது தொலைபேசியிலிருந்து புதிய நெட்வொர்க்குடன் இணைக்க வேண்டும், மேலும் அவற்றில் ஒரு கிரேடாப் சாதனத்தை அமைப்பது பொதுவாக சாத்தியமற்றது, ஆனால் இது இருந்தபோதிலும், வேகத்தில் எனக்கு ஒரு நன்மை கிடைத்தது. அடுக்குமாடி குடியிருப்புகளுக்கு இடையே தரவு பரிமாற்றம் மற்றும், எடுத்துக்காட்டாக, VNC ஐப் பயன்படுத்துவது இனி சிரமமாக இருக்காது. பிங் சிறிது குறைந்தது, ஆனால் இன்னும் நிலையானது:

OpenVPN ஐப் பயன்படுத்தும் போது:

[r0ck3r@desktop ~]$ ping -c 20 192.168.10.110
PING 192.168.10.110 (192.168.10.110) 56(84) bytes of data.
64 bytes from 192.168.10.110: icmp_seq=1 ttl=64 time=133 ms
...
64 bytes from 192.168.10.110: icmp_seq=20 ttl=64 time=125 ms

--- 192.168.10.110 ping statistics ---
20 packets transmitted, 20 received, 0% packet loss, time 19006ms
rtt min/avg/max/mdev = 124.722/126.152/136.907/3.065 ms

வயர்கார்டைப் பயன்படுத்தும் போது:

[r0ck3r@desktop ~]$ ping -c 20 192.168.10.110
PING 192.168.10.110 (192.168.10.110) 56(84) bytes of data.
64 bytes from 192.168.10.110: icmp_seq=1 ttl=64 time=124 ms
...
64 bytes from 192.168.10.110: icmp_seq=20 ttl=64 time=124 ms
--- 192.168.10.110 ping statistics ---
20 packets transmitted, 20 received, 0% packet loss, time 19003ms
rtt min/avg/max/mdev = 123.954/124.423/126.708/0.675 ms

இது VPSக்கு அதிக பிங்கினால் அதிகம் பாதிக்கப்படுகிறது, இது தோராயமாக 61.5 ms ஆகும்.

இருப்பினும், வேகம் கணிசமாக அதிகரித்துள்ளது. எனவே, சர்வர் ரூட்டருடன் கூடிய அபார்ட்மெண்டில் எனக்கு இணைய இணைப்பு வேகம் 30 Mbit/sec, மற்ற அடுக்குமாடி குடியிருப்புகளில் 5 Mbit/sec. அதே நேரத்தில், OpenVPN ஐப் பயன்படுத்தும் போது, ​​iperf அளவீடுகளின்படி 3,8 Mbit/sec நெட்வொர்க்குகளுக்கு இடையே தரவு பரிமாற்ற வேகத்தை என்னால் அடைய முடியவில்லை, அதே நேரத்தில் WireGuard அதை அதே 5 Mbit/secக்கு "உயர்த்தியது".

VPS இல் WireGuard கட்டமைப்பு[Interface] Address = 192.168.30.1/24
ListenPort = 51820
PrivateKey = <ЗАКРЫТЫЙ_КЛЮЧ_ДЛЯ_VPS>

[Peer] PublicKey = <ОТКРЫТЫЙ_КЛЮЧ_VPN_1_МС>
AllowedIPs = 192.168.30.2/32

[Peer] PublicKey = <ОТКРЫТЫЙ_КЛЮЧ_VPN_2_МК2>
AllowedIPs = 192.168.30.3/32

[Peer] PublicKey = <ОТКРЫТЫЙ_КЛЮЧ_VPN_2_МК3>
AllowedIPs = 192.168.30.4/32

MS இல் WireGuard கட்டமைப்பு (/etc/config/network இல் சேர்க்கப்பட்டது)

#VPN первого уровня - клиент
config interface 'wg0'
        option proto 'wireguard'
        list addresses '192.168.30.2/24'
        option private_key 'ЗАКРЫТЫЙ_КЛЮЧ_VPN_1_МС'
        option auto '1'
        option mtu '8000'

config wireguard_wg0
        option public_key 'ОТКРЫТЫЙ_КЛЮЧ_VPN_1_VPS'
        option endpoint_port '51820'
        option route_allowed_ips '1'
        option persistent_keepalive '25'
        list allowed_ips '192.168.30.0/24'
        option endpoint_host 'IP_АДРЕС_VPS'

#VPN второго уровня - сервер
config interface 'wg1'
        option proto 'wireguard'
        option private_key 'ЗАКРЫТЫЙ_КЛЮЧ_VPN_2_МС'
        option listen_port '51821'
        list addresses '192.168.31.1/24'
        option auto '1'
        option mtu '7500'

config wireguard_wg1
        option public_key 'ОТКРЫТЫЙ_КЛЮЧ_VPN_2_МК2'
        list allowed_ips '192.168.31.2'

config wireguard_wg1ip link add grelan0 type gretap remote 192.168.31.1 local 192.168.31.3

        option public_key 'ОТКРЫТЫЙ_КЛЮЧ_VPN_2_МК3'
        list allowed_ips '192.168.31.3'

MK2 இல் WireGuard உள்ளமைவு (/etc/config/network இல் சேர்க்கப்பட்டது)

#VPN первого уровня - клиент
config interface 'wg0'
        option proto 'wireguard'
        list addresses '192.168.30.3/24'
        option private_key 'ЗАКРЫТЫЙ_КЛЮЧ_VPN_1_МК2'
        option auto '1'
        option mtu '8000'

config wireguard_wg0
        option public_key 'ОТКРЫТЫЙ_КЛЮЧ_VPN_1_VPS'
        option endpoint_port '51820'
        option persistent_keepalive '25'
        list allowed_ips '192.168.30.0/24'
        option endpoint_host 'IP_АДРЕС_VPS'

#VPN второго уровня - клиент
config interface 'wg1'
        option proto 'wireguard'
        option private_key 'ЗАКРЫТЫЙ_КЛЮЧ_VPN_2_МК2'
        list addresses '192.168.31.2/24'
        option auto '1'
        option listen_port '51821'
        option mtu '7500'

config wireguard_wg1
        option public_key 'ОТКРЫТЫЙ_КЛЮЧ_VPN_2_МС'
        option endpoint_host '192.168.30.2'
        option endpoint_port '51821'
        option persistent_keepalive '25'
        list allowed_ips '192.168.31.0/24'

MK3 இல் WireGuard உள்ளமைவு (/etc/config/network இல் சேர்க்கப்பட்டது)

#VPN первого уровня - клиент
config interface 'wg0'
        option proto 'wireguard'
        list addresses '192.168.30.4/24'
        option private_key 'ЗАКРЫТЫЙ_КЛЮЧ_VPN_1_МК3'
        option auto '1'
        option mtu '8000'

config wireguard_wg0
        option public_key 'ОТКРЫТЫЙ_КЛЮЧ_VPN_1_VPS'
        option endpoint_port '51820'
        option persistent_keepalive '25'
        list allowed_ips '192.168.30.0/24'
        option endpoint_host 'IP_АДРЕС_VPS'

#VPN второго уровня - клиент
config interface 'wg1'
        option proto 'wireguard'
        option private_key 'ЗАКРЫТЫЙ_КЛЮЧ_VPN_2_МК3'
        list addresses '192.168.31.3/24'
        option auto '1'
        option listen_port '51821'
        option mtu '7500'

config wireguard_wg1
        option public_key 'ОТКРЫТЫЙ_КЛЮЧ_VPN_2_МС'
        option endpoint_host '192.168.30.2'
        option endpoint_port '51821'
        option persistent_keepalive '25'
        list allowed_ips '192.168.31.0/24'

இரண்டாம் நிலை VPN க்கான விவரிக்கப்பட்ட உள்ளமைவுகளில், WireGuard கிளையண்டுகளை போர்ட் 51821 க்கு நான் சுட்டிக்காட்டுகிறேன். கோட்பாட்டில், இது தேவையில்லை, ஏனெனில் கிளையன்ட் எந்தவொரு இலவச சலுகை இல்லாத போர்ட்டிலிருந்தும் இணைப்பை நிறுவுவார், ஆனால் நான் அதைத் தடைசெய்யக்கூடிய வகையில் செய்தேன். போர்ட் 0 க்கு உள்வரும் UDP இணைப்புகளைத் தவிர அனைத்து திசைவிகளின் wg51821 இடைமுகங்களில் உள்ள அனைத்து உள்வரும் இணைப்புகளும்.

கட்டுரை ஒருவருக்கு பயனுள்ளதாக இருக்கும் என்று நம்புகிறேன்.

சோசலிஸ்ட் கட்சி மேலும், எனது நெட்வொர்க்கில் புதிய சாதனம் தோன்றும்போது WirePusher பயன்பாட்டில் எனது ஃபோனுக்கு புஷ் அறிவிப்பை அனுப்பும் எனது ஸ்கிரிப்டைப் பகிர விரும்புகிறேன். ஸ்கிரிப்டிற்கான இணைப்பு இதோ: github.com/r0ck3r/device_discover.

புதுப்பிப்பு: OpenVPN சேவையகம் மற்றும் கிளையண்டுகளின் கட்டமைப்பு

OpenVPN சேவையகம்

client-to-client

ca /etc/openvpn/server/ca.crt
cert /etc/openvpn/server/vpn-server.crt
dh /etc/openvpn/server/dh.pem
key /etc/openvpn/server/vpn-server.key

dev tap
ifconfig-pool-persist /etc/openvpn/ipp.txt 0
keepalive 10 60
proto tcp4
server-bridge 192.168.10.1 255.255.255.0 192.168.10.80 192.168.10.254
status /var/log/openvpn-status.log
verb 3
comp-lzo

OpenVPN கிளையன்ட்

client
tls-client
dev tap
proto tcp
remote VPS_IP 1194 # Change to your router's External IP
resolv-retry infinite
nobind

ca client/ca.crt
cert client/client.crt
key client/client.key
dh client/dh.pem

comp-lzo
persist-tun
persist-key
verb 3

சான்றிதழ்களை உருவாக்க ஈஸி-ஆர்எஸ்ஏவைப் பயன்படுத்தினேன்

ஆதாரம்: www.habr.com

கருத்தைச் சேர்