Hvordan sette opp IPsec-basert VPN med Strongswan på Debian og Ubuntu
strongSwan er en åpen kildekode, tverrplattform, fullfunksjons og mye brukt IPsec-basert VPN (Virtual Private Network) implementering som kjører på Linux, FreeBSD, OS X, Windows, Android og iOS. Det er først og fremst en nøkkeldemon som støtter Internet Key Exchange-protokollene (IKEv1 og IKEv2) for å etablere sikkerhetstilknytninger (SA sterk>) mellom to jevnaldrende.
Denne artikkelen beskriver hvordan du setter opp nettsted-til-sted IPSec VPN-gatewayer ved hjelp av strongSwan på Ubuntu- og Debian-servere . Med site-to-site mener vi at hver sikkerhetsgateway har et undernett bak seg. Dessuten vil jevnaldrende autentisere hverandre ved hjelp av en forhåndsdelt nøkkel (PSK).
Testmiljø
Husk å erstatte følgende IP-er med dine virkelige IP-er for å konfigurere miljøet ditt.
Nettsted 1-gateway (tecmint-devgateway)
OS 1: Debian or Ubuntu
Public IP: 10.20.20.1
Private IP: 192.168.0.101/24
Private Subnet: 192.168.0.0/24
Site 2 Gateway (tecmint-prodgateway)
OS 2: Debian or Ubuntu
Public IP: 10.20.20.3
Private IP: 10.0.2.15/24
Private Subnet: 10.0.2.0/24
Trinn 1: Aktivering av kjernepakkevideresending
1. Først må du konfigurere kjernen for å aktivere pakkevideresending ved å legge til de riktige systemvariablene i /etc/sysctl.conf konfigurasjonsfilen på begge sikkerhetsgatewayene.
sudo vim /etc/sysctl.conf
Se etter de følgende linjene og fjern kommentarer og angi verdiene som vist (les kommentarene i filen for mer informasjon).
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
2. Last deretter de nye innstillingene ved å kjøre følgende kommando.
sudo sysctl -p
3. Hvis du har en UFW-brannmurtjeneste aktivert, må du legge til følgende regler i /etc/ufw/before.rules-konfigurasjonsfilen rett før filterreglene i enten sikkerhetsporter.
Nettsted 1-gateway (tecmint-devgateway)
*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 10.0.2.0/24 -d 192.168.0.0/24 -j MASQUERADE
COMMIT
Site 2 Gateway (tecmint-prodgateway)
*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 192.168.0.0/24 -d 10.0.2.0/24 -j MASQUERADE
COMMIT
4. Når brannmurreglene er lagt til, bruk de nye endringene ved å starte UFW på nytt som vist.
sudo ufw disable
sudo ufw enable
Trinn 2: Installere strongSwan i Debian og Ubuntu
5. Oppdater pakkebufferen på begge sikkerhetsgatewayene og installer strongswan-pakken ved å bruke APT-pakkebehandlingen.
sudo apt update
sudo apt install strongswan
6. Når installasjonen er fullført, vil installasjonsskriptet starte strongswan-tjenesten og aktivere den automatisk ved systemoppstart. Du kan sjekke statusen og om den er aktivert ved å bruke følgende kommando.
sudo systemctl status strongswan.service
sudo systemctl is-enabled strongswan.service
Trinn 3: Konfigurering av sikkerhetsporter
7. Deretter må du konfigurere sikkerhetsgatewayene ved å bruke /etc/ipsec.conf konfigurasjonsfilen.
Nettsted 1-gateway (tecmint-devgateway)
sudo cp /etc/ipsec.conf /etc/ipsec.conf.orig
sudo nano /etc/ipsec.conf
Kopier og lim inn følgende konfigurasjon i filen.
config setup
charondebug="all"
uniqueids=yes
conn devgateway-to-prodgateway
type=tunnel
auto=start
keyexchange=ikev2
authby=secret
left=10.20.20.1
leftsubnet=192.168.0.101/24
right=10.20.20.3
rightsubnet=10.0.2.15/24
ike=aes256-sha1-modp1024!
esp=aes256-sha1!
aggressive=no
keyingtries=%forever
ikelifetime=28800s
lifetime=3600s
dpddelay=30s
dpdtimeout=120s
dpdaction=restart
Site 2 Gateway (tecmint-prodgateway)
sudo cp /etc/ipsec.conf /etc/ipsec.conf.orig
sudo nano /etc/ipsec.conf
Kopier og lim inn følgende konfigurasjon i filen.
config setup
charondebug="all"
uniqueids=yes
conn prodgateway-to-devgateway
type=tunnel
auto=start
keyexchange=ikev2
authby=secret
left=10.20.20.3
leftsubnet=10.0.2.15/24
right=10.20.20.1
rightsubnet=192.168.0.101/24
ike=aes256-sha1-modp1024!
esp=aes256-sha1!
aggressive=no
keyingtries=%forever
ikelifetime=28800s
lifetime=3600s
dpddelay=30s
dpdtimeout=120s
dpdaction=restart
Her er betydningen av hver konfigurasjonsparameter:
- konfigurasjonsoppsett – spesifiserer generell konfigurasjonsinformasjon for IPSec som gjelder for alle tilkoblinger.
- charondebug – definerer hvor mye Charon-feilsøkingsutdata som skal logges.
- uniqueids – angir om en bestemt deltaker-ID skal holdes unik.
- conn prodgateway-to-devgateway – definerer tilkoblingsnavnet.
- type – definerer tilkoblingstype.
- auto – hvordan håndtere tilkobling når IPSec startes eller startes på nytt.
- keyexchange – definerer versjonen av IKE-protokollen som skal brukes.
- autentisering – definerer hvordan jevnaldrende skal autentisere hverandre.
- venstre – definerer IP-adressen til den venstre deltakerens offentlige nettverksgrensesnitt.
- leftsubnet – angir det private subnettet bak venstre deltaker.
- høyre – spesifiserer IP-adressen til rett deltakers offentlige nettverksgrensesnitt.
- rightsubnet – angir det private subnettet bak venstre deltaker.
- ike – definerer en liste over IKE/ISAKMP SA krypterings-/autentiseringsalgoritmer som skal brukes. Du kan legge til en kommadelt liste.
- esp – definerer en liste over ESP-krypterings-/autentiseringsalgoritmer som skal brukes for tilkoblingen. Du kan legge til en kommadelt liste.
- aggressiv – angir om du skal bruke aggressiv eller hovedmodus.
- keyingtries – angir antall forsøk som bør gjøres for å forhandle en tilkobling.
- ikelifetime – angir hvor lenge nøkkelkanalen til en forbindelse skal vare før den reforhandles.
- levetid – definerer hvor lenge en bestemt forekomst av en tilkobling skal vare, fra vellykket forhandling til utløp.
- dpddelay – spesifiserer tidsintervallet som R_U_THERE meldinger/INFORMASJONAL utveksling sendes til motparten med.
- dpdtimeout – spesifiserer tidsavbruddsintervallet, hvoretter alle tilkoblinger til en peer slettes i tilfelle inaktivitet.
- dpdaction – definerer hvordan du bruker Dead Peer Detection (DPD)-protokollen for å administrere tilkoblingen.
For mer informasjon om de ovennevnte konfigurasjonsparametrene, les ipsec.conf man-siden ved å kjøre kommandoen.
man ipsec.conf
Trinn 4: Konfigurere PSK for node-til-node-autentisering
8. Etter å ha konfigurert begge sikkerhetsgatewayene, generer du en sikker PSK som skal brukes av jevnaldrende ved å bruke følgende kommando.
head -c 24 /dev/urandom | base64
9. Deretter legger du til PSK i /etc/ipsec.secrets-filen på begge gatewayene.
sudo vim /etc/ipsec.secrets
Kopier og lim inn følgende linje.
------- Site 1 Gateway (tecmint-devgateway) -------
10.20.20.1 10.20.20.3 : PSK "qLGLTVQOfqvGLsWP75FEtLGtwN3Hu0ku6C5HItKo6ac="
------- Site 2 Gateway (tecmint-prodgateway) -------
10.20.20.3 10.20.20.1 : PSK "qLGLTVQOfqvGLsWP75FEtLGtwN3Hu0ku6C5HItKo6ac="
10. Start IPSec-programmet på nytt og sjekk statusen for å se tilkoblinger.
sudo ipsec restart
sudo ipsec status
11. Til slutt, bekreft at du kan få tilgang til de private undernettene fra begge sikkerhetsgatewayene ved å kjøre en ping-kommando.
ping 192.168.0.101
ping 10.0.2.15
12. Dessuten kan du stoppe og starte IPSec som vist.
sudo ipsec stop
sudo ipsec start
13. For å vite mer om IPSec-kommandoer for å hente opp tilkoblinger manuelt og mer, se IPSec-hjelpesiden.
ipsec --help
Det er alt! I denne artikkelen har vi beskrevet hvordan du setter opp et nettsted-til-sted IPSec VPN ved å bruke strongSwan på Ubuntu- og Debian-servere, hvor både sikkerhetsporter ble konfigurert til å autentisere hverandre ved hjelp av en PSK. Hvis du har spørsmål eller tanker å dele, kontakt oss via tilbakemeldingsskjemaet nedenfor.