PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : IPSec Problem



DaGrrr
19.11.03, 09:29
Hi,

ich habe ein kleines Problemchen mit FreeS/WAN Version 2.04 + x509 Zerts.

- System Debian
- FreeS/WAN selbst kompiliert (Kernel + Programme)

Besonders das hier ist mir schleierhaft:

Nov 18 18:41:32 name1 pluto[1812]: "packetdefault": prepare-client output: /usr/local/lib/ipsec/_updown: `ip route del 0.0.0.0/1 2>&1 ; ip route del 128.0.0.0/1 2>&1' failed (/usr/local/lib/ipsec/_updown: ip: command not found
Nov 18 18:41:32 name1 pluto[1812]: "packetdefault": prepare-client output: /usr/local/lib/ipsec/_updown: ip: command not found)
Nov 18 18:41:32 name1 pluto[1812]: "packetdefault": prepare-client command exited with status 127
Nov 18 18:41:32 name1 pluto[1812]: "packetdefault": route-client output: /usr/local/lib/ipsec/_updown: ip: command not found
Nov 18 18:41:32 name1 pluto[1812]: "packetdefault": route-client output: /usr/local/lib/ipsec/_updown: `ip route add 0.0.0.0/1 via 192.168.0.1 dev ipsec0 && ip route add 128.0.0.0/1 via 192.168.0.1 dev ipsec0' failed
Nov 18 18:41:32 name1 pluto[1812]: "packetdefault": route-client command exited with status 127
Nov 18 18:41:32 name1 pluto[1812]: "private-or-clear#0.0.0.0/0": prepare-host output: /usr/local/lib/ipsec/_updown: `ip route del 0.0.0.0/1 2>&1 ; ip route del 128.0.0.0/1 2>&1' failed (/usr/local/lib/ipsec/_updown: ip: command not found
Nov 18 18:41:32 name1 pluto[1812]: "private-or-clear#0.0.0.0/0": prepare-host output: /usr/local/lib/ipsec/_updown: ip: command not found)
Nov 18 18:41:32 name1 pluto[1812]: "private-or-clear#0.0.0.0/0": prepare-host command exited with status 127
Nov 18 18:41:32 name1 pluto[1812]: "private-or-clear#0.0.0.0/0": route-host output: /usr/local/lib/ipsec/_updown: ip: command not found
Nov 18 18:41:32 name1 pluto[1812]: "private-or-clear#0.0.0.0/0": route-host output: /usr/local/lib/ipsec/_updown: `ip route add 0.0.0.0/1 via 192.168.0.1 dev ipsec0 && ip route add 128.0.0.0/1 via 192.168.0.1 dev ipsec0' failed
Nov 18 18:41:32 name1 pluto[1812]: "private-or-clear#0.0.0.0/0": route-host command exited with status 127


Detallierte Logs + Config siehe Anhang (barf.txt)

Wäre nett wenn da jemand weiterhelfen kann.

Grüße
DaGrrr

[WCM]Manx
19.11.03, 09:41
Hi!

Das ist diese ganze Opportunistic Encryption Sch***e, die Du nich haben möchtest.
Mach mal folgendes in Deine ipsec.conf rein:


## OE ausschalten

conn block
auto=ignore
conn private
auto=ignore
conn private-or-clear
auto=ignore
conn clear-or-private
auto=ignore
conn clear
auto=ignore
conn packetdefault
auto=ignore

.. sonst schaut's gut aus ;)

Manx

DaGrrr
19.11.03, 09:54
Huch, so schnell? :)

ok, ich werde es bei beiden Gegenstellen einbauen.

thx.

Grüße
DaGrrr

DaGrrr
19.11.03, 19:25
Hallo,

die Verbindung "scheint" zu klappen, jedenfalls wirft ein
ipsec auto --status ein "IKEMP SA ethablished" aus, wenn ich vorher ein
ipsec auto --up name-name1 ausgegührt habe.

cat /proc/net/dev wirft wie im Beispiel (barf.txt, siehe oben)
nur Datenpakete über eth0, nicht aber über ipsec0.

Wie kann ich FreeS/WAN nun sagen, dass er über ipsec0 die Pakete senden / empfangen soll?

Eine Firewall habe ich noch nicht aufgesetzt.

Der Aufbau sieht so aus:

Gateway1---Router---Gateway2

Es soll ein Tunnem von Gateway1 zu Gateway2 und umgekehrt aufgebaut werden.
Der Router simuliert in meinem Fall das "Internet", auf dem ich dann auch mitsniffe ob alles
verschlüsselt ist.

Das Routing funktioniert.

Weiß wer Rat?

Grüße
DaGrrr

[WCM]Manx
19.11.03, 20:23
Frage aus Deiner PN:
Bin gerade etwas erschrocken, weil ich nen bissel was zu openvpn gelesen habe...
braucht man GRE und das tun/tap-Device im Kernel ?

Nein/Nein, die IPSEC Sachen reichen aus.

> Wie kann ich FreeS/WAN nun sagen, dass er über ipsec0 die Pakete senden / empfangen soll?

... das ergibt sich normalerweise von allein, wenn Du z.B selber in einem 192er LAN sitzt und durch's Internet ein 10er ereichen willst, geht's halt ohne VPN gar nicht.
Aber poste mal eine Zusammenstellung der IPs aller Beteiligten, eventuell noch die "route"-Ausgabe beider VPN-Gateways.

... so long

Manx

DaGrrr
19.11.03, 20:35
Aber poste mal eine Zusammenstellung der IPs aller Beteiligten, eventuell noch die "route"-Ausgabe beider VPN-Gateways.

Gateway1
eth0 192.168.0.5 ipsec0 192.168.0.5
|
|
eth0 192.168.0.10
Router
eth1 192.168.1.10
|
|
Gateway2
eth0 192.168.1.5 ipsec0 192.168.1.5

genauere Angaben kann ich erst Morgen geben.

Danke dir schonmal ;)

Grüße
DaGrrr

DaGrrr
20.11.03, 09:08
Hier mal die Route von Gateway2:

192.168.2.0 * 255.255.255.0 U 0 0 0 eth1
localnet * 255.255.255.0 U 0 0 0 eth0
localnet * 255.255.255.0 U 0 0 0 ipsec0
default 192.168.1.10 0.0.0.0 UG 0 0 0 eth0

Gateway 1:

192.168.0.0 * 255.255.255.0 U 0 0 0 eth0
192.168.0.0 * 255.255.255.0 U 0 0 0 ipsec0
default 192.168.0.10 0.0.0.0 UG 0 0 0 eth0
(eth1 ist noch net konfiguriert, Kernel)

Grüße
DaGrrr

[WCM]Manx
20.11.03, 09:30
Hi & guten Morgen ;)

Ich hatte meine ersten FreeS/WAN Versuche auch im LAN gemacht.
Folgendes wäre noch interessant. Wie schauen Deine ipsec.conf_s aus?
Möchtest Du ein host2host VPN, oder ein net2net, oder eben host2net erreichen.

Denn Du solltest bei bestehender ipsec-Verbindung einen zusätzlichen route-Eintrag bekommen. Angenommen host2host: Gateway 1


ohne VPN-Verbindung ca. so

Ziel Router Genmask Flags Metric Ref Use Iface
192.168.0.0 * 255.255.255.0 U 0 0 0 eth0
192.168.0.0 * 255.255.255.0 U 0 0 0 ipsec0
default 192.168.0.10 0.0.0.0 UG 0 0 0 eth0

nach ipsec auto --add (oder --up bei auto=add) connection-name ca. so

Ziel Router Genmask Flags Metric Ref Use Iface
192.168.1.5 192.168.0.10 255.255.255.0 UG 0 0 0 ipsec0 ### <= VPN Endpunkt
192.168.0.0 * 255.255.255.0 U 0 0 0 eth0
192.168.0.0 * 255.255.255.0 U 0 0 0 ipsec0
default 192.168.0.10 0.0.0.0 UG 0 0 0 eth0


Grüße

Manx

DaGrrr
20.11.03, 10:00
Ich teste das ganze im LAN und später sollen die beiden als Firewall im Internet stehen und einen Tunnel aufabuen.

Wenn ich mit ipsec auto --up name-name1 eine
Vebindung aufbaue, dann bekomme ich keinen zusätzlichen route-Eintrag. :(

Wo könnte das Problem liegen?

[WCM]Manx
20.11.03, 10:03
... beide ipsec.conf_s posten ;)

Manx

DaGrrr
20.11.03, 10:28
Beide configs sind gleich:

version 2.0 # conforms to second version of ipsec.conf specification

# basic configuration
config setup
# Debug-logging controls: "none" for (almost) none, "all" for lots.
klipsdebug=none
plutodebug=none
interfaces=%defaultroute
uniqueids=yes

conn name-name1
type=tunnel
authby=rsasig
left=192.168.0.5
leftsubnet=192.168.1.0/24
leftnexthop=192.168.0.10
leftrsasigkey=%cert
leftid="C=DE/ST=Domain IT/O=Domain1.com/OU=IT/CN=name.Domain.com/emailAddress=user@Domain.com"
rightrsasigkey=%cert
leftcert=name-cert.pem
rightcert=name1-cert.pem
right=192.168.1.5
rightsubnet=192.168.2.0/24
rightnexthop=192.168.1.10
rightid="C=DE/ST=Domain IT/O=Domain.com/OU=IT/CN=name1.Domain.com/emailAddress=user@Domain.com"
auto=add
keyingtries=1
compress=yes
pfs=yes

conn block
auto=ignore

conn private
auto=ignore

conn private-or-clear
auto=ignore

conn clear-or-private
auto=ignore

conn clear
auto=ignore

conn packetdefault
auto=ignore

/var/auth.log sagt:



Nov 20 12:30:32 name1 ipsec__plutorun: Starting Pluto subsystem...
Nov 20 12:30:33 name1 pluto[312]: Starting Pluto (FreeS/WAN Version 2.04 X.509-1.4.8 PLUTO_USES_KEYRR)
Nov 20 12:30:33 name1 pluto[312]: Using KLIPS IPsec interface code
Nov 20 12:30:34 name1 pluto[312]: Changing to directory '/etc/ipsec.d/cacerts'
Nov 20 12:30:34 name1 pluto[312]: loaded cacert file 'cacert.pem' (1708 bytes)
Nov 20 12:30:34 name1 pluto[312]: Changing to directory '/etc/ipsec.d/crls'
Nov 20 12:30:34 name1 pluto[312]: Warning: empty directory
Nov 20 12:30:34 name1 pluto[312]: loaded host cert file '/etc/ipsec.d/certs/name-cert.pem' (5095 bytes)
Nov 20 12:30:34 name1 pluto[312]: loaded host cert file '/etc/ipsec.d/certs/name1-cert.pem' (5095 bytes)
Nov 20 12:30:34 name1 pluto[312]: added connection description "name-name1"
Nov 20 12:30:34 name1 pluto[312]: listening for IKE messages
Nov 20 12:30:34 name1 pluto[312]: adding interface ipsec0/eth0 192.168.1.5
Nov 20 12:30:34 name1 pluto[312]: loading secrets from "/etc/ipsec.secrets"
Nov 20 12:30:34 name1 pluto[312]: loaded private key file '/etc/ipsec.d/private/name1-key.pem' (1751 bytes)
Nov 20 12:30:49 name1 pluto[312]: "lg-riga" #1: initiating Main Mode
Nov 20 12:30:49 name1 pluto[312]: "lg-riga" #1: Peer ID is ID_DER_ASN1_DN: 'C=DE, ST=Domain IT, O=Domain.com, OU=IT, CN=name.Domain.com, E=user@Domain.com'
Nov 20 12:30:49 name1 pluto[312]: "name-name1" #1: issuer crl not found
Nov 20 12:30:49 name1 pluto[312]: "name-name1" #1: issuer crl not found
Nov 20 12:30:49 name1 pluto[312]: "name-name1" #1: ISAKMP SA established
Nov 20 12:30:49 name1 pluto[312]: "name-name1" #2: initiating Quick Mode RSASIG+ENCRYPT+COMPRESS+TUNNEL+PFS+UP {using isakmp#1}
Nov 20 12:30:50 name1 pluto[312]: "name-name1" #2: prepare-client output: /usr/local/lib/ipsec/_updown: `ip route del 192.168.3.0/24 2>&1' failed (/usr/local/lib/ipsec/_updown: ip: command not found)
Nov 20 12:30:50 name1 pluto[312]: "name-name1" #2: prepare-client command exited with status 127
Nov 20 12:30:50 name1 pluto[312]: "name-name1" #2: route-client output: /usr/local/lib/ipsec/_updown: ip: command not found
Nov 20 12:30:50 name1 pluto[312]: "name-name1" #2: route-client output: /usr/local/lib/ipsec/_updown: `ip route add 192.168.3.0/24 via 192.168.1.10 dev ipsec0' failed
Nov 20 12:30:50 name1 pluto[312]: "name-name1" #2: route-client command exited with status 127
Nov 20 12:31:00 name1 pluto[312]: "name-name1" #2: prepare-client output: /usr/local/lib/ipsec/_updown: `ip route del 192.168.3.0/24 2>&1' failed (/usr/local/lib/ipsec/_updown: ip: command not found)
Nov 20 12:31:00 name1 pluto[312]: "name-name1" #2: prepare-client command exited with status 127
Nov 20 12:31:00 name1 pluto[312]: "name-name1" #2: route-client output: /usr/local/lib/ipsec/_updown: ip: command not found
Nov 20 12:31:00 name1 pluto[312]: "name-name1" #2: route-client output: /usr/local/lib/ipsec/_updown: `ip route add 192.168.3.0/24 via 192.168.1.10 dev ipsec0' failed
Nov 20 12:31:00 name1 pluto[312]: "name-name1" #2: route-client command exited with status 127
Nov 20 12:31:14 name1 pluto[312]: "name-name1" #3: responding to Quick Mode
Nov 20 12:31:20 name1 pluto[312]: "name-name1" #2: prepare-client output: /usr/local/lib/ipsec/_updown: `ip route del 192.168.3.0/24 2>&1' failed (/usr/local/lib/ipsec/_updown: ip: command not found)
Nov 20 12:31:20 name1 pluto[312]: "name-name1" #2: prepare-client command exited with status 127
Nov 20 12:31:20 name1 pluto[312]: "name-name1" #2: route-client output: /usr/local/lib/ipsec/_updown: ip: command not found
Nov 20 12:31:20 name1 pluto[312]: "name-name1" #2: route-client output: /usr/local/lib/ipsec/_updown: `ip route add 192.168.3.0/24 via 192.168.1.10 dev ipsec0' failed
Nov 20 12:31:20 name1 pluto[312]: "name-name1" #2: route-client command exited with status 127
Nov 20 12:31:24 name1 pluto[312]: "name-name1" #3: discarding duplicate packet; already STATE_QUICK_R1
Nov 20 12:31:43 name1 pluto[312]: "name-name1" #3: discarding duplicate packet; already STATE_QUICK_R1
Nov 20 12:31:59 name1 pluto[312]: "nam-name1" #2: max number of retransmissions (2) reached STATE_QUICK_I1. No acceptable response to our first Quick Mode message: perhaps peer likes no proposal
Nov 20 12:32:24 name1 pluto[312]: "name-name1" #3: max number of retransmissions (2) reached STATE_QUICK_R1

/usr/local/lib/ipsec/_updown ist im angegeben Pfad vorhanden.

[WCM]Manx
20.11.03, 10:42
Hi!

Beide confs können sinngemäß gleich sein. Ich halte es immer so, dass left der Rechner ist, auf dem die config läuft, obwohl FreeS/WAN da glaub ich nicht so genau ist:



Gateway1:
config setup => o.k eventuell => interfaces="ipsec0=eth0"
...
conn name-name1
type=tunnel
authby=rsasig
left=192.168.0.5
leftsubnet=192.168.0.0/24 ### logisch, da es das subnet bezeichnet in dem sich Gate1 befindet
leftnexthop=192.168.0.10
leftrsasigkey=%cert
leftid="C=DE/ST=Domain IT/O=Domain1.com/OU=IT/CN=name.Domain.com/emailAddress=user@Domain.com"
rightrsasigkey=%cert
leftcert=name-cert.pem
rightcert=name1-cert.pem
right=192.168.1.5
rightsubnet=192.168.1.0/24 ### Netz des Gate2
rightnexthop=192.168.1.10
rightid="C=DE/ST=Domain IT/O=Domain.com/OU=IT/CN=name1.Domain.com/emailAddress=user@xyz.com"
auto=add
keyingtries=1
compress=yes
pfs=yes


Bei Gate2 left und right eventuell anpassen.
Du hast nun eine net2net Verbindung eingerichtet. Dabei könnte es sein, dass Du von einem Gate das andere Gate nicht pingen kannst (siehe FreeSWAN FAQ). Pingen sollte aber von Netz zu Netz möglich sein. Sonst mach ein Host2Net VPN.

Manx

[WCM]Manx
20.11.03, 11:01
Hi!

Das _updown Script sollte nicht verwendet werden müssen, da es IMHO mit dem ip Kommando arbeitet, das Teil des iproute Paketes ist (Command not found) und iproute für Kernels 2.2.x gedacht ist.
Vielleicht behebt ein interfaces="ipsec0=eth0" die _updown Geschichte.

Manx

DaGrrr
20.11.03, 13:54
Ok, die Änderungen habe ich getätigt.
In der Konsole erscheint nun nach ipsec auto --up name-name1:

112 "name-name1" #2: State_Quick_I1: initiate
010 "name-name1" #2: State_Quick_I1: retransmission; will wait 20s for response
010 "name-name1" #2: State_Quick_I1: retransmission; will wait 40s for response
031 "name-name1" #2: max number of retransmissions (2) reached State_Quick_I1. No acceptable response to our first Quick Mode message: perhaps peer likes no proposal

In auth.log steht unter anderem:

pluto[302]: "name-name1" #1: sent MR3, ISAKMP SA established
pluto[302]: "name-name1" #1 cannont respond to IPSec SA request because no connection is known for 192.168.1.0/24===192.168.1.5[C=DE, ST=Domain IT, ........]===192.168.0.0/24
pluto[302]: "name-name1" #1 Quick Mode I1 message is unacceptable because it uses a previously used Message ID 0x9dd0b6c2 (perhaps this is a duplicated packet)

Hm, sehr seltsam:confused:

Grüße
DaGrrr

[WCM]Manx
20.11.03, 14:42
> Hm, sehr seltsam :confused:

Nein, das ist gar nicht so schlecht, denn Du bist kurz davor ;)

> no connection is known for 192.168.1.0/24===192.168.1.5[C=DE, ST=Domain IT, ........]===192.168.0.0/24

... dann passt's mit den left, leftsubnet, ... Einstellungen nicht 100%

lesen: http://www.freeswan.org/freeswan_trees/freeswan-2.04/doc/faq.html#noconn

Grüße

Manx

PS: das sind nur mehr kleine Einstellungen. Zu beachten ist immer was es werden soll:
Vielleicht wäre ein host2net VPN mal am einfachsten.

[WCM]Manx
21.11.03, 09:43
Hi!

.. wir machen im Thread weiter ;)
Da Du eine Testumgebung hast, und keine Clients hinter den Gateways (wenn ich's richtig verstanden habe) machen wir jetzt ein host2host VPN.

Gateway 1 ipsec.conf:


# basic configuration
config setup
klipsdebug=none
plutodebug=none
interfaces="ipsec0=eth0"
uniqueids=yes

conn name-name1
type=tunnel
authby=rsasig
left=192.168.0.5
leftnexthop=192.168.0.10
leftrsasigkey=%cert
leftid="C=DE/ST=Domain IT/O=Domain1.com/OU=IT..."
rightrsasigkey=%cert
leftcert=name-cert.pem
rightcert=name1-cert.pem
right=192.168.1.5
rightid="C=DE/ST=Domain IT/O=Domain.com/OU=IT..."
auto=add
keyingtries=1
compress=yes
pfs=yes

conn block
auto=ignore
usw.

Gateway2:


conn name-name1
type=tunnel
authby=rsasig
left=192.168.1.5
leftnexthop=192.168.1.10
leftrsasigkey=%cert
leftid="C=..." ## anpassen!
rightrsasigkey=%cert
leftcert=name1-cert.pem
rightcert=name-cert.pem
right=192.168.0.5
rightid="C=..."
auto=add
keyingtries=1
compress=yes
pfs=yes

conn block
auto=ignore
usw.

...versuch's mal damit, dann bau vom Gateway1 den Tunnel auf:
ipsec auto --up name-name1
Bei den IDs (left und right) aufpassen.

Grüße

Manx

PS: Output posten

DaGrrr
21.11.03, 10:12
Ok, änderungen durchgeführt.

Hier die Meldungen:

ipsec auto --up name-name1

104 "name-name1" #1 State_Main_I1: initiate
106 "name-name1" #1 State_Main_I2: sent MI2, expecting MR2
108 "name-name1" #1 State_Main_I3: sent MI3, expecting MR3
010 "name-name1" #1 State_Main_I3: retransmission; will wait 20s for response
003 "name-name1" #1 discarding duplicate packet; already State_Main_I3
010 "name-name1" #1 State_Main_I3: retransmission; will wait 40s for response
003 "name-name1" #1 discarding duplicate packet; already State_Main_I3
031 "name-name1" #1 max number of retransmissions (2) reached State_Main_I3.
Possible authentification failure: no acceptable response to our first encrypted message

[WCM]Manx
21.11.03, 10:23
... und das entsprechende "ipsec barf" am anderen Ende des Tunnels (Gate2) sagt was?

Manx

DaGrrr
21.11.03, 10:27
Hatte leftcert bei Gw2 vergessen zu ändern:

Gw1: ipsec auto --up name-name1

104 "name-name1" #1 State_Main_I1: initiate
106 "name-name1" #1 State_Main_I2: sent MI2, expecting MR2
108 "name-name1" #1 State_Main_I3: sent MI3, expecting MR3
004 "name-name1" #1 State_Main_I4: ISAKMP SA established
112 "name-name1" #2 State_Quick_I1: initiate
003 "name-name1" #2 prepare-host command exited with status 127
003 "name-name1" #2 route-host command exited with status 127
032 "name-name1" #2 State_Quick_I1: internal error
010 "name-name1" #2 State_Quick_I1: retransmission; will wait 20s for response
003 "name-name1" #2 prepare-host command exited with status 127
003 "name-name1" #2 route-host command exited with status 127
032 "name-name1" #2 State_Quick_I1: internal error
010 "name-name1" #2 State_Quick_I1: retransmission; will wait 40s for response
003 "name-name1" #2 prepare-host command exited with status 127
003 "name-name1" #2 route-host command exited with status 127
031 "name-name1" #2 max number of retransmissions (2) reached State_Quick_I1.
No acceptable response to our first Quick Mode message: perhaps peer likes no proposal

DaGrrr
21.11.03, 10:32
Hier die barf Datei.

DaGrrr
21.11.03, 10:43
barf

READY
21.11.03, 23:54
Mh, poste lieber entscheidende Teile der kern.log und auth.log bei aktiviertem Debugging, das ist wesentlich aufschlussreicher als `ipsec barf`!

-ready