
Virtuální privátní síť se používá k vytvoření privátní sítě z veřejného internetového připojení k ochraně vaší identity. VPN používá k bezpečnému odesílání a přijímání dat šifrovaný tunel.
strongSwan je jeden z nejznámějších VPN softwaru, který podporuje různé operační systémy včetně Linuxu, OS X, FreeBSD, Windows, Android a iOS. Pro bezpečné navázání spojení používá protokoly IKEv1 a IKEv2. Jeho funkčnost můžete rozšířit pomocí vestavěných pluginů.
V tomto tutoriálu vysvětlíme krok za krokem pokyny, jak nastavit KEv2 VPN Server se StrongSwan na Ubuntu 20.04.
Předpoklad
• Dva systémy se serverem Ubuntu 20.04
• Na obou serverech je nakonfigurováno heslo uživatele root
Nainstalujte StrongSwan
Ve výchozím nastavení je StrongSwan k dispozici ve výchozím úložišti Ubuntu 20.04. Můžete jej nainstalovat s dalšími požadovanými součástmi pomocí následujícího příkazu:
apt-get install strongswan strongswan-pki libcharon-extra-plugins libcharon-extauth-plugins libstrongswan-extra-plugins -y
Po instalaci všech balíčků můžete přistoupit ke generování certifikátu CA.
Vygenerujte certifikát pro server VPN
Dále budete muset vygenerovat certifikát a klíč pro server VPN, abyste ověřili pravost serveru na straně klienta.
Nejprve vytvořte soukromý klíč pro kořenovou certifikační autoritu pomocí následujícího příkazu:
ipsec pki --gen --size 4096 --type rsa --outform pem > /etc/ipsec.d/private/ca.key.pem
Dále vytvořte kořenovou CA a podepište ji pomocí výše uvedeného klíče:
ipsec pki --self --in /etc/ipsec.d/private/ca.key.pem --type rsa --dn "CN=My VPN Server CA" --ca --lifetime 3650 --outform pem > /etc/ipsec.d/cacerts/ca.cert.pem
Dále vytvořte soukromý klíč pro server VPN pomocí následujícího příkazu:
ipsec pki --gen --size 4096 --type rsa --outform pem > /etc/ipsec.d/private/server.key.pem
Nakonec vygenerujte certifikát serveru pomocí následujícího příkazu:
ipsec pki --pub --in /etc/ipsec.d/private/server.key.pem --type rsa | ipsec pki --issue --lifetime 2750 --cacert /etc/ipsec.d/cacerts/ca.cert.pem --cakey /etc/ipsec.d/private/ca.key.pem --dn "CN=vpn.domain.com" --san="vpn.domain.com" --flag serverAuth --flag ikeIntermediate --outform pem > /etc/ipsec.d/certs/server.cert.pem
V tomto okamžiku jsou všechny certifikáty připraveny pro server VPN.
Konfigurace StrongSwan VPN
Výchozí konfigurační soubor strongswanu je /etc/ipsec.conf. Můžeme zazálohovat hlavní konfigurační soubor a vytvořit nový soubor:
mv /etc/ipsec.conf /etc/ipsec.conf-bak
Dále vytvořte nový konfigurační soubor:
nano /etc/ipsec.conf
Přidejte následující nastavení konfigurace a připojení:
config setup
charondebug="ike 2, knl 2, cfg 2, net 2, esp 2, dmn 2, mgr 2"
strictcrlpolicy=no
uniqueids=yes
cachecrls=no
conn ipsec-ikev2-vpn
auto=add
compress=no
type=tunnel
keyexchange=ikev2
fragmentation=yes
forceencaps=yes
dpdaction=clear
dpddelay=300s
rekey=no
left=%any
[email protected]
leftcert=server.cert.pem
leftsendcert=always
leftsubnet=0.0.0.0/0
right=%any
rightid=%any
rightauth=eap-mschapv2
rightsourceip=10.10.10.0/24
rightdns=8.8.8.8
rightsendcert=never
eap_identity=%identity
Uložte a zavřete soubor /etc/ipsec.conf.
Dále budete muset definovat přihlašovací údaje uživatele EAP a soukromé klíče RSA pro ověřování.
Můžete jej nastavit úpravou souboru /etc/ipsec.secrets:
nano /etc/ipsec.secrets
Přidejte následující řádek:
: RSA "server.key.pem"
vpnsecure : EAP "password"
Poté restartujte službu StrongSwan následovně:
systemctl restart strongswan-starter
Chcete-li povolit spuštění aplikace StrongSwan při spouštění systému, zadejte:
systemctl enable strongswan-starter
Ověřte stav serveru VPN, zadejte:
systemctl status strongswan-starter
Povolit předávání paketů jádra
Dále budete muset nakonfigurovat jádro tak, aby umožňovalo předávání paketů úpravou souboru /etc/sysctl.conf:
nano /etc/sysctl.conf
Odkomentujte následující řádky:
net.ipv4.ip_forward = 1
net.ipv6.conf.all.forwarding = 1
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0
Uložte a zavřete soubor a poté znovu načtěte nová nastavení pomocí následujícího příkazu:
sysctl -p
Nainstalujte a nakonfigurujte klienta StrongSwan
V této části nainstalujeme klienta StrongSwan na vzdálený počítač a připojíme se k serveru VPN.
Nejprve nainstalujte všechny požadované balíčky pomocí následujícího příkazu:
apt-get install strongswan libcharon-extra-plugins -y
Jakmile jsou všechny balíčky nainstalovány, zastavte službu StrongSwan následujícím příkazem:
systemctl stop strongswan-starter
Dále budete muset zkopírovat soubor ca.cert.pem ze serveru VPN do adresáře /etc/ipsec.d/cacerts/. Můžete jej zkopírovat pomocí příkazu SCP, jak je znázorněno níže:
scp [email protected]:/etc/ipsec.d/cacerts/ca.cert.pem /etc/ipsec.d/cacerts/
Chcete-li nastavit ověřování klienta VPN, použijte soubor /etc/ipsec.secrets:
nano /etc/ipsec.secrets
Přidejte následující řádek:
vpnsecure : EAP "password"
Poté upravte hlavní konfigurační soubor strongSwan:
nano /etc/ipsec.conf
Přidejte následující řádky, které odpovídají vaší doméně, heslu, které jste zadali v souboru /etc/ipsec.secrets.
conn ipsec-ikev2-vpn-client
auto=start
right=vpn.domain.com
rightid=vpn.domain.com
rightsubnet=0.0.0.0/0
rightauth=pubkey
leftsourceip=%config
leftid=vpnsecure
leftauth=eap-mschapv2
eap_identity=%identity
Nyní spusťte službu StrongSwan VPN pomocí následujícího příkazu:
systemctl start strongswan-starter
Dále ověřte stav připojení VPN pomocí následujícího příkazu:
ipsec status
Měli byste získat následující výstup:
Security Associations (1 up, 0 connecting):
ipsec-ikev2-vpn-client[1]: ESTABLISHED 28 seconds ago, 104.245.32.158[vpnsecure]...104.245.33.84[vpn.domain.com]
ipsec-ikev2-vpn-client{1}: INSTALLED, TUNNEL, reqid 1, ESP in UDP SPIs: ca6f451c_i ca9f9ff7_o
ipsec-ikev2-vpn-client{1}: 10.10.10.1/32 === 0.0.0.0/0
Výše uvedený výstup znamená, že mezi klientem a serverem je navázáno připojení VPN a klientskému počítači je přiřazena adresa IP 10.10.10.1.
Svou novou IP adresu můžete také ověřit pomocí následujícího příkazu:
ip a
Měli byste získat následující výstup:
eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:00:68:f5:20:9e brd ff:ff:ff:ff:ff:ff
inet 104.245.32.158/25 brd 104.245.32.255 scope global eth0
valid_lft forever preferred_lft forever
inet 10.10.10.1/32 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::200:68ff:fef5:209e/64 scope link
valid_lft forever preferred_lft forever
Závěr
Ve výše uvedené příručce jsme se naučili, jak nastavit server a klienta StrongSwan VPN na Ubuntu 20.04. Nyní můžete chránit svou identitu a zabezpečit své online aktivity.