OpenVPN installatie en configuratie op CentOS

N
Netooze
26 september 2019

Een handleiding voor het instellen en configureren van OpenVPN op een server waarop Ubuntu draait, is direct beschikbaar op internet link. Houd er rekening mee OpenVPN te monteren op een server met CentOS7.

OpenVPN is een open resource-softwaretoepassingsimplementatie van het VPN-protocol. Een onderscheidend kenmerk van dit item is het vermogen om versleutelde passages te creëren, terwijl er uitvoeringen zijn voor veel prominente besturingssystemen, waaronder mobiele systemen.

De eigenaardigheid van de CentOS-repository is dat OpenVPN er niet in bestaat. Desalniettemin kan dit pakket worden verkregen met behulp van de EPEL (Venture Linux) repository, die wordt beheerd door het Fedora Project. Vanuit deze repository kun je overigens verschillende andere pakketten verkrijgen die niet in de basis CentOS-repository voorkomen. Monteer met het commando:

yum install epel-release

Laten we beginnen met het installeren van OpenVPN. Het pakket installeren:

yum install openvpn easy-rsa -y

Laten we beginnen met het instellen van de server. Kopieer server.conf:

cp /usr/share/doc/openvpn-*/sample/sample-config-files/server.conf /etc/openvpn/

Het is noodzakelijk om aandacht te besteden aan de "*". Er is dus één poging gedaan om te installeren, de programmaversie kan worden gewijzigd met een asterisk. Als er verschillende installatie-inspanningen waren, moet u mogelijk de cursus volledig definiëren voor de documenten.

Laten we, voordat we de sleutels genereren, een paar wijzigingen aanbrengen in het serverconfiguratiebestand. 

Open server.conf met een willekeurige editor.

nano /etc/openvpn/server.conf

Zoek de regel "Diffie Hellman-parameters". en op zoek naar:

dh dh2048.pem

Als dit waar is, hoeven er geen wijzigingen te worden aangebracht. De nuance van de nieuwe versie van het plan is dat de waarden op dit moment overeenkomen met het criterium. In oudere versies is het gewoon "dh". We roepen op, zoals we hebben gedaan.

Zoek vervolgens naar de regel "# Particular Windows-specific network setups". verwijder een van de onderstaande alternatieven (verwijder de puntkomma (;-RRB- aan het begin van de regel). Het moet er ongeveer zo uitzien:.

push "dhcp-option DNS 8.8.8.8"

U kunt desgewenst uw eigen DNS-webserver opgeven. U kunt ook het commentaar op de tweede regel verwijderen om ook een alternatieve DNS-server aan klanten door te geven.

Voor serverbeveiliging zullen we variëren van het niemand-gebruiker en het nogroup-team. Laten we de regels uncommenteren:.

user nobody

group nobody

Laten we beginnen met het maken van certificaten.

Met behulp van het eerder geïnstalleerde easy-rsa-pakket, zullen we de server- en clientsleutels maken.

Maak een map waarin de sleutels zich bevinden:

mkdir -p /etc/openvpn/easy-rsa/keys

Kopieer de scripts naar de nieuw aangemaakte easy-rsa directory:

cp -r /usr/share/easy-rsa/3.0/* /etc/openvpn/easy-rsa

Ga naar de map /etc/openvpn/easy-rsa/3/ en maak een vars-script

cd /etc/openvpn/easy-rsa/

nano vars

Belangrijk! De versie van easy-rsa kan anders zijn en daarom zal het pad moeten worden aangepast.

Voeg de volgende regels toe aan het geopende bestand:

set_var EASYRSA                 "$PWD"

set_var EASYRSA_PKI             "$EASYRSA/pki"

set_var EASYRSA_DN              "cn_only"

set_var EASYRSA_REQ_COUNTRY     "RU"

set_var EASYRSA_REQ_PROVINCE    "Moscow"

set_var EASYRSA_REQ_CITY        "Moscow"

set_var EASYRSA_REQ_ORG         "MyOrg"

set_var EASYRSA_REQ_EMAIL       "openvpn@mydomain.net"

set_var EASYRSA_REQ_OU          "CA"

set_var EASYRSA_KEY_SIZE        2048

set_var EASYRSA_ALGO            rsa

set_var EASYRSA_CA_EXPIRE       7500

set_var EASYRSA_CERT_EXPIRE     365

set_var EASYRSA_NS_SUPPORT      "no"

set_var EASYRSA_NS_COMMENT      "CERTIFICATE AUTHORITY"

set_var EASYRSA_EXT_DIR         "$EASYRSA/x509-types"

set_var EASYRSA_SSL_CONF        "$EASYRSA/openssl-1.0.cnf"

set_var EASYRSA_DIGEST          "sha256"

Sla het bestand op en sluit de editor.

Bestandsuitvoering toestaan:

chmod +x vars

Initialiseer de PKI-directory en maak een CA-certificaat aan:

./easyrsa init-pki

./easyrsa build-ca

Belangrijk! Bij het ontwikkelen van een CA-certificaat zal het script je zeker vragen om een ​​wachtwoord van minimaal 4 karakters in te voeren. Het ingevoerde wachtwoord moet onthouden worden.

Maak een serversleutel.

./easyrsa gen-req server nopass

Als u het kenmerk "nopass" niet definieert, zal het script bij het maken van een truc zeker om een ​​wachtwoord vragen.

Het servercertificaat ondertekenen:

./easyrsa sign-req server server

De eerste actie van het manuscript zal een mate van interesse in ons vertrouwen vergen, we antwoorden "Ja". Dan zal hij zeker het wachtwoord opvragen dat bij het ontwikkelen van de CA-certificering is gedefinieerd.

Controleer of het certificaat is ondertekend:

openssl verify -CAfile pki/ca.crt pki/issued/ server.crt

Genereer een extra serversleutel ta.key:

openvpn --genkey --secret /etc/openvpn/easy-rsa/keys/ta.key

Gebruikerscertificaten.

Het proces voor het maken van een gebruikerscertificaat is identiek aan het maken van een servercertificaat.

1. Creëer zonder wachtwoordbeveiliging:

./easyrsa gen-req client01 nopass

2. Wij ondertekenen het certificaat:

./easyrsa sign-req client client01

3. Controle van de handtekening:

openssl verify -CAfile pki/ca.crt pki/issued/client01.crt

Diffie Hellman.

Maak een certificaat aan:

./easyrsa gen-dh

Als resultaat wordt het dh.pem-bestand gemaakt, en in de configuratie dh2048.pem. We zullen het later hernoemen, bij het kopiëren van de sleutels.

Certificaten overdragen.

Kopieer de serversleutelbestanden. Om dit te doen, voeren we achtereenvolgens uit:

cp pki/ca.crt /etc/openvpn/

cp pki/issued/server.crt /etc/openvpn/

cp pki/private/server.key /etc/openvpn/

cp /etc/openvpn/easy-rsa/keys/ta.key /etc/openvpn/

Clientsleutels kopiëren:

cp pki/ca.crt /etc/openvpn/client/

cp pki/issued/client01.crt /etc/openvpn/client/

cp pki/private/client01.key /etc/openvpn/client/

Kopieer het Diffie-Hellman-sleutelbestand:

cp pki/dh.pem /etc/openvpn/dh2048.pem

Belangrijk! De doelbestandsnaam is opzettelijk gewijzigd om overeen te komen met de naam in de configuratie.

Routering instellen.

Om de installatie te versnellen, wordt het werk gedaan met iptables en niet met FirewallD. We voeren achtereenvolgens uit:

yum install iptables-services -y

systemctl mask firewalld

systemctl enable iptables

systemctl stop firewalld

systemctl start iptables

iptables --flush

Voordat u verder gaat met configureren, moet u de namen van de interfaces bekijken met behulp van de opdracht:

ifconfig -a

Voeg een regel toe voor NAT:

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o <имя_интерфейса> -j MASQUERADE

iptables-save > /etc/sysconfig/iptables

Als voorbeeld:

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

iptables-save > /etc/sysconfig/iptables

Doorsturen van pakketten tussen netwerkinterfaces toestaan. Bewerk hiervoor het systeembestand sysctl.conf:

nano /etc/sysctl.conf

Voeg de regel aan het begin van het bestand in:

net.ipv4.ip_forward = 1

Sla het bestand op, sluit de editor en start de netwerkservice opnieuw met het commando:

systemctl restart network.service

We starten de OpenVPN-server.

Laten we eerst de service toevoegen aan het opstarten:

systemctl -f enable openvpn@server.service

OpenVPN starten:

openvpn /etc/openvpn/server.conf

Klant instelling.

De server is geconfigureerd, het blijft om de client te configureren zodat deze verbinding kan maken.

Ongeacht het besturingssysteem dat u gebruikt, of het nu gaat om mobiele, server- of thuisversies, Linux of Windows, u hebt altijd 4 bestanden nodig:

  • ca.crt;
  • klant.crt;
  • klant.sleutel;
  • client.ovpn

De eerste 3 bestanden bevinden zich in de map /etc/openvpn/client/ en client.ovpn moet worden aangemaakt. Ga hiervoor naar de map waar alle clientsleutels zich bevinden:

cd  /etc/openvpn/client/

Laten we een bestand maken:

nano client.ovpn

Vul met de volgende inhoud in:

client

dev tun

proto udp

remote <IP_ADDRESS> 1194

resolv-retry infinite

nobind

persist-key

persist-tun

comp-lzo

verb 3

ca ca.crt

cert client01.crt

key client01.key

In plaats van IP_ADDRESS voegen we het IP-adres van de server of de domeinnaam in. Sla het bestand op met Ctrl + X en sluit de editor.

Wij dragen bestanden over aan de opdrachtgever. Dit kan bijvoorbeeld via SFTP of de directory archiveren en via de webserver “geven”.

Klant verbinding.

Afhankelijk van het besturingssysteem downloadt u het installatiebestand of installeert u het vanuit de repository. U kunt OpenVPN ook krijgen via de officiële website .

Windows:

Voor computers met Windows moet u de productdistributie downloaden van de officiële site, de resulterende "vier bestanden" moeten in de map C: Program FilesOpenVPNconfig worden geplaatst.

Na het starten van de OpenVPN GUI verschijnt het programmapictogram in het systeemvak. We klikken erop met de rechtermuisknop, selecteren Verbinden (verbinden).

MacOS:

OpenVPN voor MacOS is iets ingewikkelder. Gebruik hiervoor de open-source tool Tunnelblick. De sleutels en het configuratiebestand moeten in ~/Library/Application Support/Tunnelblick/Configurations worden geplaatst. Of dubbelklik op het configuratiebestand.

Linux:

U moet installeren vanuit de repository.

Voor Debian/Ubuntu:

apt-get install openvpn

Van CentOS/OpenSUSE/Fedora:

yum install openvpn -y

Ga na de installatie naar de map waar het configuratiebestand met de toetsen zich bevindt en voer de opdracht uit:

sudo openvpn --config client.ovpn

Om de werking van de server te controleren, moet u een van de sites gebruiken die uw IP-adres tonen.

Uw cloudreis beginnen? Zet nu de eerste stap.