Hvordan sette opp IPsec-basert VPN med Strongswan på CentOS/RHEL 8
strongSwan er en åpen kildekode, multi-plattform, moderne og komplett IPsec-basert VPN-løsning for Linux som gir full støtte for Internet Key Exchange (både IKEv1 og IKEv2) for å etablere sikkerhetsforeninger (SA) mellom to likemenn. Den er fullverdig, modulær av design og tilbyr dusinvis av plugins som forbedrer kjernefunksjonaliteten.
Relatert artikkel: Hvordan sette opp IPsec-basert VPN med Strongswan på Debian og Ubuntu
I denne artikkelen lærer du hvordan du setter opp sted-til-sted IPsec VPN-gatewayer ved hjelp av strongSwan på CentOS/RHEL 8-servere. Dette gjør det mulig for jevnaldrende å autentisere hverandre ved hjelp av en sterk forhåndsdelt nøkkel (PSK). Et sted-til-sted-oppsett betyr at hver sikkerhetsgateway har et undernett bak seg.
Testmiljø
Ikke glem å bruke de virkelige IP-adressene dine under konfigurasjonene mens du følger veiledningen.
Nettsted 1 Gateway
Public IP: 192.168.56.7
Private IP: 10.10.1.1/24
Private Subnet: 10.10.1.0/24
Nettsted 2 Gateway
Public IP: 192.168.56.6
Private IP: 10.20.1.1/24
Private Subnet: 10.20.1.0/24
Trinn 1: Aktiver kjerne-IP-videresending i CentOS 8
1. Start med å aktivere kjernens IP-videresendingsfunksjonalitet i /etc/sysctl.conf konfigurasjonsfilen på begge VPN-gatewayene.
vi /etc/sysctl.conf
Legg til disse linjene i filen.
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. Etter å ha lagret endringene i filen, kjør følgende kommando for å laste de nye kjerneparameterne i kjøretid.
sysctl -p
3. Deretter oppretter du en permanent statisk rute i filen /etc/sysconfig/network-scripts/route-eth0 på begge sikkerhetsgatewayene.
vi /etc/sysconfig/network-scripts/route-eth0
Legg til følgende linje i filen.
#Site 1 Gateway
10.20.1.0/24 via 192.168.56.7
#Site 2 Gateway
10.10.1.0/24 via 192.168.56.6
4. Start deretter nettverksadministratoren på nytt for å bruke de nye endringene.
systemctl restart NetworkManager
Trinn 2: Installere strongSwan i CentOS 8
5. strongswan-pakken leveres i EPEL-depotet. For å installere det, må du aktivere EPEL-depotet, og deretter installere strongwan på begge sikkerhetsgatewayene.
dnf install epel-release
dnf install strongswan
6. For å sjekke versjonen av strongswan som er installert på begge gatewayene, kjør følgende kommando.
strongswan version
7. Start deretter strongswan-tjenesten og aktiver den automatisk ved systemoppstart. Kontroller deretter statusen på begge sikkerhetsgatewayene.
systemctl start strongswan
systemctl enable strongswan
systemctl status strongswan
Merk: Den nyeste versjonen av strongswan i CentOS/REHL 8 kommer med støtte for både swanctl (et nytt, bærbart kommandolinjeverktøy introdusert med strongSwan 5.2.0, brukt til å konfigurere, kontrollere og overvåke IKE-demonen Charon ved å bruke vici-plugin) og starter (eller ipsec)-verktøyet ved å bruke den utdaterte stroke-plugin.
8. Hovedkonfigurasjonskatalogen er /etc/strongswan/ som inneholder konfigurasjonsfiler for begge programtilleggene:
ls /etc/strongswan/
For denne veiledningen vil vi bruke IPsec-verktøyet som påkalles ved hjelp av strongswan-kommandoen og strøk-grensesnittet. Så vi vil bruke følgende konfigurasjonsfiler:
- /etc/strongswan/ipsec.conf – konfigurasjonsfil for strongSwan IPsec-undersystemet.
- /etc/strongswan/ipsec.secrets – hemmelighetsfil.
Trinn 3: Konfigurering av sikkerhetsporter
9. I dette trinnet må du konfigurere tilkoblingsprofilene på hver sikkerhetsgateway for hvert nettsted ved å bruke /etc/strongswan/ipsec.conf strongswan-konfigurasjonsfilen.
Konfigurere Site 1 Connection Profile
cp /etc/strongswan/ipsec.conf /etc/strongswan/ipsec.conf.orig
vi /etc/strongswan/ipsec.conf
Kopier og lim inn følgende konfigurasjon i filen.
config setup
charondebug="all"
uniqueids=yes
conn ateway1-to-gateway2
type=tunnel
auto=start
keyexchange=ikev2
authby=secret
left=192.168.56.7
leftsubnet=10.10.1.1/24
right=192.168.56.6
rightsubnet=10.20.1.1/24
ike=aes256-sha1-modp1024!
esp=aes256-sha1!
aggressive=no
keyingtries=%forever
ikelifetime=28800s
lifetime=3600s
dpddelay=30s
dpdtimeout=120s
dpdaction=restart
Konfigurere Site 2 Connection Profile
cp /etc/strongswan/ipsec.conf /etc/strongswan/ipsec.conf.orig
vi /etc/strongswan/ipsec.conf
Kopier og lim inn følgende konfigurasjon i filen:
config setup
charondebug="all"
uniqueids=yes
conn 2gateway-to-gateway1
type=tunnel
auto=start
keyexchange=ikev2
authby=secret
left=192.168.56.6
leftsubnet=10.20.1.1/24
right=192.168.56.7
rightsubnet=10.10.1.1/24
ike=aes256-sha1-modp1024!
esp=aes256-sha1!
aggressive=no
keyingtries=%forever
ikelifetime=28800s
lifetime=3600s
dpddelay=30s
dpdtimeout=120s
dpdaction=restart
La oss kort beskrive hver av konfigurasjonsparametrene ovenfor:
- konfigurasjonsoppsett – definerer den generelle konfigurasjonsinformasjonen for IPSec som gjelder for alle tilkoblinger.
- charondebug – angir hvor mye Charon-feilsøkingsutdata som skal logges.
- uniqueids – definerer om en bestemt deltaker-ID skal holdes unik.
- Conn gateway1-to-gateway2 – brukes til å angi tilkoblingsnavnet.
- type – definerer tilkoblingstype.
- Auto – brukes til å deklarere hvordan tilkobling skal håndteres når IPSec startes eller startes på nytt.
- keyexchange – erklærer hvilken versjon av IKE-protokollen som skal brukes.
- autentisering – angir hvordan jevnaldrende skal autentisere hverandre.
- venstre – angir IP-adressen til den venstre deltakerens offentlige nettverksgrensesnitt.
- leftsubnet – erklærer det private subnettet bak den venstre deltakeren.
- høyre – angir IP-adressen til rett deltakers offentlige nettverksgrensesnitt.
- rightsubnet – erklærer det private subnettet bak den venstre deltakeren.
- ike – brukes til å deklarere en liste over IKE/ISAKMP SA-krypterings-/autentiseringsalgoritmer som skal brukes. Merk at dette kan være en kommadelt liste.
- esp – spesifiserer en liste over ESP-krypterings-/autentiseringsalgoritmer som skal brukes for tilkoblingen.
- aggressiv – erklærer 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 tilkobling skal vare før den reforhandles.
- levetid – angir hvor lenge en bestemt forekomst av en tilkobling skal vare, fra vellykket forhandling til utløp.
- dpddelay – deklarerer tidsintervallet som R_U_THERE meldinger/INFORMASJONAL utveksling sendes til peer.
- dpdtimeout – brukes til å deklarere tidsavbruddsintervallet, hvoretter alle tilkoblinger til en peer blir slettet i tilfelle inaktivitet.
- dpdaction – spesifiserer hvordan du bruker Dead Peer Detection (DPD)-protokollen for å administrere tilkoblingen.
Du kan finne en beskrivelse av alle konfigurasjonsparametere for strongSwan IPsec-delsystemet ved å lese ipsec.conf-man-siden.
man ipsec.conf
Trinn 4: Konfigurere PSK for node-til-node-autentisering
10. Deretter må du generere en sterk PSK som skal brukes av jevnaldrende for autentisering som følger.
head -c 24 /dev/urandom | base64
11. Legg til PSK-en i /etc/strongswan/ipsec.conf-filen på begge sikkerhetsgatewayene.
vi /etc/strongswan/ipsec.secrets
Skriv inn følgende linje i filen.
#Site 1 Gateway
192.168.56.7 192.168.56.6 : PSK "0GE0dIEA0IOSYS2o22wYdicj/lN4WoCL"
#Site 1 Gateway
192.168.56.6 192.168.56.7 : PSK "0GE0dIEA0IOSYS2o22wYdicj/lN4WoCL"
12. Start deretter strongsan-tjenesten og sjekk statusen til tilkoblingene.
systemctl restart strongswan
strongswan status
13. Test om du kan få tilgang til de private undernettene fra en av sikkerhetsgatewayene ved å kjøre en ping-kommando.
ping 10.20.1.1
ping 10.10.1.1
14. Sist men ikke minst, for å lære flere strongswan-kommandoer for å manuelt hente opp/ned tilkoblinger og mer, se strongswans hjelpeside.
strongswan --help
Det er alt for nå! For å dele tankene dine med oss eller stille spørsmål, kontakt oss via tilbakemeldingsskjemaet nedenfor. Og for å lære mer om det nye swanctl-verktøyet og den nye mer fleksible konfigurasjonsstrukturen, se strongSwan-brukerdokumentasjonen.