security.html 5.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. <html lang="en">
  2. <head>
  3. <meta charset="utf-8" />
  4. <title>Chamilo Security Guide</title>
  5. <link rel="stylesheet" href="../web/assets/bootstrap/dist/css/bootstrap.css" type="text/css" media="screen,projection" />
  6. <link rel="stylesheet" href="default.css" type="text/css" media="screen,projection" />
  7. <link rel="shortcut icon" href="../favicon.ico" type="image/x-icon" />
  8. </head>
  9. <body>
  10. <div class="container">
  11. <h1>Chamilo LMS: Security Guide</h1>
  12. <a href="index.html">Documentation</a> &gt; Security Guide
  13. <p>We recommend you don't take security issues too lightly. Chamilo is security-audited at least once a year,
  14. but you're never too sure. This list is a work in progress. Feel free to recommend additional measures by
  15. sending us an e-mail at info@chamilo.org.</p>
  16. <h2><b>Contents</b></h2>
  17. <ol>
  18. <li><a href="#1.Disclosing-server-info">Disclosing server info</a></li>
  19. <li><a href="#2.Keeping-up-to-date">Keeping up to date</a></li>
  20. <li><a href="#3.Using-safe-browsers">Using safe browsers</a></li>
  21. <li><a href="#4.Moving-config-file">Moving your configuration file out of the web directory</a></li>
  22. <li><a href="#5.Files-permissions">Restricting files permissions</a></li>
  23. </ol>
  24. <h2><a name="1.Disclosing-server-info"></a>1. Disclosing server info</h2>
  25. <p>
  26. It is considered a safer behaviour not to disclose server information from your Chamilo page. In order to avoid
  27. both web server and PHP information disclosure, you might want to take the following actions:
  28. <ul>
  29. <li>Locate the <i>ServerTokens</i> setting inside your Apache configuration and set it to "Prod"</li>
  30. <li>Locate the <i>ServerSignature</i> setting inside your Apache configuration and set it to "Off"</li>
  31. <li>Locate the <i>expose_php</i> setting inside your PHP configuration and set it to "Off"</li>
  32. <li>Reload Apache</li>
  33. </ul>
  34. </p>
  35. <h2><a name="2.Keeping-up-to-date"></a>2. Keeping up to date</h2>
  36. <p>
  37. Make sure you check <a href="http://support.chamilo.org/projects/chamilo-18/wiki/Security_issues">our security
  38. issues page</a> from time to time.
  39. Subscribe to our free security alerts mailing-list:
  40. <a href="http://lists.chamilo.org/listinfo/security">http://lists.chamilo.org/listinfo/security</a> or that you
  41. follow our security Twitter feed: <a href="http://twitter.com/chamilosecurity">http://twitter.com/chamilosecurity</a>.
  42. </p>
  43. <h2><a name="3.Using-safe-browsers"></a>3. Using safe browsers</h2>
  44. <p> Additionally to lacking the implementation of features that really improve the quality of your browsing the
  45. Internet, older browsers tend to have many unresolved security flaws. Using an old browser, you put in danger the
  46. security of your computer and the data it contains, but you can also put others in danger by letting crackers take
  47. control of it and attacking others.</p>
  48. <p>To avoid being a risk to yourself and others, you should download and install a recent browser. We recommend
  49. <a href="http://www.getfirefox.com" target="_blank">the latest stable version of Firefox</a>.</p>
  50. <h2><a name="4.Moving-config-file"></a>4. Moving your configuration file out of the web directory</h2>
  51. <p>It is considered unsafe to leave the configuration file inside the app/config/ directory, as it will be directly
  52. accessible for all users, which could lead crackers to download it, uninterpreted, and read through your
  53. configuration, which could lead to illicit
  54. access to your database if that one isn't well protected and many other stuff we'd prefer to avoid. To secure it,
  55. move the configuration file out of your web directory. If your Chamilo installation is in /var/www/, move your
  56. configuration to /etc/chamilo/configuration.php, for example. Then create a new app/config/configuration.php
  57. file, open it, and write the following:</p>
  58. <p>
  59. <pre>
  60. &lt;?php
  61. require '/etc/chamilo/configuration.php';
  62. </pre>
  63. </p>
  64. <p>
  65. This will prevent direct access to your settings and make it seem totally the same to Chamilo.
  66. </p>
  67. <h2><a name="5.Files-permissions"></a>5. Restricting files permissions</h2>
  68. Making all the Chamilo files world-writable will help you install quickly, and it solves many
  69. issues for people without much admin experience. However, it's more
  70. secure to make a distinct user owner of all the chamilo files and folders,
  71. and only give read access to the web server to all files, and write access
  72. only to the directories previously mentioned. This way, these files need
  73. only be readable and writable by the Apache process owner, not by the
  74. entire world. It would also be advisable to make all writable directory
  75. refuse the interpretation of PHP files (except for the root of the courses
  76. directories). Don't hesitate to hire an experienced administrator to do that,
  77. it might be a bit more expensive now, but you'll be happy not to have to loose
  78. all of your data to a hacker who attacked your site.</li>
  79. <hr />
  80. <h2>Authors</h2>
  81. <ul>
  82. <li>Yannick Warnier, Zend Certified PHP Engineer, BeezNest Belgium SPRL,
  83. <a href="mailto:yannick.warnier@beeznest.com">yannick.warnier@beeznest.com</a></li>
  84. </ul>
  85. </div>
  86. </body>
  87. </html>