11

SSLH: HTTPS et SSH sur le même port!

Nous avons vu dans cet article: http://memo-linux.com/ssh-acces-travail-maison/ comment accéder à son serveur de la maison derrière un proxy au travail, en passant par le port 443
Mais voilà, si notre serveur fait aussi office de serveur web avec HTTS, qui lui aussi utilise le port 443, votre serveur apache est dans les choux :(
Cependant une solution existe! j’aime le monde de linux car il y toujours une solution :)
Nous allons donc voir comment faire, avec SSLH:

Installation de SSLH:

apt-get install sslh

Configuration d’Apache
Avant de configurer SSLH, il faut modifier légèrement la configuration d’Apache afin de libérer le port 443.
Dans le fichier de configuration de votre serveur ‘/etc/apache2/ports.conf’, remplacez la ligne :

Listen 443

en

Listen 2443

Dans cet exemple, j’utilise le port 2443 mais vous pouvez en utiliser un autre. Utilisez le même dans la configuration des vhost et de sslh.
Faite de même avec la ligne suivante, dans tout les fichiers de configuration de Virtual host s’ils utilisent HTTPS :

<VirtualHost 127.0.0.1:2443>

Rechargez la configuration de Apache :

/etc/init.d/apache reload

Configuration SSLH
Editez le fichier /etc/default/sslh:

nano /etc/default/sslh

Configurez le selon le nouveau port utilisé par Apache, et ajoutez ‘RUN=yes’ en bas de fichier :

DAEMON_OPTS="-u sslh -p 0.0.0.0:443 -s 127.0.0.1:22 -l 127.0.0.1:2443 -P /var/run/sslh.pid"
RUN=yes

Démarrez ensuite SSLH grâce à :

/etc/init.d/sslh start

Vous pouvez désormais vous connecter en SSH au serveur via le port 443 et le site sécurisé fonctionne toujours.

Évidemment, faut penser à configurer sa/son box/routeur pour la redirection du port 443
port 443 -> 192.168.0.10:443

Enjoy! :)


D'autres articles :

fred

Autodidacte, technicien informatique système et réseau. Utilisateur au quotidien de GNU/Linux. Écoute et joue du Punk'Hard'Blues'n'Roll et me déplace tous les jours avec mon fidèle destrier, qui est le magnifique ZRX1100.

11 Comments

  1. Je viens à l’instant de tester cet outil qui semble à première vue très bien . Je viens de tester la partie SSL qui est correctement redirigée.
    cependant, un export des variables de $_SERVER[] en PHP donne ceci(entre autres) :

    [SERVER_ADDR] => 127.0.0.1 (ca encore je peux me débrouiller avec les noms DNS ..)
    [SERVER_PORT] => 443 (étrange, j’ai configuré 2443, et je vois bien 2443 dans netstat)
    [REMOTE_ADDR] => 127.0.0.1 (impossible de voir d’où provient mon visiteur !)

    donc un petit bémol si on veut faire de la géolocalisation, ou loguer les attaques sur le site …

  2. Salut Nabla,

    pour récupérer les adresses IP des clients, installe le paquet libapache2-mod-rpaf.

  3. Bonjour,
    Merci pour l’astuce, ceci dit je n’arrive pas encore à la faire fonctionner. Le paquet était déjà installé, donc peut être quelque chose à configurer.

  4. Bonjour Nabla,
    fais un essai en ajoutant la ligne suivante dans le fichier de configuration d’Apache /etc/apache2/apache.conf

    LogFormat "%{X-Forwarded-for}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" cached
    
  5. Car c’est sslh qui écoute sur le port 443 ouvert sur internet, qui va orienter soit vers le serveur web sur le port 2443 ou vers le serveur ssh sur le port 22.

  6. Quand on est con, on est con :)

    Merci pour cet éclaircissement nécessaire du Lundi matin …. C’était pourtant évident (après le café :p)

  7. Oui enfin, il suffit de laisser la conf par défaut et de faire une redirection de port via la box pour obtenir le même résultat. Néanmoins, sympa ce soft, je garde sous le coude.

  8. si en sortie les deux services ne sont accéssibles que sur le port 443, comment fais-tu juste avec ta box ? :-)

    La situation de départ, c’est que le post client se trouve dans un réseau entreprise ou seul les ports 80 et 443 du proxy sont authorisés et il doit pouvoir accéder à son serveur SSH via le port 443 et sur cette même machine se trouve un serveur web accéssible sur le port 443.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *