Hoe OpenVPN-server op Ubuntu Linux te installeren en configureren

Inhoudsopgave

OpenVPN Het is zonder twijfel de beste manier om via internet een veilige verbinding met een netwerk tot stand te brengen.

OpenVPN is een VPN-bron van Open source Dat stelt ons als gebruikers in staat om ons browsen te maskeren om te voorkomen dat we het slachtoffer worden van diefstal van informatie op het netwerk. Dit zijn zeer belangrijke aspecten op het beveiligingsniveau waar we rekening mee moeten houden en deze keer gaan we het OpenVPN-configuratieproces analyseren in een Ubuntu 16.04-omgeving.

OpenVPN gebruiktDankzij OpenVPN kunnen we taken uitvoeren zoals:

  • Bescherm het verkeer tijdens het browsen op het web.
  • Werkt als een tunnel over elk IP-adres met behulp van een enkele TCP- of UDP-poort.
  • Opgericht meerdere servers Schaalbare VPN.
  • Gebruik maken van coderingsfuncties en authenticatie om het verkeer te beschermen.
  • Uitwisseling van dynamische toetsen.
  • Maak bruggen van Veilig ethernet.
  • VPN-beheer met behulp van een grafische interface vanuit Windows- en Mac OS-omgevingen.

OpenVPN-vereistenVoordat u met het installatieproces begint, is het belangrijk om aan bepaalde vereisten te voldoen, dit zijn:

  • Root-gebruiker
  • Druppel Ubuntu 16.04

1. Update installeren en OpenVPN installeren op Ubuntu 16.04

Stap 1
Allereerst zullen we Ubuntu 16.04 bijwerken met de volgende opdracht:

 sudo apt-get update 
Stap 2
Nadat het systeem is bijgewerkt, gaan we verder met het installeren van OpenVPN met behulp van de volgende opdracht. We accepteren de download en respectievelijke installatie van de OpenVPN-pakketten.
 sudo apt-get install openvpn easy-rsa 

VERGROTEN

Op deze manier we hebben OpenVPN geïnstalleerd op Ubuntu 16 en nu zal het nodig zijn om het configuratieproces uit te voeren.

2. Hoe de CA-map in Ubuntu 16.04 in te stellen?


De CA-map (Certificate Authority- Certificate of Authority) is het middel waarmee we vertrouwde certificaten kunnen uitgeven, aangezien OpenVPN een VPN is dat de TLS / SSL-protocollen.

Stap 1
Voor deze we zullen de sjablonen kopiëren van easy-rsa in onze homedirectory met het commando make-cadir, zullen we het volgende invoeren in de Ubuntu 16.04-terminal:

 make-cadir ~ / openvpn-ca 
Stap 2
Nu hebben we toegang tot de eerder gemaakte route:
 cd ~ / openvpn-ca 

VERGROTEN

3. variabelen van autorisatiecertificaten configureren in Ubuntu 16.04


Het is noodzakelijk dat we de waarden configureren die door de autoriteit of CA-certificaten zullen worden gebruikt en hiervoor moeten we het bestand bewerken vars binnen de map.

Stap 1
We kunnen dit bestand openen met de voorkeurseditor, in dit geval is het nano:

 sudo nano vars 

VERGROTEN

Stap 2
In dit bestand vinden we de variabelen die we kunnen aanpassen en configureren om te bepalen op welke manier de autoriteitscertificaten worden aangemaakt. We scrollen naar de onderkant van het bestand totdat we deze variabelen vinden:

 export KEY_COUNTRY = "VS" export KEY_PROVINCE = "CA" export KEY_CITY = "SanFrancisco" export KEY_ORG = "Fort-Funston" export KEY_EMAIL = "[email protected]" export KEY_OU = "MijnOrganisatie-eenheid"

VERGROTEN

Stap 3
We bewerken deze waarden op basis van de parameters die vereist zijn. Op dezelfde manier zullen we de regel bewerken KEY_NAME exporteren de juiste naam toegewezen, in dit geval hebben we het server genoemd.

VERGROTEN

Stap 4
Wij houden veranderingen met behulp van de combinatie:

Ctrl + O

Y we gingen uit van de editor met

Ctrl + X

4. Het autoriteitscertificaat maken in Ubuntu 16.04


Met deze waarden gedefinieerd gaan we over tot het maken van het autoriteitscertificaat.

OpmerkingOnthoud dat we moeten in de map ~ / openvpn-ca staan.

Stap 1
Zodra we in de directory zijn, zullen we het volgende commando uitvoeren:

 bron vars 

VERGROTEN

Stap 2
We gaan verder met het uitvoeren van de aangegeven opdracht om een ​​schone omgeving te hebben:

 ./Maak alles schoon 
Stap 3
nutsvoorzieningen we zullen het root-CA-certificaat maken met behulp van de volgende opdracht:
 ./build-ca 
Stap 4
We kunnen een reeks vragen zien die we al hebben geconfigureerd in het vars-bestand waarvoor we alleen op hoeven te drukken Binnenkomen automatisch in te vullen. Dus we hebben het certificaat gemaakt die nuttig zal zijn voor de rest van het proces.

VERGROTEN

5. Servercertificaat, sleutel en versleutelde bestanden maken in Ubuntu 16.04


Op dit punt gaan we het servercertificaat en de bijbehorende sleutels maken.

Stap 1
Hiervoor voeren we het volgende commando uit:

 ./build-key-server server 
We moeten de servernaam vervangen door de naam die in de regel is toegewezen KEY_NAME exporteren uit het vars-bestand). De waarden die al in het vars-bestand zijn gedefinieerd, worden automatisch verzonden, waarvoor we op Enter drukken.

Stap 2
We kunnen zien dat het certificaat correct is aangemaakt.

VERGROTEN

Stap 3
Vervolgens zullen we andere parameters maken, zoals de Diffie-Hellman-codering die tijdens de sleuteluitwisseling kan worden gebruikt, daarvoor gebruiken we de volgende regel.

 ./build-dh 

VERGROTEN

Stap 4
Dit proces duurt enkele minuten om te voltooien. We kunnen ook een HMAC-handtekening genereren waarmee we de TLS-integriteitsniveaus van de server kunnen verbeteren, hiervoor voeren we het volgende in.

 openvpn --genkey --geheime sleutels / ta.key 

6. Servercertificaat, sleutel en versleutelde bestanden maken in Ubuntu 16.04


Dit proces kan worden uitgevoerd op de clientcomputer en later worden ondertekend met behulp van de CA-server, maar deze keer zullen we het rechtstreeks uitvoeren om tijd te besparen.We openen de directory opnieuw, als we er nog niet zijn. ~ / openvpn-ca en daar zullen we het source vars commando uitvoeren.

Stap 1
Nu zullen we de volgende regel invoeren waar we de naam van de klant definiëren:

 ./build-key solvetic1 
We moeten drukken Binnenkomen in de respectievelijke vragen die hierboven al zijn geconfigureerd

VERGROTEN

Stap 2
Met deze opdracht worden referenties gemaakt zonder dat een wachtwoord nodig is. Als we om veiligheidsredenen een referentie met een wachtwoord willen instellen, moeten we de volgende regel uitvoeren:

 ./build-key-pass (clientnaam) 

7. Hoe de OpenVPN-service te configureren in Ubuntu 16.04


De volgende stap is om de OpenVPN-service zo te configureren dat alles werkt zoals jij dat wilt. Allereerst zullen we de bestanden kopiëren die we hebben gemaakt in het pad ~ / openvpn-ca naar het pad / etc / openvpn, onthoud dat de CA-certificaten, de sleutels, het bestand Diffie-Hellman en het HMAC-bestand.

Stap 1
Hiervoor zullen we toegang krijgen tot de volgende directory:

 cd ~ / openvpn-ca / sleutels 
Stap 2
Eenmaal daar zullen we de volgende regel uitvoeren voor het kopieerproces:
 sudo cp ca.crt ca.key server.crt server.key ta.key dh2048.pem / etc / openvpn 
Stap 3
Nu moeten we kopiëren en uitpakken a OpenVPN-configuratiebestand in die map om als basis te gebruiken. Hiervoor voeren we het volgende in:
 gunzip -c /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz | sudo tee /etc/openvpn/server.conf 

VERGROTEN

8. OpenVPN-instellingen aanpassen in Ubuntu 16.04

Stap 1
Zodra we deze bestanden in het benodigde pad hebben, gaan we verder met het aanpassen van de OpenVPN-configuratie door het bestand te openen server.conf:

 sudo nano /etc/openvpn/server.conf 

VERGROTEN

Stap 2
Daar zullen we de volgende aanpassingen doen. We gaan naar de lijn tls-auth ta.key 0 # Dit bestand is geheim en daaronder zullen we het volgende toevoegen.

 sleutelrichting 0 
Stap 3
Op de lijn cijfer AES-128-CBC we verwijderen het symbool; aan het begin ervan en onder deze regel zullen we het volgende invoeren.
 auth SHA256 
Stap 4
Dit is om een ​​authenticatieregel aan te maken voor: kies het berichtalgoritme. Aan de lijn gebruiker Y groep we verwijderen het symbool van; aan het begin gelegen.

VERGROTEN

Als optionele alternatieven kunnen we het volgende toevoegen.

DNS-verkeer door de VPN sturenDeze optie is praktisch wanneer we al het verkeer exclusief via de VPN willen routeren.

 Hiervoor zullen we de volgende wijzigingen aanbrengen in het vorige bestand: We uncommenteren de regels: push "redirect-gateway def1 bypass-dhcp" push "dhcp-option DNS 208.67.222.222" push "dhcp-option DNS 208.67.220.220"

Wijzig de poort in OpenVPNStandaard gebruikt OpenVPN poort 1194 en het UDP-netwerkprotocol voor clientverbindingen. Als we deze poort willen wijzigen, gaan we naar de regel haven en we wijzen de nieuwe poort toe volgens de huidige behoefte.

VERGROTEN

Op dezelfde manier kunnen we het protocol op de lijn aanpassen proto.

Netwerkinstellingen aanpassen - IP doorsturenDit punt is belangrijk omdat hierdoor al het OpenVPN-verkeer correct kan worden gerouteerd.

Eerst zullen we de . inschakelen IP-adres doorsturen, dat wil zeggen dat de server het verkeer doorstuurt, hiervoor moeten we het bestand bewerken /etc/sysctl.conf:

 sudo nano /etc/sysctl.conf 
In het bestand zullen we de regel plaatsen net.ipv4.ip_forward = 1 en we verwijderen het commentaar door het # symbool aan het begin ervan te verwijderen.

VERGROTEN

Wij houden de wijzigingen en we verlaten het bestand. Voor alle wijzigingen die in de huidige sessie moeten worden toegepast, voeren we de volgende opdracht uit.

 sudo sysctl -p

De regels instellen in de Ubuntu 16.04-firewallHet gebruik van de firewall is essentieel omdat het ons beschermt tegen inkomende verbindingen met het systeem, op dit punt moeten we: bewerk het regelsbestand voor het configureren van gemaskeerd verkeer. Allereerst moeten we de openbare netwerkinterface van de server kennen, hiervoor voeren we de volgende opdracht uit:

 ip-route | grep standaard 

VERGROTEN

In dit voorbeeld is de openbare netwerkinterface enp0s3. Nu zullen we toegang krijgen tot naar het configuratiebestand voor regels voor uw aanpassing voeren we het volgende in:

 sudo nano /etc/ufw/before.rules 
Het volgende venster wordt weergegeven.

VERGROTEN

Dit bestand beheert de configuratie die moet worden voorafgegaan voordat de typische UFW-regels worden uitgevoerd. Bovenaan voeren we de volgende regels in die de POSTROUTING-configuratie bepalen:

 # START OPENVPN-REGELS # NAT-tabelregels * nat: POSTROUTING ACCEPT [0: 0] # Sta verkeer toe van OpenVPN-client naar (interface) -A POSTROUTING -s 10.8.0.0/8 -o (interface) -j MASQUERADE COMMIT # END OPENVPN REGLEMENT

VERGROTEN

Het is belangrijk dat in de enp0s3-veld laten we de juiste naam van de te gebruiken interface instellen. Wij houden veranderingen met behulp van de combinatie:

Ctrl + O

Y we gingen uit van de editor met:

Ctrl + X

Nu moeten we de UFW accepteer pakketten bij wijze van standaard, hiervoor voeren we het volgende commando uit:

 sudo nano / etc / standaard / ufw 
Op de lijn DEFAULT_FORWARD_POLICY we wijzigen de term DROP door ACCEPT.

VERGROTEN

Wij houden de veranderingen.

De VPN-poorten openen en de wijzigingen inschakelenDe volgende stap is om firewall-instellingen aanpassen om al het verkeer naar OpenVPN toe te staan. Voor deze wij voeren uit het volgende commando.

 sudo ufw toestaan ​​1194 / udp 
OpmerkingAls we de poort en het protocol hebben bewerkt, moeten we dit in deze opdracht wijzigen, dit zijn de standaardwaarden van OpenVPN.

We voegen ook de SSH-poort:

 sudo ufw laat OpenSSH toe 

VERGROTEN

Tot wijzigingen uploaden we zullen de volgende commando's gebruiken.

 sudo ufw uitschakelen sudo ufw inschakelen
We kunnen controleren of de regels zijn toegevoegd met het commando sudo ufw-status:

VERGROTEN

9. Hoe de OpenVPN-service te starten en in te schakelen in Ubuntu 16.04


Met deze reeds gedefinieerde waarden We kunnen de OpenVPN-service starten in Ubuntu en hiervoor is het nodig om de naam op te geven die we hebben toegewezen.

Stap 1
Hiervoor voeren we de volgende regel uit:

 sudo systemctl start openvpn @ server 
Stap 2
Vervolgens we valideren de status van OpenVPN met behulp van de regel:
 sudo systemctl status openvpn @ server 

VERGROTEN

Stap 3
We kunnen zien dat de status correct is en dat deze met succes is gestart. We drukken op de letter q om terug te keren naar de opdrachtregel. Op dezelfde manier kunnen we de OpenVPN tun0-interface verifiëren door het volgende in te voeren:

 ip-adres toon tun0 

VERGROTEN

Stap 4
Om ervoor te zorgen dat de OpenVPN-service automatisch wordt uitgevoerd bij elke login, moeten we de volgende parameter invoeren:

 sudo systemctl openvpn @ server inschakelen 

VERGROTEN

10. Hoe de OpenVPN-clientstructuur op Ubuntu 16.04 te maken?

Stap 1
De volgende stap is het maken van de clientconfiguratiebestanden, hiervoor zullen we deze structuur binnen de persoonlijke map maken door het volgende uit te voeren:

 mkdir -p ~ / client-configs / bestanden 
Stap 2
We zullen de machtigingen in die route blokkeren, aangezien de gemaakte sleutels zich daar bevinden, we zullen de volgende regel gebruiken:
 chmod 700 ~ / client-configs / bestanden 

11. Een OpenVPN-configuratiebasis maken op Ubuntu 16.04

Stap 1
Op dit punt zullen we een clientconfiguratiebasis in de map kopiëren om deze als basis te hebben, we voeren het volgende uit:

 cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf ~ / client-configs / base.conf 
Stap 2
We openen dit bestand met onze voorkeurseditor:
 sudo nano ~ / client-configs / base.conf 

VERGROTEN

Stap 3
Daar vinden we de lijn op afstand en we zullen het IP-adres van de server invoeren, gevolgd door UDP-poort 1194:

VERGROTEN

Stap 4
In hetzelfde bestand zullen we de volgende wijzigingen aanbrengen:

  • We uncommenteren de regels gebruiker Y groep het bord verwijderen;
  • We geven commentaar en voegen het # -symbool toe aan de regels AC, certificaat Y sleutel
  • We voegen de regels toe cijfer AES-128-CBC Y auth SHA256
  • Onder de vorige regel schrijven we sleutelrichting 1
  • Aan het einde van het bestand voegen we de volgende regels toe:
 scriptbeveiliging 2 / # up / etc / openvpn / update-resolv-conf / # down / etc / openvpn / update-resolv-conf

Als het niet voor u werkt, probeer dan deze andere vorm van scriptbeveiligingscommando:

 scriptbeveiliging 2 / up / etc / openvpn / update-resolv-conf / down / etc / openvpn / update-resolv-conf

VERGROTEN

Stap 5
Wij houden veranderingen met behulp van de combinatie:

Ctrl + O

Y we gingen uit van de editor met:

Ctrl + X

12. Een script maken voor OpenVPN-configuratie op Ubuntu 16.04

Stap 1
Dit script zorgt voor het compileren van de belangrijkste gebeurtenissen van de certificaat-, sleutel- en versleutelingsbestanden in het pad ~ / client-configs / bestanden. We zullen een bestand maken met de naam make_config.sh met behulp van de volgende syntaxis:

 sudo nano ~ / client-configs / make_config.sh
Stap 2
Er wordt een leeg bestand geopend waarin we de volgende regels zullen toevoegen:
 #! / bin / bash # Eerste argument: Client-ID KEY_DIR = ~ / openvpn-ca / keys OUTPUT_DIR = ~ / client-configs / files BASE_CONFIG = ~ / client-configs / base.conf cat $ {BASE_CONFIG} \ <(echo -e '') \ $ {KEY_DIR} /ca.crt \ <(echo -e '\ n') \ $ {KEY_DIR} / $ {1} .crt \ <(echo -e '\ n') \ $ {KEY_DIR} / $ {1} .key \ <(echo -e '\ n') \ $ {KEY_DIR} /ta.key \ <(echo -e '') \> $ {OUTPUT_DIR} / $ {1} .ovpn

VERGROTEN

Stap 3
Wij houden de veranderingen en we gingen uit van de redactie. We maken dit bestand uitvoerbaar door het volgende in te voeren:

 sudo chmod 700 ~ / client-configs / make_config.sh 

13. Hoe OpenVPN-clientbestanden op Ubuntu 16.04 te configureren?


De volgende stap is het maken van de configuratiebestanden voor de client, die we hebben gemaakt als Solvetic1.

Stap 1
Hiervoor voeren we de volgende regels in:

 cd ~ / client-configs ./make_config.sh client1 [plain] Stap 2 [/ plain] We kunnen de inhoud van deze map zien met het ls-commando: ls ~ / client-configs / files

VERGROTEN

We zien dat de Solvetic1-client correct is gemaakt.

14. Hoe OpenVPN-instellingen over te zetten naar OpenVPN-clientmachines op Ubuntu 16.04


Zodra we het hele configuratieproces in Ubuntu 16 hebben voltooid, is het tijd om de Solvetic1.ovpn-bestand naar de respectievelijke apparaten zoals computers of mobiele apparaten.

Stap 1
We kunnen de overdrachtclient gebruiken die we willen op basis van het systeem dat we gebruiken, een voorbeeld van overdracht kan het volgende zijn in een Fedora 25-omgeving:

 sftp [email protected]: client-configs / bestanden / Solvetic1.ovpn ~ / 
Stap 2
In dit voorbeeld gebruiken we ramen en de klant Filezilla:

VERGROTEN

15. Hoe OpenVPN te installeren en uit te voeren op Ubuntu 16.04


Stap 1
OpenVPN is beschikbaar voor Windows, Linux, Mac OS, Android, FreeBSD, enz. In de volgende link kunnen we de juiste versie van OpenVPN downloaden:

Stap 2
Vervolgens zullen we zien hoe OpenVPN op de verschillende besturingssystemen kan worden uitgevoerd.

OpenVPN uitvoeren op WindowsIn ramen, wat het voorbeeldsysteem is, moeten we kopieer het .ovpn-bestand op de route:

 C: \ Program Files \ OpenVPN \ config 
Stap 3
Van daaruit kunnen we met de rechtermuisknop op het bestand klikken en de optie selecteren: Start OpenVPN op dit configuratiebestand

VERGROTEN

Op deze manier zullen we verbinding maken met de OpenVPN-server.

OpmerkingOpenVPN moet worden uitgevoerd met administratieve privileges.

Voer OpenVPN uit op LinuxHet proces op Linux-systemen zou als volgt moeten zijn:

Eerst updaten we het systeem en installeren we OpenVPN met behulp van de volgende commando's:

 sudo apt-get update 
 sudo apt-get install openvpn 
Als we gebruik maken van CentOS we zullen de volgende commando's gebruiken:
 sudo yum install epel-release sudo yum install openvpn
Eenmaal geïnstalleerd OpenVPN we zullen het volgende commando uitvoeren:
 ls / etc / openvpn 
De volgende stap is om bewerk het .ovpn-bestand overgedragen met de gewenste editor.
 sudo nano-bestand.ovpn 
In het open bestand moeten we commentaar ongedaan maken de volgende regels:
 scriptbeveiliging 2 up / etc / openvpn / update-resolv-conf
 down / etc / openvpn / update-resolv-con 
Nu kunnen we verbinding maken met de VPN met behulp van de volgende syntaxis:
 sudo openvpn --config Bestand.ovpn

Voer OpenVPN uit op Mac OSAls we Mac OS gebruiken, is dit van toepassing op: macOS Sierra, we kunnen het hulpprogramma gebruiken tunnelblick die we gratis kunnen downloaden via de volgende link:

Bij het uitvoeren van de applicatie in de titelbalk zullen we het bijbehorende pictogram zien, klik daar en selecteer Aansluiten en we kiezen de client die we hebben geconfigureerd, bijvoorbeeld, Solvetic1.

Voer OpenVPN uit op AndroidVoor Android-gebruikers die via VPN verbinding willen maken met Linux, kunnen we de OpenVPN Connect-applicatie downloaden via de volgende link:

Het bestand .ovpn we moeten het via USB naar de telefoon overbrengen voor gebruik.
Bij het uitvoeren van de applicatie gaan we naar het menu en selecteren we de locatie waar we het .ovpn-bestand hebben en van daaruit importeren we het. Om verbinding te maken klikken we op de knop Aansluiten.

Op elk van de aangegeven manieren is het doel om toegang te krijgen tot Ubuntu 16.04 via VPN, waarbij u kunt genieten van de voordelen die OpenVPN biedt.

VERGROTEN

Zoals je ziet is het configureren van een OpenVPN-server in Ubuntu wat ingewikkeld, maar met deze complete handleiding heb je stap voor stap alles wat je moet doen om het in dit systeem te krijgen. Als je naast Ubuntu andere distributies gebruikt, laten we je hier achter hoe u een OpenVPN-server op Debian configureert en installeert.

OpenVPN Debian Server

U zal helpen de ontwikkeling van de site, het delen van de pagina met je vrienden

wave wave wave wave wave