190
DerWoWusste

IPsec VPN auf M0n0wall oder pfSense Firewall mit Client oder Router (FritzBox, Cisco)

Mitglied: aqui
11.05.2009
17:28:15 Uhr
19793 Aufrufe
Dieses Tutorial beschreibt wie zwischen freinen VPN Clients oder einem Cisco Router und einer externen freien Firewall Lösung (M0n0wall oder pfsense) ein VPN Tunnel mit IPsec zu realisieren ist, der eine gesichterte Verbindung zweier lokaler Netze mit privaten RFC-1918 IP Adressen über ein öffentliches Netzwerk (Internet) ermöglicht.
Das VPN kann entweder durch einen remoten Client wie z.B. den bekannten Shrew Client erfolgen oder durch eine VPN LAN zu LAN Kopplung 2er oder mehrerer Standorte. Dies entweder mit 2 Monowall/pfSense Router oder auch Fremdfabrikate die IPsec fähig sind was hier an 2 Routern von Cisco und AVM (FritzBox) gezeigt wird.

Allgemeine Einleitung

Das folgende Tutorial lehnt sich sehr eng an die bei Administrator.de bereits bestehenden Tutorials zur Einrichten eines Captive-Portals bzw. Hotspots sowie der VLAN_Routing Lösung, als auch einer weiteren VPN_Lösung_mit_PPTP mit der kostenfreien Software M0n0wall oder pfsense an.
Aus diesem Grunde wird nicht mehr detailiert auf die Installation der M0n0wall oder pfsense Firewall Software auf PC Mainbords oder embedded Mainbords (ALIX) an sich eingegangen, da das die o.a. Tutorials bzw. die M0n0wall/pfsense Anleitungen schon abdecken.

Es wird vorausgesetzt das ein wenig Basiswissen zum Thema Cisco Command Line Interface und IPsec VPNs im allgemeinen vorhanden ist !
Dazu empfiehlt sich als Lektüre das Tutorial von spaceyfreak:
http://www.administrator.de/IPSEC_Protoko ...
Eine Cisco VPN Lösung mit dem PPTP Protokoll beschreibt ein separates Tutorial unter der Rubrik (Cisco Router als VPN Server).

Mittlerweile ist das Angebot auch älterer Cisco Router bei bekannten Auktionsplattformen oder Gebrauchthändlern recht groß. Auch ältere Cisco Systeme supporten mit entsprechenden IOS Images das VPN Protokoll IPsec, so das eine Realisierung von IPsec VPN Tunneln zur Kopplung lokaler Netze und auch mobiler Clients durchaus eine Alternative geworden ist.
Mittlerweile supporten auch bessere Consumer Systeme wie die von LanCom, AVM oder Draytek IPsec, so das man auch dorthin problemlos VPN Tunnel mit IPsec realisieren kann.
Als Beispiel kommt hier stellvertretend die freie Router/Firewall Lösung M0n0wall oder dessen "Schwester" Pfsense zum Einsatz. Weiterführende M0n0wall oder Pfsense Informationen findet man auf der zugehörigen Projektseite:
http://m0n0.ch/
http://www.pfsense.com/
oder den o.a. Tutorials zum Aufbau kleiner Monowall/Pfsense Systeme bei administrator.de.
Versionshinweis: Da die IPsec Funktionen mit den Beta Versionen stabiler laufen sollte bei der M0n0wall die Version 1.3 (derzeit aktuell) und bei pfsense die Version 1.2.3RC1 zum Einsatz kommen !
Der tägliche Einsatz zeigt das auch diese Versionen absolut stabil laufen mit VPNs.

Installation


Als VPN Laboraufbau, der aber 1 zu 1 auf eine funktionierende Internet Konfiguration übertragbar ist, wird folgendes Szenario benutzt:


fcdf4c4646add3cd0de6571fdcb1ab14-mono-cisco.jpg

IP Netze Cisco Router:
Lokales Netzwerk 172.16.1.0 /24
Interface: ETH 0: 172.16.1.254, Maske: 255.255.255.0
Öffentliches Netzwerk 192.168.100.0 /24
Interface: ETH 1: 192.168.100.254, Maske: 255.255.255.0 *)

IP Netze M0n0wall bzw. pfsense:
Lokales Netzwerk 172.32.1.0 /24
Interface: LAN: 172.32.1.254, Maske: 255.255.255.0
Öffentliches Netzwerk 192.168.100.0 /24
Interface: WAN: 192.168.100.1, Maske: 255.255.255.0 *)

(* Als Laboraufbau wird hier nur beispielhalber ein öffentliches Netzwerk mit einer privaten RFC 1918 IP Adresse ersetzt. Diese IP Adressen müssen im real Life Aufbau durch die entsprechenden öffentlichen IP Adressen ersetzt werden !!)


Zugang mit einem VPN Client

Für den mobilen Client VPN Zugang empfiehlt sich unter Windows der freie VPN Client Shrew. Die Support Seiten des Shrew Clients beschreiben die Einrichtung des VPN Zugagngs für remote Mitarbeiter oder Fernzugriff detailiert auf ihren Support Seiten
Einmal für M0n0wall
und einmal für dessen "Schwester" Pfsense
Eine andere freie IPsec VPN SW ist GateProtect mit der unter gleichen Parametern ebenfalls ein VPN Zugang problemlos gelingt. GateProtect biete zudem noch eine Version für PDAs mit Windows Mobile zum Download.
Für Apple Mac OS-x Benutzer bietet sich der freie VPN Client IP_Securitas an. der problemlos mit ein paar Mausklicks den VPN Zugang zur Monowall oder Pfsense sicherstellt.
Die Behandlung einer Router zu Router Netzwerkkopplung zweier IP Netze behandelt das nächste Kapitel.


Konfiguration Cisco Router

Generell funktioniert natürlich eine Kopplung 2er Monowall oder zweier Pfsense Firewall/Router völlig problemlos. Das das IPsec Protokoll aber ein weltweiter Standard ist macht erst die Kopplung mit anderen Systemen eine Netz zu Netz Kopplung erst richtig interessant.
Problemlos funktioniert eine Kopplung zu AVM oder Draytek Router z.B. Als Beispiel sei hier eine IPsec Netz zu Netz Kopplung mit einem Cisco Router beschrieben die bei Firmen recht häufig im Einsatz sind oder auch gebraucht bei eBay für kleines Geld zu erweren sind.

Die VPN IPsec Konfiguration des Cisco Routers sieht entsprechend zum o.a. Aufbau so aus:
01.
02.
hostname CiscoRouter 
03.
04.
clock timezone CET 1 
05.
clock summer-time CEST recurring last Sun Mar 2:00 last Sun Oct 3:00 
06.
07.
ip tcp path-mtu-discovery 
08.
ip dhcp excluded-address 172.16.1.1 172.16.1.149 
09.
ip dhcp excluded-address 172.16.1.200 172.16.1.254 
10.
11.
ip dhcp pool cisco 
12.
   network 172.16.1.0 255.255.255.0 
13.
   default-router 172.16.1.254 
14.
   dns-server 172.16.1.254 
15.
16.
crypto isakmp policy 100 
17.
 hash md5 
18.
 authentication pre-share 
19.
 lifetime 3600 
20.
crypto isakmp key Geheim address 192.168.100.1 
21.
22.
crypto ipsec transform-set esp/des/md5 esp-des esp-md5-hmac 
23.
24.
crypto map vpntest 10 ipsec-isakmp 
25.
 set peer 192.168.100.1 
26.
 set transform-set esp/des/md5 
27.
 match address vpntest 
28.
29.
interface Tunnel0 
30.
 no ip address 
31.
 ip mtu 1440 
32.
 tunnel source Ethernet0 
33.
 tunnel destination 172.32.1.254 
34.
 crypto map vpntest 
35.
36.
interface Ethernet0 
37.
 description Lokales Ethernet 
38.
 ip address 172.16.1.254 255.255.255.0 
39.
40.
interface Ethernet1 
41.
 description Öffentliches Netzwerk (* Test IP Netzwerk) 
42.
 ip address 192.168.100.254 255.255.255.0 
43.
 crypto map vpntest 
44.
45.
ip classless 
46.
47.
ip access-list extended vpntest 
48.
 permit ip 172.16.1.0 0.0.0.255 172.32.1.0 0.0.0.255 
49.
 permit gre host 172.16.1.254 host 172.32.1.254 
50.
51.
end

Konfiguration M0n0wall oder pfSense Router/Firewall für Cisco Router VPN

Alle Einstellungen werden ausschliesslich im Menü VPN -> IPsec vorgenommen. Weitere Einstellungen sind zum Aufbau des Tunnels nicht erforderlich.

53a986794a4178ad9c65f626a533fcfd-vpn1.jpg

3fd53f40e8099f59b9ceeffd7e9a87de-vpn2.jpg

da3e713215abdff8f57f3c5341a18576-vpn3.jpg

Achtung: Als Beispiel ist hier als Encryption immer DES angehakt, da ältere Cisco Router wie 1700er, 2500er etc. z.B. von eBay nur DES Encryption supporten. Hat man ein IOS Image mit 3DES Support kann die Encryption natürlich auf 3DES (Beidseitig !) eingestellt werden was sie auch sollte um höhere Sicherheit zu bekommen.
Ebenso kann der Hash Algorhytmus auch auf SHA gewechselt werden. Beim Cisco ist dann lediglich die Konfig in:

crypto isakmp policy 100
hash sha
!
crypto ipsec transform-set esp/des/sha esp-des esp-sha-hmac
!
crypto map vpntest 10 ipsec-isakmp
set peer 192.168.100.1
set transform-set esp/des/sha
match address vpntest

abzuändern und bei der M0n0wall bzw. pfsense auf SHA im Hash zu klicken ! Beide Verfahren funktionieren problemlos.

Noch eine weitere Anmerkung:
Lässt man die VPN Kopplung auf Seiten der M0n0wall auf ein anderes Interface als dem LAN Interface zu wie z.B. ein WLAN Interface (bei integriertem WLAN wie hier ausführlich beschrieben), oder DMZ oder eines der alternativen OPTx Interfaces der M0n0wall, muss man die Firewall Regeln entsprechend in den Firewall Rules anpassen das Pakete wie z.b. ICMP (Ping) und andere ausgehend erlaubt sind.
Beim Standard LAN Interface der M0n0wall ist das per Default eingestellt ! Auf den o.a. alternativen Interface hingegen, wie bei Firewalls generell üblich, nicht und muss deshalb in den FW Regeln immer beachtet werden !!!
Erste Anlaufstelle beim Troubleshooting ist deshalb immer das Firewall Log der Monowall !

Konfiguration FritzBox Router

Auch die Kopplung der Monowall / pfSense VPN Verbindung mit einer FritzBox ist mit dem gemeinsam verwendeten IPsec Protokoll problemlos möglich.
Die Konfig wurde freundlicherweise vom Forums Mitglied --Spi-- unter dem folgenden Link veröffentlicht:
http://www.ip-phone-forum.de/showthread.p ...
Hier nochmals die FritzBox VPN Konfig:
01.
vpncfg { 
02.
        connections { 
03.
                enabled = yes; 
04.
                conn_type = conntype_lan; 
05.
                name = "name"; //Name der Verbindung 
06.
                always_renew = no; 
07.
                reject_not_encrypted = no; 
08.
                dont_filter_netbios = yes; 
09.
                localip = 0.0.0.0; 
10.
                local_virtualip = 0.0.0.0; 
11.
                remoteip = 0.0.0.0; 
12.
                remote_virtualip = 0.0.0.0; 
13.
                remotehostname = "remotename.dyndns.org"; //IP-Adresse oder Domain der m0n0wall 
14.
                localid { 
15.
                        fqdn = "localname.dyndns.org"; //IP-Adresse oder Domain der fritzbox 
16.
17.
                remoteid { 
18.
                        fqdn = "email@mail.de"; //irgendeine e-mail Adresse, muss aber die gleiche sein, wie später bei m0n0wall unter My identifier 
19.
20.
                mode = phase1_mode_aggressive; 
21.
                phase1ss = "def/3des/sha"; 
22.
                keytype = connkeytype_pre_shared; 
23.
                key = "key"; //Passwort, max 32 byte lang 
24.
                cert_do_server_auth = no; 
25.
                use_nat_t = no; 
26.
                use_xauth = no; 
27.
                use_cfgmode = no; 
28.
                phase2localid { 
29.
                        ipnet { 
30.
                                ipaddr = 192.168.2.0; //lokale Netz der Fritz 
31.
                                mask = 255.255.255.0; 
32.
33.
34.
                phase2remoteid { 
35.
                        ipnet { 
36.
                                ipaddr = 192.168.1.0; //lokale Netz der m0n0wall 
37.
                                mask = 255.255.255.0; 
38.
39.
40.
                phase2ss = "esp-3des-sha/ah-no/comp-no/pfs"; 
41.
                accesslist = "permit ip any 192.168.1.0 255.255.255.0"; //lokale Netz der m0n0wall 
42.
43.
        ike_forward_rules = "udp 0.0.0.0:500 0.0.0.0:500",  
44.
                            "udp 0.0.0.0:4500 0.0.0.0:4500"; 
45.
46.
 
47.
 
48.
// EOF 

Konfiguration M0n0wall oder pfSense Router/Firewall für FritzBox Router VPN

Alle Einstellungen werden ausschliesslich im Menü VPN -> IPsec vorgenommen. Weitere Einstellungen sind zum Aufbau des Tunnels nicht erforderlich.

64ffaf1e27bf218e4304e51613cf6718.jpg


Allgemeine Tipps zum VPN Design

Es gehört zu den goldenen Regeln eines vorausschauenden VPN Designs das lokales und remotes Netzwerk NIEMALS gleich sein dürfen !!
Ist ja auch logisch, da so ein Routing der remoten Netze bei Gleichheit vollkommen unmöglich wird.

Viele Laien wählen als IP Netzwerk die allseits bekannten IP Netze 192.168.1.0 /24 oder 192.168.2.0 /24 usw. da diese oft per Default von allen Consumer DSL (Speedport usw.) und Kabelroutern verwendet werden und zuhauf im Einsatz sind.
192.168.178.0 /24 scheidet ebenfalls aus, da jede FritzBox dieses Netz lokal verwendet ! Niemand macht sich die Mühe das umzustellen und übernimmt oft kritiklos und häufig auch aus Unwissen diese Standard Einstellungen !
Die Folge davon ist das diese IP Netze in vielen öffentlichen Netzen wie in Hotels, Hotspots, Flughäfen und (leider) auch zahllosen Firmennetzen benutzt werden.
Tritt dann IP Adress Gleichheit der remoten und lokalen VPN Netze ein, macht das einen VPN Betrieb technisch unmöglich !

Es ist daher dringend angeraten beim Aufbau und Planung von VPN Zugängen etwas exotischere IP Netze zu wählen die einen IP Adresskonflikt dadurch nahezu unmöglich machen und einen störungsfreien VPN Betrieb ermöglichen bzw. fast garantieren.
Sieht man sich einmal den RFC-1918 etwas genauer an der die IP Adresskontingente für Private Netze global festlegt:
http://de.wikipedia.org/wiki/Private_IP-A ...
erkennt man sehr schnell das man sich nicht mit den immer wiederkehrenden banalen 192.168er IP Adressen abfinden muss, sondern auch noch den Block im 172er und 10er Bereich zur freien Verfügung hat.
Wählt man nun bei der VPN Planung etwas IP netztechnisch "Exotisches" für die Adressierung wie z.B.
192.168.217.0 /24
oder
172.24.1.0 /24
oder
10.168.70.0 /24
oder auch
10.1.68.1.0 /24
oder oder oder....
kann man sich relativ sicher sein das ein IP Adresskonflikt durch gleiche IP Netze doch sehr sehr selten ist und man sich VPN Probleme gleich von Anfang an aus der (IP) Welt schafft und so einen störungsfreien Betrieb des VPNs auf Dauer erreicht !


Abschliessend noch ein wichtiger Hinweis um Frustrationen zu vermeiden:
Betreibt man die M0n0wall direkt an einem DSL Anschluss mit einem DSL Modem d.h. mit einem passiven DSL Modem und keinem Router davor, ist generell der Zugang auf das WAN Interface von außen gesperrt wie bei einer Firewall ja üblich und auch gewollt.
Um eingehende IPsec ESP Verbindungen auf die Monowall/pfSense möglich zu machen muss man den WAN Port für IPsec entsprechend öffnen.
Auch das geht mit einer Firewall Regel auf dem WAN Port die dann UDP 500 (IKE), UDP 4500 (NAT Traversal) und das ESP Protokoll erlaubt:

dc25e349b85fe4cd5cc9f9c01970f23c-monoesp.jpg

Achtung: Das gilt ebenso wenn statt Modem ein einfacher Router vor der Monowall/pfSense steht. Dort muss dann ein Port Forwarding der Ports UDP 500, UDP 4500 und dem ESP Protokoll (VPN Passthrough) auf die dahinterliegende IP Adresse am WAN Interface der Monowall zusätzlich gemacht werden !

Beachtet man diese Feinheiten steht nun einer Nutzung des VPN Tunnels und damit der Kopplung beider lokaler Netze zwischen beiden Geräten nichts mehr im Wege !!!

mehr ...Ähnliche Beiträge