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

Nainstalujte OpenVPN Server na Debian 11/Debian 10

V této příručce se naučíme, jak nainstalovat OpenVPN Server na Debian 11/Debian 10.

Nainstalujte OpenVPN Server na Debian 11/Debian 10

Spusťte aktualizaci systému

apt update

Nainstalujte OpenVPN na Debian 11/Debian 10

Balíček OpenVPN je dostupný ve výchozím repozitáři Debian 11/Debian 10.

apt install openvpn -y

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

Inicializujte OpenVPN PKI. PKI se skládá z:

  • veřejný klíč a soukromý klíč pro server a každého klienta
  • hlavní certifikát a klíč certifikační autority (CA), který se používá k podepsání každého z certifikátů serveru a klienta.

Zkopírujte tedy konfigurační adresář easy-rsa do jiného umístění, abyste zajistili, že budoucí aktualizace balíčku OpenVPN nepřepíší vaše úpravy.

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

Dále inicializujte PKI.

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

Ukázkový výstup příkazu;

init-pki complete; you may now create a CA or requests.
Your newly created PKI dir is: /etc/easy-rsa/pki

Vytvořte certifikát a klíč certifikační autority (CA)

Dále vygenerujte certifikát CA a klíč pro podepisování certifikátů serveru OpenVPN a klienta.

cd /etc/easy-rsa/
./easyrsa build-ca

To vás vyzve k zadání přístupového hesla CA klíče a běžného názvu serveru.

Using SSL: openssl OpenSSL 1.1.1d  10 Sep 2019

Enter New CA Key Passphrase: 
Re-Enter New CA Key Passphrase: 
Generating RSA private key, 2048 bit long modulus (2 primes)
.............................................+++++
...................................+++++
e is 65537 (0x010001)
Can't load /etc/easy-rsa/pki/.rnd into RNG
139670192284800: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-demo 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 vygenerován a uložen na /etc/easy-rsa/pki/ca.crt .

Vygenerujte parametry Diffie Hellmana

Generujte klíče Diffie-Hellman používané pro výměnu klíčů během TLS handshake mezi serverem OpenVPN a připojujícími se klienty. Tento příkaz byl proveden v adresáři Easy-RSA;

./easyrsa gen-dh

Parametry DH o velikosti 2048 budou vytvořeny na /etc/easy-rsa/pki/dh.pem .

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

Chcete-li vygenerovat certifikáty a klíče, zadejte výše vytvořenou přístupovou frázi klíče CA.

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

Ukázkový výstup;

Using SSL: openssl OpenSSL 1.1.1d  10 Sep 2019
Generating a RSA private key
........................................+++++
.......................................+++++
writing new private key to '/etc/easy-rsa/pki/private/server.key.MMFHTTtpKD'
-----
Using configuration from /etc/easy-rsa/pki/safessl-easyrsa.cnf
Enter pass phrase for /etc/easy-rsa/pki/private/ca.key:
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
commonName            :ASN.1 12:'server'
Certificate is to be certified until Oct 10 18:23:08 2024 GMT (1080 days)

Write out database with 1 new entries
Data Base Updated

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

Předsdílený ověřovací klíč TLS/SSL se používá jako dodatečný podpis HMAC na všech paketech handshake SSL/TLS, aby se zabránilo útoku DoS a zahlcení portů UDP. To lze vygenerovat pomocí příkazu;

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

Vygenerujte certifikát zneplatnění OpenVPN

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

Spusťte skript v adresáři Easy-RSA;

./easyrsa gen-crl

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

Ukázkový výstup;

Using SSL: openssl OpenSSL 1.1.1d  10 Sep 2019
Using configuration from /etc/easy-rsa/pki/safessl-easyrsa.cnf
Enter pass phrase for /etc/easy-rsa/pki/private/ca.key:

An updated CRL has been created.
CRL file: /etc/easy-rsa/pki/crl.pem

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

Zkopírujte všechny vygenerované certifikáty/klíče serveru 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/

Generujte klientské certifikáty a klíče OpenVPN

Certifikáty a soukromé klíče klientů OpenVPN lze vygenerovat následovně

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.

Ukázkový výstup příkazu;

Using SSL: openssl OpenSSL 1.1.1d  10 Sep 2019
Generating a RSA private key
...........................+++++
...........................................................................................................................+++++
writing new private key to '/etc/easy-rsa/pki/private/koromicha.key.saAaE6L0tX'
-----
Using configuration from /etc/easy-rsa/pki/safessl-easyrsa.cnf
Enter pass phrase for /etc/easy-rsa/pki/private/ca.key:
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
commonName            :ASN.1 12:'koromicha'
Certificate is to be certified until Oct 10 18:25:37 2024 GMT (1080 days)

Write out database with 1 new entries
Data Base Updated

Chcete-li vygenerovat pro druhého klienta,

./easyrsa build-client-full janedoe nopass

Můžete se podívat, jak používat easyrsa příkaz s ./easyrsa --help .

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

Vytvořte adresáře klientů OpenVPN. Například jsme vygenerovali certifikáty a soubory klíčů pro dva klienty, koromicha a janedoe, a proto vytváříme adresáře jako;

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

Poté zkopírujte klientem vygenerované certifikáty/klíče a certifikát CA serveru 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/janedoe.crt,private/janedoe.key} /etc/openvpn/client/janedoe/

Nakonfigurujte OpenVPN Server na Debian 11/Debian 10

Dalším krokem je konfigurace serveru OpenVPN. Zkopírujte ukázkovou konfiguraci serveru OpenVPN do /etc/openvpn/server adresář, jak je znázorněno níže;

Na Debianu 10;

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

Rozbalte konfiguraci.

cd /etc/openvpn/server/
gunzip server.conf.gz

V Debianu 11;

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

Upravte konfigurační soubor server.conf , aby vyhovoval vašim potřebám;

Takto vypadají naše konfigurace bez komentářů.

cp /etc/openvpn/server/server.conf{,.bak}
cat > /etc/openvpn/server/server.conf << 'EOL'
port 1194
proto udp
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 /var/log/openvpn/ipp.txt
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 8.8.8.8"
client-to-client
keepalive 10 120
tls-auth ta.key 0 # This file is secret
cipher AES-256-CBC
comp-lzo
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
EOL

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

Konfigurace OpenVPN IP Forwarding

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

Odkomentujte řádek, net.ipv4.ip_forward=1 , na /etc/sysctl.conf pro povolení předávání paketů pro IPv4

sed -i 's/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/' /etc/sysctl.conf

Aplikujte změny bez restartování serveru.

sysctl -p

Povolit port služby OpenVPN přes firewall;

ufw allow 1194/udp

Nakonfigurujte maskování IP na UFW

Najděte své výchozí rozhraní, přes které se odesílají pakety.

ip route get 8.8.8.8
8.8.8.8 via 10.0.2.2 dev enp0s3 src 10.0.2.15 uid 0

Dále aktualizujte pravidla UFW;

vim /etc/ufw/before.rules

Přidejte následující zvýrazněné řádky těsně před *filter nastavení tabulky. Všimněte si, že použité rozhraní by mělo odpovídat názvu rozhraní výše.

...
*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 10.8.0.0/8 -o enp0s3 -j MASQUERADE
COMMIT
# Don't delete these required lines, otherwise there will be errors
*filter
...

Uložte a ukončete konfiguraci.

Povolit předávání paketů UFW;

sed -i 's/DEFAULT_FORWARD_POLICY="DROP"/DEFAULT_FORWARD_POLICY="ACCEPT"/' /etc/default/ufw

Reload UFW;

ufw reload

Spuštění serveru OpenVPN na Debianu 11/Debianu 10

Spusťte a povolte spuštění serveru OpenVPN při spouštění systému;

systemctl enable --now [email protected]

Kontrola stavu;

systemctl status [email protected]
[email protected] - OpenVPN service for server
   Loaded: loaded (/lib/systemd/system/[email protected]; enabled; vendor preset: enabled)
   Active: active (running) since Tue 2021-10-26 15:06:18 EDT; 9s ago
     Docs: man:openvpn(8)
           https://community.openvpn.net/openvpn/wiki/Openvpn24ManPage
           https://community.openvpn.net/openvpn/wiki/HOWTO
 Main PID: 1595 (openvpn)
   Status: "Initialization Sequence Completed"
    Tasks: 1 (limit: 2359)
   Memory: 2.4M
   CGroup: /system.slice/system-openvpn\x2dserver.slice/[email protected]
           └─1595 /usr/sbin/openvpn --status /run/openvpn-server/status-server.log --status-version 2 --suppress-timestamps --config server.conf

Oct 26 15:06:18 debian systemd[1]: Starting OpenVPN service for server...
Oct 26 15:06:18 debian systemd[1]: Started OpenVPN service for server.

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

ip add s
...
4: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast 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::bf6a:bdf4:58e1:ec24/64 scope link stable-privacy 
       valid_lft forever preferred_lft forever

Nezapomeňte také zkontrolovat protokoly;

tail /var/log/openvpn/openvpn.log
/sbin/ip link set dev tun0 up mtu 1500
/sbin/ip addr add dev tun0 10.8.0.1/24 broadcast 10.8.0.255
Could not determine IPv4/IPv6 protocol. Using AF_INET
Socket Buffers: R=[212992->212992] S=[212992->212992]
UDPv4 link local (bound): [AF_INET][undef]:1194
UDPv4 link remote: [AF_UNSPEC]
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

Server OpenVPN je nyní připraven přijímat a směrovat připojení od klientů.

To znamená konec našeho průvodce, jak nainstalovat OpenVPN Server na Debian 11/Debian 10.

Nyní můžete odpovídajícím způsobem nakonfigurovat své klienty.

Související výukové programy

Nainstalujte a nakonfigurujte klienta OpenVPN na CentOS 8/Ubuntu 18.04

Nakonfigurujte OpenVPN LDAP Based Authentication

Nakonfigurujte IPSEC VPN pomocí StrongSwan na Ubuntu 18.04

OpenVPN
  1. Jak nainstalovat a nakonfigurovat OpenVPN Server na Debian 10

  2. Nainstalujte server Wireguard na Debian 10/11

  3. Nainstalujte server OpenVPN na Debian 10/11

  1. Jak nainstalovat Redis Server na Debian 11

  2. Jak nainstalovat MySQL 8.0 / 5.7 na Debian 11 / Debian 10

  3. Nainstalujte Cockpit na Debian 9

  1. Jak nainstalovat Minecraft Server na Debian 9

  2. Jak nainstalovat SuiteCRM na Debian 9

  3. Jak nainstalovat ProFTPD na Debian 8