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
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
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.