Ajouter un serveur WSGI devant PaSSHport

PaSSHport est basé sur Flask, le serveur embarqué ne peut gérer qu'une seule connexion à la fois. Il faut donc éviter de l'utiliser tel-quel en environnement de production…

Afin de gérer plus de requêtes, on duplique le nombre de processus PaSSHport pour chaque connexion. Apache permet de faire ça avec WSGI… Et c'est finalement assez simple à activer.

Installation

Su Debian :

apt install apache2 libapache2-mod-wsgi-py3

Configuration

Créez un nouveau vhost apache avec ce contenu :

Listen 5000
<VirtualHost *:5000>
    ServerName passhport

    SSLEngine               on
    SSLCertificateFile      /home/passhport/certs/cert.pem
    SSLCertificatekeyFile   /home/passhport/certs/key.pem

    WSGIDaemonProcess passhport user=passhport group=passhport threads=5
    WSGIScriptAlias / /home/passhport/passhport/tools/passhportd.wsgi
    <Directory /home/passhport/ >
        WSGIProcessGroup passhport
        WSGIApplicationGroup %{GLOBAL}
        # passhportd don't provides authentication, please filter by IP
        Require ip 127.0.0.1/8 ::1/128
    </Directory>
</VirtualHost>

Activez

Tout d'abord, tuez le processus passhportd existant

pkill passhportd

Désactivez le site par défaut, et activez celui-ci:

a2dissite 000-default
a2enmod ssl
a2ensite passhport.conf

systemctl restart apache2

et voilà.