Bepasty » Cronologia » Versione 2
Elena Grandi, 06-08-2020 08:48
aggiornamento pagina miniguida
| 1 | 1 | Elena Grandi | *attenzione, questa pagina è ancora gestita in un file salvato altrove, ed eventuali modifiche verranno perse al prossimo aggiornamento* |
|---|---|---|---|
| 2 | |||
| 3 | h1(#bepasty). Bepasty |
||
| 4 | |||
| 5 | 2 | Elena Grandi | "Bepasty" è un pastebin binario, ovvero un servizio che permette l'upload di file di vario formato, ed è quindi uno strumento ideale per la condivisione veloce di file effimeri, specialmente tra piccoli gruppi di lavoro. |
| 6 | 1 | Elena Grandi | |
| 7 | È scritto in python, e comunica con un server web tramite wsgi; per questa guida useremo apache e il relativo mod_wsgi. |
||
| 8 | |||
| 9 | h2(#installazione). Installazione |
||
| 10 | |||
| 11 | h3(#bepasty-1). Bepasty |
||
| 12 | |||
| 13 | 2 | Elena Grandi | Il pacchetto bepasty è in debian a partire da @bullseye@ e @buster-backports@; lo si può installare con il comando: |
| 14 | 1 | Elena Grandi | |
| 15 | 2 | Elena Grandi | <pre> |
| 16 | # apt install [-t buster-backports] bepasty |
||
| 17 | </pre> |
||
| 18 | 1 | Elena Grandi | |
| 19 | È necessario quindi configurare bepasty creando il file @/etc/bepasty.conf@ con i seguenti contenuti: |
||
| 20 | |||
| 21 | <pre> |
||
| 22 | SITENAME="paste.example.org" |
||
| 23 | STORAGE="filesystem" |
||
| 24 | STORAGE_FILESYSTEM_DIRECTORY="/srv/bepasty/files/" |
||
| 25 | |||
| 26 | SECRET_KEY = '<a long string of random characters>' |
||
| 27 | DEFAULT_PERMISSIONS='admin,list,create,read,delete' |
||
| 28 | </pre> |
||
| 29 | |||
| 30 | In questo modo tutti gli utenti possono compiere qualunque azione, ed è consigliato solo nel caso in cui il sito stesso sia protetto da HTTPAuth; in alternativa si possono usare permessi come: |
||
| 31 | |||
| 32 | 2 | Elena Grandi | <pre> |
| 33 | DEFAULT_PERMISSIONS='read' |
||
| 34 | </pre> |
||
| 35 | 1 | Elena Grandi | |
| 36 | per permettere agli utenti non registrati la sola lettura di file esistenti, e limitare le altre operazioni ad utenti fidati; bepasty non supporta la creazione di utenti, ma associa un elenco di permessi a delle password, ad esempio: |
||
| 37 | |||
| 38 | 2 | Elena Grandi | <pre> |
| 39 | PERMISSIONS = { |
||
| 40 | 1 | Elena Grandi | # password per amministratori |
| 41 | 'correct horse battery staple': 'admin,list,create,read,delete', |
||
| 42 | # password per utenti semplici |
||
| 43 | 'chess observing leverage diocese': 'create,read', |
||
| 44 | } |
||
| 45 | 2 | Elena Grandi | </pre> |
| 46 | 1 | Elena Grandi | |
| 47 | Questo file dovrà essere letto dall'utente di apache (e contiene secrets, quindi è opportuno non sia letto dagli altri): |
||
| 48 | |||
| 49 | 2 | Elena Grandi | <pre> |
| 50 | # chown root:www-data /etc/bepasty.conf |
||
| 51 | # chmod 640 /etc/bepasty.conf |
||
| 52 | </pre> |
||
| 53 | 1 | Elena Grandi | |
| 54 | Similmente è necessario creare le directory per i file: |
||
| 55 | |||
| 56 | 2 | Elena Grandi | <pre> |
| 57 | # mkdir -p /srv/bepasty/files |
||
| 58 | # chown www-data:www-data /srv/bepasty/files |
||
| 59 | # chmod 750 /srv/bepasty/files |
||
| 60 | </pre> |
||
| 61 | 1 | Elena Grandi | |
| 62 | h3(#apache). Apache |
||
| 63 | |||
| 64 | Per far caricare a bepasty il file di configurazione, è necessario passargli la variabile d'ambiente @BEPASTY_CONFIG=/etc/bepasty.conf@. |
||
| 65 | |||
| 66 | Il modo più comodo per farlo con apache è creare un file @.wsgi@, ad esempio in @/var/www/bepasty/bepasty.wsgi@ coi seguenti contenuti: |
||
| 67 | |||
| 68 | <pre> |
||
| 69 | import os |
||
| 70 | |||
| 71 | os.environ['BEPASTY_CONFIG'] = '/etc/bepasty.conf' |
||
| 72 | |||
| 73 | from bepasty.app import create_app |
||
| 74 | application = create_app() |
||
| 75 | </pre> |
||
| 76 | |||
| 77 | Quindi si può configurare apache per servire il dominio creando il file @/etc/apache2/sites-available/bepasty.conf@: |
||
| 78 | |||
| 79 | <pre> |
||
| 80 | 2 | Elena Grandi | <VirtualHost *:80> |
| 81 | 1 | Elena Grandi | DocumentRoot /var/www/bepasty |
| 82 | ServerName paste.example.org |
||
| 83 | ErrorLog /var/log/apache2/paste.example.org-error.log |
||
| 84 | CustomLog /var/log/apache2/paste.example.org-access.log combined |
||
| 85 | |||
| 86 | 2 | Elena Grandi | RewriteEngine On |
| 87 | RewriteCond %{HTTPS} !=on |
||
| 88 | RewriteRule ^/(.*) https://%{SERVER_NAME}/$1 [R,L] |
||
| 89 | |||
| 90 | </VirtualHost> |
||
| 91 | |||
| 92 | <VirtualHost *:443> |
||
| 93 | DocumentRoot /var/www/bepasty |
||
| 94 | ServerName paste.example.org |
||
| 95 | ErrorLog /var/log/apache2/paste.example.org-error.log |
||
| 96 | CustomLog /var/log/apache2/paste.example.org-access.log combined |
||
| 97 | |||
| 98 | 1 | Elena Grandi | WSGIDaemonProcess bepasty user=bepasty group=bepasty threads=5 |
| 99 | WSGIScriptAlias / /var/www/bepasty/bepasty.wsgi |
||
| 100 | |||
| 101 | 2 | Elena Grandi | include "<your_ssl_configuration.inc>" |
| 102 | </VirtualHost> |
||
| 103 | 1 | Elena Grandi | </pre> |
| 104 | |||
| 105 | e come di consueto abilitando il sito e facendo ricaricare la configurazione: |
||
| 106 | |||
| 107 | 2 | Elena Grandi | <pre> |
| 108 | # a2ensite bepasty |
||
| 109 | 1 | Elena Grandi | # service apache2 reload |
| 110 | 2 | Elena Grandi | </pre> |
| 111 | |||
| 112 | h2(#gestione-e-uso). Gestione e uso |
||
| 113 | |||
| 114 | L'uso di bepasty è molto simile a quello di qualunque pastebin, con un interfaccia web su cui incollare testo o selezionare file locali da caricare. |
||
| 115 | |||
| 116 | In questa sezione vediamo alcune caratteristiche peculiari di cui tenere conto. |
||
| 117 | |||
| 118 | h3(#password-e-permessi). Password e permessi |
||
| 119 | |||
| 120 | Anziché usare un'accoppiata nome utente / password, bepasty usa una password associata ad una combinazione di permessi. |
||
| 121 | |||
| 122 | Le password sono impostate nel file di configurazione del server, come visto in fase di installazione, e i permessi associati sono: |
||
| 123 | |||
| 124 | <dl> |
||
| 125 | <dt>@create@</dt> |
||
| 126 | <dd><p>permette il caricamento di nuovi file;</p></dd> |
||
| 127 | <dt>@read@</dt> |
||
| 128 | <dd><p>permette la visualizzazione e download di file già esistenti;</p></dd> |
||
| 129 | <dt>@delete@</dt> |
||
| 130 | <dd><p>permette la cancellazione di file;</p></dd> |
||
| 131 | <dt>@list@</dt> |
||
| 132 | <dd><p>permette di elencare tutti i file presenti sul server;</p></dd> |
||
| 133 | <dt>@admin@</dt> |
||
| 134 | <dd><p>permette di bloccare e sbloccare i file, e di agire su file bloccati.</p></dd> |
||
| 135 | </dl> |
||
| 136 | |||
| 137 | h3(#cancellazione-dei-file). Cancellazione dei file |
||
| 138 | |||
| 139 | Quando si carica un file, è possibile specificare nell'interfaccia la durata oltre la quale dovrà essere cancellato. Di default (non configurabile) è un mese. |
||
| 140 | |||
| 141 | Alla scadenza, il file non viene più mostrato, ma "non viene cancellato dal server":https://github.com/bepasty/bepasty-server/issues/181 fino a che non si cerca di accederci o non viene aperta la pagina con l'elenco di tutti i file. |