Actions

Installation security hints/sl: Difference between revisions

From LimeSurvey Manual

(Updating to match new version of source page)
(Updating to match new version of source page)
Line 74: Line 74:
V nadaljevanju so le priporočila. Na splošno je LimeSurvey zelo varen tudi brez teh dodatnih ukrepov. Če zbirate zelo občutljive podatke, lahko ti manjši dodatni varnostni ukrepi precej pomagajo:
V nadaljevanju so le priporočila. Na splošno je LimeSurvey zelo varen tudi brez teh dodatnih ukrepov. Če zbirate zelo občutljive podatke, lahko ti manjši dodatni varnostni ukrepi precej pomagajo:


Datoteka /application/config/config.php vsebuje uporabniško ime in geslo za podatkovno zbirko na vašem strežniku. To predstavlja določena varnostna vprašanja še posebej, če uporabljate vpis, ki ima precej visok nivo skrbniškega dostopa do vaše podatkovne baze. V primeru, da se vračajo na vsebino te PHP datoteke nekatere napake v uporabnikov brskalnik, bi lahko bile ogrožene vaše geslo podatkovne baze in druge podrobnosti (sicer je to zelo malo verjeten scenarij). Najboljši način zmanjšanja tega tveganja je nastavitev predvidenih vpisov, ki imajo določene pravice samo za vašo limesurvey-evo podatkovno zbirko.
=== Access of config.php file ===
 
{{Alert|You must update application/config/config.php only after first installation is done and work.}}
 
The /application/config/config.php file contains a user name and password for your database server. This poses certain security issues, particularly if you are using a login that has high level administrative access to your database. In the event of some error returning the content of this PHP file to a user's browser, your database password and other details could be compromised (please note, that this is a very unlikely scenario). The best way to minimize risk is to set up a specific login that has specific rights only to your limesurvey database.


Drugi način za zavarovanje teh informacij je lahko prestavitev določenih podatkoviz datoteke /application/config/config.php file v mapo, ki ni v spletnem imeniku. Za Apache uporabnike je ta imenik znotraj mape htdocs (oziroma public_html ali www). Tako boste uporabljali datoteko config.php, vendar boste imeli v njej eno vrstico, ki vključuje datoteko z dejanskimi informacijami o nastavitvah (primer: <?php return include("/home/hostfolder/safedata/configreal.php"); ?>). Iz datoteke  /application/config/config.php odstranite vse aktualne informacije o nastavitvah in jih prilepite v drugo datoteko (configreal.php), ki je vključena v datoteki /application/config/config.php. Ta datoteka se mora nahajati izven spletnega imenika. V tem primeru datoteka /application/config/config.php ne bo vsebovala gesla podatkovne zbirke itd., pač pa samo ime datoteke, ki vsebuje informacije o podatkovni zbirki. S tem se izognete spremembam vseh drugih datotek vključenih v datoteki /application/config/config.php, glede na to da so še vedno vključene in bodo vsebovale realne informacije o nastavitvah. Boste pa morali urediti datoteko configreal.php in spremeniti naslednje parametre
Drugi način za zavarovanje teh informacij je lahko prestavitev določenih podatkoviz datoteke /application/config/config.php file v mapo, ki ni v spletnem imeniku. Za Apache uporabnike je ta imenik znotraj mape htdocs (oziroma public_html ali www). Tako boste uporabljali datoteko config.php, vendar boste imeli v njej eno vrstico, ki vključuje datoteko z dejanskimi informacijami o nastavitvah (primer: <?php return include("/home/hostfolder/safedata/configreal.php"); ?>). Iz datoteke  /application/config/config.php odstranite vse aktualne informacije o nastavitvah in jih prilepite v drugo datoteko (configreal.php), ki je vključena v datoteki /application/config/config.php. Ta datoteka se mora nahajati izven spletnega imenika. V tem primeru datoteka /application/config/config.php ne bo vsebovala gesla podatkovne zbirke itd., pač pa samo ime datoteke, ki vsebuje informacije o podatkovni zbirki. S tem se izognete spremembam vseh drugih datotek vključenih v datoteki /application/config/config.php, glede na to da so še vedno vključene in bodo vsebovale realne informacije o nastavitvah. Boste pa morali urediti datoteko configreal.php in spremeniti naslednje parametre

Revision as of 11:36, 9 October 2014

Splošno

LimeSurvey se zanaša na svoj lasten varnostni sistem, ki je samodejno vključen. Avtorji tega programa ne prevzemajo nobene odgovornosti in ne dajejo nobenih izjav v zvezi z ustreznostjo ali varnostjo te opreme. Kljub temu jemljemo varnost zelo resno in hitro reagiramo. Če veste za kakršen koli varnostni problem z LimeSurvey-em, nas prosimo obvestite na naš portal za sledenje težavam (imejte v vednosti, da je zaseben).

Pravice na Linux-ovih datotekah

Če uporabljate Linux strežnik, so za zaščito vašega nameščenega LimeSurvay-a potrebne nastavitve ustreznih pravic na datotekah.

Osnovna dejstva o pravicah na Linux/*nix datotekah

Linux/*nix operacijski sistem je večuporabniški. To pomeni da poleg vašega osebnega računa lahko na sistemu obstajajo še drugi uporabniški računi in je potrebno paziti, kakšne pravice dajate ostalim uporabnikom.

Namig: Nastavljanje pravic na datotekah je še posebej pomembno pri zaščiti konfiguracijskih datotek, ki vsebujejo zelo kritične podatke kot so gesla.

Upoštevajte, da ima 'root' račun kot super skrbniški uporabnik vedno odobren dostop do vaših datotek (ne glede na to, kakšne pravice nad datotekami ste nastavili).

Spletni strežnik (na katerem teče LimeSurvey) teče pod točno določeno identiteto (uporabnikom). Na Linux-u je to običajno uporabnik 'www','www-data' (na Debian/Ubuntu), 'apache' ali 'nobody'. Nekateri ponudniki za gostovanja uporabljajo sisteme (kot je suexec), ki omogočajo zaganjanje LimeSurvey-evih zagonskih datotek z vašim osebnim uporabniškim računom. Seveda morajo imeti uporabniki na spletnih strežnikih pravico branja na LimeSurvey-evih datotekah. Le manjša skupina LimeSurvey-evih podmap mora biti zapisljivih s strani spletnih uporabnikov.

Namig: zelo pomembno je, da prekličete pravico pisanja za spletnega uporabnika nad tistimi podmapami, ki tega ne potrebujejo. Čeprav bi se morda našle ranljivosti v LimeSurvey-u, bi bile glavne datoteke še vedno zaščitene pred nedovoljenim spreminjanjem zahvaljujoč sistemskim pravicam nad datotekami.

Nastavljanje pravic nad datotekami na Linux-sistemu v lastnem upravljanju

Če upravljate lasten spletni strežnik in operacijski sistem (ste lastnik strežnika ali imate v najemu virtualni strežnik, na katerem imate korenski dostop), lahko upoštevate ta priporočila.

Najprej lahko nastavite lastnika in skupino vaših LimeSurvey-evih datotek, s čimer bo olajšano nastavljanje pravic nad datotekami.

Eden možnih pristopov je, da nastavite za lastnika LimeSurvey-evih datotek vaše osebno uporabniško ime in skupino LimeSurvey-ih datotek skupino spletnega strežnika. Običajno ta skupina spletnega strežnika vsebuje le račun spletnega strežnika (in najverjetneje še kakšen račun za spletnega skrbnika).

Na primer če je vaše uporabniško ime 'mojračun' in je uporabnik spletnega strežnika 'apache' v skupini 'apache', potem lahko iz ukazne lupine uporabite sledeč ukaz:

$ chown -R myaccount:apache limesurvey/

Potem nastavite pravice nad datotekami in podmapami.

Da bodoukazne datoteke (skripte) ustrezno delovale, potrebujejo pravico pisanja nad nekaterimi mapami:

  • "/limesurvey/tmp" mapi in njenih podmapah, ki se uporabljajo za uvažanje/nalaganje in morajo biti nastavljene na branje in pisanje na vašem spletnem strežniku.
  • mapa upload/ in vse njene podmape prav tako potrebujejo pravico branja in pisanja na vašem spletnem strežniku, če želite omogočiti nalaganje slikam in medijskim datotekam.
  • vse ostale mape in datoteke so lahko nastavljeno na pravico samo za branje
Namig: v kolikor boste upoštevali zgornja priporočila, lahko te nastavitve uveljavite z naslednjimi ukazi:

$ chmod -R o-r-w-x limesurvey/

$ chmod -R -w limesurvey/

$ chmod -R 770 limesurvey/tmp

$ chmod -R 770 limesurvey/upload

Nastavljanje pravic nad datotekami na gostujočem spletnem strežniku

Posredovanje običajnega postopka za zaščito spletne aplikacije v gostujočih okoljih je težavno, saj se okolja za gostovanja med seboj razlikujejo na več načinov.

Podobno kot v primeru strežnika v lastnem upravljanju je potrebna za pravilno delovanje zagonskih datotek (skript) pravica pisanja nad nekaterimi mapami:

  • "/limesurvey/tmp" mapi in njenih podmapah, ki se uporabljajo za uvažanje/nalaganje in morajo biti nastavljene na branje in pisanje na vašem spletnem strežniku.
  • mapa upload/ in vse njene podmape prav tako potrebujejo pravico branja in pisanja na vašem spletnem strežniku, če želite omogočiti nalaganje slikam in medijskim datotekam.
  • vse ostale mape in datoteke so lahko nastavljeno na pravico samo za branje
Hint:
  • v odvisnosti od nastavitev vašega spletnega strežnika boste morali spremeniti pravico nad zapisljivimi mapami z ukazom chmode na 755 ali 777, da bodo postale zapisljive za spletni strežnik. Najprej poskušajte z 755 in če to ne bo delovalo 'povišajte' na 777.
  • prav tako lahko poskušate odstraniti pravico branja nad datoteko config.php za ostale uporabnike z nastavitvijo pravice na 750 in če ne bo delovalo 'povišajte' na 755.

Pravice nad datotekami v okolju Windows

Če uporabljate windows strežnik si morate zagotoviti, da skrbniške mape dovoljujejo lastniku procesov spletnega strežnika pisanje v datoteke v tem imeniku, sicer pa lahko imajo vse druge datoteke nastavljeno pravico samo za branje in izvajanje.

Ostale varnostne zadeve

V nadaljevanju so le priporočila. Na splošno je LimeSurvey zelo varen tudi brez teh dodatnih ukrepov. Če zbirate zelo občutljive podatke, lahko ti manjši dodatni varnostni ukrepi precej pomagajo:

Access of config.php file

  You must update application/config/config.php only after first installation is done and work.


The /application/config/config.php file contains a user name and password for your database server. This poses certain security issues, particularly if you are using a login that has high level administrative access to your database. In the event of some error returning the content of this PHP file to a user's browser, your database password and other details could be compromised (please note, that this is a very unlikely scenario). The best way to minimize risk is to set up a specific login that has specific rights only to your limesurvey database.

Drugi način za zavarovanje teh informacij je lahko prestavitev določenih podatkoviz datoteke /application/config/config.php file v mapo, ki ni v spletnem imeniku. Za Apache uporabnike je ta imenik znotraj mape htdocs (oziroma public_html ali www). Tako boste uporabljali datoteko config.php, vendar boste imeli v njej eno vrstico, ki vključuje datoteko z dejanskimi informacijami o nastavitvah (primer: <?php return include("/home/hostfolder/safedata/configreal.php"); ?>). Iz datoteke /application/config/config.php odstranite vse aktualne informacije o nastavitvah in jih prilepite v drugo datoteko (configreal.php), ki je vključena v datoteki /application/config/config.php. Ta datoteka se mora nahajati izven spletnega imenika. V tem primeru datoteka /application/config/config.php ne bo vsebovala gesla podatkovne zbirke itd., pač pa samo ime datoteke, ki vsebuje informacije o podatkovni zbirki. S tem se izognete spremembam vseh drugih datotek vključenih v datoteki /application/config/config.php, glede na to da so še vedno vključene in bodo vsebovale realne informacije o nastavitvah. Boste pa morali urediti datoteko configreal.php in spremeniti naslednje parametre

  This must be done only after installation, using the existing config.php file for start.


'basePath' => dirname(dirname('''FILE''')),
'runtimePath' => dirname(dirname(dirname('''FILE'''))).DIRECTORY_SEPARATOR.'tmp'.DIRECTORY_SEPARATOR.'runtime',
[...]

'urlManager' => array(
   [...]
   'rules' => require('routes.php'),
   [...]
);

da lahko uporabite absolutno pot do imenika, ki bo pravilno delovala. Primer:

'basePath' => '/var/www/htdocs/limesurvey',
'runtimePath' => '/var/www/htdocs/limesurvey/tmp/runtime',
[...]

'urlManager' => array(
   [...]
   'rules' => require('/var/www/htdocs/limesurvey/config/routes.php'),
   [...]
);

Prav tako ne uporabljajte "admin" uporabnika za privzetega uporabnika. Pojdite v vašo MySQL podatkovno zbirko (ali drugo, če ste namestili LimeSurvey na drugi podatkovni zbirki) in zamenjajte privzeto uporabniško ime "admin" na karkoli drugega, ki vam ustreza (na primer "admin_xyz"). Tako bo veliko težje uganiti novo skrbniško uporabniško ime. Vedite da je to eden od dveh podatkov, ki ju vsiljivci potrebujejo za pridobitev dostopa. Drugi podatke je skrbniško geslo, zato ga izberite zelo pazljivo.