Pound

Pound, c'est à la fois bien, et à la fois pas bien. Mais y'a plus de bien que de pas bien.

Configuration de base

La version officiellement packagée par Debian ne permet pas d'avoir une "bonne" configuration (elle est vulnérable à POODLE par exemple). De plus, la version 2.6 ne propose pas assez de fonctionnalités. Il faut donc compiler la branche 2.6-pcidss, non officielle ou passer sur la branche 2.7, qui n'est pas encore stable. Enfin bon, dans tout les cas, faut recompiler. Je met à disposition un package binaire, voir en bas de page. Concernant la version pcidss, je vous invite à lire ce mail de l'auteur.

Pour avoir une config sécurisée et qui passe les tests de SSLLabs (Janvier 2015), vous pouvez utiliser la configuration suivante:

# Configuration for https://github.com/goochjj/pound/tree/pcidss/v2.6

User            "pound"
Group           "pound"
LogLevel        2

# Alive         30
# TimeOut               120
# ConnTO                30
# Grace         120
# DynScale      0

DHParams        "/etc/pound/dh2048.pem"
ECDHCurve       prime256v1

Control         "/var/run/poundctl.socket"

ListenHTTPS
        Address 0.0.0.0
        Port    443
        Cert    "/etc/pound/certs/simple.org.pem"

        xHTTP                   3
        RewriteLocation         0
        # Convenient headers
        AddHeader               "X-Forwarded-Proto: https"
        AddHeader               "x-Real-Proto: https"
        # Enable HSTS
        AddHeader               "Strict-Transport-Security: max-age=300"
        # Disable compression (BREACH Attack)
        HeadRemove              "Accept-Encoding"

        # Disable Old Protocols (POODLE Attack)
        DisableSSLv2
        DisableSSLv3
        # Disable vulnerable ciphers
        Ciphers                         "EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA+SHA384:EECDH+ECDSA+SHA256:EECDH+aRSA+SHA384:EECDH+aRSA+SHA256:EECDH:EDH+aRSA:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS:!RC4"
        SSLAllowClientRenegotiation     0
        SSLHonorCipherOrder             1

        Service
                BackEnd
                        # It goes to Varnish
                        Address 10.0.42.11
                        Port    81
                End

                Emergency
                        # It goes directly to Apache if varnish doesn't answer
                        Address 10.0.42.11
                        Port    80
                End
        End
End

Packet Debian

Et sinon, je met à disposition sans prétention un petit package binaires (amd-64bit). Ça devrait s'installer tout seul, mais je garantie pas que mon packet soit le plus beau :-) Les sources compilées sont celles du Github pound-2.6-pcidss. A vous de faire le reste, avec un peu de pinning. Dans tout les cas, je ne pense pas que ce packet soit assez sérieux pour être déployé dans un environnement de prod, il risque de poser des petits problèmes de mise à jour. Note: il faut une libc6 récente, celle de Jessie devrait convenir.

Lien: http://static.jeznet.org/pub/pound-2.6-6jez2/pound_2.6-6jez2_amd64.deb

Page last modified on January 20, 2015, at 02:13 AM EST