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

OpenVPN - Zabezpečte si správu serveru pomocí multiplatformního připojení VPN

OpenVPN je plnohodnotná SSL VPN, která implementuje rozšíření zabezpečené sítě OSI vrstvy 2 nebo 3 pomocí průmyslového standardního protokolu SSL/TLS. Podporuje flexibilní metody ověřování klientů založené na certifikátech, čipových kartách a/nebo přihlašovacích údajích uživatelského jména/hesla a umožňuje zásady řízení přístupu specifické pro uživatele nebo skupiny pomocí pravidel brány firewall aplikovaných na virtuální rozhraní VPN. OpenVPN není proxy webové aplikace a nefunguje prostřednictvím webového prohlížeče.

Příprava serveru

Pro tento tutoriál použijeme server Debian nebo Ubuntu. Můžete použít jakýkoli server, který již máte v produkci.

Instalace OpenVPN

Všechny známé distribuce serverů Linux a UNIX mají ve svém úložišti OpenVPN. Instalace je stejně jednoduchá jako spuštění:

apt-get install openvpn

Konfigurace brány firewall

Výchozí naslouchací port pro OpenVPN je 1194. Použití výchozího portu je bezpečné. OpenVPN standardně používá protokol UDP. Má to jednoduchý důvod:

OpenVPN používá vrstvy 2 a 3

  • Vrstva 2 je vrstva Data Link, která zajišťuje bezchybný přenos datových rámců přes fyzickou vrstvu, což znamená, že používá vlastní síťové zařízení TUN/TAP.
  • Vrstva 3 je síťová vrstva poskytující směrování.

a to znamená, že vrstva 4 (transportní vrstva zajišťující doručování paketů) je řízena samotným OS a aplikací. Zjednodušeně řečeno, jakékoli řízení provozu a řízení doručování paketů provádí OS, proto to není nutné dvakrát dělat samotným OpenVPN. Samozřejmě existuje možnost použít TCP pro OpenVPN, což znamená, že se více plýtvá zdroji, ale v případě některých speciálních prostředí to může být užitečné.

Abychom to shrnuli, otevření portu 1194 pro UDP je dostačující pro připojení VPN. Není potřeba žádné filtrování, protože OpenVPN má implementováno vlastní ověřování a kontrolu (viz dále). Přidejte následující příkaz do konfigurace brány firewall.

-A INPUT -p udp -m udp --dport 1194 -j ACCEPT

Konfigurace serveru

Po úspěšné instalaci OpenVPN najdete všechny konfigurační soubory OpenVPN ve složce /etc/openvpn. Otevřeme soubor server.conf v našem editoru a upravíme jej.

nano /etc/openvpn/server.conf

Zkontrolujte a upravte následující sekce:

# SSL/TLS root certificate (ca), certificate
# (cert), and private key (key).

ca /etc/openvpn/easy-rsa/keys/ca.crt
cert /etc/openvpn/easy-rsa/keys/server.crt
key /etc/openvpn/easy-rsa/keys/server.key # This file should be kept secret

# Diffie hellman parameters.
dh /etc/openvpn/easy-rsa/keys/dh2048.pem

# Configure server mode and supply a VPN subnet
server 10.9.8.0 255.255.255.0

# Push routes to the client
push "route 10.9.8.0 255.255.255.0"

# For extra security beyond that provided
# by SSL/TLS, create an "HMAC firewall"
# to help block DoS attacks and UDP port flooding.
tls-auth /etc/openvpn/easy-rsa/keys/ta.key 0 # This file is secret

# Select a cryptographic cipher.
cipher AES-128-CBC # AES

# Enable compression on the VPN link.
comp-lzo

# It's a good idea to reduce the OpenVPN
# daemon's privileges after initialization.
user vpn
group vpn

Protože jsme jako interní podsíť zvolili podsíť 10.9.8.0/24, váš klient po připojení získá IP adresu z této podsítě. Standardně je 10.9.8.1 rezervováno pro samotný server.

Generování certifikátů

Nejprve musíme upravit vars soubor. Vyplňte parametry KEY_COUNTRY, KEY_PROVINCE, KEY_CITY, KEY_ORG a KEY_EMAIL. Tyto hodnoty budou použity při každém vygenerování nového certifikátu.

Chcete-li načíst soubor vars, spusťte:

./vars

Po jejich načtení můžeme vytvořit certifikační autoritu:

./clean-all
./build-ca

Po vygenerování CA pokračujte ve generování certifikátů serveru:

./build-key-server server

A ještě jeden certifikát pro klienta:

./build-key client

Koneckonců musíme generovat parametry DH:

./build-dh

Větší zabezpečení

Abychom zajistili, že jsme zabezpečili náš server OpenVPN, použijeme tls-auth. Tím je zajištěno, že naše certifikáty nepošleme kompromitovaným serverům.

openvpn –genkey –secret ta.key

Tento soubor ta.key musí být nyní součástí každého balíku certifikátů klienta.

Konfigurace klienta

 ##############################################
# Sample client-side OpenVPN 2.0 config file #
# for connecting to multi-client server. #
# #
# This configuration can be used by multiple #
# clients, however each client should have #
# its own cert and key files. #
# #
# On Windows, you might want to rename this #
# file so it has a .ovpn extension #
##############################################

# Specify that we are a client and that we
# will be pulling certain config file directives
# from the server.
client

# Use the same setting as you are using on
# the server.
# On most systems, the VPN will not function
# unless you partially or fully disable
# the firewall for the TUN/TAP interface.
;dev tap
dev tun

# Windows needs the TAP-Windows adapter name
# from the Network Connections panel
# if you have more than one. On XP SP2,
# you may need to disable the firewall
# for the TAP adapter.
;dev-node MyTap

# Are we connecting to a TCP or
# UDP server? Use the same setting as
# on the server.
;proto tcp
proto udp

# The hostname/IP and port of the server.
# You can have multiple remote entries
# to load balance between the servers.
remote <your-server-ip> 1194
;remote my-server-2 1194

# Choose a random host from the remote
# list for load-balancing. Otherwise
# try hosts in the order specified.
;remote-random

# Keep trying indefinitely to resolve the
# host name of the OpenVPN server. Very useful
# on machines which are not permanently connected
# to the internet such as laptops.
resolv-retry infinite

# Most clients don't need to bind to
# a specific local port number.
nobind

# Downgrade privileges after initialization (non-Windows only)
;user nobody
;group nobody

# Try to preserve some state across restarts.
persist-key
persist-tun

# If you are connecting through an
# HTTP proxy to reach the actual OpenVPN
# server, put the proxy server/IP and
# port number here. See the man page
# if your proxy server requires
# authentication.
;http-proxy-retry # retry on connection failures
;http-proxy [proxy server] [proxy port #]

# Wireless networks often produce a lot
# of duplicate packets. Set this flag
# to silence duplicate packet warnings.
;mute-replay-warnings

# SSL/TLS parms.
# See the server config file for more
# description. It's best to use
# a separate .crt/.key file pair
# for each client. A single ca
# file can be used for all clients.
ca ca.crt
cert client.crt
key client.key

# Verify server certificate by checking
# that the certicate has the nsCertType
# field set to "server". This is an
# important precaution to protect against
# a potential attack discussed here:
# http://openvpn.net/howto.html#mitm
#
# To use this feature, you will need to generate
# your server certificates with the nsCertType
# field set to "server". The build-key-server
# script in the easy-rsa folder will do this.
;ns-cert-type server

# If a tls-auth key is used on the server
# then every client must also have the key.
tls-auth ta.key 1

# Select a cryptographic cipher.
# If the cipher option is used on the server
# then you must also specify it here.
cipher AES-128-CBC

# Enable compression on the VPN link.
# Don't enable this unless it is also
# enabled in the server config file.
comp-lzo

# Set log file verbosity.
verb 3

# Silence repeating messages
mute 20 

Uložte jej jako soubor client.ovpn a zahrňte ta.key, ca.crt, client.crt, client.key do jedné složky.

Po instalaci klienta openvpn do počítače a spuštění konfiguračního souboru client.ovpn byste se měli být schopni připojit k serveru VPN. Poté získáte IP adresu z rozsahu 10.9.8.0/24, který si nastavíte, a soukromě spolupracujete se svým serverem.


OpenVPN
  1. Jak nastavit server OpenVPN na Debianu 9

  2. Nainstalujte server Wireguard VPN pomocí Docker

  3. Nastavte IPSec VPN Server s Libreswan na CentOS 8

  1. Nastavte linuxový VPN server pomocí OpenVPN – průvodce krok za krokem

  2. Jak zabezpečit e-mailový server před hackováním pomocí VPN (Debian/Ubuntu)

  3. Jak zabezpečit e-mailový server před hackováním pomocí VPN (CentOS/RHEL)

  1. Nastavení serveru OpenVPN s CentOS a viskozitou

  2. Nastavení serveru OpenVPN s DD-WRT a viskozitou

  3. Nastavení serveru OpenVPN s Netgear a viskozitou