Installation de PrivateBin sur Debian 9

//Installation de PrivateBin sur Debian 9
1/52/53/54/55/5 (Pas encore de note)
Loading...

Installation de PrivateBin sur Debian 9

Bonjour à tous,

Aujourd’hui, on va voir comment installer PrivateBin sur Debian 9 avec NGINX et PHP7. On va évidemment passer un coup de Let’s Encrypt sur la chose.

 

C’est quoi PrivateBin ?

PrivateBin est un clone de PasteBin, utilisé pour partager du texte ou du code, autohébergé où le serveur n’a pas connaissance du texte qui est partagé dans l’outil.

Toutes les données sont chiffrées et déchiffrées par le navigateur en utilisant AES-256 GCM.

 

Prérequis :

 

 

Préparation de l’installation :

Créez d’abord un utilisateur Linux pour l’application et ajoutez-le dans le groupe www-data :

useradd privatebin
usermod -a -G www-data privatebin

 

Téléchargez l’archive de PrivateBin :

cd /var/www/
wget https://github.com/PrivateBin/PrivateBin/archive/1.1.1.tar.gz
tar xf 1.1.1.tar.gz && rm 1.1.1.tar.gz
mv PrivateBin-1.1.1 privatebin
chown privatebin:www-data -R /var/www/privatebin

 

Créez un nouveau pool fpm :

nano /etc/php/7.0/fpm/pool.d/privatebin.conf

 

Et remplissez avec les informations suivantes :

[privatebin]

listen = /var/lib/php7.0-fpm/privatebin.sock
listen.owner = privatebin
listen.group = www-data
listen.mode = 0660

user = privatebin
group = www-data

pm = dynamic
pm.max_children = 32
pm.start_servers = 8
pm.min_spare_servers = 4
pm.max_spare_servers = 16
pm.max_requests = 40000

chdir = /

pm.status_path = /status

env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

 

Et redémarrez le service pour appliquer les modifications :

service php7.0-fpm restart

 

Maintenant, on va créer un vhost de base :

nano /etc/nginx/sites-enabled/privatebin.vhost

 

Ajoutez la configuration suivante :

server {
        listen 62.210.106.114:80;
        listen [2001:bc8:3d8b:100::100]:80;

        server_name paste.yaute.ninja;

        root /var/www/privatebin/;

        index index.php;

        location ~ \.php$ {
                try_files $uri =404;
                fastcgi_pass unix:/var/lib/php7.0-fpm/privatebin.sock;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
        }

        location ~ ^/.well-known/acme-challenge/* {
                allow all;
        }

        location = /robots.txt {
                allow all;
                log_not_found off;
                access_log off;
        }

}

 

Maintenant, redémarrez NGINX :

service nginx restart

 

Créez le répertoire pour les certificats Let’s Encrypt :

mkdir -p /etc/letsencrypt/live-ecdsa/paste.yaute.ninja
cd /etc/letsencrypt/live-ecdsa/paste.yaute.ninja
mkdir letmp

 

Maintenant, créez la clé privée pour votre certificat en indiquant la courbe que vous souhaitez utiliser :

openssl ecparam -genkey -name secp384r1 > privkey-p384.pem

 

Maintenant, créez un CSR, indiquez votre domaine correctement :

openssl req -new -sha256 -key privkey-p384.pem -subj "/CN=paste.yaute.ninja" -reqexts SAN -config <(cat /etc/ssl/openssl.cnf <(printf "[SAN]\nsubjectAltName=DNS:paste.yaute.ninja")) -outform der -out csr-p384.der

 

Rendez-vous dans le dossier temporaire « letmp » et créez votre certificat avec Let’s Encrypt (ça serra aussi les commandes pour renouveller le certificat) :

cd letmp
/etc/letsencrypt/letsencrypt-auto certonly -a webroot --email yolo@caramail.coucou --webroot-path /var/www/privatebin/ --csr /etc/letsencrypt/live-ecdsa/paste.yaute.ninja/csr-p384.der --renew-by-default --agree-tos
cat 0001* > /etc/letsencrypt/live-ecdsa/paste.yaute.ninja/chain.pem

 

Maintenant, modifiez le vhost :

cd /tmp 
wget https://raw.githubusercontent.com/stylersnico/my-webserver/master/etc/nginx/sites-enabled/privatebin.vhost
echo privatebin.vhost > /etc/nginx/sites-enabled/privatebin.vhost

 

Maintenant, redémarrez nginx :

service nginx restart

Installation de PrivateBin :

C’est très simple, rendez vous dans le dossier hébergeant la configuration et modifiez le fichier de configuration par défaut :

cd /var/www/privatebin/cfg
cp conf.sample.php conf.php
nano conf.php

 

Accédez à l’URL de votre installation et profitez 🙂

En bonus, vous pouvez :

 

By |2017-10-23T09:45:57+00:0023 octobre 2017|GNU/Linux|3 Comments

About the Author:

Diplômé d'un BTS SIO SISR et travaillant actuellement en Suisse, je suis passionné par tout ce qui touche à l'informatique et la musique hard rock et métal depuis ma plus tendre enfance. Je suis le créateur et l'unique rédacteur d'Abyss Project, ce blog qui me sert de bloc-notes public en quelque sorte.

3
Poster un Commentaire

avatar
1 Comment threads
2 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
2 Comment authors
Nicolas SimondMirabellette Recent comment authors

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Plus récents Plus anciens Populaires
Mirabellette
Invité

Merci pour l’article sur privatebin, très complet ! 🙂

Petite question, ne serait-ce pas plus sécurité d’ajouter l’option /bin/nologin dans le fichier /etc/passwd pour le user privatebin ?

Mirabellette
Invité

Petit bémol cependant concernant l’installation. Le fichier INSTALL.MD recommande plusieurs façons d’augmenter la sécurité l’application. Notamment le déplacement des fichiers de privatebin à l’extérieur du fichier root., ce qui n’est pas fait ici :/