Stunnel: SSL-à-SSL? (Pour smtp / imap)

Comment puis-je configurer Stunnel pour accéder aux connexions SSL d'accpet, puis me connecter à un port SSL sur un autre serveur?

Voici ma configuration:

Le serveur de notre ISP, «Serveur de messagerie», supporte smtp / imap sur SSL. (Pas de démarrage. Un peu plus de ssl.)

Mais, j'ai un tas de machines clientes qui ne font que faire confiance à un certificat racine spécifique, interne. Ainsi, ils ne peuvent pas se connecter à "Mail Server".

Pour ces machines clients, j'aimerais faire un hôte dédié "Mail Tunnel" qui utilise Stunnel pour écouter avec un certificat SSL signé et simplement transférer les données vers "Mail Server" en utilisant une 2ème connexion SSL.

Est-ce possible?

Quelles seraient les étapes spécifiques pour Ubuntu Server 10.10? (Je ne connais pas trop la configuration persistante du service.)

Je vous remercie

Je ne connais pas les détails de 10.10, mais je vais supposer qu'il soit très proche de Debian.

Une chose que vous pourriez faire, est essentiellement configurée pour séparer les configurations stunnel. Sur cela, il accepte SSL et l'achemine vers un port local, et un autre qui écoute sur ce port local, puis crée des connexions SSL à l'hôte externe. Ces deux ne peuvent être liés à l'interface de bouclage que si les données non chiffrées ne traversent pas le réseau. Il suffit de garder à l'esprit que vous faites essentiellement une attaque MITM contre vous-même. J'ai utilisé une configuration comme celle-ci pendant que j'étais en train de diagnostiquer certains problèmes avec un service Web qu'un gars se développait.

La version emballée de stunnel dans Debian / Ubuntu devrait rendre cela facile. Les scripts de démarrage commenceront fondamentalement une instance de stunnel pour chaque fichier de configuration (* .conf) trouvé dans / etc / stunnel4. Vous pouvez donc mettre les deux configurations distinctes dans / etc / stunnel4, générer vos clés, redémarrer le stunnel et fonctionner.

Voici donc la première configuration qui accepte le SSL

; /etc/stunnel/ssl_in.conf ; Certificate/key is needed in server mode and optional in client mode cert = /etc/stunnel/srv1.keys ; 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 = /srv1.pid debug = 4 output = /var/log/stunnel4/ssl_in.log ; Some performance tunings socket = l:TCP_NODELAY=1 socket = r:TCP_NODELAY=1 [ssl_in_imap] accept = 993 connect = localhost:10993 [ssl_in_smtp] accept = 587 connect = localhost:10587 

Votre deuxième instance crée des connexions sortantes.

 ; /etc/stunnel/ssl_out.conf ; 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 = /clt1.pid ; Some performance tunings socket = l:TCP_NODELAY=1 socket = r:TCP_NODELAY=1 client=yes CAfile = clt1.ca verify = 0 [ssl_out_imap] accept = 10993 connect = remote_server:993 [ssl_out_smtp] accept = 10587 connect = remote_server:10587 

Pour générer le nom du fichier.keys pour le serveur.

 # Create a new key and preparte a CSR openssl req -new -keyout filename.pem -out filename.csr # Remove the passphrase from the key openssl rsa -in filename.pem -out filename.key # Self sign openssl x509 -in filename.csr -out filename.cert -req -signkey filename.key -days 720 # combine files to get the keys file stunnel needs. cat filename.key filename.cert > filename.keys 

Votre fichier ressemblera à ceci.

 -----BEGIN RSA PRIVATE KEY----- MIICXAIBAAKBgQDkwzyKrPRXGyvEgITm/7oC9fDU4Y7L9mtMXmcIR98cp0g1ndcz ... qhP3y97k67EVdSC+92pIGrAL7kBWckpJ2HP1El4KeZg= -----END RSA PRIVATE KEY----- -----BEGIN CERTIFICATE----- MIICHzCCAYgCCQDq/33qh7Dq5TANBgkqhkiG9w0BAQUFADBUMQswCQYDVQQGEwJV ... ebbhvhYLx1KkhD8/dXEbU0+kNg== -----END CERTIFICATE-----