WireGuard మరియు Raspberry Piతో సాధారణ VPNని సర్వర్‌గా సెటప్ చేస్తోంది

ఎందుకంటే WireGuard భాగం అవుతుంది రాబోయే Linux కెర్నల్ 5.6లో, ఈ VPNని నాతో ఎలా సమగ్రపరచాలో చూడాలని నిర్ణయించుకున్నాను రాస్ప్బెర్రీ పైలో LTE రూటర్/యాక్సెస్ పాయింట్.

పరికరాలు

  • LTE మాడ్యూల్ మరియు పబ్లిక్ IP చిరునామాతో రాస్ప్బెర్రీ పై 3. ఇక్కడ VPN సర్వర్ ఉంటుంది (ఇకపై టెక్స్ట్‌లో దీనిని పిలుస్తారు ఎడ్జ్ వాకర్)
  • అన్ని కమ్యూనికేషన్‌ల కోసం తప్పనిసరిగా VPNని ఉపయోగించాల్సిన Android ఫోన్
  • నెట్‌వర్క్‌లో VPNని మాత్రమే ఉపయోగించాల్సిన Linux ల్యాప్‌టాప్

VPNకి కనెక్ట్ చేసే ప్రతి పరికరం తప్పనిసరిగా అన్ని ఇతర పరికరాలకు కనెక్ట్ చేయగలగాలి. ఉదాహరణకు, రెండు పరికరాలు VPN నెట్‌వర్క్‌లో భాగమైతే ఫోన్ ల్యాప్‌టాప్‌లోని వెబ్ సర్వర్‌కి కనెక్ట్ చేయగలగాలి. సెటప్ చాలా సులభం అని తేలితే, మీరు డెస్క్‌టాప్‌ను VPNకి కనెక్ట్ చేయడం గురించి ఆలోచించవచ్చు (ఈథర్నెట్ ద్వారా).

వైర్డు మరియు వైర్‌లెస్ కనెక్షన్‌లు కాలక్రమేణా తక్కువ సురక్షితమైనవిగా మారుతున్నాయని పరిగణనలోకి తీసుకుంటే (లక్షిత దాడులు, KRACK WPA2 క్రాకింగ్ దాడి и WPA3కి వ్యతిరేకంగా డ్రాగన్‌బ్లడ్ దాడి), నేను నా పరికరాలన్నింటికీ WireGuardని ఉపయోగించడాన్ని తీవ్రంగా పరిశీలిస్తున్నాను, అవి ఏ వాతావరణంలో ఉన్నా.

సాఫ్ట్‌వేర్ సంస్థాపన

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

నా Raspberry Piలో Raspbian బస్టర్ పంపిణీని ఇన్‌స్టాల్ చేసాను, అక్కడ ఇప్పటికే ఒక ప్యాకేజీ ఉంది wireguard, దీన్ని ఇన్‌స్టాల్ చేయండి:

$ sudo apt install wireguard

నా Android ఫోన్‌లో నేను అప్లికేషన్‌ను ఇన్‌స్టాల్ చేసాను వైర్‌గార్డ్ VPN అధికారిక Google App Store కేటలాగ్ నుండి.

కీల సంస్థాపన

పీర్ ప్రమాణీకరణ కోసం, VPN పీర్‌లను ప్రామాణీకరించడానికి Wireguard ఒక సాధారణ ప్రైవేట్/పబ్లిక్ కీ స్కీమ్‌ను ఉపయోగిస్తుంది. కింది ఆదేశాన్ని ఉపయోగించి మీరు సులభంగా 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

ఇది మనకు మూడు కీ జతలను (ఆరు ఫైల్‌లు) ఇస్తుంది. మేము కాన్ఫిగర్‌లలోని ఫైల్‌లను సూచించము, కానీ ఇక్కడ కంటెంట్‌లను కాపీ చేయండి: ప్రతి కీ బేస్ 64లో ఒక లైన్.

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 సర్వర్ హోస్ట్‌ని పేర్కొనాలి
  • ఇన్‌స్టాల్ చేసాము AllowedIPs10.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 టన్నెల్‌ను సెటప్ చేస్తుంది.

తీర్మానం

ఓపెన్‌విపిఎన్‌తో పోలిస్తే వైర్‌గార్డ్‌ను సెటప్ చేయడం మాయాజాలం.

మూలం: www.habr.com

ఒక వ్యాఖ్యను జోడించండి