• # Ma technique avec apache

    Posté par . En réponse à la dépêche sslh 1.10, la bête noire des censeurs. Évalué à 4.

    J'ai moi-même été confronté à ce problème, serveur web https port 443 + ssh que je voulais faire passer par le même port pour pouvoir faire du ssh à travers le proxy qui ne permet de faire des CONNET que vers un port de destination 443.

    J'utilise au final proxytunnel [1], un apache en proxy et un patch pour apache [2][3] qui permet de corriger le comportement de apache en proxy https (qui est à priori non définit par la rfc).

    Du coup le principe est le suivant:
    - ssh est utilisé pour avoir proxytunnel en tant que ProxyCommand [4]
    - proxytunnel utilise CONNECT à travers le proxy HTTPS récalcitrant vers l'adresse du serveur apache
    - au serveur apache en question reçoit une connection HTTPS contenant un CONNECT HTTP
    qui redirige vers l'adresse IP choisie dans ssh (typiquement localhost:22, à bien vérifier lors
    de la configuration du serveur car possible faille de sécu).
    - la connexion en question est une session ssh classique, qui arrive ensuite sur localhost:22
    du serveur

    On a donc une connexion ssh dans un HTTP CONNECT dans une connexion SSL dans un HTTP CONNECT.

    Ça ne permet pas de faire autant de choses, mais l'avantage de cette méthode est qu'elle ne nécessite pas de démon supplémentaire, seul un serveur apache suffit.
    (et ensuite comme sur un ssh normal, proxy SOCKS over ssh avec socksify qui permet à n'importe quelle application de se passer dans un proxy SOCKS, git ne fonctionne pas, mais ça marche souvent et ça peut bien aider)

    [1] http://proxytunnel.sourceforge.net/
    [2] https://issues.apache.org/bugzilla/attachment.cgi?id=24615
    [3] https://issues.apache.org/bugzilla/show_bug.cgi?id=29744
    [4] ProxyCommand ~/.ssh/proxytunnel -q -X -p evil.proxy:8080 -r friendly.host:443 -d localhost:22