diff --git a/SelfHosted/Privatebin.html b/SelfHosted/Privatebin.html index 87510ae..a57bfaf 100644 --- a/SelfHosted/Privatebin.html +++ b/SelfHosted/Privatebin.html @@ -2,7 +2,7 @@ title: PrivateBin description: Le meilleur moyen de partager vos secrets de façon sécurisé et avec une API ! published: true -date: 2021-05-30T17:28:25.751Z +date: 2021-06-15T08:36:13.885Z tags: editor: ckeditor dateCreated: 2021-05-24T10:34:57.623Z @@ -10,8 +10,139 @@ dateCreated: 2021-05-24T10:34:57.623Z
PrivateBin est un pastebin en ligne minimaliste et open source où le serveur n'a aucune connaissance des données collées. + + Les données sont cryptées et décryptées dans le navigateur à l'aide de l'AES 256 bits en mode compteur Galois. + + Il s'agit d'un fork de ZeroBin, développé à l'origine par Sébastien Sauvage. ZeroBin a été remanié pour permettre des extensions plus faciles et plus propres.
+PrivateBin a beaucoup plus de fonctionnalités que le ZeroBin original. Il est cependant toujours entièrement compatible avec le schéma de stockage de données ZeroBin. Par conséquent, de telles installations peuvent être mises à niveau vers PrivateBin sans perte de données.
+Site : privatebin.info
+Démo : privatebin.papamica.com
-
-
+
Vous pouvez passer par une installation standard via la documentation disponible sur leur site, le déployer directement depuis mon template d’application dans Portainer (tutoriel dispo ici) ou utiliser le docker-compose suivant :
+version: "2"
+services:
+ # PrivateBin : https://privatebin.info
+ privatebin:
+ image: jgeusebroek/privatebin
+ container_name: privatebin
+ restart: always
+ volumes:
+ - /apps/privatebin/data:/privatebin/data
+ - /apps/privatebin/cfg:/privatebin/cfg
+ environment:
+ hostname: 'privatebin'
+ name: 'privatebin'
+
+ # Facultatif avec Traefik
+ #ports:
+ #- 8080:80
+
+ # Facultatif
+ logging:
+ driver: loki
+ options:
+ loki-url: "$URL_LOKI"
+ loki-external-labels: service={{.Name}}
+ networks:
+ - proxy
+ labels:
+ - "traefik.enable=true"
+ - "traefik.http.routers.privatebin.entrypoints=http"
+ - "traefik.http.routers.privatebin.rule=Host(`$URL`)"
+ - "traefik.http.middlewares.privatebin-https-redirect.redirectscheme.scheme=https"
+ - "traefik.http.routers.privatebin.middlewares=$SERVICE-https-redirect"
+ - "traefik.http.routers.privatebin-secure.entrypoints=https"
+ - "traefik.http.routers.privatebin-secure.rule=Host(`$URL`)"
+ - "traefik.http.routers.privatebin-secure.tls=true"
+ - "traefik.http.routers.privatebin-secure.tls.certresolver=http"
+ - "traefik.docker.network=proxy"
+
+networks:
+ proxy:
+ external:
+ name: proxy
+++Pensez à changer dans le docker-compose ou à définir les variables suivantes : URL_LOKI et URL en fonction de votre installation.
+
Votre Privatebin sera accessible directement depuis l’URL que vous lui aurais attribué avec Traefik ou depuis http://<server>:<port>
.
Privatebin met à disposition une API bien utile pour l'intégrer dans vos scripts. La documentation est disponible ici : Github.com
+Installez PrivateBinAPI avec la commande suivante :
+pip install PrivateBinAPI
+Importez la librairie dans vos scripts :
+import privatebinapi
+response = privatebinapi.send("https://sitedupaste.com", text="Hello, world!")
+Réponse :
+{
+ "deletetoken": "< paste delete token >",
+ "full_url": "< direct link to paste> ",
+ "id": "< paste ID >",
+ "passcode": "< paste passcode >",
+ "status": 0,
+ "url": "/?< paste ID >"
+}
+Il existe un nombre limité de délais d'expiration valides. Vous devez sélectionner l'un des éléments suivants :
+("5min", "10min", "1hour", "1day", "1week", "1month", "1year", "never")
+Par défaut, “1day
” est sélectionné.
response = privatebinapi.send(
+ "https://sitedupaste.com",
+ text="Hello, world!",
+ expiration="5min"
+ )
+Configurer un mot de passe à votre Paste est simple :
+response = privatebinapi.send(
+ "https://sitedupaste.com",
+ text="Hello, world!",
+ password="Secure123!"
+ )
+Il n'y a que trois options valides pour ce paramètre : "plaintext"
, "syntaxhighlighting"
, and "markdown"
.
Par défaut, "plaintext"
est sélectionné.
response = privatebinapi.send(
+ "https://sitedupaste.com",
+ text="Hello, world!",
+ formatting="markdown"
+ )
+Si vous souhaitez qu'un Paste soit supprimé immédiatement après avoir été lu, passez à True
le paramètre burn_after_reading
.
response = privatebinapi.send(
+ "https://sitedupaste.com",
+ text="Hello, world!",
+ burn_after_reading=True
+ )
+Obtenir un Paste à partir d'une instance de PrivateBin est très simple :
+response = privatebinapi.get("https://sitedupaste.com/?fakePasteLink#1234567890")
+Réponse :
+{
+ "attachment": {
+ "content": b"< attachment content in bytes >",
+ "filename": "< name of attachment >"
+ },
+ "id": '< paste ID >",
+ "meta": {
+ "created": < UNIX timestamp >,
+ "time_to_live": < seconds until deletion >
+ },
+ "status": 0,
+ "text": "< text content of the paste >",
+ "url": "/?< paste ID >",
+ "v": < encryption version 1 or 2 >}
+}
+Si le Paste est protégé par un mot de passe, utilisez le paramètre password
.
response = privatebinapi.get(
+ "https://sitedupaste.com/?fakePasteLink#1234567890",
+ password="PAPAMICA123!"
+ )
+Pour supprimer un Paste, vous avez besoin de son URL et de son token de suppression.
+response = privatebinapi.delete(
+ "https://sitedupaste.com/?fakePasteLink#1234567890",
+ "fake1delete2token3"
+ )