GNU/Linux >> Znalost Linux >  >> Panels >> OpenVPN

Nastavení serveru OpenVPN s VyOS a viskozitou

Virtuální privátní sítě (VPN) lze využít pro řadu velmi užitečných aplikací. Můžete se bezpečně připojit k jakémukoli veřejnému WiFi hotspotu. Můžete překonat omezení geografického blokování na svých oblíbených webových stránkách. A dokonce se můžete připojit ke své domácí nebo kancelářské síti odkudkoli na světě, jako byste seděli přímo u svého stolu. Tato příručka vás provede procesem nastavení vašeho vlastního serveru OpenVPN a připojení k němu pomocí vaší kopie Viscosity.

Provozování vlastního serveru OpenVPN vám umožní zašifrovat vše, co děláte na internetu, takže můžete bezpečně provádět online bankovnictví na bezplatné WiFi ve vaší oblíbené kavárně. Vše, co odešlete přes připojení VPN, bude z vašeho zařízení šifrováno, dokud se nedostane na váš server OpenVPN doma. Nastavením vašeho OpenVPN serveru pro přístup k vaší domácí nebo kancelářské síti získáte plný přístup ke všem vašim souborům ve vaší síti.

Tato příručka vás provede kroky souvisejícími s nastavením serveru OpenVPN na hostiteli VyOS, který vám umožní bezpečný přístup k vaší domácí/kancelářské síti ze vzdáleného místa a volitelně přes ni posílá veškerý síťový provoz, abyste měli přístup k internetu. také bezpečně.

Příprava

Pro tuto příručku předpokládáme:

  • Již jste nainstalovali nejnovější verzi VyOS (1.1 v době psaní tohoto článku)
  • Váš účet obsahuje sudo oprávnění k této instalaci
  • Tato instalace VyOS je nová instalace
  • Na klientském zařízení již máte nainstalovanou kopii aplikace Viscosity

Pokud si potřebujete stáhnout a nainstalovat kopii VyOS, kopii najdete na http://vyos.net/wiki/Main_Page. Nebudeme se zabývat podrobnostmi nastavení instance VyOS, mnoho průvodců lze nalézt online. Pokud používáte jinou verzi VyOS, je velmi pravděpodobné, že mnoho nebo dokonce všechny kroky popsané v této příručce budou stále platit. Pokud chcete nastavit server OpenVPN na jiném operačním systému, podívejte se prosím na naše další průvodce.

Pokud ještě nemáte na svém klientovi nainstalovanou kopii Viscosity, podívejte se prosím na tuto instalační příručku pro instalaci Viscosity (Mac | Windows).

Podpora

Bohužel nemůžeme poskytnout žádnou přímou podporu pro nastavení vašeho vlastního OpenVPN serveru. Tuto příručku poskytujeme jako laskavost, která vám pomůže začít s vaší kopií Viscosity a co nejlépe ji využít. Důkladně jsme otestovali kroky v této příručce, abychom se ujistili, že pokud budete postupovat podle pokynů uvedených níže, měli byste být na dobré cestě využívat výhod provozování vlastního serveru OpenVPN.

Pro další informace nebo pomoc s VyOS je k dispozici řada zdrojů a fór na https://vyos.io/

Začínáme

Budeme předpokládat, že jste již svá síťová rozhraní jako taková nastavili:

  • 'OUTSIDE' – eth0 připojené k internetu
  • 'INSIDE' – eth1 připojené k vaší místní domácí síti

Generování certifikátů a klíčů

Dalším krokem je vygenerování vašich konfigurací pro server a vaše klienty, stejně jako certifikáty k nim. Můžete to snadno provést podle Průvodce vytvářením certifikátů a klíčů. Vygenerujte vše na svém PC nebo Macu a poté si poznamenejte cestu k vašemu serveru složku, která je vytvořena, budeme zde soubory později používat.

Pokud používáte výchozí DNS Server (10.8.0.1), budete si muset DNS server nastavit sami, pokyny jsou na konci tohoto článku. Místo toho doporučujeme použít existující DNS server, veřejně dostupný DNS server, jako je Google (8.8.8.8 a 8.8.4.4), je nejjednodušší.

Nyní musíme zkopírovat následující soubory do /config/auth/ adresář na vašem zařízení VyOS, který bude na serveru složku, která openvpn-generate právě vytvořila, doporučujeme použít SCP. Pokud neznáte SCP, máme pro vás pomoc s přenosem souborů pomocí SCP v našem Úvodním průvodci.

  • ca.crt
  • server.crt
  • server.key
  • dh.pem

Pokud používáte SCP z příkazového řádku, příkladem by byl příkaz
scp path/to/server/ca.crt [email protected]:/config/auth/

Konfigurace serveru OpenVPN

V konfiguraci serveru OpenVPN musíme přizpůsobit řadu různých nastavení. V terminálu zadejte konfigurační režim zadáním:

configure

Měli byste vidět rychlou změnu z $ na # . Pokud uděláte chybu při zadávání následujících konfiguračních příkazů, můžete odstranit dříve zadaný příkaz opakováním, ale nahrazením slova 'set' na začátku slovem 'delete'.

Do okna terminálu vložte následující:

# Configure this OpenVPN instance to run as the VPN server
set interfaces openvpn vtun0 mode server

# The OpenVPN server needs to know the location of the Diffie Hellman file
#NOTE: Depending on how you generated your keys, this file name might be 'dh.pem' instead
set interfaces openvpn vtun0 tls dh-file '/config/auth/dh.pem'

# Our VPN connection will be transported over UDP
set interfaces openvpn vtun0 openvpn-option "--proto udp"

# The server needs to keep a record of client virtual IP addresses so that they
# can be reassigned if the server goes down
set interfaces openvpn vtun0 openvpn-option "--ifconfig-pool-persist ipp.txt"

# To ensure that each side of the VPN knows if the connection has been severed,
# we want to ping each side every 10 seconds. If either side fails to recieve a
# ping within 2 minutes, then it will assume the other side is down
set interfaces openvpn vtun0 openvpn-option "--keepalive 10 120"

# There can be security issues if you run the OpenVPN server as root, so we will
# downgrade the user and group
set interfaces openvpn vtun0 openvpn-option "--user nobody --group nogroup"

# To avoid attempting to access resources that may no longer be accessible on
# restart
set interfaces openvpn vtun0 openvpn-option "--persist-key --persist-tun"

# To write (and rewrite) a short summary of current VPN connections every minute
# to a file
set interfaces openvpn vtun0 openvpn-option "--status openvpn-status.log"

# The verbosity of this connection logging (displayed in the Viscosity 'Details'
#  window) can range from 0 (silent) to 9 extremely verbose. We will use the 
# default of 3
set interfaces openvpn vtun0 openvpn-option "--verb 3"

# To prevent more than 10 duplicates of the same log message in a row from
# flooding the Viscosity log
set interfaces openvpn vtun0 openvpn-option "--mute 10"

# The credential files
set interfaces openvpn vtun0 tls ca-cert-file '/config/auth/ca.crt'
set interfaces openvpn vtun0 tls cert-file '/config/auth/server.crt'
set interfaces openvpn vtun0 tls key-file '/config/auth/server.key'

# The server will use the default OpenVPN port (1194)
set interfaces openvpn vtun0 openvpn-option "--port 1194"

# We need the VPN to create a tun network interface through which we can 
# route all our traffic:
set interfaces openvpn vtun0 openvpn-option "--dev vtun0"

# The VPN requires a private IP subnet. We will use the default OpenVPN IP
# subnet
set interfaces openvpn vtun0 server subnet '10.8.0.0/24'

# We want VPN clients connected to this server to be able to access any hosts
# accessible on your home network. We are assuming that your local network
# subnet is 192.168.0.x/24. If it is something else, you will need to change the
# IP address in the command below.
set interfaces openvpn vtun0 server push-route 192.168.0.0/24

# For enhanced security, set a cipher and auth hash
set interfaces openvpn vtun0 openvpn-option "--cipher AES-256-CBC"
set interfaces openvpn vtun0 openvpn-option "--auth SHA256"

# Lastly, we want to allow hosts on the home network to be able to see VPN
# clients connected to the OpenVPN server
set interfaces openvpn vtun0 openvpn-option "--client-to-client"

Věnujte zvláštní pozornost IP adrese v set interfaces openvpn vtun0 server push-route 192.168.0.0/24 . Ujistěte se, že tato podsíť odpovídá vaší domácí/kancelářské podsíti LAN IP. Pokud nenastavujete tento VPN server pro přístup k vaší domácí/kancelářské LAN, můžete tento řádek úplně přeskočit.

Pravidla brány firewall

Použijeme firewall nainstalovaný standardně na VyOS. Pokud instalujete OpenVPN na server, který již má vlastní nastavení firewallu, nezapomeňte přidat pravidla, která umožní náš provoz OpenVPN. Pokud se však jedná pouze o jednoduchý samostatný server VyOS, níže uvedená nastavení brány firewall by měla stačit k uvedení vašeho OpenVPN serveru do provozu.

Stále v režimu konfigurace , vložte do okna terminálu:

# First we will set the rules for traffic passing through the server. We want
# the firewall to allow traffic for existing connections to the server, and drop 
# any new ones:
set firewall name OUTSIDE-IN default-action 'drop'
set firewall name OUTSIDE-IN rule 10 action 'accept'
set firewall name OUTSIDE-IN rule 10 state established 'enable'
set firewall name OUTSIDE-IN rule 10 state related 'enable'

# Next we will set the rules to allow the local network to talk to the outside world
set firewall name OUTSIDE-LOCAL default-action 'drop'
set firewall name OUTSIDE-LOCAL rule 10 action 'accept'
set firewall name OUTSIDE-LOCAL rule 10 state established 'enable'
set firewall name OUTSIDE-LOCAL rule 10 state related 'enable'</code>

# If you would like the ability to ping your VyOS server externally, add the following
set firewall name OUTSIDE-LOCAL rule 20 action 'accept'
set firewall name OUTSIDE-LOCAL rule 20 icmp type-name 'echo-request'
set firewall name OUTSIDE-LOCAL rule 20 protocol 'icmp'
set firewall name OUTSIDE-LOCAL rule 20 state new 'enable'

# If you would like the ability to SSH into your server externally (without a VPN connected), add the following
# NOTE - This can be a security risk and is not recommended
set firewall name OUTSIDE-LOCAL rule 30 action 'drop'
set firewall name OUTSIDE-LOCAL rule 30 destination port '22'
set firewall name OUTSIDE-LOCAL rule 30 protocol 'tcp'
set firewall name OUTSIDE-LOCAL rule 30 recent count '4'
set firewall name OUTSIDE-LOCAL rule 30 recent time '60'
set firewall name OUTSIDE-LOCAL rule 30 state new 'enable'
set firewall name OUTSIDE-LOCAL rule 31 action 'accept'
set firewall name OUTSIDE-LOCAL rule 31 destination port '22'
set firewall name OUTSIDE-LOCAL rule 31 protocol 'tcp'
set firewall name OUTSIDE-LOCAL rule 31 state new 'enable'

# Allow external connections to the OpenVPN port. This will allow you to VPN to your server
# from somewhere outside your local network (like a coffee shop)
set firewall name OUTSIDE-LOCAL rule 40 action 'accept'
set firewall name OUTSIDE-LOCAL rule 40 destination port '1194'
set firewall name OUTSIDE-LOCAL rule 40 protocol 'udp'

# Apply these firewall policies:
set interfaces ethernet eth0 firewall in name 'OUTSIDE-IN'
set interfaces ethernet eth0 firewall local name 'OUTSIDE-LOCAL'

# Lastly, we need to enable NAT masquerade:
set nat source rule 100 outbound-interface 'eth0'
set nat source rule 100 source address '10.8.0.0/24'
set nat source rule 100 translation address 'masquerade'
set nat source rule 200 outbound-interface 'eth1'
set nat source rule 200 source address '10.8.0.0/24'
set nat source rule 200 translation address 'masquerade'

Server DNS

Pokud plánujete šifrování veškerého síťového provozu přes váš VPN server, pak se doporučuje povolit vlastní DNS server. VyOS má ve výchozím nastavení nainstalovaný DNS forwarder, který můžeme použít k poskytování vlastního DNS serveru pro připojení VPN, abychom zabránili útokům souvisejícím s DNS.

Stále v režimu konfigurace , vložte následující do okna terminálu:

# We will set the DNS forwarder to store 100 lookups locally, to speed up 
# repeated DNS requests:
set service dns forwarding cache-size '100'

# DNS queries will be resolved coming from the local network:
set service dns forwarding listen-on 'eth1'

# DNS queries will be resolved coming from our VPN connection:
set service dns forwarding listen-on 'vtun0'

# We will use the Google DNS servers (you are free to use your DNS resolution
# service of choice):
set service dns forwarding name-server '8.8.8.8'
set service dns forwarding name-server '8.8.4.4'

Nyní, když jsme s nastavením konfigurace hotovi, uložte změny zadáním následujícího do terminálu:

commit;save

a ukončete konfigurační režim:

exit

Nastavení routeru

Pokud je váš server VyOS přímo přístupný , pak můžete tuto sekci přeskočit . Neexistuje žádný router, který by bylo možné konfigurovat.

Pokud je však váš server VyOS za routerem (například na vaší domácí WiFi), budete muset router nakonfigurovat tak, aby povoloval provoz VPN. Vzhledem k mnoha různým modelům routerů a konfigurací sítě nemůžeme poskytnout krok za krokem průvodce, jak nastavit router, aby umožňoval provoz VPN. Existuje však několik nastavení, která pravděpodobně budete muset změnit, proto je zde nastíníme.

Vzhledem k tomu, že router bude směrovat veškerý provoz do az vašeho OpenVPN serveru, budete muset nastavit přesměrování portů aby byl server OpenVPN externě přístupný. Přesměrování portů může být v části rozhraní pro správu vašeho routeru s názvem „Virtuální servery“. Obecně budete chtít přesměrovat veškerý příchozí provoz do routeru na portu OpenVPN (1194). Budete muset nastavit pravidlo pro odesílání jakéhokoli UDP provozu na těchto portech na místní IP adresu vašeho OpenVPN serveru (což je pravděpodobně něco v rozsahu 192.168.0.x).

Pokud jste nastavili přesměrování portů, poznamenejte si také svou externí WAN IP adresu . Toto je IP adresa přidělená vašemu routeru vaším poskytovatelem internetových služeb (ISP). Tato adresa bude vyžadována při konfiguraci vašeho připojení ve Viscosity níže.

Dalším hlavním nastavením směrovače, které budete muset zvážit, je statické směrování. Protože budete mít nastavenou VPN, bude do vašeho routeru zasílán provoz se zdrojovou nebo cílovou IP v rozsahu 10.8.0.x. Tento provoz bude muset mít statické směrování, aby bylo zajištěno, že když hostitel obdrží požadavek od klienta VPN (v podsíti 10.8.0.x) a odešle odpověď na tuto adresu, router bude vědět, jak převést 10.8. 0.x IP adresa na adresu, které rozumí (tj. 192.168.0.x). Budete tedy muset nastavit pravidlo statického směrování, které má následující vlastnosti:

Cíl:10.8.0.0Maska podsítě:255.255.255.0Výchozí brána:IP vašeho-serveru

kde IP adresa vašeho-serveru je IP adresa vašeho OpenVPN serveru v místní síti (něco v rozsahu 192.168.0.x).

Nastavení viskozity

Posledním krokem je nastavení viskozity. Díky openvpn-generate je to stejně snadné jako import a připojení.

Import

Zkopírujte svůj soubor *.visz, který jste vytvořili pomocí openvpn-generate, do počítače Mac nebo Windows s nainstalovanou viskozitou a dvakrát na soubor klikněte. Měli byste vidět výzvu, že konfigurace byla úspěšně importována.

Po importu upravte připojení a přejděte na kartu Upřesnit. Přidejte následující dva příkazy na nové řádky:

cipher AES-256-CBC
auth SHA256

Připojení a používání připojení VPN

Nyní jste připraveni se připojit. Kliknutím na ikonu Viscosity na liště nabídky macOS nebo na systémové liště Windows otevřete nabídku Viscosity Menu, vyberte připojení, které jste importovali, a Viscosity se připojí.

Chcete-li zkontrolovat, zda je VPN v provozu, můžete otevřít okno Podrobnosti z nabídky Viskozita. To vám umožní zobrazit podrobnosti o připojení, provoz a protokol OpenVPN.



To je vše, nastavili jste svůj vlastní server OpenVPN. Gratulujeme, nyní můžete zdarma využívat výhod provozování vlastního serveru OpenVPN!


OpenVPN
  1. Jak nainstalovat a hostovat server OpenVPN pomocí Dockeru

  2. Nainstalujte a nastavte OpenVPN Server na Ubuntu 20.04

  3. Nainstalujte a nakonfigurujte OpenVPN Server FreeBSD 12

  1. Jak nastavit a nakonfigurovat server OpenVPN na Ubuntu 22.04

  2. Nastavení serveru Obfuscation s Obfsproxy a Viscosity

  3. Nastavení serveru OpenVPN s CentOS a viskozitou

  1. Nastavení serveru OpenVPN s DD-WRT a viskozitou

  2. Nastavení serveru OpenVPN s Netgear a viskozitou

  3. Nastavení serveru OpenVPN s webovou autentizací Okta Single Sign-on a viskozitou