Anonim

ఇది 2017, మరియు VPN ని ఉపయోగించడం నో మెదడుగా మారింది. బాహ్య గోప్యతా సమస్యల లోడ్లు మరియు మీ స్వంత ISP మీ బ్రౌజింగ్ చరిత్రను విక్రయించగల మధ్య, నిజంగా ఒకదాన్ని ఉపయోగించకుండా సమర్థించడం లేదు.

ఖచ్చితంగా, మీరు అక్కడ వందలాది VPN సేవల్లో ఒకదాన్ని చెల్లించవచ్చు, కానీ మరోసారి, మీరు మీ డేటాతో మరొకరిపై ఆధారపడుతున్నారు. చాలా గొప్పవి, వాస్తవానికి, మీకు పూర్తి నియంత్రణ కావాలంటే, మీరు మీ స్వంత VPN ని V వర్చువల్ P రివేట్ S ఎర్వర్ (VPS) లో నిర్మించవచ్చు లేదా మీ స్వంత ప్రైవేట్ సర్వర్‌ను అద్దెకు తీసుకోవచ్చు, మీకు దానితో హార్డ్కోర్ ఉన్నట్లు అనిపిస్తే.

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

ఈ గైడ్ కోసం, మీకు ఉబుంటు నడుస్తున్న VPS అవసరం. మీరు డిజిటల్ ఓషన్ లేదా లినోడ్ వంటి వారి నుండి చాలా సులభంగా ఎంచుకోవచ్చు. సెటప్ చేయడానికి వారి ప్రాథమిక భద్రతా మార్గదర్శకాలను అనుసరించండి. SSH ద్వారా రూట్ యాక్సెస్‌ను అనుమతించడం వంటి ప్రాథమిక తప్పులు మీరు చేయకుండా చూసుకోండి.

అలాగే, మీరు మీ మొత్తం VPS కి SSH ద్వారా కమాండ్ లైన్‌లో ఈ మొత్తం సెటప్ చేయబోతున్నారని గుర్తుంచుకోండి. Linux పరిజ్ఞానంపై క్రేజీ మొత్తం అవసరమయ్యేది ఏదీ లేదు, కానీ క్లిక్ చేయడానికి బదులుగా టైప్ చేయడానికి సిద్ధంగా ఉండండి.

మీకు కావాల్సినవి పొందడం

త్వరిత లింకులు

  • మీకు కావాల్సినవి పొందడం
  • ఫైర్‌వాల్‌ను సెటప్ చేయండి
    • ఇంటర్ఫేస్ను కనుగొనండి
    • ఐప్టేబుల్స్ బేసిక్స్
    • మీ నియమాలను సెటప్ చేయండి
      • లూప్ బాక్
      • పింగ్
      • SSH
      • OpenVPN
      • DNS
      • HTTP / S
      • NTP
      • TUN
      • లాగింగ్
      • ప్రతిదీ తిరస్కరించండి
      • NAT మాస్క్వెరేడింగ్
    • ఫార్వర్డ్ IPv4 ట్రాఫిక్
    • అన్ని IPv6 కనెక్షన్‌లను ఆపు
    • Iptables కు దిగుమతి చేసి సేవ్ చేయండి

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

$ sudo apt install openvpn easy-rsa

ఫైర్‌వాల్‌ను సెటప్ చేయండి

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

లైనక్స్‌కు ఐప్‌టేబుల్స్ ప్రధాన ఫైర్‌వాల్, మరియు ఉబుంటు పోర్టులకు ప్రాప్యతను నియంత్రించడానికి ఇది మీ ఉత్తమ ఎంపిక. మీరు దీన్ని ఇప్పటికే ఇన్‌స్టాల్ చేసారు, కాబట్టి మీరు మీ ఫైర్‌వాల్ నియమాలను సెటప్ చేయడం ప్రారంభించవచ్చు.

ఇంటర్ఫేస్ను కనుగొనండి

మీరు iptables లోకి నియమాలను రాయడం ప్రారంభించే ముందు, మీ సర్వర్ ఇంటర్నెట్‌కు ఏ ఇంటర్‌ఫేస్‌తో కనెక్ట్ అయిందో తెలుసుకోండి. మీ నెట్‌వర్క్ ఇంటర్‌ఫేస్‌లను ప్రదర్శించడానికి ifconfig ను అమలు చేయండి. Inet addr ఉన్నది: మీరు కనెక్ట్ చేసిన IP చిరునామాకు సరిపోయేది సరైన ఇంటర్ఫేస్.

ఐప్టేబుల్స్ బేసిక్స్

ఇంటర్నెట్ నుండి టెర్మినల్‌లోకి యాదృచ్చికంగా కాపీ చేసి పేస్ట్ చేయడం మంచిది కాదు. మీరు భద్రతా అంశాలతో వ్యవహరించేటప్పుడు ఇది ప్రత్యేకంగా వర్తిస్తుంది. కాబట్టి, మీరు వాటిని ప్రవేశపెట్టడానికి ముందు ఐప్‌టేబుల్స్ నిబంధనల గురించి కొంచెం తెలుసుకోవడానికి ఇక్కడ కొంత సమయం కేటాయించండి.

ఐప్టేబుల్స్ నియమం యొక్క ఈ ఉదాహరణను చూడండి.

-A INPUT -i eth0 -p tcp -m state -state ESTABLISHED –Sport 443 -j ACCEPT

సరే, కాబట్టి -A అంటే మీరు కొత్త నియమాన్ని జోడించబోతున్నారు. అప్పుడు INPUT అంటే అది మీ సర్వర్‌కు ఇన్‌పుట్‌కు సంబంధించినది. U ట్పుట్ కూడా ఉంది. -I ఫ్లాగ్ ఈ నియమం ఏ ఇంటర్ఫేస్ కోసం iptables కి చెబుతుంది. -P తో నియమం ఏ ప్రోటోకాల్ అని మీరు పేర్కొనవచ్చు. ఈ నియమం tcp ని నిర్వహిస్తుంది. -m కనెక్షన్ తప్పనిసరిగా కలుసుకోవలసిన పరిస్థితిని నిర్దేశిస్తుంది. ఈ సందర్భంలో ఇది పేర్కొన్న స్థితికి సరిపోలాలి. వాస్తవానికి, అప్పుడు స్టేట్ ఒక రాష్ట్రాన్ని నిర్దేశిస్తుంది, ఈ సందర్భంలో ఎస్టాబ్లిష్డ్ కనెక్షన్. తరువాతి భాగం ఈ నియమం ఏ పోర్టు కోసం iptables కి చెబుతుంది. ఇది పోర్ట్ 443, HTTPS పోర్ట్, ఇక్కడ. చివరి జెండా -j. ఇది “జంప్” అని సూచిస్తుంది మరియు ఇది కనెక్షన్‌తో ఏమి చేయాలో iptables కి చెబుతుంది. ఈ కనెక్షన్ నిబంధనలోని అన్ని అవసరాలను తీర్చినట్లయితే, ఐప్టేబుల్స్ దానిని అంగీకరిస్తాయి.

మీ నియమాలను సెటప్ చేయండి

కాబట్టి, ఐప్‌టేబుల్స్ నియమాలు ఇప్పుడు ఎలా పనిచేస్తాయో మీకు సాధారణ ఆలోచన ఉండాలి. ఈ విభాగం యొక్క మిగిలిన భాగం మీ నియమాలను ముక్కలుగా ఎలా సెటప్ చేయాలో మీకు తెలియజేస్తుంది.

ఐప్టేబుల్స్ నిబంధనల సమితిని సృష్టించడానికి ఉత్తమ మార్గం, వాటిని కలిగి ఉన్న ఫైల్‌ను సృష్టించడం. అప్పుడు, మీరు ఇవన్నీ ఒకేసారి iptables లోకి దిగుమతి చేసుకోవచ్చు. నియమాలను ఒక్కొక్కటిగా సెట్ చేయడం గందరగోళంగా ఉంటుంది, ప్రత్యేకించి మీరు మొదటి నుండి కొత్త నియమాలను ప్రారంభిస్తుంటే.

మీ నియమాలను రూపొందించడానికి / tmp డైరెక్టరీలో ఫైల్‌ను సృష్టించండి.

$ vim / tmp / ipv4

* ఫిల్టర్‌తో ఆ ఫైల్‌ను ప్రారంభించండి. ప్యాకెట్ వడపోత కోసం ఈ క్రిందివి నియమాలు అవుతాయని ఇది iptables కి చెబుతుంది.

లూప్ బాక్

నియమాల మొదటి విభాగం లూప్‌బ్యాక్ ఇంటర్‌ఫేస్‌ను లాక్ చేస్తుంది. లూప్‌బ్యాక్ ఇంటర్‌ఫేస్‌లో సర్వర్ తన నుండి ట్రాఫిక్‌ను అంగీకరించాలని వారు ఐప్‌టేబుళ్లకు చెబుతారు. ఇది లూప్‌బ్యాక్ నుండి రాకపోవడాన్ని స్వయంగా వచ్చే ట్రాఫిక్‌ను కూడా తిరస్కరించాలి.

-A INPUT -i lo -j ACCEPT -A INPUT! -i lo -s 127.0.0.0/8 -j REJECT -A OUTPUT -o lo -j ACCEPT

పింగ్

తరువాత, పింగ్‌ను అనుమతించండి. మీ సర్వర్‌ను చేరుకోలేకపోతే అది ఆన్‌లైన్‌లో ఉందని నిర్ధారించుకోవడానికి మీరు పింగ్ చేయగలరు. ఈ సందర్భంలో, ఎకో అభ్యర్థనలు మాత్రమే అనుమతించబడతాయి మరియు సర్వర్ ICMP అవుట్‌పుట్‌ను పంపడానికి అనుమతిస్తుంది.

-A INPUT -p icmp -m state --state NEW --icmp-type 8 -j ACCEPT -A INPUT -p icmp -m state --state ESTABLISHED, RELATED -j ACCEPT -A OUTPUT -p icmp -j ACCEPT

SSH

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

పోర్ట్ 22 నుండి మీ SSH కనెక్షన్‌లను మార్చడం కూడా మంచి ఆలోచన కావచ్చు, ఎందుకంటే ఇది సంభావ్య దాడి చేసేవారు ప్రయత్నించే డిఫాల్ట్. మీరు అలా చేస్తే, మీ ఐప్టేబుల్స్ నిబంధనలలో కూడా దీన్ని మార్చాలని నిర్ధారించుకోండి.

-A INPUT -i eth0 -p tcp -m state --state NEW, ESTABLISHED --dport 22 -j ACCEPT -A OUTPUT -o eth0 -p tcp -m state --state ESTABLISHED --sport 22 -j ACCEPT

OpenVPN

ఈ తదుపరి భాగం UDP ద్వారా ఓపెన్‌విపిఎన్ సర్వర్‌కు మరియు నుండి ట్రాఫిక్‌ను అనుమతిస్తుంది.

-A INPUT -i eth0 -p udp -m state --state NEW, ESTABLISHED --dport 1194 -j ACCEPT -A OUTPUT -o eth0 -p udp -m state --state ESTABLISHED --sport 1194 -j ACCEPT

DNS

ఇప్పుడు, UDP మరియు TCP ల ద్వారా DNS కనెక్షన్‌లను అనుమతించండి. మీ VPN DNS ను నిర్వహించాలని మీరు కోరుకుంటారు, మీ ISP కాదు. మీరు మొదటి స్థానంలో VPN ను సెటప్ చేయడానికి కారణం అది.

-A INPUT -i eth0 -p udp -m state --state ESTABLISHED --sport 53 -j ACCEPT -A OUTPUT -o eth0 -p udp -m state --state NEW, ESTABLISHED --dport 53 -j ACCEPT -A INPUT -i eth0 -p tcp -m state --state ESTABLISHED --sport 53 -j ACCEPT -A OUTPUT -o eth0 -p tcp -m state --state NEW, ESTABLISHED --dport 53 -j ACCEPT

HTTP / S

ఉబుంటు తనను తాను అప్‌డేట్ చేసుకోవటానికి, మీరు HTTP మరియు HTTPS యొక్క అవుట్‌గోయింగ్ కనెక్షన్‌ను అనుమతించడానికి నియమాల సమితిని జోడించాలి. ఈ నియమాలు సర్వర్‌ను HTTP కనెక్షన్‌లను ప్రారంభించడానికి మాత్రమే అనుమతిస్తాయని గమనించండి, కాబట్టి మీరు దీన్ని వెబ్ సర్వర్‌గా ఉపయోగించలేరు లేదా పోర్ట్ 80 లేదా పోర్ట్ 443 ద్వారా కనెక్ట్ చేయలేరు.

-A INPUT -i eth0 -p tcp -m state --state ESTABLISHED --sport 80 -j ACCEPT -A INPUT -i eth0 -p tcp -m state --state ESTABLISHED --sport 443 -j ACCEPT -A OUTPUT - o eth0 -p tcp -m state --state NEW, ESTABLISHED --dport 80 -j ACCEPT -A OUTPUT -o eth0 -p tcp -m state --state NEW, ESTABLISHED --dport 443 -j ACCEPT

NTP

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

-A INPUT -i eth0 -p udp -m state --state ESTABLISHED --sport 123 -j ACCEPT -A OUTPUT -o eth0 -p udp -m state --state NEW, ESTABLISHED --dport 123 -j ACCEPT

TUN

ట్రాఫిక్ను సొరంగం చేయడానికి OpenVPN ఉపయోగించే TUN ఇంటర్ఫేస్ను అన్‌బ్లాక్ చేయండి.

-A INPUT -i tun0 -j ACCEPT -A FORWARD -i tun0 -j ACCEPT -A OUTPUT -o tun0 -j ACCEPT

VPN కోసం మీ రెగ్యులర్ ఇంటర్‌ఫేస్‌కు ట్రాఫిక్‌ను ఫార్వార్డ్ చేయడానికి మీరు TUN ని అనుమతించాలి. మీరు ఆ IP చిరునామాను OpenVPN కాన్ఫిగరేషన్‌లో కనుగొంటారు. మీరు దీన్ని కాన్ఫిగరేషన్‌లో మార్చినట్లయితే, దాన్ని మీ నియమాలలో కూడా మార్చండి.

-A FORWARD -i tun0 -o eth0 -s 10.8.0.0/24 -j ACCEPT -A FORWARD -m state --state ESTABLISHED, RELATED -j ACCEPT

లాగింగ్

ఐప్టేబుల్స్ ద్వారా తిరస్కరించబడిన ప్రతిదాని యొక్క లాగ్లను ఉంచడం మంచిది. ఈ సందర్భంలో, ఈ నిబంధనలలో దేనికీ సరిపోని ఏదైనా అర్థం. ఏదైనా హానికరమైన కార్యాచరణ ఉందా లేదా మీ సర్వర్‌కు వ్యతిరేకంగా ఏదైనా హానికరమైన ప్రయత్నం చేయడానికి లాగ్‌లు మిమ్మల్ని అనుమతిస్తాయి.

-A INPUT -m limit –limit 3 / min -j LOG –log-prefix “iptables_INPUT_denied:” –లాగ్-స్థాయి 4
-ఒక FORWARD -m limit –limit 3 / min -j LOG –log-prefix “iptables_FORWARD_denied:” –లాగ్-స్థాయి 4
-A OUTPUT -m limit –limit 3 / min -j LOG –log-prefix “iptables_OUTPUT_denied:” –లాగ్-స్థాయి 4

ప్రతిదీ తిరస్కరించండి

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

-A INPUT -j REJECT -A FORWARD -j REJECT -A OUTPUT -j REJECT

అన్ని నిబంధనలను కట్టుబడి ఉండమని iptables కి చెప్పడానికి COMMIT తో ఫైల్‌ను మూసివేయండి.

NAT మాస్క్వెరేడింగ్

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

$ sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

ఫార్వర్డ్ IPv4 ట్రాఫిక్

మీరు IPv4 ట్రాఫిక్ యొక్క ఫార్వార్డింగ్‌ను ప్రారంభించాల్సిన అవసరం ఉంది, కాబట్టి ఇది VPN మరియు మీ సర్వర్ యొక్క వాస్తవ నెట్‌వర్క్ ఇంటర్‌ఫేస్ మధ్య పాస్ అవుతుంది. సుడోతో /etc/sysctl.d/99-sysctl.conf తెరవండి.

దిగువ పంక్తిని కనుగొని, # ను తీసివేయడం ద్వారా దాన్ని అన్‌కామ్ చేయండి.

net.ipv4.ip_forward = 1

అన్ని IPv6 కనెక్షన్‌లను ఆపు

క్షమించండి, మీరు ఇంకా iptables తో పూర్తి కాలేదు. మీరు అన్ని IPv6 ట్రాఫిక్‌ను బ్లాక్ చేయాలి. ఈ ఓపెన్‌విపిఎన్ సర్వర్ ఐపివి 4 కి మాత్రమే మద్దతు ఇస్తుంది, ఇది మంచిది, ఎందుకంటే మీకు ఐపివి 6 అవసరమయ్యే పరిస్థితికి మీరు వెళ్ళడం లేదు. తత్ఫలితంగా, ఏదైనా IPv6 కనెక్షన్లు సమాచారాన్ని లీక్ చేయగలవు, ఇది VPN ను ఉపయోగిస్తున్నప్పుడు మీకు కావలసిన దానికి వ్యతిరేకం.

ఐప్‌టేబుల్స్ కోసం నియమాలను సెట్ చేయడానికి ముందు, మీరు సిస్టమ్‌లోని అన్నిచోట్లా IPv6 ని నిలిపివేయాలి.

కింది పంక్తులను /etc/sysctl.d/99-sysctl.conf కు జోడించండి. మీరు మునుపటి విభాగం నుండి దాన్ని మూసివేస్తే, దాన్ని సుడోతో తిరిగి తెరవండి.

net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 net.ipv6.conf.lo.disable_ipv6 = 1 net.ipv6.conf.eth0.disable_ipv6 = 1

మీ మార్పులను సక్రియం చేయండి.

$ sudo sysctl -p

/ Etv / హోస్ట్‌లలోని అన్ని IPv6 పంక్తులను వ్యాఖ్యానించండి. మీకు ఇక్కడ కూడా సుడో అవసరం.

# :: 1 ip6-localhost ip6-loopback # fe00 :: 0 ip6-localnet # ff00 :: 0 ip6-mcastprefix # ff02 :: 1 ip6-allnodes # ff02 :: 2 ip6-allrouters

చివరికి, మీరు IPv6 iptables నియమాలను వ్రాయవచ్చు. / Tmp / ipv6 వద్ద వారి కోసం ఒక ఫైల్‌ను సృష్టించండి.

* వడపోత -A INPUT -j REJECT -A FORWARD -j REJECT -A OUTPUT -j REJECT COMMIT

చూడండి, అవి సరళమైనవి. ప్రతిదీ తిరస్కరించండి.

Iptables కు దిగుమతి చేసి సేవ్ చేయండి

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

అక్కడ ఉన్న అన్నిటినీ క్లియర్ చేయడం ద్వారా ప్రారంభించండి. మీకు పాత నియమాలు ఏవీ వద్దు.

$ sudo iptables -F && sudo iptables -X

మీ IPv4 మరియు IPv6 నియమాలను రెండింటినీ దిగుమతి చేయండి.

$ sudo iptables-restore </ tmp / ipv4 $ sudo ip6tables-restore </ tmp / ipv6

మీరు మరలా అలా చేయకూడదనుకుంటున్నారు. కాబట్టి, మీ నియమాలను శాశ్వతంగా సేవ్ చేయడానికి మీకు క్రొత్త ప్యాకేజీ అవసరం.

ud sudo apt install iptables-persistent

ఇన్స్టాలేషన్ సమయంలో, ప్యాకేజీ మీ ప్రస్తుత నియమాలను సేవ్ చేయమని అడుగుతుంది. “అవును” అని సమాధానం ఇవ్వండి.

మీరు తరువాత మార్పులు చేస్తే, మీరు మీ సేవ్ చేసిన కాన్ఫిగరేషన్‌లను కూడా నవీకరించవచ్చు.

ud సుడో సర్వీస్ నెట్‌ఫిల్టర్-పెర్సిస్టెంట్ సేవ్

దీనికి కొంత సమయం పట్టింది, కానీ మీ ఫైర్‌వాల్ వెళ్ళడానికి సిద్ధంగా ఉంది. తరువాతి పేజీలో, మేము అవసరమైన గుప్తీకరణ కీలను సృష్టించబోతున్నాము.

ఇక్కడ క్లిక్ చేయండి: తదుపరి పేజీ

Vpns గురించి అంతా: openvpn (పార్ట్ 3) తో మీ స్వంత vpn ని ఎలా సెటప్ చేయాలి