ఉబుంటు 20.04లో WireGuard VPN సర్వర్ మరియు క్లయింట్‌ను ఎలా సెటప్ చేయాలి

Wireguardని ఉపయోగించి స్వీయ-హోస్ట్ చేసిన VPNని సెటప్ చేయండి

VPN (వర్చువల్ ప్రైవేట్ నెట్‌వర్క్) వినియోగదారు కంప్యూటర్ నేరుగా ప్రైవేట్ నెట్‌వర్క్‌కి కనెక్ట్ చేయబడినట్లుగా రిమోట్‌గా ప్రైవేట్ నెట్‌వర్క్‌కు కనెక్ట్ చేయడానికి వినియోగదారుని అనుమతిస్తుంది. కంపెనీ అంతర్గత ప్రైవేట్ నెట్‌వర్క్‌కు రిమోట్ యాక్సెస్‌ను అనుమతించడానికి, అంతర్గత నెట్‌వర్క్ ఉన్న ప్రదేశంలో వాస్తవంగా లేని ఉద్యోగుల కోసం సాంకేతికత మొదట్లో అభివృద్ధి చేయబడింది.

అంతర్గత నెట్‌వర్క్ ఉన్న ప్రదేశంలో VPN సర్వర్ అమలు చేయబడుతుంది. ఈ సర్వర్ పబ్లిక్ నెట్‌వర్క్‌లో ఉంది మరియు ఉద్యోగి VPN క్లయింట్‌ని ఉపయోగించి యాక్సెస్ చేయవచ్చు. VPN సర్వర్‌కి కనెక్ట్ చేయడానికి ప్రామాణీకరణ అవసరం. VPN సర్వర్ మరియు VPN క్లయింట్ మధ్య కమ్యూనికేషన్ టన్నెలింగ్ ప్రోటోకాల్ ఉపయోగించి సురక్షితం చేయబడింది. ఈ కమ్యూనికేషన్ ఎన్‌క్రిప్ట్ చేయబడవచ్చు లేదా ఉండకపోవచ్చు, కానీ సాధారణంగా చాలా VPN ప్రోటోకాల్‌లలో ఇది గుప్తీకరించబడి ఉంటుందని గమనించండి.

VPN యొక్క మరొక ఉపయోగం ఇంటర్నెట్‌ని యాక్సెస్ చేస్తున్నప్పుడు అనామకతను పొందండి లేదా కొన్ని వెబ్‌సైట్‌లను యాక్సెస్ చేస్తున్నప్పుడు విధించిన భౌగోళిక పరిమితులను అధిగమించడానికి. అటువంటి సందర్భాలలో, వినియోగదారు కనెక్ట్ చేయాలనుకుంటున్న నెట్‌వర్క్ ప్రైవేట్ నెట్‌వర్క్ కాదు, బదులుగా అది ఇంటర్నెట్.

అనేక VPN ప్రోటోకాల్‌లు సంవత్సరాలుగా అభివృద్ధి చేయబడ్డాయి. ఈ ప్రోటోకాల్‌లు సర్వర్ మరియు క్లయింట్ మధ్య కమ్యూనికేషన్ కోసం వివిధ టన్నెలింగ్ ప్రోటోకాల్‌లు మరియు ఎన్‌క్రిప్షన్ అల్గారిథమ్‌లను ఉపయోగించుకుంటాయి.

అటువంటి ప్రోటోకాల్, ఇటీవల విస్తృతంగా ఉపయోగించబడుతోంది వైర్‌గార్డ్. OpenVPN, IPSec వంటి సాంప్రదాయకంగా ఉపయోగించే VPN ప్రోటోకాల్‌ల కంటే Wireguard తేలికైనది, సరళమైనది మరియు మరింత పనితీరును కలిగి ఉంటుంది. ఇది ఇప్పటికే Windows, Mac OS మరియు పెద్ద సంఖ్యలో Linux పంపిణీల కోసం అమలు చేయబడింది. Linuxలో, ఇది కెర్నల్ మాడ్యూల్‌గా అమలు చేయబడుతుంది. ఇది ఉబుంటు 20.04 యొక్క అధికారిక రిపోజిటరీలలో అందుబాటులో ఉంది.

ఈ కథనంలో, ఉబుంటు 20.04లో వైర్‌గార్డ్ VPN సర్వర్ మరియు క్లయింట్‌ను ఎలా సెటప్ చేయాలో చూద్దాం.

సంస్థాపన

ఈ కథనం కోసం, నేను ఉబుంటు 20.04 లినోడ్‌లో వైర్‌గార్డ్ సర్వర్‌ని మరియు ఉబుంటు 20.04తో నా స్థానిక మెషీన్‌లో వైర్‌గార్డ్ క్లయింట్‌ని సెటప్ చేస్తున్నాను.

మూట వైర్గార్డ్ వైర్‌గార్డ్ సర్వర్ మరియు క్లయింట్ రెండింటినీ ఇన్‌స్టాల్ చేస్తుంది. కింది ఆదేశాన్ని అమలు చేయండి సర్వర్ మెషీన్ మరియు క్లయింట్ మెషీన్ రెండింటిలోనూ.

sudo apt వైర్‌గార్డ్‌ను ఇన్‌స్టాల్ చేయండి

సర్వర్ కాన్ఫిగరేషన్

భద్రతా కీలు

మేము పబ్లిక్/ప్రైవేట్ కీ జతల సెట్‌ను రూపొందించాలి వైర్‌గార్డ్ కనెక్షన్‌ని ప్రామాణీకరించడానికి మరియు సురక్షితం చేయడానికి. కింది ఆదేశాలను ఉపయోగించి ఇది చేయవచ్చు:

sudo su cd /etc/wireguard umask 077 wg genkey | టీ ప్రైవేట్_కీ | wg pubkey > public_key

మేము అన్ని కాన్ఫిగరేషన్ టాస్క్‌లను సూపర్‌యూజర్‌గా చేస్తున్నామని గమనించండి. కారణం డైరెక్టరీకి యాక్సెస్ / etc/wireguard సాధారణ వినియోగదారుల కోసం నిరోధించబడుతుంది మరియు సాధారణ వినియోగదారు కోసం కేవలం sudo అధికారాలతో డైరెక్టరీ యాక్సెస్‌ను పొందడం సాధ్యం కాదు.

తరువాత, మేము ఫైల్ సృష్టి ముసుగును సెట్ చేస్తాము 077. దీని అర్థం ఏదైనా ప్రక్రియ ద్వారా ఈ ఫోల్డర్‌లో కొత్త ఫైల్ సృష్టించబడినప్పుడు, దాని అనుమతులు స్వయంచాలకంగా 077తో మాస్క్ చేయబడతాయి. ఉదా. ఈ ఫోల్డర్‌లో అనుమతులు 777తో ఫైల్ సృష్టించబడితే, అది స్వయంచాలకంగా మాస్క్ చేయబడుతుంది మరియు అనుమతులు ప్రభావవంతంగా 700గా మారతాయి. ఫైల్ యజమానికి మాత్రమే ఫైల్‌పై అన్ని అనుమతులు ఉండేలా మరియు మిగతా అందరికీ అనుమతులు ఉండేలా ఇది జరుగుతుంది.

తదుపరి పంక్తిలో, మేము పబ్లిక్/ప్రైవేట్ కీ జతని రూపొందిస్తాము సర్వర్ కోసం. అవి ఫైల్స్‌లో సేవ్ చేయబడతాయి ప్రైవేట్_కీ మరియు పబ్లిక్_కీ. కీలను వీక్షించడానికి, అమలు చేయండి:

పిల్లి ప్రైవేట్_కీ పిల్లి పబ్లిక్_కీ

ప్రైవేట్ కీని కాపీ చేయండి, తదుపరి దశలో మనకు ఇది అవసరం.

గమనిక: మీ ప్రైవేట్ కీని ఎప్పుడూ పబ్లిక్‌గా షేర్ చేయవద్దు!

కాన్ఫిగరేషన్ ఫైల్

వైర్‌గార్డ్ సర్వర్ కోసం కాన్ఫిగరేషన్ ఫైల్‌ను క్రియేట్ చేద్దాం. మీరు ఫైల్ కోసం ఏదైనా పేరును ఎంచుకోవచ్చు. మేము ఒక ఫైల్‌ను సృష్టిస్తాము wg0.conf ఈ ఉదాహరణలో.

vim wg0.conf

ఫైల్‌కి క్రింది వాటిని జోడించండి.

[ఇంటర్‌ఫేస్] చిరునామా = 10.20.43.1/24 SaveConfig = true ListenPort = 51190 PrivateKey = PostUp = iptables -A FORWARD -i wg0 -j యాక్సెప్ట్; iptables -t nat -A POSTROUTING -o -j మాస్క్వెరేడ్; ip6tables -A ఫార్వర్డ్ -i wg0 -j యాక్సెప్ట్; ip6tables -t nat -A POSTROUTING -o eth0 -j మాస్క్వెరేడ్ PostDown = iptables -D FORWARD -i wg0 -j యాక్సెప్ట్; iptables -t nat -D POSTROUTING -o eth0 -j మాస్క్వెరేడ్; ip6tables -D ఫార్వర్డ్ -i wg0 -j యాక్సెప్ట్; ip6tables -t nat -D POSTROUTING -o -j మాస్క్వెరేడ్ 

పైన ఉన్న కోడ్‌లో మనం మునుపు 5వ పంక్తిలోకి కాపీ చేసిన ప్రైవేట్ కీని అతికించండి.

మేము వేరే (వర్చువల్) సబ్‌నెట్‌లో వైర్‌గార్డ్‌ను కాన్ఫిగర్ చేయాలి సర్వర్ యొక్క IP చిరునామా కంటే. ఇక్కడ, నేను సర్వర్ కోసం 10.20.43.1ని ఉపయోగించాను మరియు క్లయింట్ కోసం 10.20.43.2ని ఉపయోగిస్తాను. ఏదైనా సబ్‌నెట్‌ని ఇక్కడ ఉపయోగించవచ్చు. సర్వర్ మరియు ఇంటర్‌ఫేస్ యొక్క IP చిరునామాను పొందడానికి, అమలు చేయండి:

ifconfig

సర్వర్ యొక్క IP చిరునామాను గమనించండి. క్లయింట్ కాన్ఫిగరేషన్ సమయంలో ఇది అవసరం.

పై చిత్రంలో చూసినట్లుగా సర్వర్ ఉపయోగించే ఇంటర్‌ఫేస్ eth0. వినియోగదారు నెట్‌వర్క్ ఆధారంగా ఇంటర్‌ఫేస్ పేరు మారవచ్చు, అది కావచ్చు wlan0 లేదా wlp2s0 ఒకవేళ వినియోగదారు వైర్‌లెస్ కార్డ్‌ని ఉపయోగించి WiFi నెట్‌వర్క్‌కి కనెక్ట్ చేయబడితే.

భర్తీ చేయండి లో పోస్ట్అప్ మరియు పోస్ట్ డౌన్ మీ ఇంటర్‌ఫేస్‌తో; ఈ ఉదాహరణలో అది ఉంది eth0.పోస్ట్అప్ మరియు పోస్ట్ డౌన్ సర్వర్ ప్రారంభమైనప్పుడు మరియు ఆగిపోయినప్పుడు ఏ ఆదేశాలను అమలు చేయాలో పేర్కొనడానికి ఆదేశాలు ఉపయోగించబడతాయి. మా ఉదాహరణలో, మేము ఉపయోగిస్తాము iptables సర్వర్ యొక్క IP చిరునామా క్లయింట్‌లచే భాగస్వామ్యం చేయబడే విధంగా IP నియమాలను సెట్ చేయడానికి ఆదేశం. సర్వర్ ఆగిపోయిన తర్వాత నియమాలు పడిపోతాయి.

ఫైల్‌ను సేవ్ చేసి నిష్క్రమించండి. vim ఉపయోగిస్తున్నప్పుడు, నొక్కండి Esc, ఆపై టైప్ చేయండి :wq మరియు నొక్కండి నమోదు చేయండి సేవ్ మరియు నిష్క్రమించడానికి.

మీరు ఒక ఉపయోగిస్తుంటే ufw సర్వర్‌లో ఫైర్‌వాల్, మేము VPN సర్వర్, 51190 కోసం పోర్ట్‌కు UDP కనెక్షన్‌లను అనుమతించాలి.

ufw 51190/udpని అనుమతిస్తుంది

సేవను ప్రారంభించడం

ఇప్పుడు కాన్ఫిగరేషన్ పూర్తయినందున, మేము వైర్‌గార్డ్ VPN సేవను ప్రారంభించవచ్చు.

పనిచేయటానికి బూట్ సమయంలో ప్రారంభించడానికి సేవ, అమలు చేయండి:

systemctl wg-quick@wg0ని ఎనేబుల్ చేస్తుంది

ఇక్కడ గమనించండి wg0 అనేది కాన్ఫిగరేషన్ ఫైల్ పేరు.

ప్రారంభించడానికి సేవ, అమలు:

సేవ wg-quick@wg0 ప్రారంభం

ధృవీకరించండి సేవ విజయవంతంగా ప్రారంభించబడింది:

సేవ wg-quick@wg0 స్థితి

ఇంటర్ఫేస్ అని ధృవీకరించండి మేము కాన్ఫిగరేషన్ ఫైల్‌లో సృష్టించాము, IP ఆదేశాన్ని ఉపయోగించి ప్రారంభించబడింది.

ip a show wg0

Wireguard VPN సర్వర్ ఇప్పుడు సెటప్ చేయబడింది మరియు రన్ అవుతోంది. ఇప్పుడు క్లయింట్‌ను కాన్ఫిగర్ చేద్దాం.

క్లయింట్ కాన్ఫిగరేషన్

Wireguard కోసం క్లయింట్ కాన్ఫిగరేషన్ సర్వర్ కాన్ఫిగరేషన్ వలె ఎక్కువ లేదా తక్కువ ఉంటుంది. మేము క్లయింట్ కోసం కీలను ఉత్పత్తి చేస్తాము, ఆపై కాన్ఫిగరేషన్ ఫైల్‌ను సృష్టించండి.

భద్రతా కీలు

పబ్లిక్/ప్రైవేట్ కీని రూపొందించడానికి క్లయింట్ కోసం జత చేయండి, అమలు చేయండి:

sudo su cd /etc/wireguard umask 077 wg genkey | టీ క్లయింట్_ప్రైవేట్_కీ | wg pubkey > client_public_key

క్లయింట్ కోసం పబ్లిక్ మరియు ప్రైవేట్ కీలు ఇప్పుడు వరుసగా ఫైల్‌లలో రూపొందించబడ్డాయి క్లయింట్_ప్రైవేట్_కీ మరియు క్లయింట్_పబ్లిక్_కీ.

ఉపయోగించి, అవి సృష్టించబడ్డాయో లేదో తనిఖీ చేయండి పిల్లి ఆదేశం.

cat client_private_key cat client_public_key

మేము క్లయింట్ కోసం కాన్ఫిగరేషన్ ఫైల్‌కు జోడించాల్సిన అవసరం ఉన్నందున ప్రదర్శించబడిన ప్రైవేట్ కీని కాపీ చేయండి.

కాన్ఫిగరేషన్ ఫైల్

కాన్ఫిగరేషన్ ఫైల్‌ను సృష్టించండి మీరు కోరుకున్న ఏదైనా పేరుతో. పేరుతో దీన్ని రూపొందిస్తాం wg0-క్లయింట్ ఈ ఉదాహరణ కోసం.

vim wg0-client.conf

కింది కాన్ఫిగరేషన్‌ను జోడించండి.

[ఇంటర్ఫేస్] # IP చిరునామా మరియు క్లయింట్ చిరునామా యొక్క ప్రైవేట్ కీ = 10.20.43.2/24 PrivateKey = [పీర్] # పబ్లిక్ కీ, IP చిరునామా మరియు సర్వర్ యొక్క పోర్ట్ PublicKey = ఎండ్‌పాయింట్ = :51190 అనుమతించబడినIPలు = 0.0.0.0/0, : :/0

క్లయింట్ కోసం సబ్‌నెట్ చిరునామాను నమోదు చేయండి. గతంలో వివరించిన విధంగా, మేము ఉపయోగిస్తాము 10.20.43.2 ఈ ఉదాహరణలో క్లయింట్ కోసం.

క్లయింట్ ప్రైవేట్ కీని జోడించండి ఎగువ కాన్ఫిగరేషన్ కోడ్‌లోని లైన్ 4లో మునుపటి దశలో రూపొందించబడింది.

‘పీర్’ కింద, మేము వైర్‌గార్డ్ VPN సర్వర్ గురించి సమాచారాన్ని జోడిస్తాము మేము కనెక్ట్ చేయాలనుకుంటున్నాము.

సర్వర్ యొక్క పబ్లిక్ కీని నమోదు చేయండి. నమోదు చేయండి సర్వర్ యొక్క IP చిరునామా, మేము మునుపు గమనించాము మరియు ఇచ్చిన ఆకృతిలో పోర్ట్ చేయండి ఎండ్ పాయింట్. ఇది మేము సర్వర్ కాన్ఫిగరేషన్ ఫైల్‌లో పేర్కొన్న పోర్ట్ మరియు సర్వర్‌లో VPN సేవ ప్రారంభించబడినది.

అనుమతించబడిన IPలు అందించిన విధంగా నమోదు చేయాలి (0.0.0.0/0) తద్వారా క్లయింట్ ఉపయోగించే డైనమిక్ పబ్లిక్ IPలో ఏదైనా అభ్యర్థన ఎల్లప్పుడూ VPN సర్వర్‌కు ఫార్వార్డ్ చేయబడుతుంది.

ఫైల్‌ను సేవ్ చేసి నిష్క్రమించండి. vim ఉపయోగిస్తున్నప్పుడు, నొక్కండి Esc, ఆపై టైప్ చేయండి :wq మరియు నొక్కండి నమోదు చేయండి సేవ్ మరియు నిష్క్రమించడానికి.

క్లయింట్ సేవను ప్రారంభించండి ప్రతి బూట్‌తో రన్ చేసి, దాన్ని ప్రారంభించండి.

systemctl wg-quick@wg-క్లయింట్ సేవ wg-quick@wg-క్లయింట్ ప్రారంభాన్ని ప్రారంభించండి

ధృవీకరించండి సేవ ప్రారంభమైతే.

సేవ wg-quick@wg-క్లయింట్ స్థితి

సర్వర్‌కు పీర్‌ని జోడిస్తోంది

ఇప్పుడు మనకు VPN సర్వర్ మరియు క్లయింట్ అప్ మరియు రన్ అవుతోంది. అయితే, మేము సర్వర్ మరియు క్లయింట్ మధ్య పీర్ టు పీర్ కనెక్షన్‌ని ఏర్పాటు చేస్తే తప్ప రెండింటి మధ్య సురక్షితమైన సొరంగం ఏర్పాటు చేయబడదు.

వెనక్కి వెళ్ళు సర్వర్‌కి. ప్రధమ, VPN సేవను ఆపండి.

సేవ wg-quick@wg0 స్టాప్

తరువాత, కాన్ఫిగరేషన్ ఫైల్‌ను తెరవండి పీర్ కోసం కాన్ఫిగరేషన్ జోడించండి (క్లయింట్).

vim /etc/wireguard/wg0.conf

జోడించు ఫైల్‌కి క్రింది పంక్తులు.

[పీర్] PublicKey = అనుమతించబడినIPలు = 10.20.43.2/32

ఇప్పుడు, VPN సేవను మళ్లీ ప్రారంభించండి.

సేవ wg-quick@wg0 ప్రారంభం

అంతే! ఇది వైర్‌గార్డ్ VPN క్లయింట్ మరియు సర్వర్ సెటప్ కోసం అవసరమైన మొత్తం కాన్ఫిగరేషన్. ఇప్పుడు మన VPNని పరీక్షిద్దాం.

VPNని పరీక్షిస్తోంది

ముందుగా, VPN టన్నెల్ కమ్యూనికేషన్ పని చేస్తుందని నిర్ధారించుకోవడానికి, క్లయింట్ నుండి సర్వర్‌కి సాధారణ పింగ్ చేద్దాం. క్లయింట్‌పై కింది వాటిని అమలు చేయండి:

పింగ్ 10.20.43.1

తరువాత, వెబ్ బ్రౌజర్‌ని తెరవండి మరియు ఏదైనా వెబ్‌సైట్‌ను తెరవండి మీరు క్లయింట్ మెషీన్ నుండి ఇంటర్నెట్‌కి కనెక్ట్ చేయగలరా అని తనిఖీ చేయడానికి. మీరు ఉపయోగించి కమాండ్ లైన్ నుండి మీ ఇంటర్నెట్ కనెక్టివిటీని కూడా తనిఖీ చేయవచ్చు wget.

wget 

ఇప్పుడు, మేము టన్నెల్ కనెక్టివిటీ మరియు ఇంటర్నెట్ కనెక్టివిటీని తనిఖీ చేసాము. రెండూ పని చేస్తున్నట్లయితే, క్లయింట్‌కి వచ్చే ఇంటర్నెట్ ట్రాఫిక్ అంతా సర్వర్ గుండా వెళుతున్నట్లు మేము ఇప్పుడు నిర్ధారించుకోవాలి.

దీని కోసం, మేము ఇంటర్నెట్ ద్వారా కనిపించే క్లయింట్ యొక్క IP చిరునామాను తనిఖీ చేయాలి. దీన్ని చేయడానికి ఒక మార్గం whatsmyip.orgకి వెళ్లడం. లేదా కమాండ్ లైన్ నుండి, కర్ల్ ఉపయోగించి IP సమాచారం అని పిలువబడే మరొక సారూప్య సేవను మనం ప్రశ్నించవచ్చు.

క్లయింట్ మెషీన్‌లో కింది వాటిని అమలు చేయండి

కర్ల్ //ipinfo.io/ip

అవును. ఇది VPN సర్వర్ హోస్ట్ చేయబడిన లినోడ్ యొక్క పబ్లిక్ IP చిరునామా. VPNని ఉపయోగించి అనామకతను ఈ విధంగా సాధించవచ్చు, ఎందుకంటే ఇప్పుడు ఇంటర్నెట్ అంతటా VPN సర్వర్ యొక్క IP కనిపిస్తుంది మరియు మీ కంప్యూటర్ కాదు.

ముగింపు

ఓపెన్‌విపిఎన్ వంటి సాంప్రదాయ VPN సాఫ్ట్‌వేర్ కంటే సెటప్ సౌలభ్యం వైర్‌గార్డ్ యొక్క అత్యంత ముఖ్యమైన ప్రయోజనాల్లో ఒకటి, దీనికి సెటప్ చేయడానికి అధిక స్థాయి నెట్‌వర్కింగ్ మరియు రూటింగ్ పరిజ్ఞానం అవసరం. అయినప్పటికీ, Wireguard కోసం వివరణాత్మక అధికారిక డాక్యుమెంటేషన్ కొరత ఉంది, ఇది మీ Wireguard సెటప్ లోపాలను విసురుతున్నప్పుడు లేదా ఆశించిన విధంగా పని చేయకపోతే సమస్యలను కలిగిస్తుంది.

అయినప్పటికీ, మీరు ఇంటర్నెట్‌లో సురక్షిత కమ్యూనికేషన్ కోసం స్వీయ హోస్ట్ చేయబడిన VPN కావాలనుకుంటే Wireguard ఒక అద్భుతమైన ఎంపిక. Wireguard మరియు అది ఉపయోగించే ప్రోటోకాల్‌లు మరియు సాంకేతికతల గురించి మరింత తెలుసుకోవడానికి, మీరు అధికారిక సైట్‌ని తనిఖీ చేయవచ్చు.