VPN-fli4l

VPN Client mit FLI4L Router

Dies ist eine kurze Zusammenfassung der notwendigen Schritte, um einen VPN-Client hinter einem fli4l-Router/Firewall mit dem externen VPN Server zum Laufen zu bekommen.
Sie erhebt keinen Anspruch auf Vollständigkeit und ist auch keine Garantie dafür dass das anderswo genauso funktioniert – Anwender anderer Router/Firewalls müssen sinngemäss die entsprechenden Einstellungen vornehmen.
Die Systemvoraussetzungen:

  • Heim-Netzwerk mit fli4l Router/Firewall (V 2.0.8)
  • Win-XP (SP2) Client mit Cisco VPN-Client (V 4.0.1)

Der Client wird zunächst ganz normal mit statischer IP Adresse passend zum vorgegebenen Netzwerk konfiguriert – in diesem Fall die Adresse 192.168.0.7, Netmask=255.255.255.0, Gateway 192.168.0.1 (=IP des Routers). Eine statische IP ist von Vorteil weil diese direkt in der Konfiguration des Firewalls im Abschnitt Port-Forwarding verwendet werden kann.
Die Konfiguration des Routers wird hier nur insoweit beschrieben, wie diese von der ’normalen‘ Standardkonfiguration abweicht, die Unterschiede finden sich alle in der Konfigurationsdatei base.txt.
Zunächst muss sichergestellt sein, dass der Service IPSEC im Abschnitt Masquerading aktiviert wird:

MASQ_MODULE_11='ipsec'              # ipsec

Der Abschnitt Port-Forwarding sollte so aussehen:

#------------------------------------------------------------------------------
# Optional package: PORTFW
#
# If you set OPT_PORTFW='yes', you can also edit opt/etc/portfw.sh
#------------------------------------------------------------------------------
OPT_PORTFW='yes'                     # install port forwarding tools/modules
PORTFW_N='2'                        # how many portforwardings to set up
PORTFW_1='50 192.168.0.7 udp' # sample 1: forward ext. port 50 to int.
PORTFW_2='500 192.168.0.7 udp' # sample 2: forward ext. port 500 to int.

Damit das auch klappt, müssen die Ports 50 und 500 im Abschnitt Firewall ausgespart werden:

#------------------------------------------------------------------------------
# Firewall: ports to reject/deny from outside (all served ports)
#
# here we leave 4 ports untouched:
#
#  53 dns
# 113 auth
# 50 vpn
# 500 vpn
#------------------------------------------------------------------------------
FIREWALL_DENY_PORT_N='8'                # no. of ports to reject/deny
FIREWALL_DENY_PORT_1='0:49	REJECT' # privileged ports: reject or deny
FIREWALL_DENY_PORT_2='51:52      REJECT' # privileged ports: reject or deny
FIREWALL_DENY_PORT_3='54:112    REJECT' # privileged ports: reject or deny
FIREWALL_DENY_PORT_4='114:499	REJECT' # privileged ports: reject or deny
FIREWALL_DENY_PORT_5='501:1023  REJECT' # privileged ports: reject or deny
FIREWALL_DENY_PORT_6='5000:5001 REJECT' # imond/telmond ports: reject or deny
FIREWALL_DENY_PORT_7='8000      REJECT' # proxy access: reject or deny
FIREWALL_DENY_PORT_8='20012     REJECT' # vbox server access: reject or deny

Zusätzlich benutzt der VPN-Client auch noch eine Reihe höherer (&gt 10000) Ports, diese werden aber standardmässig nicht geblockt und machen somit keine Probleme.


Weblinks:


28.12.05: Ergänzung für fli4l 3.0:

Mit dem Erscheinen von fli4l Version 3.0 ist die Konfiguration sogar noch einfacher geworden: es wird jetzt lediglich noch die Anpassung des Abschnitts ‚Portforwarding‘ bzgl. der UDP-Ports 50+500 benötigt:

PORTFW_N='2'                          # how many portforwardings to set up
PORTFW_1_TARGET='50'
PORTFW_1_NEW_TARGET='192.168.0.7:50'
PORTFW_1_PROTOCOL='udp'                 # sample 1: port 50 udp f. vpn
PORTFW_2_TARGET='500'
PORTFW_2_NEW_TARGET='192.168.0.7:500'
PORTFW_2_PROTOCOL='udp'                 # sample 2: port 500 udp f. vpn

Die Firewall-Regeln haben nun eine neue Syntax und ein Standardeintrag:

NEW_FW_CONFIG='yes'                  # new style packet filter config: yes/no
INPUT_POLICY='REJECT'            # be nice and use reject as policy
INPUT_ACCEPT_DEF='yes'           # use default rule set
INPUT_LIST_N='1'
INPUT_LIST_1='IP_NET_1 ACCEPT'   # allow all hosts in the local

genügt nun automatisch auch den Anforderungen für VPN. Hier das komplette base.txt File.