Telepítse és konfigurálja az OpenVPN szervert a CentOS 7-en

Ebben a cikkben megvizsgáljuk az OpenVPN szerver Linux CentOS 7 alapú telepítését és konfigurálását, és bemutatjuk, hogyan lehet a konfigurált OpenVPN szervert használni két, a NAT mögött található távoli számítógép (vagy iroda) összekapcsolására egy hálózatba. A VPN-kliensek hitelesítését tanúsítványok szerint hajtjuk végre.

Tartalom:

  • Telepítse az OpenVPN és az Easy-RSA szoftvert
  • Egyszerű RSA beállítás és tanúsítvány kiállítása
  • Készítünk kulcsokat és tanúsítványokat az OpenVPN szerverhez
  • Az OpenVPN szerver konfigurálása: konfigurációs fájl, tűzfal
  • Több irodát (számítógépet) kombinálunk az OpenVPN használatával

VPN - Technológiakészlet, amely lehetővé teszi egy biztonságos hálózat felépítését a nyilvános hálózatok vagy az InterTet felett. VPN használatával az internetről elválasztott hálózati szegmenseket egyesítheti egyetlen helyi hálózatba..

OpenVPN - az SSL / TLS (az OpenSSL könyvtár alapján) nyílt forrású VPN technológia egyik megvalósítása. Az OpenVPN használatával a távoli irodákat és a NAT mögött található egyes helyi PC-ket egyetlen hálózatba lehet kapcsolni.

Telepítse az OpenVPN és az Easy-RSA szoftvert

Az első lépés az EPEL-lerakat csatlakoztatása és a rendszer frissítése:

yum install epel-release -y
yum frissítés

Amikor a rendszer frissül, a yum csomagkezelővel kell telepítenie OpenVPN és Easy-RSA (szükségünk lesz a kulcsok PKI-infrastruktúrájának a VPN-kiszolgálón történő megvalósításához).

yum install openvpn easy-rsa -y

Egyszerű RSA beállítás és tanúsítvány kiállítása

Másolja az összes szkriptet easy-rsa a katalógusba / etc / openvpn /:

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

Menjünk a katalógusba / etc / openvpn / easy-rsa / 3 / és hozzon létre egy fájlt ott Vars:

CD / etc / openvpn / easy-rsa / 3 /
nano vars

Adja hozzá a fájl tartalmát (saját maga javíthatja meg):

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 "MSK" set_var EASYRSA_REQ_CITY "MSK" set_var EASYRSA_REQ_ORG "IT-cég" set_var EASYRSA_REQ_EMAIL „[email protected]. ru "set_var EASYRSA_REQ_OU" IT részleg "set_var EASYRSA_KEY_SIZE 4096 set_var EASYRSA_ALGO rsa set_var EASYRSA_CA_EXPIRE 7500 set_var EASYRSA_CERT_EXPIRE 3650 set_var EASYRSA_NS_SUPPORT" nem "set_var EASYRSA_NS_COMMENT" tanúsítványkibocsátói "set_var EASYRSA_EXT_DIR" $ EASYRSA / x509-típusok "set_var EASYRSA_SSL_CONF" $ EASYRSA / openssl-1.0 .cnf "set_var EASYRSA_DIGEST" sha512 "

A fájlban szereplő adatok tetszőlegesen átvehetők, ez nem zavarja a szerver beállítását és a további munkát.

A fájlnak futtathatónak kell lennie, ugyanúgy:

chmod + x vars

Készítünk kulcsokat és tanúsítványokat az OpenVPN szerverhez

A kulcs létrehozása előtt inicializálnunk kell a könyvtárat PKI és hozzon létre egy kulcsot CA.
CD / etc / openvpn / easy-rsa / 3 /
# ./easyrsa init-pki

Megjegyzés: Az Easy-RSA konfiguráció használatával: ./vars init-pki kész; létrehozhat CA-t vagy kéréseket. Az újonnan létrehozott PKI-dir: / etc / openvpn / easy-rsa / 3 / pki

Hozzon létre egy kulcsot CA:

./ easyrsa build-ca

A parancs futtatása után meg kell adnunk egy jelszót, hogy a tanúsítványok és a kulcs generálódjon. A jövőben jelszó szükséges a tanúsítványok aláírásához.

Hozzon létre egy szerver kulcsot (kiszolgáló neve server.vpn.ru):

opció nopass - tiltsa le a server.vpn.ru jelszavát

# ./easyrsa gen-req server.vpn.ru nopass

Megjegyzés: Az Easy-RSA konfiguráció használata a következőtől: ./vars Az SSL használata: openssl OpenSSL 1.0.2k-fips 2017. január 26. 4096 bites RSA privát kulcs generálása ... ++ ... ++ új privát kulcs írása a / / etc / openvpn / easy könyvtárba. -rsa / 3 / pki / private / server.vpn.ru.key.R4IYCbD1zP '----- Arra kérjük, hogy adja meg az információkat, amelyeket beépít a tanúsítványkérésbe. Amit beírni akarsz, amit megkülönböztetett névnek vagy DN-nek hívnak. Nagyon sok mező van, de néhányat hagyhat üresen. Egyes mezők esetében az alapértelmezett érték lesz, ha beírja a „.” Mezőt, a mező üres lesz. ----- Köznév (például: a felhasználó, a gazdagép vagy a kiszolgáló neve) [server.vpn.ru]: A kulcspár és a tanúsítványkérés befejeződött. A fájlok: req: /etc/openvpn/easy-rsa/3/pki/reqs/server.vpn.ru.req kulcs: /etc/openvpn/easy-rsa/3/pki/private/server.vpn.ru .key

Az igazolás kiadásának folyamatában, az oszlopban Köznév kattintania kell belép,.

A server.vpn.ru kulcsot CA-tanúsítványunkkal írjuk alá:

./ easyrsa sign-req szerver server.vpn.ru

A tanúsítvány aláírásakor szüksége lesz a jelszóra, amelyet a tanúsítvány kiadásakor állítottunk be CA:

Amint a képernyőképen látható, a folyamatba be kell lépnie igen és jelszó CA.

Annak ellenőrzéséhez, hogy a tanúsítványok hibátlanul jöttek-e elő, futtassa a következő parancsot:

# openssl ellenőrzése -CAfile pki / ca.crt pki / kiadott / server.vpn.ru.crt

pki / kiadott / server.vpn.ru.crt: OK

Minden OpenVPN szerver tanúsítvány létrehozva.

  • A gyökér tanúsítvány található: 'pki / ca.crt'
  • A kiszolgáló privát kulcsa található: 'pki / private / server.vpn.ru.key'
  • Szerver tanúsítvány található: 'pki / kiadott / server.vpn.ru.crt'

Az ügyfélkulcs előállításához a következő parancsot kell futtatnia:

./ easyrsa gen-req kliensnév nopass

Generáljon kliens kulcsot admin1:

# ./easyrsa gen-req admin1 nopass

Megjegyzés: Az Easy-RSA konfiguráció használata a következőtől: ./vars Az SSL használata: openssl OpenSSL 1.0.2k-fips 2017. január 26. 4096 bites RSA privát kulcs generálása ... ++ ... ++ új privát kulcs írása a / / etc / openvpn / easy könyvtárba. -rsa / 3 / pki / private / admin1.key.R5OY6reT2e '----- Arra kérik Önt, hogy írjon be információkat, amelyeket beépít a tanúsítványkérésbe. Amit beírni akarsz, amit megkülönböztetett névnek vagy DN-nek hívnak. Nagyon sok mező van, de néhányat hagyhat üresen. Egyes mezők esetében az alapértelmezett érték lesz, ha beírja a „.” Mezőt, a mező üres lesz. ----- Köznév (pl .: a felhasználó, a gazda vagy a kiszolgáló neve) [admin1]: A kulcspár és a tanúsítványkérés befejeződött. A fájlok: req: /etc/openvpn/easy-rsa/3/pki/reqs/admin1.req kulcs: /etc/openvpn/easy-rsa/3/pki/private/admin1.key

A kiszolgáló kulcshoz hasonlóan, CA igazolással is alá kell írnia:

./ easyrsa sign-req kliens admin1

A felhasználó számára létrehozott tanúsítvány.

Ezen felül el kell generálnia egy Diffie-Hellman kulcsot, amelyet a kulcsok cseréjénél használnak:

./ easyrsa gen-dh

Hosszú ideig generálja:

Ezután előállítjuk a TLS tanúsítványt:

openvpn --genkey --secret ta.key

Ha azt tervezzük, hogy a jövőben visszavonjuk az ügyféltanúsítványokat, akkor létre kell hoznunk egy CRL kulcsot:

# ./easyrsa gen-crl

Megjegyzés: Az Easy-RSA konfiguráció használata a következőtől: ./vars Az SSL használata: openssl OpenSSL 1.0.2k-fips 2017. január 26. A /etc/openvpn/easy-rsa/3/pki/safessl-easyrsa.cnf konfigurációjának használata Írja be a jelmondatot /etc/openvpn/easy-rsa/3/pki/private/ca.key: Frissített CRL jött létre. CRL fájl: /etc/openvpn/easy-rsa/3/pki/crl.pem

A tanúsítvány visszavonásához hajtsa végre a következő parancsot:

./ easyrsa visszavonja az admin1-et - ahol admin1 ez a tanúsítvány neve

Létrehoztuk a munkához szükséges tanúsítványokat, másold őket a működő könyvtárakba:

Szerver tanúsítványok:

cp pki / ca.crt / etc / openvpn / server /
cp pki / kiadott / server.vpn.ru.crt / etc / openvpn / server /
cp pki / private / server.vpn.ru.key / etc / openvpn / server /
cp pki / private / dh.pem / etc / openvpn / server /
cp pki / private / ta.key / etc / openvpn / server /
cp pki / crl.pem / etc / openvpn / server /

Ügyfél tanúsítványok:

cp pki / kiadott / admin1.crt / etc / openvpn / kliens /
cp pki / private / admin1.key / etc / openvpn / client /

Az OpenVPN szerver konfigurálása: konfigurációs fájl, tűzfal

Folytassuk az OpenVPN konfigurációs fájl beállításaival. Először hozzon létre egy OpenVPN konfigurációs fájlt server.conf:

cd / etc / openvpn / && nano server.conf

Változtassa meg a fájl tartalmát a következőkre:

# Adja meg a portot, a protokollt és az eszközportot 1194 proto udp dev tun # Adja meg a kiszolgálói tanúsítványok elérési útját. Ca /etc/openvpn/server/ca.crt cert /etc/openvpn/server/server.vpn.ru.crt key / etc / openvpn /server/server.vpn.ru.key # A CRL és a DH kulcsok elérési útjai dh /etc/openvpn/server/dh.pem crl-pārbaude /etc/openvpn/server/crl.pem # Adja meg az IP hálózati beállításokat, a címektől A VPN-ügyfelek fogadják a 15.10.2.0 255.255.255.0 kiszolgálót push "redirect-gateway def1" # Adja meg a rendeltetési hely DNS-kiszolgálójának push "dhcp-option DNS 77.88.8.8" push "dhcp-option DNS 8.8.4.4" # Engedélyezze a különféle ügyfelek csatlakozását, ugyanazzal a kulccsal duplikátum-cn # TLS védelem tls-auth /etc/openvpn/server/ta.key 0 titkosító AES-256-CBC tls-version-min 1,2 tls-rejtjel TLS-DHE-RSA-WITH-AES-256- GCM-SHA384: TLS- DHE-RSA-WITH-AES-256-CBC-SHA256: TLS-DHE-RSA-WITH-AES-128-GCM-SHA256: TLS-DHE-RSA-WITH-AES-128-CBC-SHA256 auth SHA512 auth-noacache # A keepalive 20 60 másik konfigurációja a persist-key persist-tun comp-lzo igen démon felhasználó senki sem csoportosítja senkit # A naplófájl elérési útja a log-append /var/log/openvpn.log 3. sz. 

Ezután mentse el a fájlt. Meghatároztam a VPN-kiszolgáló standard UDP 1194-es portját, de az OpenVPN számára bármilyen szabad portot megadhat a kiszolgálón.

A tűzfalszabályok konfigurálása továbbra is lehetővé teszi a szegmensek közötti kapcsolat és útválasztás engedélyezését.

A Firewalld használatakor először aktiválnia kell a kernelmodult fuvarozás:

# echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf
# sysctl -p

net.ipv4.ip_forward = 1

Add hozzá az openvpn szolgáltatást a firewalld, és interfész tun0 a megbízható zónába

tűzfal-cmd - tartós - add-service = openvpn
tűzfal-cmd - tartós - zóna = megbízható - add-interface = tun0

Aktiválja a 'MASQUERADE' funkciót a megbízható zónában firewalld:
tűzfal-cmd - tartós - zóna = megbízható - add-masquerade

Aktiválja a NAT-ot:

tűzfal-cmd - tartós - közvetlen - átmenő ipv4 -t nat -A POSTROUTING -s 15.10.2.0/24 -o Server IP -j MASQUERADE
tűzfal-cmd-újratöltés

Ha iptable-t használ firewalld, akkor a következő parancsokat kell futtatnia:

iptables -t nat -A POSTROUTING -s 15.10.2.0/24 -o eth0 -j MASQUERADE
iptable -A INPUT -p tcp -dport 1194 -j ACCEPT
szolgáltatás iptables menteni

Indítsa el az OpenVPN-t, és adja hozzá a Linux indításakor:

a systemctl elindítja az openvpn @ szervert
A systemctl lehetővé teszi az openvpn @ szervert

Ellenőrizze, hogy a szolgáltatás figyel-e az 1194-es portot:

# lsof -i: 1194

KÉZI PID FELHASZNÁLÓ FD TÍPUSA ESZKÖZ MÉRET / KIKAPCSOLÓ NEVE openvpn 11887 senki 5u IPv4 45892 0t0 UDP *: openvpn

Ellenőrizzük a hálózati interfész IP-beállításait:

# ip a

~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ 3: tun0: mtu 1500 qdisc pfifo_fast állapot ismeretlen csoport alapértelmezett qlen 100 link / nincs inet 15.10 .2.1 peer 15.10.2.2/32 hatókör globális tun0 valid_lft örökre preferált_lft örökre inet6 fe80 :: db7c: 7fed: 6d4f: 70d2 / 64 hatókör link zászlók 800 valid_lft örökre preferált_lft örökre

Mint láthatja, az eszközön tun0 hozzáadásra kerül a konfigurálás során megadott hálózat.

Ez az a minimális beállítás, amelyet meg kell tennie az OpenVPN működéséhez..

Több irodát (számítógépet) kombinálunk az OpenVPN használatával

Fontolja meg, hogyan lehet csatlakozni az OpenVPN kiszolgálóhoz két távoli számítógépről, amelyek NAT-on kapcsolódnak az internethez, és hogyan szervezzen közös hálózatot közöttük. A Windows számítógépről az OpenVPN szerverre történő csatlakozáshoz a fejlesztők hivatalos klienseit használom. Töltse le a hivatalos weboldalon, erre nem összpontosítunk, hanem egyenesen a beállításra megyünk.

Az ügyfél telepítése után el kell lépnie a konfigurációs fájlhoz, amelyet az út mentén kell létrehoznia:

C: \ Program Files \ OpenVPN \ config \

Létrehoztam egy fájlt ügyfél és a következő tartalmat adta hozzá:

kliens dev tun proto udp távoli 182.122.41.12 1194 resolv-retry végtelen nobind blokk-kívül-dns persist-key persist-tun némítás-visszajátszás-figyelmeztetések távoli-cert-tls szerver tls-kliens auth SHA512 tls-auth "C: \\ Programfájlok \\ OpenVPN \\ config \\ ta.key "1 remote-cert-eku" TLS webszerver hitelesítés "ca" C: \\ Program Files \\ OpenVPN \\ config \\ ca.crt "cert" C: \\ Program Files \\ OpenVPN \\ config \\ admin1.crt "kulcs" C: \\ Program Files \\ OpenVPN \\ config \\ admin1.key "rejtjel AES-256-CBC comp-lzo ige 3

A konfiguráláshoz szükségünk van a korábban létrehozott ügyfél-, biztonsági és szerver tanúsítványokra. Töltse le őket a szerverről és helyezze el az Ön számára megfelelő könyvtárba, amely után meg kell adnia az elérési utat az OpenVPN kliens konfigurációs fájljában..

Miután csatlakoztunk a tálcán található Open VPN kliens parancsikon segítségével:

Csatlakoztam és megkaptam a következő IP-t a PC-jemhez:

IPv4 cím ...: 10.15.2.14 Alhálózati maszk ...: 255.255.255.252

A NAT második számítógépén ugyanazokat a lépéseket hajtottam végre, miután létrehoztam a második felhasználó számára a tanúsítványt, amikor csatlakoztattam a második számítógépet, IP-t is kaptam a hálózatról:

IPv4 cím ...: 15.10.2.6 Alhálózati maszk ...: 255.255.255.252

Csatlakozás után mindkét számítógép ugyanazon a hálózaton van, és egymást látják.

Futtassa a ping-ot a második számítógépen:

Csomagcsere 10.1.2.2.14-től 32 adatbájtig: Válasz 10.1.2.2.14-ig: bájtok száma = 32 idő = 67 ms TTL = 127

Futtassa a ping az első számítógépen:

Csomagcsere 10/15 / 2,6-ról 32 bájtra: Válasz 10/15/2-től: bájtok száma = 32 idő = 71 ms TTL = 127

Mindkét csatlakoztatott VPN-ügyfél cserélhet csomagokat, és közvetlenül továbbíthat fájlokat egymáshoz. Így képesek voltunk két, az ország különböző részein található PC-ket összekapcsolni egy helyi hálózatba.

Az OpenVPN-t használó kiszolgálón korlátlan számú kulcsot és tanúsítványt hozhat létre a felhasználók számára. Ha új tanúsítványra van szüksége, futtassa a következő parancsokat a könyvtárban / etc / openvpn / easy-rsa / 3:

./ easyrsa gen-req kliensnév nopass
./ easyrsa sign-req kliens kliens neve

Ne felejtse el időszakonként visszavonni az ügyféltanúsítványokat, ha azokat nem az adatok biztonságának megőrzése céljából használják.