Vous êtes ici : Accueil / Debian GNU/Linux / Serveurs / Autres / Installer SSLH sur Debian

Installer SSLH sur Debian

Par Pierre-Yves Landuré Dernière modification 28/01/2014 13:11

SSLH est un multiplexeur SSH / HTTPS / OpenVPN / Tinc / XMPP permettant d'utiliser tous ces protocoles simultanément sur le port 443 d'un serveur. Le port 443 (HTTPS) est historiquement non restreint sur des réseaux fortement sécurisés. L'utilisation de SSLH permet de contourner les limitations de nombreux réseaux d'entreprise.

Ce guide est testé sur:

  • Debian 7.0 Wheezy

Prérequis

Ce guide nécessite:

Ce guide recommande:

Avertissement

Une fois SSLH installé, toutes les connexions HTTPS à Apache 2 apparaitront provenir de l'adresse IP locale 127.0.0.1. Il n'y a aucun moyen d'éviter cela. C'est l'inconvénient majeur de cet outil.

Paramètres

Renseignez l'interface réseau ou écoutera le multiplexeur:

SSLH_DEV="eth0"

Renseignez l'adresse IP et port du serveur SSH:

SSH_SERVER="127.0.0.1:22"

Renseignez l'adresse IP et port du serveur OpenVPN (laissez vide si aucun):

# OPENVPN_SERVER="127.0.0.1:1194"

Installation

Détectez l'adresse IP d'écoute du multiplexeur:

SSLH_IP="$(command ifconfig "${SSLH_DEV}" \
  | command grep 'inet ' \
| command sed -e 's/^.*inet [^:]*:\([^ ]*\) .*$/\1/')"

Préparation de l'environnement

Installez les logiciels nécessaires:

DEBIAN_FRONTEND='noninteractive' command apt-get install sslh

Configuration d'Apache 2

Désactivez les ports HTTPS par défaut d'Apache 2:

command sed -i \
    -e 's/\([^#]\)\(NameVirtualHost .*:443\)/\1#\2/g' \
  '/etc/apache2/ports.conf'

Configurez Apache 2 pour écouter le port 443 de l'IP locale (127.0.0.1):

SSL_IP="127.0.0.1"
if [ -z "$(command grep "NameVirtualHost.*${SSL_IP}:443" '/etc/apache2/ports.conf')" ]; then command sed -i -e "/Listen[\t ]*443/a\\ NameVirtualHost ${SSL_IP}:443" '/etc/apache2/ports.conf' fi

Mettez à jours les hôtes virtuels concernés:

command sed -i \
    -e 's/^<VirtualHost.*:443/#&/g' \
    -e "/#<VirtualHost.*:443/a\\
<VirtualHost ${SSL_IP}:443>" \
  '/etc/apache2/sites-available/'*

Vérifiez que la nouvelle configuration est valide:

command apache2ctl -t

Configuration

Configurez l'adresse IP d'écoute du multiplexeur:

command sed -i \
-e "s/--listen[ \t][^ \t]*[ \t]/--listen ${SSLH_IP}:443 /" \
  '/etc/default/sslh'

Si nécessaire, configurez l'adresse IP du serveur SSH:

if [ -n "${SSH_SERVER}" ]; then
  command sed -i \
-e "s/--ssh[ \t][^ \t]*[ \t]/--ssh ${SSH_SERVER} /" \
'/etc/default/sslh'
fi

Si nécessaire, configurez l'adresse IP du serveur OpenVPN:

if [ -n "${OPENVPN_SERVER}" ]; then
  command sed -i \
-e "s/--openvpn[ \t][^ \t]*[ \t]//" \
-e "s/\(--ssh[ \t][^ \t]*[ \t]\)/\1--openvpn ${OPENVPN_SERVER} /" \
'/etc/default/sslh'
fi

Activez le multiplexeur:

command sed -i \
-e 's/RUN=.*$/RUN=yes/' \
'/etc/default/sslh'

Initialisation

Rechargez la configuration d'Apache 2:

service apache2 force-reload

Démarrez le multiplexeur:

service sslh start

Utilisation

SSLH permet de se connecter en SSH sur le port 443. Utilisez l'option -p de la commande ssh:

command ssh -p 443 "www.domain.com"

Pour OpenVPN, modifiez le fichier de configuration du client pour se connecter sur le port TCP 443:

proto tcp
remote vpn.domain.com 443

Remarque: Sur Mac OS X, les fichiers de configuration de Tunnelblick se trouvent dans "/Library/Application Support/Tunnelblick/Shared"

Remerciements