• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

SuSE 9.2 pptpd server, Anmeldung klappt, Verbindung getrennt

Hallo Ihr Linuxbegeisterten!

Ich wollte mit meinen Freunden ein 'permanentes' VPN aufbauen. Einfachheit für meine recht unerfahrenen 'Windows Freunde' habe ich für das nativ Windows kompatible pptp Protokoll entschieden.

Syslog vom Verbindungsversuch und meine config files hängen an diesem Post dran, wenn dies jemand einsehen möchte.

Allgemein zur Konfiguration:
Der entsprechende Server basiert auf SuSE 9.2 und hat 2 Netzwerkkarten:
Code:
eth0 (intern)
IP: 192.168.0.1
Netmask: 255.255.255.0
ohne Gateway / DNS Angabe, da dieser Router ist
Darauf läuft ein Web-, FTP-, Samba, DNS Daemon und noch ein paar Dienste...

Code:
eth1 (hier hängt das DSL Modem dran, also ist die Konfiguration nicht entscheidend - Inet, Routing und Masquading mit SuSEfirewall2 funktioniert auch)
IP: 192.168.1.1
Netmask: 255.255.255.0

Code:
dsl0 (extern)
dynamischer Bezug vom Provider und dyndns.org Adresse

Jetzt kommt der interessante Teil:
Wenn ich vom LAN Aus die VPN Verbindung aufbauen will, geht das, von aussen (sowohl mit aktivierter als auch mit deaktivierter Firewall = gleiches Ergebnis) gehts nicht. Win2k meldet dann den Fehlercode 743. Laut syslog ist die Verbindung zustande gekommen und dann (aus mir nicht ersichtlichen Gründen abgebrochen worden).
Auf der Firewall habe ich den Port 1723 (tcp) geöffnen und mit
Code:
FW_SERVICES_EXT_IP="gre"
das "GRE" Protokoll für die VPN Verbindung auf dem externen Interface erlaubt.
Anzumerken wäre noch, dass der W2k Testverbindungrechner hinter einem Hardware Router steht, in der PoPToP Doku habe ich die Anmerkung gefunden, das dies in den meisten Fällen kein Problem darstellen sollte, da die meisten Router (die in der Standardkonfiguration nach aussen hin alles offen haben) dies unterstützen.
Welche Erfahrungen habt Ihr gemacht? Müssen beide Endpunkt des VPN direkt am Internet hängen oder reicht es wenn der Server direkt angeschlossen ist?
Könnt Ihr vielleicht einen Denk- oder Konfigurationsfehler finden?


mfG
Marcus

syslog beim connect:
Code:
Aug 16 15:50:10 Commander1024 pptpd[27144]: MGR: Launching /usr/sbin/pptpctrl to handle client
Aug 16 15:50:10 Commander1024 pptpd[27144]: CTRL: local address = 192.168.0.1
Aug 16 15:50:10 Commander1024 pptpd[27144]: CTRL: remote address = 192.168.0.21
Aug 16 15:50:10 Commander1024 pptpd[27144]: CTRL: pppd speed = 115200
Aug 16 15:50:10 Commander1024 pptpd[27144]: CTRL: pppd options file = /etc/ppp/options.pptp
Aug 16 15:50:10 Commander1024 pptpd[27144]: CTRL: Client 212.124.44.36 control connection started
Aug 16 15:50:10 Commander1024 pptpd[27144]: CTRL: Received PPTP Control Message (type: 1)
Aug 16 15:50:10 Commander1024 pptpd[27144]: CTRL: Made a START CTRL CONN RPLY packet
Aug 16 15:50:10 Commander1024 pptpd[27144]: CTRL: I wrote 156 bytes to the client.
Aug 16 15:50:10 Commander1024 pptpd[27144]: CTRL: Sent packet to client
Aug 16 15:50:10 Commander1024 pptpd[27144]: CTRL: Received PPTP Control Message (type: 7)
Aug 16 15:50:10 Commander1024 pptpd[27144]: CTRL: 0 min_bps, 1525 max_bps, 32 window size
Aug 16 15:50:10 Commander1024 pptpd[27144]: CTRL: Made a OUT CALL RPLY packet
Aug 16 15:50:10 Commander1024 pptpd[27144]: CTRL: Starting call (launching pppd, opening GRE)
Aug 16 15:50:10 Commander1024 pptpd[27144]: CTRL: pty_fd = 5
Aug 16 15:50:10 Commander1024 pptpd[27144]: CTRL: tty_fd = 6
Aug 16 15:50:10 Commander1024 pptpd[27144]: CTRL: I wrote 32 bytes to the client.
Aug 16 15:50:10 Commander1024 pptpd[27144]: CTRL: Sent packet to client
Aug 16 15:50:10 Commander1024 pptpd[27145]: CTRL (PPPD Launcher): Connection speed = 115200
Aug 16 15:50:10 Commander1024 pptpd[27145]: CTRL (PPPD Launcher): local address = 192.168.0.1
Aug 16 15:50:10 Commander1024 pptpd[27145]: CTRL (PPPD Launcher): remote address = 192.168.0.21
Aug 16 15:50:10 Commander1024 pppd[27145]: pppd 2.4.2 started by root, uid 0
Aug 16 15:50:10 Commander1024 pppd[27145]: using channel 49
Aug 16 15:50:10 Commander1024 pptpd[27144]: CTRL: Received PPTP Control Message (type: 15)
Aug 16 15:50:10 Commander1024 pptpd[27144]: CTRL: Got a SET LINK INFO packet with standard ACCMs
Aug 16 15:50:10 Commander1024 pppd[27145]: Using interface ppp1
Aug 16 15:50:10 Commander1024 pppd[27145]: Connect: ppp1 <--> /dev/pts/4
Aug 16 15:50:10 Commander1024 pppd[27145]: sent [LCP ConfReq id=0x1 <mru 1492> <asyncmap 0x0> <auth chap MS-v2> <magic 0xf55c8d8f> <pcomp> <accomp>]
Aug 16 15:50:10 Commander1024 pppd[27145]: rcvd [LCP ConfReq id=0x0 <magic 0x51ce3081> <pcomp> <accomp> <callback CBCP> <mrru 1614> <endpoint [local:69.60.67.19.9c.25.45.cc.b6.78.84.30.66.33.68.e6.00.00.00.05]>]
Aug 16 15:50:10 Commander1024 pppd[27145]: sent [LCP ConfRej id=0x0 <callback CBCP> <mrru 1614>]
Aug 16 15:50:10 Commander1024 pppd[27145]: rcvd [LCP ConfNak id=0x1 <mru 1500>]
Aug 16 15:50:10 Commander1024 pppd[27145]: sent [LCP ConfReq id=0x2 <asyncmap 0x0> <auth chap MS-v2> <magic 0xf55c8d8f> <pcomp> <accomp>]
Aug 16 15:50:10 Commander1024 pppd[27145]: rcvd [LCP ConfReq id=0x1 <magic 0x51ce3081> <pcomp> <accomp> <endpoint [local:69.60.67.19.9c.25.45.cc.b6.78.84.30.66.33.68.e6.00.00.00.05]>]
Aug 16 15:50:10 Commander1024 pppd[27145]: sent [LCP ConfAck id=0x1 <magic 0x51ce3081> <pcomp> <accomp> <endpoint [local:69.60.67.19.9c.25.45.cc.b6.78.84.30.66.33.68.e6.00.00.00.05]>]
Aug 16 15:50:10 Commander1024 pppd[27145]: rcvd [LCP ConfAck id=0x2 <asyncmap 0x0> <auth chap MS-v2> <magic 0xf55c8d8f> <pcomp> <accomp>]
Aug 16 15:50:10 Commander1024 pppd[27145]: sent [LCP EchoReq id=0x0 magic=0xf55c8d8f]
Aug 16 15:50:10 Commander1024 pppd[27145]: sent [CHAP Challenge id=0x6a <3f348ba42cbdefd0675ea85f8d8d754a>, name = "Commander1024"]
Aug 16 15:50:10 Commander1024 pptpd[27144]: CTRL: Received PPTP Control Message (type: 15)
Aug 16 15:50:10 Commander1024 pptpd[27144]: CTRL: Ignored a SET LINK INFO packet with real ACCMs!
Aug 16 15:50:10 Commander1024 pppd[27145]: rcvd [LCP code=0xc id=0x2 51 ce 30 81 4d 53 52 41 53 56 35 2e 30 30]
Aug 16 15:50:10 Commander1024 pppd[27145]: sent [LCP CodeRej id=0x3 0c 02 00 12 51 ce 30 81 4d 53 52 41 53 56 35 2e 30 30]
Aug 16 15:50:10 Commander1024 pppd[27145]: rcvd [LCP code=0xc id=0x3 51 ce 30 81 4d 53 52 41 53 2d 31 2d 56 4d 4d 45 4e 54 48 41]
Aug 16 15:50:10 Commander1024 pppd[27145]: sent [LCP CodeRej id=0x4 0c 03 00 18 51 ce 30 81 4d 53 52 41 53 2d 31 2d 56 4d 4d 45 4e 54 48 41]
Aug 16 15:50:10 Commander1024 pppd[27145]: rcvd [LCP EchoRep id=0x0 magic=0x51ce3081]
Aug 16 15:50:10 Commander1024 pppd[27145]: rcvd [CHAP Response id=0x6a <c7656ef08f175cf549dc8fe091dab1ea0000000000000000979aee9e03e71f580add36872085292123b19c091904bfa500>, name = "vpnlan"]
Aug 16 15:50:10 Commander1024 pppd[27145]: sent [CHAP Success id=0x6a "S=93977C72FA763D3F4611F5614FD0F5FE9E107329 M=Access granted"]
Aug 16 15:50:10 Commander1024 pppd[27145]: Script /etc/ppp/auth-up started (pid 27159)
Aug 16 15:50:10 Commander1024 pppd[27145]: sent [CCP ConfReq id=0x1 <mppe +H -M +S -L -D -C>]
Aug 16 15:50:10 Commander1024 pppd[27145]: Script /etc/ppp/auth-up finished (pid 27159), status = 0x0
Aug 16 15:50:10 Commander1024 pppd[27145]: rcvd [CCP ConfReq id=0x4 <mppe +H -M -S -L -D +C>]
Aug 16 15:50:10 Commander1024 pppd[27145]: MPPE required but peer negotiation failed
Aug 16 15:50:10 Commander1024 pppd[27145]: Script /etc/ppp/auth-down started (pid 27162)
Aug 16 15:50:10 Commander1024 pppd[27145]: sent [LCP TermReq id=0x5 "MPPE required but peer negotiation failed"]
Aug 16 15:50:10 Commander1024 pppd[27145]: sent [CCP ConfRej id=0x4 <mppe +H -M -S -L -D +C>]
Aug 16 15:50:10 Commander1024 pppd[27145]: rcvd [IPCP ConfReq id=0x5 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-wins 0.0.0.0> <ms-dns3 0.0.0.0> <ms-wins 0.0.0.0>]
Aug 16 15:50:10 Commander1024 pppd[27145]: Discarded non-LCP packet when LCP not open
Aug 16 15:50:10 Commander1024 pppd[27145]: rcvd [CCP ConfAck id=0x1 <mppe +H -M +S -L -D -C>]
Aug 16 15:50:10 Commander1024 pppd[27145]: Discarded non-LCP packet when LCP not open
Aug 16 15:50:10 Commander1024 pppd[27145]: Script /etc/ppp/auth-down finished (pid 27162), status = 0x0
Aug 16 15:50:10 Commander1024 pptpd[27144]: CTRL: Received PPTP Control Message (type: 15)
Aug 16 15:50:10 Commander1024 pptpd[27144]: CTRL: Got a SET LINK INFO packet with standard ACCMs
Aug 16 15:50:10 Commander1024 pptpd[27144]: CTRL: Received PPTP Control Message (type: 12)
Aug 16 15:50:10 Commander1024 pptpd[27144]: CTRL: Made a CALL DISCONNECT RPLY packet
Aug 16 15:50:10 Commander1024 pptpd[27144]: CTRL: Received CALL CLR request (closing call)
Aug 16 15:50:10 Commander1024 pptpd[27144]: CTRL: I wrote 148 bytes to the client.
Aug 16 15:50:10 Commander1024 pptpd[27144]: CTRL: Sent packet to client
Aug 16 15:50:10 Commander1024 pppd[27145]: Modem hangup
Aug 16 15:50:10 Commander1024 pppd[27145]: Connection terminated.
Aug 16 15:50:10 Commander1024 pppd[27145]: Connect time 0.0 minutes.
Aug 16 15:50:10 Commander1024 pppd[27145]: Sent 10 bytes, received 10 bytes.
Aug 16 15:50:10 Commander1024 pppd[27145]: Connect time 0.0 minutes.
Aug 16 15:50:10 Commander1024 pppd[27145]: Sent 10 bytes, received 10 bytes.
Aug 16 15:50:10 Commander1024 pppd[27145]: Exit.
Aug 16 15:50:10 Commander1024 pptpd[27144]: GRE: read error: Bad file descriptor
Aug 16 15:50:10 Commander1024 pptpd[27144]: CTRL: PTY read or GRE write failed (pty,gre)=(-1,-1)
Aug 16 15:50:10 Commander1024 pptpd[27144]: CTRL: Client 212.124.44.36 control connection finished
Aug 16 15:50:10 Commander1024 pptpd[27144]: CTRL: Exiting now
Aug 16 15:50:10 Commander1024 pptpd[26986]: MGR: Reaped child 27144

/etc/pptpd.conf:
Code:
speed 115200
option /etc/ppp/options.pptp
ppp /usr/sbin/pppd

debug
localip 192.168.0.1
remoteip 192.168.0.20-50

options.pptp:
Code:
lock
debug
nologfd
noauth
name pptpdev
nobsdcomp
proxyarp
refuse-pap
refuse-mschap
require-mschap-v2
require-mppe-128
ms-dns 192.168.0.1
ms-wins 192.168.0.1
defaultroute
name Commander1024
 

Frankie777

Advanced Hacker
auf die Schnelle:
FW_SERVICES_EXT_IP="gre"
Which UDP services _on the firewall_ should be accessible from untrusted networks?
Usually for VPN/Routing which END at the firewall
Example: "esp"

Das ist für UDP Verbindungen
GRE ist aber Protokoll 47, so gehts mit iptables
#iptables -A INPUT -i $I_EXT -p 47 -m state --state NEW -j ACCEPT

Nimm lieber OpenVPN, das gibt es auch für Windows, ist sicherer und verbraucht ohne Last nur ein paar Byte.
Dazu gibt es nicht dauernd den Ärger weil irgendwelche Router das Mickysaft-VPN mit Protokoll 47 nicht durchlassen.
 
OP
C

Commander1024

Newbie
Danke für die schnelle Antwort!

Also gibt es in der Tat öfters das Problem, dass Router auf Clientseite die ganze Geschichte zum Scheitern verurteilen? Das hatte ich mir fast schon gedacht... dann will ich PPTP auch net mehr :twisted:

Ok, next try:
Von den vielen Alternativen (OpenSWAN, FreeS/WAN, OpenVPN, etc, etc.) empfiehlst Du mir OpenVPN? Was brauch ich da für die Win-Clients? Meine Freunde haben es ja nicht so richtig raus ...
Schön wäre es für sie, Prog runterladen, installieren, Daten (die ich ihnen gebe) einhacken und fertig ... :shock:

mfG
Marcus
 

Frankie777

Advanced Hacker
zum Thema Router:
http://www.zyxel.ch/knowledgebase.cfm?action=detail&lang=d&id=1300

Du mußtest den Server aufsetzten und die Schlüssel verteilen.
Für Win gibt es eine GUI, ein Knopfdruck und die Leitung steht.
Der Aufwand es einzurichten ist höher als das Win-Modul für MS-VPN zu benutzen.

Dafür ist es sicherer und sehr stabil und deutlich universeller.

unter http://openvpn.net/howto.html ist das wunderbar erläutert.
 
OP
C

Commander1024

Newbie
Hallo Frankie777,

Ich sehe gerade beim Stöbern durch Doku unt tuts, dass immer nur die Rede von 2 Endpunkten die Rede ist also 2 Rechner (oder 2 Netze) mit einander zu verknüpfen ... Geht es auch, 3 Freunde über den Server und OpenVPN mit in mein lokales Netz zu holen? Die route-Einstellungen bekomm ich dann wohl hin. Muss ich dann für jeden Freund ein eigenes tun oder besser tap device erstellen? für jedes device einen (bzw. 2 eigene) Ports öffnen (in der Firewall)?

Wenn Du von OpenVPN Ahnung hast, wäre es nett, diese grundsätzlichen Fragen eben zu beantworten - ich will ja keine fertige config von Dir wissen - aber es würd natürlich viel sucherei ersparen ...

mfG
Marcus
 

Frankie777

Advanced Hacker
zum edit
tun routing
tap bridge

Du setzt bei Dir einen OpenVPN Server auf, da können sich x-Clients auf einen Port einwählen. Die Clients können sich auch untereinander unterhalten, wenn Du das entsprechend konfigurierst.


Next, ask yourself if you would like to allow network traffic between client2's subnet (192.168.4.0/24) and other clients of the OpenVPN server. If so, add the following to the server config file.
client-to-client
push "route 192.168.4.0 255.255.255.0"
This will cause the OpenVPN server to advertise client2's subnet to other connecting clients.
 
Oben