ubuntuusers.de

Problem mit stunnel, Weiterleitung

Status: Gelöst | Ubuntu-Version: Kein Ubuntu
Antworten |

Cermit

Avatar von Cermit

Anmeldungsdatum:
24. Oktober 2006

Beiträge: 352

Hallo zusammen,
ich hatte bis heute auf einem virtuellen Server (Debian Etch) einen Serverdienst laufen, der Anfragen von einem RFID-Lesegerät entgegennahm. Das Lesegerät verschickt allerdings die Anfragen SSL-verschlüsselt auf Port 5909, so dass ich auf dem Server als root mit

1
stunnel -d 5909 -r localhost:5910 &

die Anfragen entschlüsselt und an Port 5910 weitergeleitet habe, auf dem der Serverdienst laucht. Das funktionierte soweit auch zufriedenstellend. Da ich aber heute den Server notgedrungen auf Lenny upgegradet habe, funktioniert die Weiterleitung nicht mehr. Ich kann mich nicht erinnern, damals großartig etwas eingestellt zu haben außer, dass ich ein Zertifikat erzeugt und ins richtige Verzeichnis geschoben habe.

Die /etc/stunnel/stunnel.conf habe ich angepasst:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
; Sample stunnel configuration file by Michal Trojnara 2002-2006
; Some options used here may not be adequate for your particular configuration
; Please make sure you understand them (especially the effect of chroot jail)

; Certificate/key is needed in server mode and optional in client mode
cert = /etc/stunnel/stunnel.pem
;key = /etc/stunnel/mail.pem

; Protocol version (all, SSLv2, SSLv3, TLSv1)
sslVersion = SSLv3

; Some security enhancements for UNIX systems - comment them out on Win32
chroot = /var/lib/stunnel4/
setuid = stunnel4
setgid = stunnel4
; PID is created inside chroot jail
pid = /stunnel4.pid

; Some performance tunings
socket = l:TCP_NODELAY=1
socket = r:TCP_NODELAY=1
;compression = rle

; Workaround for Eudora bug
;options = DONT_INSERT_EMPTY_FRAGMENTS

; Authentication stuff
;verify = 2
; Don't forget to c_rehash CApath
; CApath is located inside chroot jail
;CApath = /certs
; It's often easier to use CAfile
;CAfile = /etc/stunnel/certs.pem
; Don't forget to c_rehash CRLpath
; CRLpath is located inside chroot jail
;CRLpath = /crls
; Alternatively you can use CRLfile
;CRLfile = /etc/stunnel/crls.pem

; Some debugging stuff useful for troubleshooting
debug = 7
output = /var/log/stunnel4/stunnel.log

; Use it for client mode
;client = yes

; Service-level configuration

;[pop3s]
;accept  = 995
;connect = 110

;[imaps]
;accept  = 993
;connect = 143

;[ssmtp]
;accept  = 465
;connect = 25

[https]
accept  = 443
connect = 80
TIMEOUTclose = 0

[rfid]
accept  = 5909
connect = 5910

; vim:ft=dosini

Nun starte ich den Dienst mittels

1
/etc/init.d/stunnel4 start

Auf dem Server läuft ein MySQL-Server sowie phpmyadmin. Zum Test habe ich mal https aktiviert und versucht die Seite über https aufzurufen, was auch funktioniert. Firefox meckert zwar über ein nicht vertrauenswürdiges Zertifikat, was aber ok ist, da beim RFID-Leser standardmäßig die Überprüfung des Zertifikats deaktiviert ist. Wenn sich allerdings der RFID-Leser (192.168.1.39) verbinden will, erhalte ich folgende Fehlermeldung in der log-Datei von stunnel :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
2011.04.01 17:41:52 LOG7[13194:3083364016]: rfid accepted FD=14 from 192.168.1.39:56551
2011.04.01 17:41:52 LOG7[13194:3083172752]: rfid started
2011.04.01 17:41:52 LOG7[13194:3083172752]: FD 14 in non-blocking mode
2011.04.01 17:41:52 LOG7[13194:3083172752]: TCP_NODELAY option set on local socket
2011.04.01 17:41:52 LOG7[13194:3083172752]: Waiting for a libwrap process
2011.04.01 17:41:52 LOG7[13194:3083172752]: Acquired libwrap process #0
2011.04.01 17:41:52 LOG7[13194:3083172752]: Releasing libwrap process #0
2011.04.01 17:41:52 LOG7[13194:3083172752]: Released libwrap process #0
2011.04.01 17:41:52 LOG7[13194:3083172752]: rfid permitted by libwrap from 192.168.1.39:56551
2011.04.01 17:41:52 LOG5[13194:3083172752]: rfid accepted connection from 192.168.1.39:56551
2011.04.01 17:41:52 LOG7[13194:3083172752]: SSL state (accept): before/accept initialization
2011.04.01 17:41:52 LOG7[13194:3083172752]: SSL state (accept): SSLv3 read client hello B
2011.04.01 17:41:52 LOG7[13194:3083172752]: SSL state (accept): SSLv3 write server hello A
2011.04.01 17:41:52 LOG7[13194:3083172752]: SSL state (accept): SSLv3 write certificate A
2011.04.01 17:41:52 LOG7[13194:3083172752]: SSL state (accept): SSLv3 write server done A
2011.04.01 17:41:52 LOG7[13194:3083172752]: SSL state (accept): SSLv3 flush data
2011.04.01 17:41:52 LOG7[13194:3083172752]: SSL state (accept): SSLv3 read client key exchange A
2011.04.01 17:41:54 LOG7[13194:3083172752]: SSL alert (write): fatal: bad record mac
2011.04.01 17:41:54 LOG3[13194:3083172752]: SSL_accept: 1408F119: error:1408F119:SSL routines:SSL3_GET_RECORD:decryption failed or bad record mac
2011.04.01 17:41:54 LOG5[13194:3083172752]: Connection reset: 0 bytes sent to SSL, 0 bytes sent to socket
2011.04.01 17:41:54 LOG7[13194:3083172752]: rfid finished (0 left)

und ich erhalte keine Nachrichtweiterleitung an Port 5910. Eine Internetrecherche nach der Fehlermeldung brachte mich nicht wirklich weiter, da ich bei dem Thema SSL auch nicht so bewandert bin. Was mich auch stutzig macht ist, dass der Port 5909 gar nicht geöffnet scheint:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
nmap 192.168.1.89

Starting Nmap 4.62 ( http://nmap.org ) at 2011-04-01 19:50 CEST
Interesting ports on 192.168.1.89:
Not shown: 1710 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
443/tcp  open  https
3306/tcp open  mysql

Trotzdem nimmt stunnel ja eine Verbindung von dem RFID-Lesegerät an?!

Hat jemand von Euch noch eine Idee woran es liegen könnte und kann mich in die richtige Richtung schubsen?

Gruß Cermit

stiebel

Anmeldungsdatum:
26. September 2008

Beiträge: 120

Hallo Cermit, Das Problem scheint nicht am stunnel zu liegen, sondern an der SSL Verbindung, der eine akzeptiert die Verschlüsselung des andern nicht. Es liegt also meiner Meinung nach am Zertifikat. Google mal nach SSL, denn wie man das Problem löst, weiß ich auch nicht. Kann es sein, dass du vorher stunnel3 hattest und nun bei stunnel4 die Verzeichnisse anders sind?

Dass nmap den stunnel Port 5909 und 5010 nicht anzeigt, ist bei auch so und trotzdem klappt alles.

Gruß Roland

Cermit

(Themenstarter)
Avatar von Cermit

Anmeldungsdatum:
24. Oktober 2006

Beiträge: 352

Für alle, die es mit einem ähnlichen Problem hierhin verschlägt:

Das Problem ist gelöst, indem ich in der stunnel.conf die Wahl der Verschlüsselungsalgorithmen per Zeile

ciphers = DES-CBC3-SHA

eingeschränkt habe. Jetzt funktioniert alles wie vorher. ☺

stiebel

Anmeldungsdatum:
26. September 2008

Beiträge: 120

cool, Danke für's Einstellen. Das hätte ich wohl nicht gefunden.

Gruß Roland

Antworten |