Anonim

Je to rok 2017 a používanie siete VPN sa stalo čudným. Medzi množstvom obáv týkajúcich sa ochrany súkromia a vlastným poskytovateľom internetových služieb, ktorí sú schopní predávať vašu históriu prehliadania, v skutočnosti neexistuje dôvod na to, aby ste ju nepoužívali.

Určite tu môžete zaplatiť jednu zo stoviek služieb VPN, ale opäť sa spoliehate na svoje údaje. Väčšina z nich je v skutočnosti skvelá, ale ak chcete úplnú kontrolu, môžete si zostaviť svoju vlastnú sieť VPN na V irtual P rivate S erver (VPS) alebo si prenajať vlastný súkromný server, ak sa s tým cítite naozaj hardcore.

Všetko, čo potrebujete na vybudovanie VPN, je otvorený softvér OpenVPN s otvoreným zdrojovým kódom a Linux (alebo BSD). Konfigurácia môže byť zapojená, ale nie je nemožné, aby niekto, kto má základné zručnosti v systéme Linux, opustil distribúciu, ako je Ubuntu.

Pre túto príručku budete potrebovať VPS so systémom Ubuntu. Môžete si ho ľahko vyzdvihnúť od niekoho, ako je DigitalOcean alebo Linode . Postupujte podľa ich základných bezpečnostných pokynov. Uistite sa, že nerobíte základné chyby, ako napríklad povolenie prístupu rootov cez SSH.

Nezabúdajte tiež, že toto urobíte celé nastavenie v príkazovom riadku cez SSH k vášmu VPS. Neexistuje nič, čo by vyžadovalo bláznivé znalosti o Linuxe, ale buďte pripravení písať namiesto klikania.

Získanie toho, čo potrebujete

Rýchle odkazy

  • Získanie toho, čo potrebujete
  • Nastavte bránu firewall
    • Nájdite rozhranie
    • Základy Iptables
    • Nastavte si pravidlá
      • loopback
      • ping
      • SSH
      • OpenVPN
      • DNS
      • HTTP / S
      • NTP
      • TUN
      • protokolovanie
      • Odmietnuť všetko ostatné
      • Natieranie NAT
    • Dopredu prenos IPv4
    • Zastavte všetky pripojenia IPv6
    • Importovať a uložiť do Iptables

Ubuntu balí a distribuuje OpenVPN vo svojich úložiskách. Na inštaláciu musíte použiť iba apt. Budete tiež potrebovať nástroj na generovanie šifrovacích kľúčov. Nainštalujte ich oboje.

$ sudo apt install openvpn easy-rsa

Nastavte bránu firewall

Ďalej sa musíte postarať o firewall. Je to dôležitý prvok pri zabezpečení vašej siete VPN a predchádzaní úniku údajov a nechcenému prístupu.

Iptables je hlavný firewall pre Linux a je to vaša najlepšia voľba pre kontrolu prístupu k portom Ubuntu. Už ho máte nainštalovaný, takže môžete začať s nastavením pravidiel brány firewall.

Nájdite rozhranie

Predtým, ako začnete písať pravidlá do iptables, zistite, s akým rozhraním je váš server pripojený k internetu. Spustite program ifconfig, aby sa zobrazili vaše sieťové rozhrania. Ten, ktorý má inet addr: zodpovedajúce IP adrese, ku ktorej ste pripojení, je tým pravým rozhraním.

Základy Iptables

Zvyčajne nie je dobrý nápad náhodne kopírovať a vkladať veci z terminálu z Internetu. To platí najmä pri rokovaniach o bezpečnostných témach. Zoberme si tu preto čas, aby ste sa dozvedeli niečo o pravidlách iptables, skôr ako ich začnete zadávať.

Pozrite sa na tento príklad pravidla iptables.

-A VSTUP -i et0 -p tcp -m stav –stát ZRIADENÝ –sport 443 -j AKCEPT

Dobre, takže -A znamená, že sa chystáte pripojiť nové pravidlo. INPUT znamená, že sa bude týkať vstupu na váš server. K dispozícii je tiež VÝSTUP. Parameter -i hovorí iptables, pre ktoré rozhranie je toto pravidlo. Pomocou -p môžete určiť, pre ktorý protokol sa pravidlo použije. Toto pravidlo sa zaoberá tcp. -m určuje podmienku, ktorú musí pripojenie spĺňať. V takom prípade sa musí zhodovať so špecifikovaným stavom. Samozrejme potom - stav určuje stav, v tomto prípade ESTABLOVANÉ spojenie. Ďalšia časť hovorí iptables, pre ktorý port je toto pravidlo. Je to port 443, port HTTPS, tu. Posledná vlajka je -j. Znamená to „skok“ a hovorí iptables, čo s týmto pripojením robiť. Ak by toto spojenie splnilo všetky požiadavky uvedené v pravidle, iptables by to AKCEPTOVAL.

Nastavte si pravidlá

Mali by ste mať všeobecnú predstavu o tom, ako pravidlá iptables teraz fungujú. Vo zvyšku tejto časti sa dozviete, ako nastaviť pravidlá postupne.

Najlepším spôsobom, ako vytvoriť súbor pravidiel iptables, je vytvoriť súbor obsahujúci všetky z nich. Potom ich môžete všetky importovať do iptables naraz. Nastavenie pravidiel jeden po druhom môže byť mätúce, najmä ak začínate od začiatku novú sadu pravidiel.

Vytvorte súbor v adresári / tmp a vytvorte si pravidlá.

$ vim / tmp / ipv4

Spustite tento súbor pomocou * filtra. Toto hovorí iptables, že nasledujúcimi pravidlami budú pravidlá pre filtrovanie paketov.

loopback

Prvá časť pravidiel blokuje rozhranie slučky. Hovoria iptables, že server by mal akceptovať prenos sám od seba na rozhraní spätnej slučky. Malo by tiež odmietnuť prenos prichádzajúci od neho, ktorý nepochádza zo spätného toku.

-A INPUT -i lo -j ACCEPT -A INPUT! -i lo -s 127.0.0.0/8 -j ODMIETNUTIE -A VÝSTUP -O lo -j AKCEPT

ping

Ďalej povoľte príkaz ping. Mali by ste byť schopní spustiť ping na svojom serveri, aby ste sa uistili, že je online, v prípade, že nie je dostupný inak. V tomto prípade sú povolené iba žiadosti o odozvu a server si umožní odoslať výstup ICMP.

-A VSTUP -p icmp -m stav - stav NOVINKA --icmp-typ 8 -j AKCEPT -A VSTUP -p icmp -m stav - stav VYTVORENÉ, SÚVISIACE -j AKCEPT -A VÝSTUP -p icmp -j AKCEPT

SSH

Potrebujete SSH. Len tak sa dostanete na váš server. Pravidlá SSH sú špecifické pre vaše internetové rozhranie, takže nezabudnite nahradiť rozhranie eth0 za každé rozhranie, ktoré váš server skutočne používa.

Môže byť tiež dobré zmeniť vaše pripojenia SSH mimo port 22, pretože to je predvolené nastavenie, ktoré by sa potenciálni útočníci pokúsili vyskúšať. Ak tak urobíte, nezabudnite tiež zmeniť svoje pravidlá iptables.

-A VSTUP -i et0 -p tcp -m stav - stav NOVÝ, ZRIADENÝ --dport 22 -j AKCEPT -A VÝSTUP -o eth0 -p tcp -m state - stav VYDAVANÝ --port 22 -j ACCEPT

OpenVPN

Táto ďalšia časť umožňuje prenos na a zo servera OpenVPN cez UDP.

-A VSTUP -i et0 -p udp -m stav - stav NOVINKA, VYRADENÁ --dport 1194 -j AKCEPT -A VÝSTUP -o eth0 -p udp -m state - stav VYDAVANÝ --port 1194 -j AKCEPT

DNS

Teraz povoľte pripojenia DNS cez UDP a TCP. Chcete, aby vaša VPN spravovala DNS, nie vášho ISP. To je súčasť dôvodu, prečo nastavujete VPN na prvom mieste.

-A VSTUP -i eth0 -p udp -m stav - stav VYRÁBANÝ --sport 53 -j AKCEPT -A VÝSTUP -o eth0 -p udp -m state - štát NOVINKA, VYTVORENÝ --port 53 -j AKCEPT -A VSTUP -i et0 -p tcp -m stav - stav VYRÁBANÝ --sport 53 -j AKCEPT -A VÝSTUP -o eth0 -p tcp -m stav - štát NOVINKA, VYTVORENÝ --port 53 -j AKCEPT

HTTP / S

Aby sa Ubuntu mohol aktualizovať sám, musíte pridať sadu pravidiel, ktoré umožnia odchádzajúce pripojenie HTTP a HTTPS. Upozorňujeme, že tieto pravidlá umožňujú serveru iniciovať pripojenia HTTP, takže ho nemôžete použiť ako webový server alebo sa k nemu pripojiť cez port 80 alebo port 443.

-A VSTUP -i et0 -p tcp -m stav - stav VYRÁBANÝ --sport 80 -j AKCEPT -A VSTUP -i eth0 -p tcp -m štát - STAV VYTVORENÝ --sport 443 -j AKCEPT -A VÝSTUP - o stav et0 -p tcp -m - stav NOVÝ, ZRIADENÝ --dport 80 -j AKCEPT -A VÝSTUP -o stav et0 -p tcp -m - stav NOVÝ, ZRIADENÝ --dport 443 -j AKCEPT

NTP

Ak chcete, aby hodiny servera fungovali správne, budete potrebovať protokol NTP. NTP umožňuje vášmu serveru synchronizáciu s časovými servermi po celom svete. Nesprávne hodiny na vašom serveri môžu spôsobiť problémy s pripojením, takže spustenie protokolu NTP je dobrý nápad. Opäť by ste mali akceptovať iba odchádzajúce a už nadviazané spojenia.

-A VSTUP -i eth0 -p udp -m stav - stav VYRÁBANÝ --sport 123 -j AKCEPT -A VÝSTUP -o eth0 -p udp -m state - štát NOVINKA, VYTVORENÝ --port 123 -j AKCEPT

TUN

Odblokujte rozhranie TUN, ktoré OpenVPN používa na tunelové spojenie.

-A VSTUP -i tun0 -j AKCEPT -A VPRED -i tun0 -j ACCEPT -A VÝSTUP -o tun0 -j ACCEPT

Musíte povoliť službe TUN presmerovať prenos do svojho bežného rozhrania pre sieť VPN. Túto IP adresu nájdete v konfigurácii OpenVPN. Ak to zmeníte v konfigurácii, zmeňte to aj vo svojich pravidlách.

-A VPRED -i tun0 -o eth0 -s 10.8.0.0/24 -j PRIJATIE -A VPRED -m stav - stav VYRADENÉ, SÚVISIACE -j AKCEPT

protokolovanie

Je to dobré viesť záznamy o všetkom, čo iptables odmietne. V tomto prípade to znamená čokoľvek, čo sa nezmestí do žiadneho z týchto pravidiel. Protokoly vám umožňujú zistiť, či sa na vašom serveri nenachádzajú škodlivé aktivity alebo pokusy o vykonanie niečoho škodlivého.

-A INPUT -m limit –limit 3 / min -j LOG –log-prefix „iptables_INPUT_denied:“ –log-level 4
-A VPRED -m limit –limit 3 / min -j LOG –log-prefix „iptables_FORWARD_denied:“ –log-level 4
-A OUTPUT -m limit –limit 3 / min -j LOG –log-prefix „iptables_OUTPUT_denied:“ –log-level 4

Odmietnuť všetko ostatné

Nakoniec musíte zablokovať všetko, čo sa nezmestí do vašich pravidiel. To je v prvom rade účel firewallu.

-A VSTUP -J ODMIETNUTIE -A VPRED -J ODMIETNUTIE -A VÝSTUP -J ODMIETNUTIE

Zatvorte súbor príkazom COMMIT a povedzte iptables, aby dodržiaval všetky pravidlá.

Natieranie NAT

Potrebujete pripojenia z VPN, aby vyzerali, akoby prichádzali zo samotného servera. Tento kus nemožno zahrnúť do bežného súboru iptables, pretože používa inú tabuľku. To je v poriadku, je to však iba jeden riadok.

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

Dopredu prenos IPv4

Musíte povoliť presmerovanie prenosu IPv4, aby mohol prechádzať medzi VPN a skutočným sieťovým rozhraním vášho servera. Otvorte súbor /etc/sysctl.d/99-sysctl.conf pomocou sudo.

Nájdite riadok nižšie a zrušte jeho označenie odstránením #.

net.ipv4.ip_forward = 1

Zastavte všetky pripojenia IPv6

Ospravedlňujeme sa, ale ešte nemáte hotové iptables. Musíte blokovať všetku komunikáciu IPv6. Tento server OpenVPN bude podporovať iba protokol IPv4, čo je v poriadku, pretože sa nedostanete do situácie, keď potrebujete protokol IPv6. Výsledkom je, že akékoľvek pripojenia IPv6 môžu potenciálne únikom informácií, čo je opak toho, čo chcete pri používaní siete VPN.

Pred nastavením pravidiel pre iptables musíte deaktivovať IPv6 všade inde v systéme.

Pridajte nasledujúce riadky do súboru /etc/sysctl.d/99-sysctl.conf. Ak ste ju zatvorili z predchádzajúcej časti, znova ju otvorte pomocou sudo.

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

Aktivujte svoje zmeny.

$ sudo sysctl -p

Komentujte všetky riadky IPv6 v / etc / hosts. Tiež tu budete potrebovať sudo.

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

Nakoniec môžete napísať pravidlá pre iptables IPv6. Vytvorte pre ne súbor na / tmp / ipv6.

* filter -A INPUT -j REJECT -A Vpred -J REJECT -A OUTPUT -j REJECT COMMIT

Vidíte, sú jednoduché. Odmietnuť všetko.

Importovať a uložiť do Iptables

Aby ste mohli urobiť čokoľvek, musíte tieto pravidlá importovať. Teraz je čas to urobiť.

Začnite tým, že vymažete všetko, čo tam je. Nechcete, aby sa mu prekážali staré pravidlá.

$ sudo iptables -F && sudo iptables -X

Importujte svoje pravidlá IPv4 aj IPv6.

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

Pravdepodobne to už nikdy nechcete robiť. Takže budete potrebovať nový balík na trvalé uloženie vašich pravidiel.

$ sudo apt nainštalujte iptables-persistent

Počas inštalácie vás balík požiada o uloženie vašich existujúcich pravidiel. Odpovedzte „Áno“.

Ak neskôr vykonáte zmeny, môžete aktualizovať aj uložené konfigurácie.

$ sudo služba netfilter-trvalé ukladanie

Chvíľu to trvalo, ale váš firewall je pripravený na použitie. Na ďalšej stránke sa budeme zaoberať vytvorením potrebných šifrovacích kľúčov.

Kliknite tu: Next Page

Všetko o vpns: ako nastaviť svoj vlastný vpn pomocou openvpn (3. časť)