Linux Related

HOME
UP

 

 

 

 

 

IPSec VPN quick howto FreeS/WAN freeswan

Packetfilter:
============

Firewalls müssen erlauben:

#IPSec - VPN Routing (IP Protokoll 50:ESP, 51:AH):
forward: 62.154.193.254      62.154.193.150  any    50    ACCEPT -b
forward: 62.154.193.254      62.154.193.150  any    51    ACCEPT -b
forward: 62.154.193.254      62.154.193.150  500    udp   ACCEPT -b


Erst manual keyed testen.

Manual-keyed:
=============
- man nehme Beispiel-Config
- insbesondere Interfaces kontrollieren
  z.B.: interfaces="ipsec0=eth0"  
- Es muß die Verbindung ("conn") manual gestartet werden:
  manualstart="dx-tax"
- Die Verbindung braucht min. left und right (IPs der
  Interfaces der Gateways), meist leftnexthop und
  rightnexthop (Ermitteln: wen verwendet left als
          IP-Gateway/Nexthop? Also 1. traceroute IP)
- keys sind wie laut Beispiel zu machen, also eine conn
  z.B.:
conn dx-tax
        left=62.154.193.254
        leftnexthop=62.154.193.190
        right=62.154.193.150
        rightnexthop=62.154.193.149
        spi=0x200
        esp=3des-md5-96
        espenckey=0x01234567_89abcdef_02468ace_13579bdf_12345678_9abcdef0
        espauthkey=0x12345678_9abcdef0_2468ace0_13579bdf
        auto=add
(Dabei ist Indent wichtig: conn muß rechts, Rest eingerückt sein!
Kommentarzeilen dürfen nur am Ende eines Blockes stehen (?).)

Dieses File muß auf beiden (left+right) Maschinen gleich sein
(scp rules here :)).

/etc/rc.d/ipsec start
(beide Seiten) fährt den Kram dann komplett hoch. Die Firewalls
müssen proto=50 durchlassen.

Auto-Keyed connection: 
======================

Wenn die manual keyed geht, umschalten auf
auto:
ipsec manual --down <conn>
(beide Seiten!)
Falls dabei routen gesetzt wurden, müssen die noch entfernt
werden:
route del ....
(--down löscht die nicht automatisch)

ipsec auto --status
zeigt, ob auto=add in /etc/ipsec.conf geklappt hat, sonst
ipsec auto --add <conn>
(jeweils auf beiden Seiten kontrollieren und addieren)
(in /etc/ipsec.conf manualstart="<conn>" auskommentieren, evtl.
  auch gleich /etc/rc.d/ipsec restart)

Jetzt muß in /etc/ipsec.secrets ein passender (oder default) Key
stehen, z.B.:
<left> <right> "somesecretbytes"

dann von einer Seite aus hochfahren (tail -f syslog)
ipsec auto --up <conn>

Die andere bekommt udp port 500 Packete, und VPN kommt hoch
(sollte :))



RSA Authentication
==================

- shared-secret Connection sollte schon funktionieren, sonst
  Debugging schwierig!
- jede Seite hat einen "Namen", z.B. FQDN 
- zu diesem Namen (der auch "id" heißt) wird ein RSA Key
  generiert (einer auf beiden Seiten), und dieser wird in eine
  Datei /etc/ipsec.<hostname>.secrets angefügt.
- Dieser Key muß folgendermaßen aussehen (ident wieder wichtig!):
  @steffen.dx.bedi.net : RSA {
  <ausgabe von "ipsec rsasigkey --verbose 1024" (STDOUT)>
  }
- SuSE 6.4: ln -s /usr/lib/ipsec/ /usr/local/lib/
- Erzeugungs-Einzeiler (z.B., muß nicht hostname -f sein!):
  ( echo "@`hostname -f` : RSA {" ; \
    ipsec rsasigkey --verbose 1024 ; \
    echo " }" \
  ) >> /etc/ipsec.`hostname`.secrets
  (dauert, dauert, dauert :))
  muß auf beiden Maschinen (jeweils einmal, oder einmal für jede
  Connection/Tunnel) gemacht werden
- diese Datei muß nun in /etc/ipsec.secrets gesourct werden:
  include /etc/ipsec.*.secrets
- aus der Datei muß die id (name) und die Zahl (hex) nach
  (#pubkey= für rsasigkey) gemerkt werden (gpm rules)
- dann in /etc/ipsec.conf:
  authby=rsasig
  rightrsasigkey=0x.....
  rightid=<name>
  (wie in ipsec.*.secrets: @FQDN für id)
  (und dito left; auf beiden wieder symetrisch. Dabei die
  ipsec.id.secrets natürlich nicht kopieren!!!)
  die symetrischen Keyinfos müssen entfernt werden:
  spi=0x200;esp=???;espenckey=???;espauthkey=0x???
  Zeilen auskommentieren
- /etc/rc.d/ipsec restart
- ipsec auto -add <conn> sollte via auto=add (in ipsec.conf)
  schon erledigt sein
- Auf einer Seite:
  ipsec auto --up <conn>
- Beim Debuggen am besten immer /etc/rc.d/ipsec restart machen,
  um sauberen Status zu erreichen!

 

(c) by Wolfgang Zerzawy 07-Mai-08 12:11   

XING