WireGuard ಮತ್ತು Raspberry Pi ಜೊತೆಗೆ ಸರಳ VPN ಅನ್ನು ಸರ್ವರ್ ಆಗಿ ಹೊಂದಿಸಲಾಗುತ್ತಿದೆ

ಏಕೆಂದರೆ ವೈರ್‌ಗಾರ್ಡ್ ಭಾಗವಾಗುತ್ತದೆ ಮುಂಬರುವ ಲಿನಕ್ಸ್ ಕರ್ನಲ್ 5.6 ನಲ್ಲಿ, ಈ VPN ಅನ್ನು ನನ್ನೊಂದಿಗೆ ಹೇಗೆ ಸಂಯೋಜಿಸುವುದು ಎಂದು ನೋಡಲು ನಾನು ನಿರ್ಧರಿಸಿದೆ ರಾಸ್ಪ್ಬೆರಿ ಪೈನಲ್ಲಿ LTE ರೂಟರ್/ಪ್ರವೇಶ ಬಿಂದು.

ಸಲಕರಣೆ

  • LTE ಮಾಡ್ಯೂಲ್ ಮತ್ತು ಸಾರ್ವಜನಿಕ IP ವಿಳಾಸದೊಂದಿಗೆ ರಾಸ್ಪ್ಬೆರಿ ಪೈ 3. ಇಲ್ಲಿ VPN ಸರ್ವರ್ ಇರುತ್ತದೆ (ಇನ್ನು ಮುಂದೆ ಅದನ್ನು ಪಠ್ಯದಲ್ಲಿ ಕರೆಯಲಾಗುತ್ತದೆ ಎಡ್ಜ್ವಾಕರ್)
  • ಎಲ್ಲಾ ಸಂವಹನಗಳಿಗೆ VPN ಅನ್ನು ಬಳಸಬೇಕಾದ Android ಫೋನ್
  • ನೆಟ್‌ವರ್ಕ್‌ನಲ್ಲಿ VPN ಅನ್ನು ಮಾತ್ರ ಬಳಸಬೇಕಾದ Linux ಲ್ಯಾಪ್‌ಟಾಪ್

VPN ಗೆ ಸಂಪರ್ಕಿಸುವ ಪ್ರತಿಯೊಂದು ಸಾಧನವು ಎಲ್ಲಾ ಇತರ ಸಾಧನಗಳಿಗೆ ಸಂಪರ್ಕಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, ಎರಡೂ ಸಾಧನಗಳು VPN ನೆಟ್‌ವರ್ಕ್‌ನ ಭಾಗವಾಗಿದ್ದರೆ ಫೋನ್ ಲ್ಯಾಪ್‌ಟಾಪ್‌ನಲ್ಲಿ ವೆಬ್ ಸರ್ವರ್‌ಗೆ ಸಂಪರ್ಕಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತದೆ. ಸೆಟಪ್ ತುಂಬಾ ಸರಳವಾಗಿದ್ದರೆ, ನೀವು ಡೆಸ್ಕ್‌ಟಾಪ್ ಅನ್ನು VPN ಗೆ ಸಂಪರ್ಕಿಸುವ ಬಗ್ಗೆ ಯೋಚಿಸಬಹುದು (ಈಥರ್ನೆಟ್ ಮೂಲಕ).

ವೈರ್ಡ್ ಮತ್ತು ವೈರ್‌ಲೆಸ್ ಸಂಪರ್ಕಗಳು ಕಾಲಾನಂತರದಲ್ಲಿ ಕಡಿಮೆ ಮತ್ತು ಕಡಿಮೆ ಸುರಕ್ಷಿತವಾಗುತ್ತಿವೆ ಎಂದು ಪರಿಗಣಿಸಿ (ಉದ್ದೇಶಿತ ದಾಳಿಗಳು, KRACK WPA2 ಕ್ರ್ಯಾಕಿಂಗ್ ದಾಳಿ и WPA3 ವಿರುದ್ಧ ಡ್ರ್ಯಾಗನ್‌ಬ್ಲಡ್ ದಾಳಿ), ನನ್ನ ಎಲ್ಲಾ ಸಾಧನಗಳಿಗೆ ವೈರ್‌ಗಾರ್ಡ್ ಅನ್ನು ಬಳಸುವುದನ್ನು ನಾನು ಗಂಭೀರವಾಗಿ ಪರಿಗಣಿಸುತ್ತಿದ್ದೇನೆ, ಅವುಗಳು ಯಾವುದೇ ಪರಿಸರದಲ್ಲಿದ್ದರೂ ಪರವಾಗಿಲ್ಲ.

ಸಾಫ್ಟ್‌ವೇರ್ ಸ್ಥಾಪನೆ

WireGuard ಒದಗಿಸುತ್ತದೆ ಪೂರ್ವ ಕಂಪೈಲ್ ಮಾಡಿದ ಪ್ಯಾಕೇಜುಗಳು ಹೆಚ್ಚಿನ Linux, Windows ಮತ್ತು macOS ವಿತರಣೆಗಳಿಗಾಗಿ. Android ಮತ್ತು iOS ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ಅಪ್ಲಿಕೇಶನ್ ಡೈರೆಕ್ಟರಿಗಳ ಮೂಲಕ ವಿತರಿಸಲಾಗುತ್ತದೆ.

ನಾನು ಇತ್ತೀಚಿನ Fedora Linux 31 ಅನ್ನು ಹೊಂದಿದ್ದೇನೆ ಮತ್ತು ಸ್ಥಾಪಿಸುವ ಮೊದಲು ಕೈಪಿಡಿಯನ್ನು ಓದಲು ನಾನು ತುಂಬಾ ಸೋಮಾರಿಯಾಗಿದ್ದೆ. ಈಗಷ್ಟೇ ಪ್ಯಾಕೇಜ್‌ಗಳು ಕಂಡುಬಂದಿವೆ wireguard-tools, ಅವುಗಳನ್ನು ಸ್ಥಾಪಿಸಿ, ಮತ್ತು ನಂತರ ಏಕೆ ಏನೂ ಕೆಲಸ ಮಾಡುತ್ತಿಲ್ಲ ಎಂದು ಲೆಕ್ಕಾಚಾರ ಮಾಡಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ಹೆಚ್ಚಿನ ತನಿಖೆಯು ನಾನು ಪ್ಯಾಕೇಜ್ ಅನ್ನು ಸ್ಥಾಪಿಸಿಲ್ಲ ಎಂದು ತಿಳಿದುಬಂದಿದೆ wireguard-dkms (ನೆಟ್‌ವರ್ಕ್ ಡ್ರೈವರ್‌ನೊಂದಿಗೆ), ಆದರೆ ಅದು ನನ್ನ ವಿತರಣೆಯ ರೆಪೊಸಿಟರಿಯಲ್ಲಿ ಇರಲಿಲ್ಲ.

ನಾನು ಸೂಚನೆಗಳನ್ನು ಓದಿದ್ದರೆ, ನಾನು ಸರಿಯಾದ ಕ್ರಮಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತಿದ್ದೆ:

$ sudo dnf copr enable jdoss/wireguard
$ sudo dnf install wireguard-dkms wireguard-tools

ನನ್ನ ರಾಸ್ಪ್ಬೆರಿ ಪೈನಲ್ಲಿ ರಾಸ್ಪಿಯನ್ ಬಸ್ಟರ್ ವಿತರಣೆಯನ್ನು ನಾನು ಸ್ಥಾಪಿಸಿದ್ದೇನೆ, ಅಲ್ಲಿ ಈಗಾಗಲೇ ಪ್ಯಾಕೇಜ್ ಇದೆ wireguard, ಸ್ಥಾಪಿಸಿ:

$ sudo apt install wireguard

ನನ್ನ Android ಫೋನ್‌ನಲ್ಲಿ ನಾನು ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಸ್ಥಾಪಿಸಿದ್ದೇನೆ ವೈರ್‌ಗಾರ್ಡ್ ವಿಪಿಎನ್ ಅಧಿಕೃತ Google App Store ಕ್ಯಾಟಲಾಗ್‌ನಿಂದ.

ಕೀಲಿಗಳ ಸ್ಥಾಪನೆ

ಪೀರ್ ದೃಢೀಕರಣಕ್ಕಾಗಿ, ವೈರ್‌ಗಾರ್ಡ್ VPN ಪೀರ್‌ಗಳನ್ನು ದೃಢೀಕರಿಸಲು ಸರಳವಾದ ಖಾಸಗಿ/ಸಾರ್ವಜನಿಕ ಕೀ ಸ್ಕೀಮ್ ಅನ್ನು ಬಳಸುತ್ತದೆ. ಕೆಳಗಿನ ಆಜ್ಞೆಯನ್ನು ಬಳಸಿಕೊಂಡು ನೀವು ಸುಲಭವಾಗಿ VPN ಕೀಗಳನ್ನು ರಚಿಸಬಹುದು:

$ wg genkey | tee wg-laptop-private.key |  wg pubkey > wg-laptop-public.key
$ wg genkey | tee wg-server-private.key |  wg pubkey > wg-server-public.key
$ wg genkey | tee wg-mobile-private.key |  wg pubkey > wg-mobile-public.key

ಇದು ನಮಗೆ ಮೂರು ಪ್ರಮುಖ ಜೋಡಿಗಳನ್ನು (ಆರು ಫೈಲ್ಗಳು) ನೀಡುತ್ತದೆ. ನಾವು ಸಂರಚನೆಯಲ್ಲಿನ ಫೈಲ್‌ಗಳನ್ನು ಉಲ್ಲೇಖಿಸುವುದಿಲ್ಲ, ಆದರೆ ಇಲ್ಲಿ ವಿಷಯಗಳನ್ನು ನಕಲಿಸುತ್ತೇವೆ: ಪ್ರತಿಯೊಂದು ಕೀಲಿಯು Base64 ರಲ್ಲಿ ಒಂದು ಸಾಲು.

VPN ಸರ್ವರ್ (ರಾಸ್ಪ್ಬೆರಿ ಪೈ) ಗಾಗಿ ಕಾನ್ಫಿಗರೇಶನ್ ಫೈಲ್ ಅನ್ನು ರಚಿಸುವುದು

ಸಂರಚನೆಯು ತುಂಬಾ ಸರಳವಾಗಿದೆ, ನಾನು ಈ ಕೆಳಗಿನ ಫೈಲ್ ಅನ್ನು ರಚಿಸಿದ್ದೇನೆ /etc/wireguard/wg0.conf:

[Interface]
Address = 10.200.200.1/24
ListenPort = 51820
PrivateKey = <copy private key from wg-server-private.key>
PostUp   = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o wwan0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o wwan0 -j MASQUERADE

[Peer]
# laptop
PublicKey = <copy public key from wg-laptop-public.key>
AllowedIPs = 10.200.200.2/32

[Peer]
# mobile phone
PublicKey = <copy public key from wg-mobile-public.key>
AllowedIPs = 10.200.200.3/32

ಒಂದೆರಡು ಟಿಪ್ಪಣಿಗಳು:

  • ಸೂಕ್ತವಾದ ಸ್ಥಳಗಳಲ್ಲಿ ನೀವು ಕೀಲಿಗಳೊಂದಿಗೆ ಫೈಲ್ಗಳಿಂದ ಸಾಲುಗಳನ್ನು ಸೇರಿಸಬೇಕಾಗಿದೆ
  • ನನ್ನ VPN ಆಂತರಿಕ ಬ್ಯಾಂಡ್ ಅನ್ನು ಬಳಸುತ್ತಿದೆ 10.200.200.0/24
  • ತಂಡಗಳಿಗೆ PostUp/PostDown ನಾನು ಬಾಹ್ಯ ನೆಟ್‌ವರ್ಕ್ ಇಂಟರ್‌ಫೇಸ್ wwan0 ಅನ್ನು ಹೊಂದಿದ್ದೇನೆ, ನೀವು ಬೇರೆಯದನ್ನು ಹೊಂದಿರಬಹುದು (ಉದಾಹರಣೆಗೆ, eth0)

VPN ನೆಟ್‌ವರ್ಕ್ ಅನ್ನು ಈ ಕೆಳಗಿನ ಆಜ್ಞೆಯೊಂದಿಗೆ ಸುಲಭವಾಗಿ ಬೆಳೆಸಲಾಗುತ್ತದೆ:

$ sudo wg-quick up wg0

ಒಂದು ಸಣ್ಣ ವಿವರ: ನಾನು ಬಳಸಿದ DNS ಸರ್ವರ್‌ನಂತೆ dnsmasq ನೆಟ್ವರ್ಕ್ ಇಂಟರ್ಫೇಸ್ಗೆ ಬಂಧಿಸಲಾಗಿದೆ br0, ನಾನು ಸಾಧನಗಳನ್ನು ಕೂಡ ಸೇರಿಸಿದ್ದೇನೆ wg0 ಅನುಮತಿಸಲಾದ ಸಾಧನಗಳ ಪಟ್ಟಿಗೆ. dnsmasq ನಲ್ಲಿ ಕಾನ್ಫಿಗರೇಶನ್ ಫೈಲ್‌ಗೆ ಹೊಸ ನೆಟ್‌ವರ್ಕ್ ಇಂಟರ್‌ಫೇಸ್ ಲೈನ್ ಅನ್ನು ಸೇರಿಸುವ ಮೂಲಕ ಇದನ್ನು ಮಾಡಲಾಗುತ್ತದೆ /etc/dnsmasq.conf, ಉದಾಹರಣೆಗೆ:

interface=br0
interface=wg0

ಹೆಚ್ಚುವರಿಯಾಗಿ, UDP ಲಿಸನಿಂಗ್ ಪೋರ್ಟ್ (51280) ಗೆ ಸಂಚಾರವನ್ನು ಅನುಮತಿಸಲು ನಾನು iptable ನಿಯಮವನ್ನು ಸೇರಿಸಿದ್ದೇನೆ:

$ sudo iptables -I INPUT -p udp --dport 51820 -j ACCEPT

ಈಗ ಎಲ್ಲವೂ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತಿದೆ, ನಾವು VPN ಸುರಂಗದ ಸ್ವಯಂಚಾಲಿತ ಉಡಾವಣೆಯನ್ನು ಹೊಂದಿಸಬಹುದು:

$ sudo systemctl enable [email protected]

ಲ್ಯಾಪ್‌ಟಾಪ್‌ನಲ್ಲಿ ಕ್ಲೈಂಟ್ ಕಾನ್ಫಿಗರೇಶನ್

ಲ್ಯಾಪ್ಟಾಪ್ನಲ್ಲಿ ಕಾನ್ಫಿಗರೇಶನ್ ಫೈಲ್ ಅನ್ನು ರಚಿಸಿ /etc/wireguard/wg0.conf ಅದೇ ಸೆಟ್ಟಿಂಗ್‌ಗಳೊಂದಿಗೆ:

[Interface]
Address = 10.200.200.2/24
PrivateKey = <copy private key from wg-laptop-private.key>

[Peer]
PublicKey = <copy public key from wg-server-public.key>
AllowedIPs = 10.200.200.0/24
Endpoint = edgewalker:51820

ಪ್ರಾರ್ಥನೆ:

  • ಎಡ್ಜ್‌ವಾಕರ್ ಬದಲಿಗೆ ನೀವು ಸಾರ್ವಜನಿಕ IP ಅಥವಾ VPN ಸರ್ವರ್ ಹೋಸ್ಟ್ ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುವ ಅಗತ್ಯವಿದೆ
  • ಹೊಂದಿಸುವ ಮೂಲಕ AllowedIPs ಮೇಲೆ 10.200.200.0/24, ನಾವು ಆಂತರಿಕ ನೆಟ್‌ವರ್ಕ್ ಅನ್ನು ಪ್ರವೇಶಿಸಲು ಮಾತ್ರ VPN ಅನ್ನು ಬಳಸುತ್ತೇವೆ. ಎಲ್ಲಾ ಇತರ IP ವಿಳಾಸಗಳು/ಸರ್ವರ್‌ಗಳಿಗೆ ಸಂಚಾರವು "ಸಾಮಾನ್ಯ" ತೆರೆದ ಚಾನಲ್‌ಗಳ ಮೂಲಕ ಮುಂದುವರಿಯುತ್ತದೆ. ಇದು ಲ್ಯಾಪ್‌ಟಾಪ್‌ನಲ್ಲಿ ಮೊದಲೇ ಕಾನ್ಫಿಗರ್ ಮಾಡಲಾದ DNS ಸರ್ವರ್ ಅನ್ನು ಸಹ ಬಳಸುತ್ತದೆ.

ಪರೀಕ್ಷೆ ಮತ್ತು ಸ್ವಯಂಚಾಲಿತ ಉಡಾವಣೆಗಾಗಿ ನಾವು ಅದೇ ಆಜ್ಞೆಗಳನ್ನು ಬಳಸುತ್ತೇವೆ wg-quick и systemd:

$ sudo wg-quick up wg0
$ sudo systemctl enable [email protected]

Android ಫೋನ್‌ನಲ್ಲಿ ಕ್ಲೈಂಟ್ ಅನ್ನು ಹೊಂದಿಸಲಾಗುತ್ತಿದೆ

Android ಫೋನ್‌ಗಾಗಿ ನಾವು ಒಂದೇ ರೀತಿಯ ಕಾನ್ಫಿಗರೇಶನ್ ಫೈಲ್ ಅನ್ನು ರಚಿಸುತ್ತೇವೆ (ಅದನ್ನು ಕರೆಯೋಣ mobile.conf):

[Interface]
Address = 10.200.200.3/24
PrivateKey = <copy private key from wg-mobile-private.key>
DNS = 10.200.200.1
        
[Peer]
PublicKey = <copy public key from wg-server-public.key>
AllowedIPs = 0.0.0.0/0
Endpoint = edgewalker:51820

ಲ್ಯಾಪ್‌ಟಾಪ್‌ನಲ್ಲಿನ ಕಾನ್ಫಿಗರೇಶನ್‌ಗಿಂತ ಭಿನ್ನವಾಗಿ, ಫೋನ್ ನಮ್ಮ VPN ಸರ್ವರ್ ಅನ್ನು DNS ಸರ್ವರ್ ಆಗಿ ಬಳಸಬೇಕು (ಲೈನ್ DNS), ಮತ್ತು ಎಲ್ಲಾ ದಟ್ಟಣೆಯನ್ನು VPN ಸುರಂಗದ ಮೂಲಕ ಹಾದುಹೋಗುತ್ತದೆ (AllowedIPs = 0.0.0.0/0).

ಫೈಲ್ ಅನ್ನು ನಿಮ್ಮ ಮೊಬೈಲ್ ಸಾಧನಕ್ಕೆ ನಕಲಿಸುವ ಬದಲು, ನೀವು ಅದನ್ನು QR ಕೋಡ್‌ಗೆ ಪರಿವರ್ತಿಸಬಹುದು:

$ sudo apt install qrencode
$ qrencode -t ansiutf8 < mobile.conf

QR ಕೋಡ್ ಕನ್ಸೋಲ್‌ಗೆ ASCII ಎಂದು ಔಟ್‌ಪುಟ್ ಮಾಡುತ್ತದೆ. ಇದನ್ನು Android VPN ಅಪ್ಲಿಕೇಶನ್‌ನಿಂದ ಸ್ಕ್ಯಾನ್ ಮಾಡಬಹುದು ಮತ್ತು ಸ್ವಯಂಚಾಲಿತವಾಗಿ VPN ಸುರಂಗವನ್ನು ಹೊಂದಿಸುತ್ತದೆ.

ತೀರ್ಮಾನಕ್ಕೆ

OpenVPN ಗೆ ಹೋಲಿಸಿದರೆ WireGuard ಅನ್ನು ಹೊಂದಿಸುವುದು ಸರಳವಾಗಿ ಮಾಂತ್ರಿಕವಾಗಿದೆ.

ಮೂಲ: www.habr.com

ಕಾಮೆಂಟ್ ಅನ್ನು ಸೇರಿಸಿ