Installer strongSwan
Generer sertifikater
Konfigurer strongSwan
Tillat videresending av IPv4
Konfigurer brannmuren
Start VPN
StrongSwan er en åpen kildekode IPsec-basert VPN-løsning. Den støtter både IKEv1- og IKEv2-nøkkelutvekslingsprotokollene i forbindelse med den opprinnelige NETKEY IPsec-stakken til Linux-kjernen. Denne opplæringen viser deg hvordan du bruker strongSwan til å sette opp en IPSec VPN-server på CentOS 7.
Installer strongSwan
strongSwan-pakkene er tilgjengelige i depotet for ekstrapakker for Enterprise Linux (EPEL). Vi bør aktivere EPEL først, og deretter installere strongSwan.
yum install http://ftp.nluug.nl/pub/os/Linux/distr/fedora-epel/7/x86_64/Packages/e/epel-release-7-11.noarch.rpm
yum install strongswan openssl
Generer sertifikater
Både VPN-klienten og serveren trenger et sertifikat for å identifisere og autentisere seg selv. Jeg har forberedt to shell-skript for å generere og signere sertifikatene. Først laster vi ned disse to skriptene til mappen /etc/strongswan/ipsec.d.
cd /etc/strongswan/ipsec.d
wget https://raw.githubusercontent.com/michael-loo/strongswan_config/for_vultr/server_key.sh
chmod a+x server_key.sh
wget https://raw.githubusercontent.com/michael-loo/strongswan_config/for_vultr/client_key.sh
chmod a+x client_key.sh
I disse to .shfilene har jeg satt organisasjonsnavnet som VULTR-VPS-CENTOS. Hvis du vil endre det, åpne .shfilene og erstatt O=VULTR-VPS-CENTOSmed O=YOUR_ORGANIZATION_NAME.
Deretter bruker du server_key.shmed IP-adressen til serveren din for å generere sertifiseringsinstansen (CA) nøkkelen og sertifikatet for serveren. Erstatt SERVER_IPmed IP-adressen til din Vultr VPS.
./server_key.sh SERVER_IP
Generer klientnøkkelen, sertifikatet og P12-filen. Her vil jeg lage sertifikatet og P12-filen for VPN-brukeren "john".
./client_key.sh john john@gmail.com
Bytt ut "john" og e-posten hans med din før du kjører skriptet.
Etter at sertifikatene for klient og server er generert, kopier /etc/strongswan/ipsec.d/john.p12og /etc/strongswan/ipsec.d/cacerts/strongswanCert.pemtil din lokale datamaskin.
Åpne strongSwan IPSec-konfigurasjonsfilen.
vi /etc/strongswan/ipsec.conf
Erstatt innholdet med følgende tekst.
config setup
uniqueids=never
charondebug="cfg 2, dmn 2, ike 2, net 0"
conn %default
left=%defaultroute
leftsubnet=0.0.0.0/0
leftcert=vpnHostCert.pem
right=%any
rightsourceip=172.16.1.100/16
conn CiscoIPSec
keyexchange=ikev1
fragmentation=yes
rightauth=pubkey
rightauth2=xauth
leftsendcert=always
rekey=no
auto=add
conn XauthPsk
keyexchange=ikev1
leftauth=psk
rightauth=psk
rightauth2=xauth
auto=add
conn IpsecIKEv2
keyexchange=ikev2
leftauth=pubkey
rightauth=pubkey
leftsendcert=always
auto=add
conn IpsecIKEv2-EAP
keyexchange=ikev2
ike=aes256-sha1-modp1024!
rekey=no
leftauth=pubkey
leftsendcert=always
rightauth=eap-mschapv2
eap_identity=%any
auto=add
Rediger strongSwan-konfigurasjonsfilen, strongswan.conf.
vi /etc/strongswan/strongswan.conf
Slett alt og erstatt det med følgende.
charon {
load_modular = yes
duplicheck.enable = no
compress = yes
plugins {
include strongswan.d/charon/*.conf
}
dns1 = 8.8.8.8
dns2 = 8.8.4.4
nbns1 = 8.8.8.8
nbns2 = 8.8.4.4
}
include strongswan.d/*.conf
Rediger den hemmelige IPsec-filen for å legge til en bruker og et passord.
vi /etc/strongswan/ipsec.secrets
Legg til en brukerkonto "John" i den.
: RSA vpnHostKey.pem
: PSK "PSK_KEY"
john %any : EAP "John's Password"
john %any : XAUTH "John's Password"
Vær oppmerksom på at begge sider av kolon ':' trenger et mellomrom.
Tillat videresending av IPv4
Rediger for /etc/sysctl.confå tillate videresending i Linux-kjernen.
vi /etc/sysctl.conf
Legg til følgende linje i filen.
net.ipv4.ip_forward=1
Lagre filen, og bruk deretter endringen.
sysctl -p
Åpne brannmuren for VPN-en din på serveren.
firewall-cmd --permanent --add-service="ipsec"
firewall-cmd --permanent --add-port=4500/udp
firewall-cmd --permanent --add-masquerade
firewall-cmd --reload
Start VPN
systemctl start strongswan
systemctl enable strongswan
StrongSwan kjører nå på serveren din. Installer strongswanCert.pemog .p12sertifikat filer til klienten. Du vil nå kunne bli med i ditt private nettverk.