You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

114 lines
3.7 KiB

9 years ago
  1. .. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg
  2. :alt: License
  3. ===============================================================
  4. Tracks Authentication Attempts and Prevents Brute-force Attacks
  5. ===============================================================
  6. This module registers each request done by users trying to authenticate into
  7. Odoo. If the authentication fails, a counter is increased for the given remote
  8. IP. After a defined number of attempts, Odoo will ban the remote IP and
  9. ignore new requests.
  10. This module applies security through obscurity
  11. (https://en.wikipedia.org/wiki/Security_through_obscurity),
  12. When a user is banned, the request is now considered as an attack. So, the UI
  13. will **not** indicate to the user that his IP is banned and the regular message
  14. 'Wrong login/password' is displayed.
  15. This module realizes a call to a web API (http://ip-api.com) to try to have
  16. extra information about remote IP.
  17. Known issue / Roadmap
  18. ---------------------
  19. The ID used to identify a remote request is the IP provided in the request
  20. (key 'REMOTE_ADDR').
  21. Depending of server and / or user network configuration, the idenfication
  22. of the user can be wrong, and mainly in the following cases:
  23. * if the Odoo server is behind an Apache / NGinx proxy without redirection,
  24. all the request will be have the value '127.0.0.1' for the REMOTE_ADDR key;
  25. * If some users are behind the same Internet Service Provider, if a user is
  26. banned, all the other users will be banned too;
  27. Configuration
  28. -------------
  29. Once installed, you can change the ir.config_parameter value for the key
  30. 'auth_brute_force.max_attempt_qty' (10 by default) that define the max number
  31. of attempts allowed before the user was banned.
  32. Usage
  33. -----
  34. Admin user have the possibility to unblock a banned IP.
  35. Logging
  36. -------
  37. This module generates some WARNING logs, in the three following cases:
  38. * Authentication failed from remote '127.0.0.1'. Login tried : 'admin'.
  39. Attempt 1 / 10.
  40. * Authentication failed from remote '127.0.0.1'. The remote has been banned.
  41. Login tried : 'admin'.
  42. * Authentication tried from remote '127.0.0.1'. The request has been ignored
  43. because the remote has been banned after 10 attempts without success. Login
  44. tried : 'admin'.
  45. Screenshot
  46. ----------
  47. **List of Attempts**
  48. .. image:: /auth_brute_force/static/description/screenshot_attempts_list.png
  49. **Detail of a banned IP**
  50. .. image:: /auth_brute_force/static/description/screenshot_custom_ban.png
  51. Usage
  52. =====
  53. * go to ...
  54. .. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas
  55. :alt: Try me on Runbot
  56. :target: https://runbot.odoo-community.org/runbot/149/8.0
  57. For further information, please visit:
  58. * https://www.odoo.com/forum/help-1
  59. Bug Tracker
  60. ===========
  61. Bugs are tracked on `GitHub Issues <https://github.com/OCA/web/issues>`_.
  62. In case of trouble, please check there if your issue has already been reported.
  63. If you spotted it first, help us smashing it by providing a detailed and welcomed feedback
  64. `here <https://github.com/OCA/web/issues/new?body=module:%20auth_brute_force%0Aversion:%208.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
  65. Credits
  66. =======
  67. Contributors
  68. ------------
  69. * Sylvain LE GAL (https://twitter.com/legalsylvain)
  70. Maintainer
  71. ----------
  72. .. image:: http://odoo-community.org/logo.png
  73. :alt: Odoo Community Association
  74. :target: http://odoo-community.org
  75. This module is maintained by the OCA.
  76. OCA, or the Odoo Community Association, is a nonprofit organization whose
  77. mission is to support the collaborative development of Odoo features and
  78. promote its widespread use.
  79. To contribute to this module, please visit http://odoo-community.org.