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

Nastavte OpenVPN Server na CentOS 8

V této příručce se naučíme, jak nainstalovat a snadno nastavit OpenVPN Server na CentOS 8. OpenVPN je robustní a vysoce flexibilní open source VPN software, který využívá všechny šifrovací, autentizační a certifikační funkce knihovny OpenSSL k bezpečně tunelovat IP sítě přes jeden UDP nebo TCP port. Usnadňuje rozšíření privátní sítě přes veřejnou síť při zachování bezpečnosti, které by bylo dosaženo v privátní síti.

Nastavení serveru OpenVPN na CentOS 8

Nainstalujte úložiště EPEL

Nejnovější balíčky OpenVPN poskytují úložiště EPEL na CentOS 8 a dalších podobných derivátech. EPEL lze nainstalovat na CentOS 8 spuštěním příkazu níže;

dnf install epel-release -y

Nainstalujte OpenVPN na CentOS 8

Jakmile jsou repozitáře EPEL na místě, můžete nyní nainstalovat balíček OpenVPN na CentOS 8 provedením příkazu níže;

dnf install openvpn

Nainstalujte Easy-RSA CA Utility na CentOS 8

Balíček Easy-RSA je nástroj CA založený na shellu, který se používá ke generování párů klíčů SSL, které se používají k zabezpečení připojení VPN.

dnf install easy-rsa

Vytvoření infrastruktury veřejného klíče OpenVPN

Prvním krokem při nastavování serveru OpenVPN je vytvoření PKI, které se skládá z veřejných a soukromých klíčů pro server OpenVPN a připojujících se klientů a hlavního certifikátu certifikační autority a soukromého klíče pro podepisování certifikátů serveru OpenVPN a klientských certifikátů. Pokud je to možné, měli byste z bezpečnostních důvodů vytvořit PKI na samostatném serveru se systémem OpenVPN.

Inicializovat PKI

Easy-RSA se používá pro správu PKI. Skripty Easy-RSA se instalují pod /usr/share/easy-rsa adresář.

Abyste zajistili, že v případě upgradu nebude jakákoli provedená konfigurace Easy-RSA přepsána, zkopírujte skripty do jiného adresáře, nejlépe do /etc adresář.

mkdir /etc/easy-rsa
cp -air /usr/share/easy-rsa/3/* /etc/easy-rsa/

Jakmile jsou skripty na místě, přejděte do adresáře a inicializujte PKI.

cd /etc/easy-rsa/
./easyrsa init-pki

Vygenerujte certifikát a klíč certifikační autority (CA)

Dále vygenerujte certifikát CA a klíč, který se bude používat k podepisování certifikátů, spuštěním příkazů níže v adresáři Easy-RSA výše.

./easyrsa build-ca

Zobrazí se výzva k zadání přístupového hesla klíče CA a běžného názvu serveru.

Using SSL: openssl OpenSSL 1.1.1c FIPS  28 May 2019

Enter New CA Key Passphrase: ENTER PASSWORD
Re-Enter New CA Key Passphrase: RE-ENTER PASSWORD 
Generating RSA private key, 2048 bit long modulus (2 primes)
...................................................................+++++
.+++++
e is 65537 (0x010001)
Can't load /etc/easy-rsa/pki/.rnd into RNG
140160794502976:error:2406F079:random number generator:RAND_load_file:Cannot open file:crypto/rand/randfile.c:98:Filename=/etc/easy-rsa/pki/.rnd
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Common Name (eg: your user, host, or server name) [Easy-RSA CA]: Kifarunix-CA

CA creation complete and you may now import and sign cert requests.
Your new CA certificate file for publishing is at:
/etc/easy-rsa/pki/ca.crt

Certifikát CA je uložen na /etc/easy-rsa/pki/ca.crt .

Vygenerujte parametry Diffie Hellmana

Ve stejném adresáři Easy-RSA jako výše spusťte příkaz níže a vygenerujte soubor klíče Diffie-Hellman, který lze použít pro výměnu klíčů během navázání spojení TLS s připojováním klientů.

./easyrsa gen-dh

Dokončení příkazu bude chvíli trvat. Poté uloží parametry DH na /etc/easy-rsa/pki/dh.pem soubor.

Vygenerujte certifikát a klíč serveru OpenVPN

Chcete-li vygenerovat certifikát a soukromý klíč pro server OpenVPN, spusťte níže uvedený příkaz;

cd /etc/easy-rsa
./easyrsa build-server-full server nopass

Po spuštění příkazu budete vyzváni k zadání výše vytvořené přístupové fráze klíče CA.

nopass zakáže použití přístupové fráze.

Vygenerování klíče ověřovacího kódu zprávy založeného na hash (HMAC)

Chcete-li vygenerovat předsdílený ověřovací klíč TLS/SSL, který bude použit k přidání dalšího podpisu HMAC ke všem paketům handshake SSL/TLS, aby se zabránilo útoku DoS a zahlcení portů UDP, spusťte níže uvedený příkaz;

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

Vygenerujte certifikát o zrušení

Chcete-li zneplatnit dříve podepsaný certifikát, musíte vygenerovat certifikát o zrušení.

./easyrsa gen-crl

Certifikát zneplatnění je uložen jako /etc/easy-rsa/pki/crl.pem .

Zkopírujte certifikáty a klíče serveru do adresáře serveru

Dále zkopírujte všechny vygenerované certifikáty/klíče do konfiguračního adresáře serveru OpenVPN.

cp -rp /etc/easy-rsa/pki/{ca.crt,dh.pem,ta.key,crl.pem,issued,private} /etc/openvpn/server/

Vygenerujte klientský certifikát a klíč OpenVPN

Chcete-li vygenerovat klientský certifikát a soukromý klíč OpenVPN, spusťte níže uvedený příkaz;

cd /etc/easy-rsa
./easyrsa build-client-full koromicha nopass

kde koromicha je jméno klienta, pro kterého jsou generovány certifikáty a klíče. Vždy používejte jedinečný společný název pro každého klienta, pro kterého generujete certifikát a klíče.

Chcete-li vygenerovat pro druhého klienta,

./easyrsa build-client-full johndoe nopass

Zkopírujte klientské certifikáty a klíče do adresáře klientů

Vytvořte adresář pro každého klienta v adresáři klienta OpenVPN

mkdir /etc/openvpn/client/{koromicha,johndoe}

Dále zkopírujte všechny klientem vygenerované certifikáty/klíče a certifikát CA do konfiguračního adresáře klienta OpenVPN. Můžete

cp -rp /etc/easy-rsa/pki/{ca.crt,issued/koromicha.crt,private/koromicha.key} /etc/openvpn/client/koromicha
cp -rp /etc/easy-rsa/pki/{ca.crt,issued/johndoe.crt,private/johndoe.key} /etc/openvpn/client/johndoe/

Nakonfigurujte OpenVPN Server na CentOS 8

OpenVPN je dodáván s ukázkovým konfiguračním souborem v adresáři dokumentace. Zkopírujte soubor do /etc/openvpn/server/ a upravte jej tak, aby vyhovoval vašim potřebám.

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

Otevřete konfiguraci pro úpravu.

vim /etc/openvpn/server/server.conf

Soubor je vysoce komentovaný. Přečtěte si komentáře pro každou možnost konfigurace.

V nejzákladnější podobě jsou níže naše konfigurační možnosti bez komentářů.

port 1194
proto udp4
dev tun
ca ca.crt
cert issued/server.crt
key private/server.key  # This file should be kept secret
dh dh.pem
topology subnet
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 192.168.10.3"
client-to-client
keepalive 10 120
tls-auth ta.key 0 # This file is secret
cipher AES-256-CBC
comp-lzo
user nobody
group nobody
persist-key
persist-tun
status /var/log/openvpn/openvpn-status.log
log-append  /var/log/openvpn/openvpn.log
verb 3
explicit-exit-notify 1
auth SHA512

Po dokončení úprav uložte a ukončete konfiguraci.

Chcete svým klientům OpenVPN přiřadit pevné/statické IP adresy? Postupujte podle níže uvedeného průvodce;

Přiřaďte klientům OpenVPN statické IP adresy

Vytvořte adresář protokolu;

mkdir /var/log/openvpn/

Prozkoumejte konfiguraci a proveďte další jemné doladění, aby vyhovovala vašim potřebám.

Nakonfigurujte směrování serveru OpenVPN

Abyste zajistili, že provoz z klienta bude směrován přes IP adresu serveru (pomáhá maskovat IP adresu klienta), musíte na serveru OpenVPN povolit předávání IP;

echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf

Spusťte níže uvedený příkaz, abyste provedli změny bez restartování serveru.

sysctl --system

Povolit port služby OpenVPN přes firewall

firewall-cmd --add-port=1194/udp --permanent

Aktivovat IP Masquerading

firewall-cmd --add-masquerade --permanent

Předat provoz přijatý na zadané podsíti OpenVPN, například v našem případě 10.8.0.0/24, na rozhraní, přes které se budou odesílat pakety.

Chcete-li najít rozhraní, přes které jsou pakety odesílány, spuštěním příkazu níže;

ip route get 8.8.8.8
8.8.8.8 via 192.168.43.1 dev enp0s3 src 192.168.43.73 uid 0

Název rozhraní a definovaná podsíť se mohou ve vašem případě lišit. Vyměňte je odpovídajícím způsobem.

firewall-cmd --permanent --direct --passthrough ipv4 -t nat -A POSTROUTING -s 10.8.0.0/24 -o enp0s3 -j MASQUERADE

Znovu načtěte firewall, aby se změny projevily.

firewall-cmd --reload

Spusťte a nastavte spuštění OpenVPN při spouštění systému.

systemctl enable --now [email protected]

Když služba OpenVPN běží, vytvoří tunelové rozhraní, tun0;

ip add s
4: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 100
    link/none 
    inet 10.8.0.1/24 brd 10.8.0.255 scope global tun0
       valid_lft forever preferred_lft forever
    inet6 fe80::2ed5:8f74:c456:96b7/64 scope link stable-privacy 
       valid_lft forever preferred_lft forever

Kontrola protokolů;

tail /var/log/openvpn/openvpn.log
/sbin/ip addr add dev tun0 10.8.0.1/24 broadcast 10.8.0.255
Socket Buffers: R=[212992->212992] S=[212992->212992]
UDPv4 link local (bound): [AF_INET][undef]:1194
UDPv4 link remote: [AF_UNSPEC]
GID set to nobody
UID set to nobody
MULTI: multi_init called, r=256 v=256
IFCONFIG POOL: base=10.8.0.2 size=252, ipv6=0
IFCONFIG POOL LIST
Initialization Sequence Completed

Váš OpenVPN Server je nyní v provozu. Tím se dostáváme na konec našeho průvodce, jak nainstalovat a nastavit OpenVPN Server na CentOS 8.

Nyní můžete přistoupit ke konfiguraci klientů OpenVPN;

Nainstalujte a nakonfigurujte klienta OpenVPN na CentOS 8/Ubuntu 18.04

Nakonfigurujte ověřování založené na OpenVPN LDAP.

Nakonfigurujte OpenVPN LDAP Based Authentication

Související výukový program

Nakonfigurujte IPSEC VPN pomocí StrongSwan na Ubuntu 18.04

Nakonfigurujte klienta strongSwan VPN na Ubuntu 18.04/CentOS 8

Připojte se k Cisco VPN pomocí souboru PCF na Ubuntu

OpenVPN
  1. Počáteční nastavení serveru s Ubuntu 14.04

  2. Nastavte SysLog Server na CentOS 6 / RHEL 6

  3. Nastavte centralizovaný server Rsyslog na CentOS 7

  1. Jak nastavit SFTP server na CentOS

  2. Jak nastavit SysLog Server na CentOS 7 / RHEL 7

  3. Jak nastavit NTP server v CentOS?

  1. Nastavte OpenVPN Server na Rocky Linux 8

  2. Nastavte IPSec VPN Server s Libreswan na CentOS 8

  3. Nainstalujte a nastavte OpenVPN Server na Ubuntu 20.04