నుండి WireGuard భవిష్యత్ కేంద్రం Linux 5.6, ఈ VPNని నా దానితో ఉత్తమంగా ఎలా అనుసంధానించాలో చూడాలని నేను నిర్ణయించుకున్నాను. .
పరికరాలు
- LTE మాడ్యూల్ మరియు పబ్లిక్ IP చిరునామాతో రాస్ప్బెర్రీ పై 3. ఇక్కడ VPN సర్వర్ ఉంటుంది (ఇకపై టెక్స్ట్లో దీనిని పిలుస్తారు ఎడ్జ్ వాకర్)
- ఫోన్ ఆన్లో ఉంది Androidఅన్ని కమ్యూనికేషన్ల కోసం తప్పనిసరిగా VPNని ఉపయోగించాలి
- Ноутбук Linuxనెట్వర్క్లో VPNని మాత్రమే ఉపయోగించాలి
VPNకి కనెక్ట్ చేసే ప్రతి పరికరం తప్పనిసరిగా అన్ని ఇతర పరికరాలకు కనెక్ట్ చేయగలగాలి. ఉదాహరణకు, రెండు పరికరాలు VPN నెట్వర్క్లో భాగమైతే ఫోన్ ల్యాప్టాప్లోని వెబ్ సర్వర్కి కనెక్ట్ చేయగలగాలి. సెటప్ చాలా సులభం అని తేలితే, మీరు డెస్క్టాప్ను VPNకి కనెక్ట్ చేయడం గురించి ఆలోచించవచ్చు (ఈథర్నెట్ ద్వారా).
వైర్డు మరియు వైర్లెస్ కనెక్షన్లు కాలక్రమేణా తక్కువ సురక్షితమైనవిగా మారుతున్నాయని పరిగణనలోకి తీసుకుంటే (, и ), నేను ఉపయోగించడాన్ని తీవ్రంగా పరిశీలిస్తున్నాను WireGuard నా అన్ని పరికరాలకు, అవి ఏ వాతావరణంలో పనిచేసినా సరే.
సాఫ్ట్వేర్ సంస్థాపన
WireGuard ఇది అందిస్తుంది చాలా పంపిణీల కోసం Linux, Windows и macOSదరఖాస్తులు Android మరియు iOS యాప్ స్టోర్ల ద్వారా అందించబడతాయి.
నా దగ్గర సరికొత్త ఫెడోరా ఉంది 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 నేను అప్లికేషన్ను ఇన్స్టాల్ చేసాను అధికారిక Google App Store కేటలాగ్ నుండి.
కీల సంస్థాపన
నోడ్లను ప్రామాణీకరించడానికి Wireguard 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ఇది మనకు మూడు కీ జతలను (ఆరు ఫైల్లు) ఇస్తుంది. మేము కాన్ఫిగర్లలోని ఫైల్లను సూచించము, కానీ ఇక్కడ కంటెంట్లను కాపీ చేయండి: ప్రతి కీ బేస్ 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 wg-quick@wg0.serviceల్యాప్టాప్లో క్లయింట్ కాన్ఫిగరేషన్
ల్యాప్టాప్లో కాన్ఫిగరేషన్ ఫైల్ను సృష్టించండి /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 wg-quick@wg0.serviceక్లయింట్ను సెటప్ చేయడం 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.confQR కోడ్ కన్సోల్కు ASCII రూపంలో అవుట్పుట్ చేయబడుతుంది. దీనిని యాప్ నుండి స్కాన్ చేయవచ్చు. Android VPN మరియు VPN టన్నెల్ను స్వయంచాలకంగా కాన్ఫిగర్ చేయండి.
తీర్మానం
సర్దుబాటు WireGuard పోల్చి చూస్తే కేవలం అద్భుతం OpenVPN.
మూలం: www.habr.com
