Home

PIWIGO Navigatie

 

Piwigo::Beveiliging

Piwigo Security

Piwigo Security - bescherm je afbeeldingen
Zie ook Serge's Technology View

De beveiliging van de afbeeldingen in Piwigo laat nog veel te wensen over. De originelen en geschaalde afbeeldingen zijn eenvoudig te openen (en downloaden) middels directe url's. De afbeeldingen zijn in de webroot opgeslagen, dus vrij beschikbaar als je de url met bijvoorbeeld een crawler weet te bemachtigen.
In discussies op de fora over hoe afbeeldingen in Piwigo opgeslagen- en beveiligd worden worden enkele mogelijkheden aangedragen.
De voorgestelde stappen van Serguei Dosyukov lijken een grote stap in de goede richting en heb ik uitgevoerd in deze Piwigo installatie.

Naar index

Bescherm Originelen

Dit is mogelijk de belangrijkste stap om te verzekeren dat je originele foto's niet van buitenaf te benaderen zijn.

Note:
Om dit uit te voeren is FTP of SMB toegang tot je Piwigo-site nodig.

  1. Open Beheer > Plugins > LocalFiles Editor > Lokale Configuratie en voeg in het bestand ../piwigo/local/config/config.inc.php de volgende regels toe:

    // one of '', 'images', 'all'
    $conf['original_url_protection'] = 'images';

  2. Plaats in de map ../piwigo/galleries een .htaccess bestand met één regel:

    Require all denied

    In deze installatie op eigen server met toegang tot de 'Apache http bestanden' probeer ik het gebruik van . htaccess te voorkomen.
    En maak gebruik van directives in het bestand /etc/httpd/conf.d/piwigo.conf in de hieronder volgende sectie Apache Directives voor Piwigo

  3. Als er gebruik gemaakt wordt van de videoJS plugin dan is directe toegang tot de video bestanden nodig. Om toegang tot een specifieke map met videobestanden toe te staan is voor deze specifieke map een directive nodig met de volgende inhoud:

    Order Allow,Deny
    Require all denied
    <FilesMatch "\.(?:mp4|m4v)$">
    Order deny,allow
    Require all granted
    </FilesMatch>


    Zie ook Piwigo::Plugins Piwigo-VideoJS
  4. Om de originelen af te schermen voor specifieke gebruikers:
    Selecteer de gebruiker (bijv. Gast) in Beheer > Gebruikers > Beheer en verwijder vink bij Hoge kwaliteit (origineel) ingeschakeld

Naar index

Bescherm Geschaalde Afbeeldingen

Als volgende stap willen we ook de map met geschaalde afbeeldingen beschermen tegen nieuwsgierige personages.
Wat zijn geschaalde afbeeldingen in Piwigo? Geschaalde afbeeldingen zijn van het origineel afgeleide afbeeldingen in ander formaat, miniaturen of welke vorm van afgeleide afbeeldings data dan ook als gebruikt in Piwigo. In essence zijn het voorgecompileerde data opgeslagen in de cache die gebruikt wordt voor het presenteren van je kunstwerken op je publieke site of site voor geregistreerde gebruikers.

Note:
Met de hieronder geboden methode beperken we niet de toegang tot de geschaalde afbeelding zelf. De huidige implementatie van de i.php module voor het tonen van de geschaalde afbeeldingen houdt geen rekening met de gebruikers permissies. Als een bezoeker de bestandslocatie en bestandsnaam van de geschaalde afbeeldingen kan 'raden' dan is deze afbeelding toegankelijk.

Aangezien al deze data allemaal op één plaats opgeslagen zijn willen we het moeilijker maken dat foto's 'geraden' worden die verder niet te zien zijn.

  1. Open Beheer > Plugins > LocalFiles Editor > Lokale Configuratie en voeg in het bestand ../piwigo/local/config/config.inc.php de volgende regels toe:

    // Specify url format // 0-'auto', 1-'derivative' 2-'script'
    $conf['derivative_url_style'] = 2;

  2. Plaats in de map ../piwigo/_data/i/ een .htaccess bestand met én regel:

    Require all denied

    In deze installatie op eigen server met toegang tot de 'Apache http bestanden' probeer ik het gebruik van . htaccess te voorkomen.
    En maak gebruik van directives in het bestand /etc/httpd/conf.d/piwigo.conf in de hieronder volgende sectie Apache Directives voor Piwigo

Naar index

Apache Directives voor Piwigo

In de voorgaande secties was er sprake van het in specifieke mappen plaatsen van .htaccess bestanden met directives.
Als we op een eigen server toegang hebben tot de Apache bestanden heeft het echter de voorkeur de directives op te nemen in de http configuratie bestanden.
Buiten de directives voor het afschermen van de Piwigo-data hebben we trouwens ook nog directives nodig voor de toegangscontrole via Piwigo van een Familie Evenementen Site.

ClearOS 7.2 heeft voor de http configuratie een structuur opgezet met het default bestand /etc/httpd/conf/httpd.conf aangevuld met 'include' configuraties in /etc/httpd/conf.d/.
Directives in de bestanden met de naam '<xxxx>.conf' in 'conf.d' worden toegevoegd aan de default 'httpd.conf'. Zie ook Server::Apache > Apache Configureren > Piwigo.Conf

  1. Maak het bestand piwigo.conf (root:root 644) aan in de map /etc/httpf/conf.d/
  2. Plaats daar in voor bovengenoemde beschermingen voor de originelen en de geschaalden de volgende regels:

    # Blokkeer directe url naar originele fotos in ../piwigo/galleries
    # In plaats van .htaccess in /var/www/html/piwigo/galleries
    # Voeg tevens toe in ../piwigo/local/config/config.inc.php
    # $conf['original_url_protection'] = 'images';
    
    <Directory /var/www/html/piwigo/galleries>
      Require all denied
    </Directory>
    
    # Blokkeer directe url naar originele fotos in ../piwigo/upload
    # In plaats van .htaccess in /var/www/html/piwigo/upload
    
    <Directory /var/www/html/piwigo/upload>
      Require all denied
    </Directory>
    
    # Blokkeer directe url naar derivaten in ../piwigo/_data/i
    # Voeg tevens toe in ../piwigo/local/config/config.inc.php
    # $conf['derivative_url_style'] = 2;
    
    <Directory /var/www/html/piwigo/_data/i>
      Require all denied
    </Directory>
    

Naar index

Blokkeer rechtsklikken contextmenu

Om het nog moeilijker te maken bestandspaden en -namen te raden, schakelen met de plugin 'rightClick' het rechtermuisknop contextmenu bij de foto's uit.
Zie ook de sectie Plugins > rightClick

Naar index

Piwigo data buiten webroot

Naar mijn inzicht is het een slechte gewoonte om data in de webroot op te slaan, al is het alleen al maar voor de overzichtelijkheid en backupopties van de waardevolle data.

De volgende Piwigo mappen die waardevolle eigen data bevatten verhuizen we naar een bestand buiten de webroot:

  1. galleries
  2. _data
  3. local
  4. upload
  5. template-extension

Tevens voorzien we in dit bestand buiten de webroot in een submap voor opslag van de MariaDB dump van Piwigo.

Naar index

Verhuis Galleries

  1. Maak nieuwe piwgo map in /home aan:
    # mkdir /home/pwgdata (apache:lanshare 755)
  2. Verhuis data in Galleries
    # mv /var/www/html/piwigo/galleries /home/pwgdata/
    Zonodig:
    # chown -R apache:apache /home/pwgdata/galleries
    # chmod 755 /home/pwgdata/galleries
    # chmod -R 751 /home/pwgdata/galleries/*
    # find /home/pwgdata/galleries -type f -name '*' -exec chmod 644 '{}' \;
  3. Maak symbolic link 'galleries' aan met verwijzing naar '/home/pwgdata'
    # ln -s /home/pwgdata/galleries /var/www/html/piwigo
    # chown -h apache:lanshare /var/www/html/piwigo/galleries

Naar index

Verhuis _data

  1. Verhuis data in _data
    # mv /var/www/html/piwigo/_data /home/pwgdata/
  2. Maak symbolic link '_data' aan met verwijzing naar '/home/pwgdata'
    # ln -s /home/pwgdata/_data /var/www/html/piwigo
    # chown -h apache:apache /var/www/html/piwigo/_data

Naar index

Verhuis Local

  1. Verhuis data in local
    # mv /var/www/html/piwigo/local /home/pwgdata/
  2. Maak symbolic link 'local' aan met verwijzing naar '/home/pwgdata'
    # ln -s /home/pwgdata/local /var/www/html/piwigo
    # chown -h apache:apache /var/www/html/piwigo/local

Naar index

Verhuis Upload

  1. Verhuis data in upload
    # mv /var/www/html/piwigo/upload /home/pwgdata/
  2. Maak symbolic link 'upload' aan met verwijzing naar '/home/pwgdata'
    # ln -s /home/pwgdata/local /var/www/html/piwigo
    # chown -h apache:apache /var/www/html/piwigo/local

Naar index

Verhuis Template-Extension

  1. Verhuis data in template-extension
    # mv /var/www/html/piwigo/template-extension /home/pwgdata/
  2. Maak symbolic link 'template-extension' aan met verwijzing naar '/home/pwgdata'
    # ln -s /home/pwgdata/template-extension /var/www/html/piwigo
    # chown -h apache:apche /var/www/html/piwigo/template-extension

Naar index

Maak Home voor MariaDB-dump

Maak een map aan voor de MariaDB-dump tijdens het backupproces, zoals verder beschreven in Piwigo::Backup.

# mkdir /home/pwgdata/dbase_dump
# chown apache:apache /home/pwgdata/dbase_dump
# chmod 751 /home/pwgdata/dbase_dump