GNU/Linux >> Znalost Linux >  >> Linux

Jak nastavit Linux VPN Server a klienta pomocí OpenVPN

VPN je zkratka pro Virtual Private Network.

Virtuální privátní síť umožňuje počítači odesílat a přijímat data z jedné privátní sítě do jiné privátní sítě, která je připojena přes veřejnou síť (Internet).

To je užitečné pro ty, kteří jsou mimo intranet společnosti a chtějí se bezpečně připojit k kancelářské síti, aby měli přístup k interním serverům. VPN je také užitečná, když propojujete více poboček dohromady.

I když nepropojujete více poboček dohromady, stále můžete použít nastavení VPN, abyste svým zaměstnancům umožnili vzdálené připojení z jejich notebooku k datového centra a přístup k systémům.

Někdy společnost koupí pronajaté linky za účelem vytvoření WAN (Wide Area Network) a komunikuje se svými pobočkami. Ačkoli je pronajatá linka bezpečná a spolehlivá, je drahá.

VPN zaplňuje mezeru poskytováním virtuálního připojení typu point-to-point prostřednictvím veřejné sítě. Síť VPN se může snadno rozrůst, aby mohla pojmout více uživatelů v různých geografických lokalitách.

Typy VPN

Na vysoké úrovni jsou následující dva typy VPN:

  • Vzdálený přístup
  • Site-To-Site

Vzdálený přístup je připojení jednotlivého počítače k ​​síti prostřednictvím VPN. „Site to Site“ je propojení dvou sítí pomocí VPN.

Co je OpenVPN

Od muže OpenVPN:

OpenVPN je open source VPN démon od Jamese Yonana. OpenVPN je robustní a vysoce flexibilní VPN démon. OpenVPN podporuje zabezpečení SSL/TLS, ethernetové přemostění, přenos tunelu TCP nebo UDP přes proxy nebo NAT, podporu dynamických IP adres a DHCP, škálovatelnost pro stovky nebo tisíce uživatelů a přenositelnost na většinu hlavních platforem OS.

Tento tutoriál vysvětluje proces nastavení a konfigurace serveru a klienta OpenVPN pro vzdálený přístup.

I. Konfigurace OpenVPN – strana serveru

1. Nainstalujte OpenVPN

Nainstalujte balíček openvpn na server i klientský počítač.

$ sudo apt-get install openvpn

Použijte příslušného správce balíčků distribuce, se kterou pracujete. Pokud používáte yum, proveďte následující

$ yum install openvpn

2. Vytvořte adresáře a nastavte proměnné Env

Vytvořte adresář v /etc/openvpn a zkopírujte easy-rsa obsah k tomu. To se provádí, aby se zajistilo, že změny provedené ve skriptech nebudou ztraceny při aktualizaci balíčku. Změňte vlastníka jako aktuálního uživatele, aby měl aktuální uživatel oprávnění vytvářet soubory.

$ sudo mkdir /etc/openvpn/easy-rsa

$ sudo cp /usr/share/doc/openvpn/examples/easy-rsa/2.0/* /etc/openvpn/easy-rsa

$ sudo chown -R $USER /etc/openvpn/easy-rsa/

Dále upravte /etc/openvpn/easy-rsa/vars přizpůsobit se vašemu prostředí.

export KEY_COUNTRY="IN"
export KEY_PROVINCE="TN"
export KEY_CITY="CHN"
export KEY_ORG="tgs"
export KEY_EMAIL="[email protected]"

3. Vytvoření CA – certifikační autorita (kořenový certifikát)

Dalším krokem při budování serveru openvpn je vytvoření infrastruktury veřejného klíče, aby se server a klienti mohli vzájemně autentizovat.

$ cd /etc/openvpn/easy-rsa/

$ source vars

$ ./clean-all

$ ln -s openssl-1.0.0.cnf openssl.cnf

$ ./build-ca

Generating a 1024 bit RSA private key
........++++++
......++++++
unable to write 'random state'
writing new private key to 'ca.key'
-----
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.
-----
Country Name (2 letter code) [IN]:
State or Province Name (full name) [TN]:
Locality Name (eg, city) [CHN]:
Organization Name (eg, company) [tgs]:
Organizational Unit Name (eg, section) [changeme]:
Common Name (eg, your name or your server's hostname) [changeme]:
Name [changeme]:lakshmanan
Email Address [[email protected]]:[email protected]

Jednou ./build-ca je dokončen, uvidíte soubor s názvem „ca.key “ a „ca.crt “ uvnitř /etc/openvpn/easy-rsa/keys/

Pamatujte, že „.key ” soubory musí být důvěrné.

4. Vytváření certifikátu pro Server

Dalším krokem je vytvoření certifikátu pro náš server Openvpn.

$ /etc/openvpn/easy-rsa/build-key-server vpnserver
...
...

Sign the certificate? [y/n]:y

1 out of 1 certificate requests certified, commit? [y/n]y

Všimněte si, že vpnserver je HOSTNAME serveru. Tento příkaz převezme vstup od uživatele podobný předchozímu. Tento příkaz vytvoří soubory certifikátu a klíče pro server.

5. Vytváření certifikátu pro klienta

Klient VPN bude také potřebovat certifikát k ověření se serverem. Pokud chcete konfigurovat více klientů, musíte vytvořit certifikát pro každého klienta zvlášť.

$ ./build-key vpnclient1
...
...

Sign the certificate? [y/n]:y

1 out of 1 certificate requests certified, commit? [y/n]y

vpnclient1 je název hostitele klienta. Tento příkaz vytvoří soubory certifikátu a klíče pro klienta.

6. Vytvořte parametry Diffie Hellman

$ ./build-dh

Jakmile budou všechny výše uvedené kroky úspěšně dokončeny, budete mít mnoho souborů klíčů a certifikátů uvnitř /etc/openvpn/easy-rsa/keys .

7. Zkopírujte certifikáty do příslušných umístění

Vytvořili jsme kořenový certifikát, certifikát serveru a klientský certifikát. Musíme je zkopírovat na vhodná místa.

$ cd /etc/openvpn/easy-rsa/keys/

$ sudo cp ca.crt vpnserver.crt vpnserver.key dh1024.pem /etc/openvpn/

$ scp ca.crt vpnclient1.key  vpnclient1.crt root@vpnclient1:/etc/openvpn

Nyní jsme zkopírovali klientský certifikát a klíč do klientského počítače. Nezapomeňte při kopírování klíčových souborů použít zabezpečené médium, jako je scp.

8. Konfigurace serveru

OpenVPN poskytuje výchozí server.conf. Můžete jej upravit tak, aby vyhovoval potřebám.

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

$ sudo gzip -d /etc/openvpn/server.conf.gz

Upravte soubor „/etc/openvpn/server.conf “.

...
ca ca.crt
cert vpnserver.crt
key vpnserver.key
dh dh1024.pem
...

Nyní spusťte server OpenVPN:

$ sudo /etc/init.d/openvpn start
 * Starting virtual private network daemon(s)... 
 * Autostarting VPN 'server'

$ ifconfig tun0
tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:10.8.0.1  P-t-P:10.8.0.2  Mask:255.255.255.255

Ve výchozím nastavení bude openVPN protokolovat chyby do souboru syslog.

II. Konfigurace OpenVPN – strana klienta

9. Nastavte konfigurační soubory klienta

Nyní nakonfigurujeme openVPN, aby fungoval jako klient. Pamatujte, že jsme již nainstalovali balíček openvpn do klienta a v /etc/openvpn/ máme „ca.crt“, „vpnclient1.key“, vpnclient1.crt

Zkopírujte ukázkový client.conf do /etc/openvpn .

$ sudo cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn/

Upravte soubor /etc/openvpn/client.conf .

...
# Specify that this is openvpn client
client

remote vpnserver 1194

ca ca.crt

cert vpnclient1.crt

key vpnclient1.key
...

Nyní spusťte OpenVPN v klientovi

$ /etc/init.d/openvpn start
 * Starting virtual private network daemon(s)... 
 * Autostarting VPN 'client'

$ ifconfig tun0
tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:10.8.0.6  P-t-P:10.8.0.5  Mask:255.255.255.255

10. Otestujte nastavení VPN

Odešlete příkaz ping na vpnserver z klientského počítače a zjistěte, zda VPN funguje nebo ne.

$ ping 10.8.0.1

PING 10.8.0.1 (10.8.0.1) 56(84) bytes of data.
64 bytes from 10.8.0.1: icmp_req=1 ttl=64 time=2.14 ms

Pokud jste schopni pingnout, pak jste provedli správné nastavení.

Mějte prosím na paměti následující:

  1. Ujistěte se, že klient a server používají stejný protokol a číslo portu.
  2. Klient a server musí používat stejnou konfiguraci ohledně některých parametrů, jako je velikost klíče, komprese atd…
  3. V případě jakéhokoli problému zvyšte podrobnost protokolu v konfiguraci a vyhledejte řešení v souboru syslog.

Linux
  1. Jak nastavit NTP server a klienta na Debian 9 Stretch Linux

  2. Jak nastavit a nakonfigurovat server a klienta YPServ Linux NIS

  3. Jak nainstalovat a nakonfigurovat Linux NTP server a klienta

  1. Jak nastavit NFS server a klienta na Rocky/Alma Linux 8

  2. Jak nainstalovat a nastavit cPanel na linuxovém serveru

  3. Jak nastavit SSH bez hesla v systému Linux

  1. Jak nastavit FTP/SFTP server a klienta na AlmaLinuxu

  2. Jak nastavit Samba Server a klienta na AlmaLinuxu

  3. Jak nastavit a používat FTP server v Ubuntu Linux