StrongSwan

Slackware.SE Wiki

Hoppa till: navigering, sök

Innehåll

[redigera] VPN med StrongSwan

[redigera] Om

StrongSwan är ett OpenSource IPsec genomförande för Linux operativ systemet. Den är baserad på det numera nerlagda FreeS/WAN projektet och X.509 patch som StrongSwan utvecklarna har utvecklat över de senaste tre åren. För att kunna genomföra en stabil IPsec platform som bas för framtida utbyggnader av X.509, Så drog dessa utvecklare igång StrongSwan projektet.

[redigera] Laddaner

Laddaner StrongSwan (Den senaste stabila versionen är 4.4.0)

Remomendera att spara nedladdningen i denna /usr/src/ mapp

[redigera] Installation

För att kunna installera StrongSwan bör du kontrollera att du har installerat de obligatoriska paketen som krävs.

För att kunna extrahera och kompilera kör du dessa kommandon först.

(Om du laddat ned .tar.bz2 filen kör du följande):

# cd /usr/src
# wget http://download.strongswan.org/strongswan-4.4.0.tar.bz2
# tar -xjf strongswan-4.4.0.tar.bz2

(Om du laddat ned .tar.gz filen kör du följande):

# cd /usr/src
# wget http://download.strongswan.org/strongswan-4.4.0.tar.gz
# tar -xzf strongswan-4.4.0.tar.gz

På börja installation:

# cd strongswan-4.4.0
# ./configure --prefix=/usr --sysconfdir=/etc
# make
# make install

[redigera] Avinstallation

Kan man avinstallera kompilerade installationer?

Klart man kan :-)

Se till att du sparat katalogen där du körde kompileringen.

Jag personligen brukar spara mina kompileringar i /usr/src/, sedan gör du följande:

# cd /usr/src/strongswan-4.4.0
# make uninstall
# make clean
# rm -rf /usr/src/strongswan-4.4.0

Så har du avinstallerat StrongSwan. Vill du rensa filer som du inte kommer att behöva i framtiden kan du radera "Konfigurations" filerna, som oftast inte tas bort.

och då gör du sära:

# rm -rf /etc/ipsec*

[redigera] Obligatoriska Paket

För att kunna kompilera StrongSwan så krävs GNU Multiprecision Arithmetic Library (GMP) paketet. Denna installerar du via pkgtool eller annan valfri paket-hanterare, så som slapt-get eller slackpkg. Om du ska installera denna från cdn så ligger den i slackware/l/

[redigera] Kärn konfiguration

Strongswan 4.x grenen körs enbart på Linux 2.6 kärna och är beroende av dess naturlig NETKEY IPsec stack. Se till att följande IPsec kärn moduler är tillgängliga:

Networking  --->
 Networking options  --->
   Transformation user configuration interface
   PF_KEY sockets
   TCP/IP networking
     IP: advanced router
     IP: policy routing
     IP: AH transformation
     IP: ESP transformation
     IP: IPComp transformation
     IP: IPsec transport mode
     IP: IPsec tunnel mode
     IP: IPsec BEET mode (experimental)
   The IPv6 protocol
     IPv6: AH transformation
     IPv6: ESP transformation
     IPv6: IPComp transformation
     IPv6: IPsec transport mode
     IPv6: IPsec tunnel mode
     IPv6: IPsec BEET mode
     IPv6: Multiple Routing Tables  
   Network packet filtering framework (Netfilter)  --->
     Core Netfilter Configuration 
     IPsec "policy" match support
Cryptographic API
  Select algorithms you want to use...

Dessa bör vara bygg i kärnan, men kan även byggas som moduler. Modulerna kommer att laddas automatiskt när StrongSwan startas. Att tillägga så bör även kärnans kryptoapi moduler med dess valda avkodnings hash algoritm vara tillgängliga.

OBS: som standard brukar dessa finnas laddade och kompilerade som moduler i Slackwares standard kärna.

[redigera] Konfigurations Exempel

[redigera] ikev1/nat-one-rw-psk

Beskrivning

Roadwarrior Klient 1 sitter bakom NAT Router A som skapar en tunnel till Router B. UDP inkapsling används för att färdas över NAT routern. Klient 1 använder Pre-Shared Key (PSK) som autentisering på Router B. leftfirewall=yes Så infogas automatiskt en "iptables-baserad" brandväggs regel som släpper igenom den tunnlade trafiken.

StrongSwan roadwarrior2net-psk
[redigera] Klient 1 ipsec.conf
# /etc/ipsec.conf - strongSwan IPsec configuration file
config setup
     plutodebug=control
     nat_traversal=yes
     charonstart=no

conn %default
     ikelifetime=60m
     keylife=20m
     rekeymargin=3m
     keyingtries=1
     authby=secret
	
conn nat-t
     left=%defaultroute
     leftfirewall=yes
     right=10.10.0.2
     rightsubnet=192.168.1.0/24
     auto=add
[redigera] Klient 1 ipsec.secrets
# /etc/ipsec.secrets - strongSwan IPsec secrets file
: PSK "0sv+NkxY9LLZvwj4qCC2o/gGrWDF2d21jL"
[redigera] Router B ipsec.conf
# /etc/ipsec.conf - strongSwan IPsec configuration file
config setup
     plutodebug=control
     nat_traversal=yes
     charonstart=no

conn %default
     ikelifetime=60m
     keylife=20m
     rekeymargin=3m
     keyingtries=1
     authby=secret

conn nat-t
     left=10.10.0.2
     leftsubnet=192.168.1.0/24
     leftfirewall=yes
     right=%any
     rightsubnetwithin=192.168.0.0/24
     auto=add
[redigera] Router B ipsec.secrets
# /etc/ipsec.secrets - strongSwan IPsec secrets file
: PSK "0sv+NkxY9LLZvwj4qCC2o/gGrWDF2d21jL"

[redigera] ikev1/net2net-psk

Beskrivning

En anslutning mellan subnäten bakom "gateway" Router A och Router B är upprättad, Auktirationen är baserad på Pre-Shared Key (PSK). När en lyckad anslutning av IPsec tunneln är upprättad, (leftfirewall=yes) Så infogas automatiskt en "iptables-baserad" brandväggs regel som släpper igenom den tunnlade trafiken. Om allt gått rätt till så kan nu klient 1 bakom Router A pinga Klient 2 bakom Router B och vise versa.

StrongSwan net2net-psk
[redigera] Router A ipsec.conf
# /etc/ipsec.conf - strongSwan IPsec configuration file
config setup
       plutodebug=control
       charonstart=no

conn %default
       ikelifetime=60m
       keylife=20m
       rekeymargin=3m
       keyingtries=1
       authby=secret

conn net-net
       left=10.10.0.1
       leftsubnet=192.168.0.0/24
       leftid=@router1.exempel.se
       leftfirewall=yes
       right=10.10.0.2
       rightsubnet=192.168.1.0/24
       rightid=@router2.exempel.se
       auto=add
[redigera] Router A ipsec.secrets
# /etc/ipsec.secrets - strongSwan IPsec secrets file
@router1.exempel.se @router2.exempel.se : PSK "0sv+NkxY9LLZvwj4qCC2o/gGrWDF2d21jL"
[redigera] Router B ipsec.conf
# /etc/ipsec.conf - strongSwan IPsec configuration file
config setup
       plutodebug=control
       charonstart=no

conn %default
       ikelifetime=60m
       keylife=20m
       rekeymargin=3m
       keyingtries=1
       authby=secret

conn net-net
       left=10.10.0.2
       leftsubnet=192.168.1.0/24
       leftid=@router2.exempel.se
       leftfirewall=yes
       right=10.10.0.1
       rightsubnet=192.168.0.0/24
       rightid=@router1.exempel.se
       auto=add
[redigera] Router B ipsec.secrets
# /etc/ipsec.secrets - strongSwan IPsec secrets file
@router2.exempel.se @router1.exempel.se : PSK "0sv+NkxY9LLZvwj4qCC2o/gGrWDF2d21jL"

[redigera] Linux till DI8044HV ikev1/net2net-psk

Beskrivning

En anslutning mellan subnäten bakom Linux "gateway" och D-Link DI804HV är upprättad, Auktirationen är baserad på Pre-Shared Key (PSK). När en lyckad anslutning av IPsec tunneln är upprättad, (leftfirewall=yes) Så infogas automatiskt en "iptables-baserad" brandväggs regel som släpper igenom den tunnlade trafiken. Om allt gått rätt till så kan nu klienter på Lan 1 pinga Lan 2´s klienter bakom Router B och vise versa.

StrongSwan net2net-psk
[redigera] Linux ipsec.conf
# /etc/ipsec.conf - strongSwan IPsec configuration file
config setup
       plutodebug=control
       charonstart=no

conn %default
       ikelifetime=60m
       keylife=20m
       rekeymargin=3m
       keyingtries=1
       authby=secret

conn net-net
       left=10.10.0.1
       leftnexthop=%direct
       leftsubnet=192.168.0.0/24
       leftid=10.10.0.1
       leftfirewall=yes
       right=10.10.0.2
       rightnexthop=%direct
       rightsubnet=192.168.1.0/24
       rightid=10.10.0.2
       pfs=no
       auto=add
[redigera] Linux ipsec.secrets
# /etc/ipsec.secrets - strongSwan IPsec secrets file
10.10.0.1 10.10.0.2 : PSK "0sv+NkxY9LLZvwj4qCC2o/gGrWDF2d21jL"

D-Link DI804HV

I menyn till vänster under "Home" filken klicka på knappen "VPN".

[redigera] VPN Settings
VPN                     = Enable
Max number of tunnels   = 1
ID                      = 1
Tunnel name             = linux-dlink
Method                  = IKE

Klicka sedan knappen "More"

[redigera] VPN Settings - Tunnel 1
Tunnel Name             = linux-dlink
Local Subnet            = 192.168.1.0
Local Netmask           = 255.255.255.0
Remote Subnet           = 192.168.0.0
Remote Netmask          = 255.255.255.0
Remote gateway          = 10.10.0.1
IKE Keep Alive          =
Preshare Key            = 0sv+NkxY9LLZvwj4qCC2o/gGrWDF2d21jL
Extended Authentication =
IPSec Nat Traversal     =
Auto-Connect            = Enable
Remote ID Type          = Ip Address
          Value         = 10.10.0.1
Local ID Type           = Ip Address
          Value         = 10.10.0.2

Klicka knappen "Select IKE Proposal..."

[redigera] VPN Settings - Tunnel 1 - Set IKE Proposal
ID                      = 1
Proposal Name           = Main
DH Group                = Group 2
Encrypt algorithm       = 3DES
Auth algorithm          = MD5
Life Time               = 3600
Life Time Unit          = Sec.

Välj ID 1 i dropdown menyn och klicka sedan knappen "Add To" Proposal Index, så kommer "Main" nu visas i "IKE Proposal index".

Nu går vi tillbaka till föregående val och klickar på knappen "Select IPSec Proposal..."

[redigera] VPN Settings - Tunnel 1 - Set IPSec Proposal
ID                      = 1
Proposal Name           = Tunnel
DH Group                = None
Encap Protocol          = ESP
Encrypt algorithm       = 3DES
Auth algorithm          = SHA1
Life Time               = 3600
Life Time Unit          = Sec.

Välj ID 1 i dropdown menyn och klicka sedan knappen "Add To" Proposal Index, så kommer "Tunnel" nu visas i "IPSec Proposal index".

Nu går vi tillbaka till föregående val och klickar på knappen "Apply".

Enheten kommer nu att starta om. Och om allt går rätt till och du startat StrongSwan med kommandot "ipsec start" så ska nu D-Link Routern ha kopplat upp sig till Linux Routern.

[redigera] Linux till ZyWALL5/35 ikev1/net2net-psk

Beskrivning

En anslutning mellan subnäten bakom Linux "gateway" och ZyXEL ZyWALL är upprättad, Auktirationen är baserad på Pre-Shared Key (PSK). När en lyckad anslutning av IPsec tunneln är upprättad, (leftfirewall=yes) Så infogas automatiskt en "iptables-baserad" brandväggs regel som släpper igenom den tunnlade trafiken. Om allt gått rätt till så kan nu klienter på Lan 1 pinga Lan 2´s klienter bakom Router B och vise versa.

StrongSwan net2net-psk
[redigera] Linux ipsec.conf
# /etc/ipsec.conf - strongSwan IPsec configuration file
config setup
       plutodebug=control
       charonstart=no

conn %default
       rekeymargin=3m
       keyingtries=1
       authby=secret

conn net-net
       left=10.10.0.1
       leftnexthop=%direct
       leftsubnet=192.168.0.0/24
       leftid=10.10.0.1
       leftfirewall=yes
       right=10.10.0.2
       rightnexthop=%direct
       rightsubnet=192.168.1.0/24
       rightid=10.10.0.2
       pfs=no
       auto=add
[redigera] Linux ipsec.secrets
# /etc/ipsec.secrets - strongSwan IPsec secrets file
10.10.0.1 10.10.0.2 : PSK "0sv+NkxY9LLZvwj4qCC2o/gGrWDF2d21jL"

ZyXEL ZyWALL 5 och 35

I menyn till vänster klicka på SECURITY och sedan på undermenyn VPN.

Under filken "VPN Rules (IKE)". Klicka på "Add Gateway Policy"

[redigera] VPN - GATEWAY POLICY - EDIT
Property
Name                           = linux-zyxel
NAT Traversal                  = Disable

Gateway Policy Information
My ZyWALL
My Address                     = 10.10.0.2

Primary Remote Gateway         = 10.10.0.1
Enable IPSec High Availability = Disable
     Redundant Remote Gateway  =

Authentication Key
Pre-Shared Key                 = 0sv+NkxY9LLZvwj4qCC2o/gGrWDF2d21jL
Local ID Type                  = IP
Content                        = 10.10.0.2

Peer ID Type                   = IP
Content                        = 10.10.0.1

Extended Authentication
Enable Extended Authentication = Disabled

IKE Proposal
Negotiation Mode               = Main
Encryption Algorithm           = 3DES
Authentication Algorithm       = MD5
SA Life Time (Seconds)         = 3600
Key Group                      = DH2
Enable Multiple Proposals      = Disabled

Klicka på knappen "Applay"

Klicka sedan på Add Network Policy

[redigera] VPN - NETWORK POLICY - EDIT
Property
Active                         = Enable
Name                           = slack-zywall
Protocol                       = 0
Nailed-Up                      = Enable
Allow NetBIOS broadcast Traffic Through IPSec Tunnel = Disable
Check IPSec Tunnel Connectivity = Disable

Gateway Policy Information
Gateway Policy                 = linux-zyxel

Virtual Address Mapping Rule:
Active                         = Disabled

Local Network
Address type                   = Subnet Address
Starting IP Adress             = 192.168.1.0
Ending IP Address / Subnet Mask = 255.255.255.0
Local Port
Start                          = 0
End                            = 0

Remote Network
Address type                   = Subnet Address
Starting IP Adress             = 192.168.0.0
Ending IP Address / Subnet Mask = 255.255.255.0
Local Port
Start                          = 0
End                            = 0

IPSec Proposal
Encapsulation Mode             = Tunnel
Active Protocol                = ESP
Encryption Algorithm           = 3DES
Authentication Algorithm       = SHA1
SA Life Time (Seconds)         = 3600
Perfect Forward Secrecy (PFS)  = NONE
Enable Replay Detection        = Disabled
Enable Multiple Proposals      = Disabled

Klicka på knappen "Applay"

Och om allt går rätt till och du startat StrongSwan med kommandot "ipsec start" så ska nu ZyXEL Routern ha kopplat upp sig till Linux Routern.

[redigera] Upprätta VPN

För att sedan starta upp StrongSwan och upprätta VPN-tunneln, skriver du följande på Router B

# ipsec start
Starting strongSwan 4.4.0 IPsec [starter]...

och på Router A skriver du följande:

# ipsec start
Starting strongSwan 4.4.0 IPsec [starter]...
# ipsec up net-net

Och för att kontrollera anslutningen så skriver man följande:

# ipsec status
000 "net-net": 192.168.0.0/24===10.10.0.1...10.10.0.2===192.168.1.0/24; erouted; eroute owner: #1
000 "net-net":   newest ISAKMP SA: #1; newest IPsec SA: #2;
000
000 #2: "net-net" STATE_QUICK_R2 (IPsec SA established); EVENT_SA_REPLACE in 3268s; newest IPSEC; eroute owner
000 #2: "net-net" esp.b3d129e8@10.10.0.2 (168 bytes, 8s ago) esp.471c7508@10.10.0.1 (0 bytes); tunnel
000 #1: "net-net" STATE_MAIN_R3 (sent MR3, ISAKMP SA established); EVENT_SA_REPLACE in 3267s; newest ISAKMP
000

[redigera] Externa länkar

Skapad:

--Minime 23 juli 2008 kl. 14.57 (CEST)

Uppdaterad:

--Minime 4 maj 2010 kl. 14.23 (CEST)

Den här artikeln är hämtad från http://wiki.slackware.se/index.php/StrongSwan
Personliga verktyg