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