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.

111 lines
3.6 KiB

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