[b]FreeBSD/KAME IPSEC Tunneling to Linux/FreeSwan HOWTO.[/b]
Versie 0.1 door SiD
In deze howto beschrijf ik hoe je een IPSEC VPN tunnel kunnen bouwen tussen twee netwerken die zijn afgeschermd door enerzijds een FreeBSD/KAME server en anderzijds een Linux/FreeSwan server.
Voor het gemak ga ik van het volgende uit:
Netwerk A -> FreeBSD/KAME
Public IP : 100.100.100.100
Private IP : 192.168.0.254
Private Net : 192.168.0.0/24
Netwerk B -> Linux/FreeSwan (Bestaande server met FreeSwan geïnstalleerd)
Public IP : 200.200.200.200
Next Hop : 200.200.200.199
Private IP : 192.168.1.254
Private Net : 192.168.1.0/24
[b]Kernel aanpassen[/b]
Om IPSEC te kunnen gebruiken dient eerst ondersteuning voor IPSEC in de kernel worden geladen.
Voeg hiervoor de volgende regels toe aan de kernelconfiguratie
[file]options IPSEC
options IPSEC_ESP[/file]
Compile en installeer een nieuwe kernel en herstart de server. Zie [url=http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig.html]FreeBSD handboek[/url] of [url=http://www.bsdfreaks.nl/index.php/front_howto/53/9][FreeBSD] Hoe een kernel te bakken?[/url]
[b]Aanpassen rc.conf[/b]
Zorg dat gateway_enable aan staat in “/etc/rc.conf”
[file]gateway_enable=”YES”[/file]
[b]Installeer racoon[/b]
Racoon is een IKE (ISAKMP/Oakley Key) management protocol voor het uitwisselen van sleutels met andere hosts.
Installeer racoon vanuit de ports als volgt:
[shell]cd /usr/ports/security/racoon
make install clean[/shell]
Onder de directory “/usr/local/etc/racoon” staan nu twee bestanden nl. “psk.txt.dist” en “racoon.conf.dist” kopieer deze naar respectievelijk “psk.txt” en “racoon.conf” en stel de rechten van deze bestanden in op (600)
[shell]cp /usr/local/etc/racoon/psk.txt.dist /usr/local/etc/racoon/psk.txt
cp /usr/local/etc/racoon/racoon.conf.dist /usr/local/etc/racoon/racoon.conf
chmod 600 /usr/local/etc/racoon/*[/shell]
[b]Configuratie Racoon[/b]
Open het bestand “racoon.conf” in een editor en voeg de volgende gegevens toe
[file]remote [200.200.200.200]
{
exchange_mode main;
doi ipsec_doi;
situation identity_only;
my_identifier address;
lifetime time 30 min;
proposal_check obey;
proposal
{
encryption_algorithm 3des;
hash_algorithm sha1;
authentication_method pre_shared_key;
dh_group 2;
}
}
sainfo [100.100.100.100] any [200.200.200.200] any
{
pfs_group 2;
lifetime time 3600 sec;
encryption_algorithm 3des;
authentication_algorithm hmac_sha1;
compression_algorithm deflate;
}[/file]
Open “psk.txt” in een editor en voeg de volgende regel toe:
[file]xxx.xxx.xxx.xxx password[/file]
xxx.xxx.xxx.xxx = IP nummer van de VPN host aan de andere kant
password = Gedeeld wachtwoord
Automatisch starten van Racoon
Maak onder “/usr/local/etc/rc.d/098racoon.sh” een bestand aan met de volgende regel
[file]/usr/local/sbin/racoon -f /usr/local/etc/racoon/racoon.conf -l /var/log/racoon.log[/file]
[b]Configuratie IPSEC Policy[/b]
Maak onder “/usr/local/etc/rc.d/099ipsec.sh” een bestand aan met de volgende regels
[file]#!/bin/sh
#
# Set up IPSEC SA/SP database
SRC=100.100.100.100
DST=200.200.200.200
SRCNET=192.168.0.0/24
DSTNET=192.168.1.0/24
SETKEY=”/usr/sbin/setkey”
$SETKEY -FP
$SETKEY -F
$SETKEY -c << EOF
flush;
spdflush;
spdadd ${SRCNET} ${DSTNET} any -P out ipsec esp/tunnel/${SRC}-${DST}/require;
spdadd ${DSTNET} ${SRCNET} any -P in ipsec esp/tunnel/${DST}-${SRC}/require;
EOF[/file]
Stel de rechten van dit bestand in op (700)
[shell]chmod 700 /usr/local/etc/rc.d/099ipsec.sh[/shell]
[b]Configuratie FreeSwan[/b]
Open het bestand "/etc/ipsec.conf" in een editor en voeg de volgende regels toe
[file]conn kame-freeswan
auto=start
type=tunnel
left=100.100.100.100
leftsubnet=192.168.0.0/24
right=200.200.200.200
rightsubnet=192.168.1.0/24
rightnexthop=200.200.200.199
keylife=30m
authby=secret[/file]
Open het bestand "/etc/ipsec.secrets" in een editor en voeg de volgende regel toe
[file]200.200.200.200 100.100.100.100 : PSK "password"[/file]
[b]Testen van de VPN tunnel[/b]
Ping vanaf de FreeBSD server het private IP nummer van de Linux server aan de andere kant van de tunnel
[shell]ping -S 192.168.0.254 192.168.1.254[/shell]
[b]Firewall[/b]
Het is verstandig om de VPN servers tevens als Firewall te gebruiken. Hier zijn echter genoeg howto's over te vinden dus ga ik hier verder niet op in. Echter wanneer je de Firewall rules gaat instellen moet je zorgen dat het volgende verkeer word toegestaan:
· Voor ESP moet protocol 50 (ESP) toegestaan worden tussen beide Public IP's
· Voor IKE moet UDP poort 500 toegestaan worden tussen beide Public IP's
· Verder moeten er rules aanwezig zijn die verkeer tussen beide private netwerken toestaan
Anonymous says
http://www.allard.nu/openbsd