./.

De récentes protections mises en place ont eu pour effet l'interdiction de connexions sortantes hors un trafic parfaitement identifié (HTTP, HTTPS) depuis le lieu de travail de J. Or, pour son travail, elle utilisait régulièrement des connexions ssh vers notre serveur commun.

Reste la solution d'utiliser un port autorisé pour y faire circuler les connexions SSH. Le port 443 nous tend les bras (pas de proxys, en plus). Mais bon, le port 443 est déjà utilisé sur le serveur, par un Apache.

Qu'à cela ne tienne! Il existe une solution, sslh qui permet de multiplexer quelques protocoles connus sur un seul port. Vu l'utilisation que nous en faisons (pas de haute performance), ça sera très bien.

L'installation sur une debian est simplissime. Installer le paquet sslh, arrêter apache, modifier les fichiers suivants:

diff --git a/apache2/ports.conf b/apache2/ports.conf
index 0693a44..76242fe 100644
--- a/apache2/ports.conf
+++ b/apache2/ports.conf
@@ -14,7 +14,7 @@ Listen 80
     # to <VirtualHost *:443>
     # Server Name Indication for SSL named virtual hosts is currently not
     # supported by MSIE on Windows XP.
-    Listen 443
+    Listen 127.0.0.1:443
 </IfModule>
 
 <IfModule mod_gnutls.c>
diff --git a/default/sslh b/default/sslh
index 48b8fa4..ce6ad3a 100644
--- a/default/sslh
+++ b/default/sslh
@@ -9,9 +9,9 @@
 # Once configuration ready, you *must* set RUN to yes here
 # and try to start sslh (standalone mode only)
 
-RUN=no
+RUN=yes
 
 # binary to use: forked (sslh) or single-thread (sslh-select) version
 DAEMON=/usr/sbin/sslh
 
-DAEMON_OPTS="--user sslh --listen 0.0.0.0:443 --ssh 127.0.0.1:22 --ssl 127.0.0.1:443 --pidfile /var/run/sslh/sslh.pid"
+DAEMON_OPTS="--user sslh --listen 192.168.1.42:443 --ssh 127.0.0.1:22 --ssl 127.0.0.1:443 --pidfile /var/run/sslh/sslh.pid"

On redémarre les services par:

bash# service sslh start
bash# service apache2 restart

J'ai choisi inetd parce que au final, je ne suis pas sûr de me connecter si souvent que ça au serveur (et surtout, pas en rafale à 1000 connexions par seconde).

Voici les fichiers complets:

/etc/apache2/ports.conf Téléchargement
# If you just change the port or add more ports here, you will likely also
# have to change the VirtualHost statement in
# /etc/apache2/sites-enabled/000-default
# This is also true if you have upgraded from before 2.2.9-3 (i.e. from
# Debian etch). See /usr/share/doc/apache2.2-common/NEWS.Debian.gz and
# README.Debian.gz

NameVirtualHost *:80
Listen 80

<IfModule mod_ssl.c>
    # If you add NameVirtualHost *:443 here, you will also have to change
    # the VirtualHost statement in /etc/apache2/sites-available/default-ssl
    # to <VirtualHost *:443>
    # Server Name Indication for SSL named virtual hosts is currently not
    # supported by MSIE on Windows XP.
    Listen 127.0.0.1:443
</IfModule>

<IfModule mod_gnutls.c>
    Listen 443
</IfModule>
/etc/default/sslh Téléchargement
# Default options for sslh initscript
# sourced by /etc/init.d/sslh

# Disabled by default, to force yourself
# to read the configuration:
# - /usr/share/doc/sslh/README.Debian (quick start)
# - /usr/share/doc/sslh/README, at "Configuration" section
# - sslh(8) via "man sslh" for more configuration details.
# Once configuration ready, you *must* set RUN to yes here
# and try to start sslh (standalone mode only)

RUN=yes

# binary to use: forked (sslh) or single-thread (sslh-select) version
DAEMON=/usr/sbin/sslh

DAEMON_OPTS="--user sslh --listen 192.168.1.42:443 --ssh 127.0.0.1:22 --ssl 127.0.0.1:443 --pidfile /var/run/sslh/sslh.pid"