Veuillez regarder le schéma suivant.
Comment cela devrait-il fonctionner?
Lorsqu'un distant demande http: // myhost.com:8080/*, la demande doit être transmise au serveur http qui écoute sur le port 8008 de l'interface de bouclage. C'est la partie facile.
Lorsqu'un utilisateur distant demande http: // myhost.com:8080/specialurl ...
Le programme agissant comme une passerelle au niveau de l'application doit pouvoir mettre à niveau la connexion vers une session chiffrée ( sans changer de port )
Après avoir établi une session chiffrée avec le navigateur distant, il doit transmettre la demande au programme C qui écoute sur le port 8000 de l'interface de bouclage
Mes questions sont :
- Avez-vous déjà déployé une solution comme celle-ci sur un environnement de production? Si tu as...
- Quel produit avez-vous utilisé pour servir de passerelle d'application?
- Pourriez-vous fournir un exemple de configuration?
Restrictions strictes :
- Je n'ai pas de contrôle sur le pare-feu , et le seul port par lequel je peux obtenir du trafic externe vers le serveur interne est 8080. Le numéro de port n'est pas pertinent, le fait est qu'il n'y a qu'un seul port ouvert au niveau du pare-feu qui transmet les messages entrants le trafic vers le serveur interne.
- Le serveur interne doit exécuter Linux (actuellement il exécute Debian Lenny)
- Les utilisateurs distants ne devraient avoir besoin que d'un navigateur Web et d'une connexion Internet pour accéder à ce serveur. Cela signifie que la redirection de port inverse via SSH n'est pas une option ici.
- J'ai besoin d'un produit qui a été testé en production et qui peut être facilement déployé. Je ne cherche pas à développer ma propre passerelle d'application (si tel était le cas, je suppose que je poserais cette question à Stack Overflow au lieu de la poser à Server Fault).
Restrictions douces :
- Je voudrais éviter de mettre Apache comme passerelle d'application (même si je suis prêt à le faire si c'est le seul choix possible)
- Si possible, la passerelle d'application doit être un produit logiciel open source mature.
Produits essayés jusqu'à présent comme passerelles d'application (sans succès)
- nginx
- lighttpd
- livre
RFC pertinents
- RFC2817 (... explique comment utiliser le mécanisme de mise à niveau dans HTTP / 1.1 pour lancer Transport Layer Security (TLS) sur une connexion TCP existante. Cela permet au trafic HTTP non sécurisé et sécurisé de partager le même port bien connu ...)
- La RFC2818 (... décrit comment utiliser TLS pour sécuriser les connexions HTTP sur Internet. La pratique actuelle consiste à superposer HTTP sur SSL (le prédécesseur de TLS), en distinguant le trafic sécurisé du trafic non sécurisé par l'utilisation d'un port de serveur différent ... )