Beveilig jouw Drupal social intranet beter met 'Encrypted Files'

10 Nov 2015

Joris Snoek - Business Dev
+31 (0)20 - 261 14 99

English translation here

We kregen de laatste maanden meerdere keren de vraag: hoe staat het met de veiligheid van onze bestanden die we uploaden in ons Drupal social intranet? Is het mogelijk deze bestanden te versleutelen zodat gevoelige informatie extra beveiligd wordt?

Publiekelijke bestanden
In een standaard Drupal installatie zijn geüploade bestanden niet versleuteld, wat betekent dat ze te openen zijn als je toegang hebt tot de map op de server. Als je een publiekelijke website hebt, is dat geen probleem. Jouw afbeeldingen en downloads zijn voor iedereen vrij toegankelijk.

Private bestanden
Als je een Drupal social intranet hebt, dan is het zeer verstandig om bestanden ‘private’ te maken. Wat betekent dat ze niet vrij toegankelijk zijn, maar alleen voor mensen die expliciet permissie hiervoor krijgen. Deze 'private files' optie is een standaard in de Drupal core.

Versleutelde bestanden
Een stap verder is het versleutelen (encrypten) van bestanden, waardoor ze onleesbaar zullen zijn als je de sleutels niet hebt. Wanneer ongeautoriseerde gebruikers op een of andere manier het bestand toch in handen krijgen, dan is deze dus niet in te zien.

Of je de sleutels tot het bestand krijgt van Drupal wordt bepaald via Drupal’s node access system, met behulp van grants. De Drupal module 'Encrypted Files' voorziet in versleuteling van bestanden, hier is hoe je deze kan implementeren:

Installatie en configuratie ‘Encrypted files’

1. Download en installeer 3 modules

2. Maak AES de standaard

Ga naar admin/config/system/encrypt en klik op edit:

Je kunt vervolgens de 'Encryption method’ configureren:

In de tab ‘Encryption method setting’, kies voor ‘Mcrypt AES 256’. AES is sterker dan de default.

3. ‘Default download method’ configureren

Ga naar admin/config/media/file-system :

  1. Zorg ervoor dat de private files buiten de publiekelijke webroot staan.
  2. Zet de ‘Default download method’ op ‘Private, encrypted local files served by Drupal’.

4. Configureer een nieuw ‘File field’

Als je nu een nieuw file field toevoegt, krijg je de optie ‘Encrypted files’:

5. Test it

Upload een bestand via het zojuist toegevoegde field in betreffende content type. Wanneer je dat bestand vervolgens direct van de server opent, dan krijg je een versleutelde versie te zien:

Aandachtspunten

IMCE

Wanneer je gebruik maakt van een afbeeldingengallerijen als IMCE, dan heb je kans dat die niet goed werken.

Beveilig de sleutels

De module slaat een van de sleutels op in de private files map; zet de permissies op die mappen en bestanden zo strikt als mogelijk. Je server zou moeten kunnen lezen en schrijven naar deze bestanden, elke andere user zou geen toegang moeten hebben.

Of dit mogelijk is hangt van je server configuratie af, zoals onder welke user het Drupal social intranet draait. Bijvoorbeeld, als Drupal onder dezelfde user draait als degene die de private files map en bestanden erin beheert, dan kan je betreffende directory permissies 700 geven en de bestanden 600.

Deze Drupal module slaat de tweede sleutel op in de database, zorg ook daarom voor een optimale beveiliging van je database, voorbeelden:

  • Gebruik een sterk wachtwoord voor de database user, waar Drupal gebruik van maakt.
  • Geef alleen die betreffende user toegang tot de database.
  • Zet een strikte permissie op je settings.php.

Verdere generieke veiligheidsmaatregelen

  • Wijzig regelmatig je server wachtwoorden met sterke combinaties.
  • Schakel álle overbodige services uit op je server.
  • Laat alleen key-based SSH toegang toe.
  • Filter op IP: laat bv alleen het IP toe van je kantoor.

Bronnen:

Comments

Nóg meer
kennis nodig?

Check ons ons blog archief >