Progetto

Generale

Profilo

Bepasty » Cronologia » Versione 2

Versione 1 (Elena Grandi, 12-03-2020 13:54) → Versione 2/3 (Elena Grandi, 06-08-2020 08:48)

*attenzione, questa pagina è ancora gestita in un file salvato altrove, ed eventuali modifiche verranno perse al prossimo aggiornamento* 

 h1(#bepasty). Bepasty 

 "Bepasty" "Bepasty":#bepasty-1 è un pastebin binario, ovvero un servizio che permette l'upload di file di vario formato, ed è quindi uno strumento ideale per formato e la condivisione veloce di file effimeri, specialmente tra piccoli gruppi di lavoro. loro successiva condivisione. 

 È scritto in python, e comunica con un server web tramite wsgi; per questa guida useremo apache e il relativo mod_wsgi. 

 h2(#installazione). Installazione 

 h3(#bepasty-1). Bepasty 

 Il pacchetto bepasty non è in debian a partire da @bullseye@ e @buster-backports@; ancora disponibile su debian: nel frattempo lo si può installare prendere dall'archivio di truelite aggiungendo la seguente riga ad @/etc/apt/source.list@: 

 bc. deb http://archive.truelite.it/debian buster-truelite main 


 aggiungendo la chiave GPG con cui tale repository è firmato: 

 bc. # wget -qO - https://archive.truelite.it/apt.key | apt-key add - 


 e quindi aggiornando apt ed installando il comando: pacchetto: 

 <pre> bc. # apt update 
 # apt install [-t buster-backports] bepasty 
 </pre> 

 


 È necessario quindi configurare bepasty creando il file @/etc/bepasty.conf@ con i seguenti contenuti: 

 <pre> 
 SITENAME=&quot;paste.example.org&quot; 
 STORAGE=&quot;filesystem&quot; 
 STORAGE_FILESYSTEM_DIRECTORY=&quot;/srv/bepasty/files/&quot; 

 SECRET_KEY = '&lt;a long string of random characters&gt;' 
 DEFAULT_PERMISSIONS='admin,list,create,read,delete' 
 </pre> 

 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: 

 <pre> 
 bc. DEFAULT_PERMISSIONS='read' 
 </pre> 

 


 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: 

 <pre> 
 bc. PERMISSIONS = { 
     # password per amministratori 
     'correct horse battery staple': 'admin,list,create,read,delete', 
     # password per utenti semplici 
     'chess observing leverage diocese': 'create,read', 
  } 
 </pre> 

 


 Questo file dovrà essere letto dall'utente di apache (e contiene secrets, quindi è opportuno non sia letto dagli altri): 

 <pre> 
 # bc. chown root:www-data /etc/bepasty.conf 
 # chmod 640 /etc/bepasty.conf 
 </pre> 

 


 Similmente è necessario creare le directory per i file: 

 <pre> 
 # bc. mkdir -p /srv/bepasty/files 
 # chown www-data:www-data /srv/bepasty/files 
 # chmod 750 /srv/bepasty/files 
 </pre> 

 


 h3(#apache). Apache 

 Per far caricare a bepasty il file di configurazione, è necessario passargli la variabile d'ambiente @BEPASTY_CONFIG=/etc/bepasty.conf@. 

 Il modo più comodo per farlo con apache è creare un file @.wsgi@, ad esempio in @/var/www/bepasty/bepasty.wsgi@ coi seguenti contenuti: 

 <pre> 
 import os 

 os.environ['BEPASTY_CONFIG'] = '/etc/bepasty.conf' 

 from bepasty.app import create_app 
 application = create_app() 
 </pre> 

 Quindi si può configurare apache per servire il dominio creando il file @/etc/apache2/sites-available/bepasty.conf@: 

 <pre> 
 <VirtualHost *:80> &lt;VirtualHost *:80&gt; 
         DocumentRoot /var/www/bepasty 
         ServerName paste.example.org 
         ErrorLog /var/log/apache2/paste.example.org-error.log 
         CustomLog /var/log/apache2/paste.example.org-access.log combined 

         RewriteEngine On 
         RewriteCond %{HTTPS} !=on 
         RewriteRule ^/(.*) https://%{SERVER_NAME}/$1 [R,L] 

 </VirtualHost> 

 <VirtualHost *:443> 
         DocumentRoot /var/www/bepasty 
         ServerName paste.example.org 
         ErrorLog /var/log/apache2/paste.example.org-error.log 
         CustomLog /var/log/apache2/paste.example.org-access.log combined 

         WSGIDaemonProcess bepasty user=bepasty group=bepasty threads=5 
         WSGIScriptAlias / /var/www/bepasty/bepasty.wsgi 

         include "<your_ssl_configuration.inc>" &lt;Directory /var/www/bepasty&gt; 
             WSGIProcessGroup bepasty 
             WSGIApplicationGroup %{GLOBAL} 
             Order deny,allow 
             Allow from all 
         &lt;/Directory&gt; 
 </VirtualHost> &lt;/VirtualHost&gt; 
 </pre> 

 e come di consueto abilitando il sito e facendo ricaricare la configurazione: 

 <pre> 
 bc. # a2ensite bepasty 
 # service apache2 reload 
 </pre> 

 h2(#gestione-e-uso). Gestione e uso 

 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. 

 In questa sezione vediamo alcune caratteristiche peculiari di cui tenere conto. 

 h3(#password-e-permessi). Password e permessi 

 Anziché usare un'accoppiata nome utente / password, bepasty usa una password associata ad una combinazione di permessi. 

 Le password sono impostate nel file di configurazione del server, come visto in fase di installazione, e i permessi associati sono: 

 <dl> 
 <dt>@create@</dt> 
 <dd><p>permette il caricamento di nuovi file;</p></dd> 
 <dt>@read@</dt> 
 <dd><p>permette la visualizzazione e download di file già esistenti;</p></dd> 
 <dt>@delete@</dt> 
 <dd><p>permette la cancellazione di file;</p></dd> 
 <dt>@list@</dt> 
 <dd><p>permette di elencare tutti i file presenti sul server;</p></dd> 
 <dt>@admin@</dt> 
 <dd><p>permette di bloccare e sbloccare i file, e di agire su file bloccati.</p></dd> 
 </dl> 

 h3(#cancellazione-dei-file). Cancellazione dei file 

 Quando si carica un file, è possibile specificare nell'interfaccia la durata oltre la quale dovrà essere cancellato. Di default (non configurabile) è un mese. 

 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.