StrongSwan
Slackware.SE Wiki
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.
[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.
[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.
[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.
[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
- StrongSwan - Wiki
Skapad:
--Minime 23 juli 2008 kl. 14.57 (CEST)
Uppdaterad:
--Minime 4 maj 2010 kl. 14.23 (CEST)



