Anonim

Je to rok 2017 a používání VPN se stalo neospravedlnitelným. Mezi množstvím obav o externí soukromí a vaším vlastním poskytovatelem internetových služeb, kteří jsou schopni prodat vaši historii prohlížení, opravdu neexistuje důvod, proč jej nepoužívat.

Jistě, můžete zaplatit jednu ze stovek služeb VPN tam venku, ale opět se spoléháte na někoho jiného s vašimi daty. Většina z nich je ve skutečnosti skvělá, ale pokud chcete mít úplnou kontrolu, můžete si vytvořit vlastní VPN na V irtual P rivate S erver (VPS) nebo si pronajmout svůj vlastní soukromý server, pokud s ním máte opravdu hardcore.

Vše, co potřebujete k vytvoření VPN, je open source software OpenVPN a Linux (nebo BSD). Konfigurace může být zapojena, ale u někoho, kdo má dokonce základní dovednosti v systému Linux, není nemožné vyrazit z distribuce, jako je Ubuntu.

Pro tuto příručku budete potřebovat VPS se systémem Ubuntu. Můžete si vybrat jeden velmi snadno od někoho, jako je DigitalOcean nebo Linode . Postupujte podle jejich základních bezpečnostních pokynů. Ujistěte se, že neděláte základní chyby, jako je povolení přístupu root přes SSH.

Také mějte na paměti, že toto uděláte celé toto nastavení v příkazovém řádku přes SSH k vašemu VPS. Neexistuje nic, co by vyžadovalo šílené množství znalostí o Linuxu, ale buďte připraveni psát místo kliknutí.

Získání toho, co potřebujete

Rychlé odkazy

  • Získání toho, co potřebujete
  • Nastavte Firewall
    • Najděte rozhraní
    • Základy Iptables
    • Nastavte pravidla
      • Loopback
      • Ping
      • SSH
      • OpenVPN
      • DNS
      • HTTP / S
      • NTP
      • KÁĎ
      • Protokolování
      • Odmítnout vše ostatní
      • NAT Maškaráda
    • Dopředný provoz IPv4
    • Zastavte všechna připojení IPv6
    • Importovat a uložit do Iptables

Ubuntu balí a distribuuje OpenVPN ve svých úložištích. K instalaci musíte použít pouze apt. Budete také potřebovat nástroj pro generování šifrovacích klíčů. Nainstalujte je oba.

$ sudo apt install openvpn easy-rsa

Nastavte Firewall

Dále se musíte postarat o firewall. Je to důležitý prvek pro zabezpečení vaší VPN a zabraňuje úniku dat i nežádoucímu přístupu.

Iptables je hlavní firewall pro Linux a je to vaše nejlepší volba pro řízení přístupu k portům Ubuntu. Už ji máte nainstalovanou, takže můžete začít nastavovat pravidla brány firewall.

Najděte rozhraní

Než začnete psát pravidla do iptables, zjistěte, s jakým rozhraním je váš server připojen k internetu. Spusťte program ifconfig pro zobrazení síťových rozhraní. Ten, který má inet addr: odpovídající IP adrese, ke které jste připojeni, je správné rozhraní.

Základy Iptables

Obvykle není dobrý nápad náhodně kopírovat a vkládat věci do terminálu z Internetu. To platí zejména, když se zabýváte tématy zabezpečení. Udělejte si tedy nějaký čas, abyste se dozvěděli něco o pravidlech iptables, než je začnete zadávat.

Podívejte se na tento příklad pravidla iptables.

-A INPUT -i eth0 -p tcp -m state –state ZJEDNODUŠENO –sport 443 -j ACCEPT

Dobře, takže -A znamená, že přidáte nové pravidlo. INPUT znamená, že se bude týkat vstupu na váš server. K dispozici je také VÝSTUP. Příznak -i říká iptables, pro které rozhraní je toto pravidlo použito. Můžete určit, pro který protokol je pravidlo použito -p. Toto pravidlo se zabývá tcp. -m určuje podmínku, kterou musí připojení splňovat. V tomto případě se musí shodovat se zadaným stavem. Samozřejmě pak - stav udává stav, v tomto případě navázané připojení. Další část popisuje iptables, ke kterému portu je toto pravidlo použito. Je to port 443, port HTTPS, zde. Poslední příznak je -j. Znamená to „skok“ a řekne iptables, co s připojením dělat. Pokud toto připojení splní všechny požadavky pravidla, iptables jej AKCEPTUJE.

Nastavte pravidla

Měli byste tedy mít obecnou představu o tom, jak pravidla iptables nyní fungují. Zbytek této části vám řekne, jak nastavit pravidla kousek po kousku.

Nejlepší způsob, jak vytvořit sadu pravidel iptables, je vytvořit soubor, který je obsahuje všechny. Poté je můžete všechny importovat do iptables najednou. Nastavení pravidel jeden po druhém může být matoucí, zejména pokud začínáte od začátku novou sadu pravidel.

Vytvořte soubor v adresáři / tmp a vytvořte si pravidla.

$ vim / tmp / ipv4

Spusťte tento soubor pomocí * filtru. Toto říká iptables, že to, co bude následovat, bude pravidla pro filtrování paketů.

Loopback

První část pravidel uzamkne rozhraní zpětné smyčky. Řeknou iptables, že server by měl přijímat provoz ze sebe na rozhraní zpětné smyčky. Měla by také odmítnout provoz přicházející ze sebe, který nepocházel ze zpětné smyčky.

-A INPUT -i lo -j ACCEPT -A INPUT! -i lo -s 127.0.0.0/8 -j REJECT -A VÝSTUP -o lo -j ACCEPT

Ping

Dále povolte ping. Měli byste být schopni pingovat váš server, abyste se ujistili, že je online, pro případ, že by to jinak nebylo možné. V takovém případě jsou povoleny pouze žádosti o ozvěnu a server si sám umožní odesílat výstup ICMP.

-A VSTUP -p icmp -m stav - stav NOVINKA --icmp-typ 8 -j PŘIJAT - -VSTUP -p icmp -m stav - stav VYRÁBĚNO, SOUVISEJÍCÍ -j AKCEPT -A VÝSTUP -p icmp -j AKCEPT

SSH

Potřebujete SSH. To je jediný způsob, jak se dostat na váš server. Pravidla SSH jsou specifická pro vaše internetové rozhraní, takže se ujistěte, že nahradíte eth0 tím rozhraním, které váš server skutečně používá.

Může být také dobré změnit připojení SSH mimo port 22, protože to je výchozí nastavení, které by potenciální útočníci vyzkoušeli. Pokud tak učiníte, nezapomeňte to změnit také v pravidlech iptables.

-A VSTUP -i eth0 -p tcp -m stav - stav NOVINKA, ZJIŠTĚN - --port 22 -j AKCEPT -A VÝSTUP -o eth0 -p tcp -m stát - stav STANOVENÍ --sport 22 -j ACCEPT

OpenVPN

Tato další část umožňuje přenos na a ze serveru OpenVPN přes UDP.

-A VSTUP -i eth0 -p udp -m stav - stav NOVINKA, ZJIŠTĚN - - port 1194 -j PŘIJAT - -O eth0 -p udp -m stav - stav VYDĚLÁVANÝ --sport 1194 -j AKCEPT

DNS

Nyní povolte připojení DNS přes UDP a TCP. Chcete, aby vaše VPN spravovala DNS, ne vašeho ISP. To je součástí důvodu, proč nastavujete VPN na prvním místě.

-A VSTUP -i eth0 -p udp -m stav - stav VYRÁBĚN - --port 53 -j AKCEPT -A VÝSTUP -o eth0 -p udp -m stav - stav NOVINKA, VYRÁBĚNO - dport 53 -j AKCEPT -A VSTUP -i eth0 -p tcp -m stát - stav VYRÁBĚNO --portport 53 -j PŘIJAT - -VÝSTUP -o eth0 -p tcp -m stát - stát NOVINKA, VYRÁBĚNO - dport 53 -j AKCEPT

HTTP / S

Aby se Ubuntu mohl aktualizovat sám, musíte přidat sadu pravidel, která umožní odchozí připojení HTTP a HTTPS. Tato pravidla umožňují serveru pouze navázat připojení HTTP, takže jej nelze použít jako webový server nebo se k němu připojit přes port 80 nebo port 443

-A VSTUP -i eth0 -p tcp -m stav - stav VYRÁBĚN - --port 80 -j AKCEPT -A VSTUP -i eth0 -p tcp -m stav - stav VYRÁBĚNO --port 443 -j AKCEPT -A VÝSTUP - o stav eth0 -p tcp -m - stav NOVINKA, VYRÁBĚNO - dport 80 -j PŘIJAT - -VÝSTUP -o stav et0 -p tcp -m - stav NOVINKA, VYRÁBĚNO - dport 443 -j PŘIJAT

NTP

Aby vaše hodiny serveru fungovaly správně, budete potřebovat NTP. NTP umožňuje serveru synchronizovat se s časovými servery po celém světě. Nesprávné hodiny na vašem serveru mohou způsobit problémy s připojením, takže spuštění NTP je dobrý nápad. Opět byste měli přijímat pouze odchozí a již navázaná připojení.

-A VSTUP -i eth0 -p udp -m stav - stav VYRÁBĚN - --port 123 -j PŘIJAT - -VÝSTUP -o eth0 -p udp -m stát - stav NOVINKA, VYRÁBĚNO --port 123 -j PŘIJAT

KÁĎ

Odblokujte rozhraní TUN, které OpenVPN používá k tunelu provozu.

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

Musíte povolit TUN přesměrovat provoz do vašeho běžného rozhraní pro VPN. Tuto IP adresu najdete v konfiguraci OpenVPN. Pokud ji změníte v konfiguraci, změňte ji také ve svých pravidlech.

-A FORWARD -i tun0 -o eth0 -s 10.8.0.0/24 -j ACCEPT -A FORWARD -m state - stav STAVEBNÍ, SOUVISEJÍCÍ -j ACCEPT

Protokolování

Je to dobré vést záznamy o všem, co je iptablesem odmítnuto. V tomto případě to znamená cokoli, co se nehodí do žádného z těchto pravidel. Protokoly vám umožní zjistit, zda se na vašem serveru nevyskytují nějaké škodlivé aktivity nebo jakékoli pokusy o něco škodlivého.

-A INPUT -m limit –limit 3 / min -j LOG –log-prefix „iptables_INPUT_denied:“ –log-level 4
-A FORWARD -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

Odmítnout vše ostatní

Nakonec je třeba zablokovat vše, co se nehodí do vašich pravidel. To je opravdu účel mít firewall na prvním místě.

-A VSTUP -J PŘEDMĚT -A ZADÁNÍ -j ODMÍTIT -A VÝSTUP -j ODMÍTAT

Uzavřete soubor příkazem COMMIT a řekněte iptables, aby potvrdil všechna pravidla.

NAT Maškaráda

Potřebujete připojení z VPN, aby vypadalo, že přicházejí ze samotného serveru. Tento kus nelze zahrnout do běžného souboru iptables, protože používá jinou tabulku. To je v pořádku, ale je to jen jedna linie.

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

Dopředný provoz IPv4

Budete muset povolit předávání provozu IPv4, aby mohl procházet mezi VPN a skutečným síťovým rozhraním vašeho serveru. Otevřete /etc/sysctl.d/99-sysctl.conf pomocí sudo.

Najděte řádek níže a odkomentujte jej odstraněním #.

net.ipv4.ip_forward = 1

Zastavte všechna připojení IPv6

Je nám líto, ale s iptables ještě nemáte hotovo. Musíte zablokovat veškerý provoz IPv6. Tento server OpenVPN bude podporovat pouze protokol IPv4, což je v pořádku, protože se nedostanete do situace, kdy potřebujete protokol IPv6. Výsledkem je, že jakákoli připojení IPv6 mohou potenciálně únikem informací, což je opak toho, co chcete při použití VPN.

Před nastavením pravidel pro iptables musíte deaktivovat IPv6 kdekoli jinde v systému.

Přidejte následující řádky do souboru /etc/sysctl.d/99-sysctl.conf. Pokud jste ji zavřeli z předchozí sekce, znovu ji otevřete pomocí 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 své změny.

$ sudo sysctl -p

Komentujte všechny řádky IPv6 v / etc / hosts. Tady budeš potřebovat sudo.

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

Nakonec můžete napsat pravidla iptables IPv6. Vytvořte pro ně soubor na / tmp / ipv6.

* filtr -A INPUT -j REJECT -A FORWARD -j REJECT -A OUTPUT -j REJECT COMMIT

Vidíte, jsou jednoduché. Odmítněte vše.

Importovat a uložit do Iptables

Abyste mohli dělat cokoli, musíte tato pravidla importovat. Teď je čas to udělat.

Začněte tím, že vymažete všechno ostatní, co tam je. Nechcete, aby vám bránila jakákoli stará pravidla.

$ sudo iptables -F && sudo iptables -X

Importujte svá pravidla IPv4 i IPv6.

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

Pravděpodobně už to nikdy nebudete chtít udělat. Budete tedy potřebovat nový balíček, který trvale uloží vaše pravidla.

$ sudo apt install iptables-persistent

Během instalace vás balíček požádá o uložení vašich existujících pravidel. Odpověď „Ano.“

Pokud provedete změny později, můžete také aktualizovat uložené konfigurace.

$ sudo service netfilter-persistent save

Chvíli to trvalo, ale váš firewall je připraven. Na další stránce se budeme zabývat vytvářením potřebných šifrovacích klíčů.

Klikněte zde: Další stránka

Vše o vpns: jak nastavit vlastní vpn pomocí openvpn (část 3)