Odoo на нашых пяці сайтах даступны з адкрытага інтэрнэту, і гэта не выключэнне, а звычайная справа: той, хто кіруе вітрынай, інтэрнэт-крамай або формай уваходу для кліентаў, мае публічны сервер. Дастаткова аднаго ненадзейнага пароля, забытага файла канфігурацыі або занадта шырокіх правоў доступу, каб публічны сервер ператварыўся ў безабаронны.
У гэтым артыкуле паказана, як правільна абараніць Odoo 19 — не адной толькі мерай, а праз некалькі ўзроўняў, якія дапаўняюць адзін аднаго: фаервол і зваротны проксі-сервер, наш модуль з адкрытым зыходным кодам Web RBL, двухфактарная аўтэнтыфікацыя, палітыка пароляў і правы доступу — а таксама тое, якія менавіта спробы атак нейтралізуе кожны з гэтых узроўняў. У канцы прыводзіцца пакрокавае кіраўніцтва, якое дапаможа наладзіць любую ўласную інсталяцыю Odoo.
Змест гэтага артыкула
- Эшаланаваная абарона: чаму адной меры ніколі не бывае дастаткова
- Узровень 1: фаервол і зваротны проксі-сервер
- Узровень 2: Web RBL — мост да фаервола
- Узровень 3: абарона самой Odoo (2FA, палітыка пароляў, правы доступу)
- Узровень 4: база даных і эксплуатацыя
- Працэс аўтэнтыфікацыі ў цэлым
- Сцэнарыі атак і супрацьдзеянне ім
- Пакрокавае кіраўніцтва
- Частыя пытанні
Эшаланаваная абарона: чаму адной меры ніколі не бывае дастаткова
Кожная асобная мера бяспекі мае свае прагалы. Фаервол не бачыць, што адбываецца ў форме ўваходу Odoo. Надзейны пароль не абароніць, калі яго ўжо скралі на іншым сэрвісе. Структура правоў доступу бескарысная супраць зламысніка, які яшчэ нават не аўтарызаваўся. Прынцып, які ліквідуе гэтыя прагалы, называецца эшаланаванай абаронай (defense in depth): некалькі незалежных узроўняў, кожны з якіх паасобку можна абысці, але ўсе разам — немагчыма.
У нас выкарыстоўваюцца чатыры ўзроўні, кожны са сваёй задачай:
- Фаервол / зваротны проксі-сервер — адсякае відавочна шкоднасны трафік яшчэ да таго, як той дасягне сервера
- Web RBL — аб'ядноўвае абодва бакі: Odoo атрымлівае з уласнага журнала праграмы тое, чаго фаервол увогуле не бачыць, і перадае гэтыя звесткі назад яму
- Сама Odoo — двухфактарная аўтэнтыфікацыя, палітыка пароляў, правы доступу, кіраванне сесіямі
- База даных & эксплуатацыя — рэзервовае капіраванне, абарона адміністрацыйнага доступу, захоўванне сакрэтаў па-за межамі логаў
У наступных раздзелах мы падрабязна разгледзім кожны ўзровень.
Узровень 1: фаервол і зваротны проксі-сервер
Фаервол — гэта першая інстанцыя, якая бачыць запыт, і адзіная, здольная адсекчы зламысніка ад кожнай службы на серверы: не толькі ад вэб-сайта, але і ад паштовага сервера, VPN-доступу і ўласнай панэлі кіравання. Што менавіта мэтазгодна актываваць на гэтым этапе, залежыць ад вытворцы, але асноўныя канцэпцыі ў OPNsense, pfSense, HAProxy, FortiGate, Sophos ці Check Point аднолькавыя:
| Функцыя | Супраць чаго дапамагае |
|---|---|
| Актуальная версія TLS і абмежаваны набор алгарытмаў шыфравання | Перахоп і падмена злучэння; састарэлыя алгарытмы ўжо шмат гадоў лічацца ўзламанымі або ненадзейнымі |
| Спісы рэпутацыі і паходжання (RBL) | Вядомыя сеткі зламыснікаў, выхадныя вузлы Tor, цэлыя краіны, дзе няма ўласных кліентаў — гл. ніжэй |
| Абмежаванне частаты запытаў на адрас | Падбор пароляў і сканеры каталогаў, якія робяць дзясяткі запытаў за секунды |
| Падзел кіравання і асноўнага трафіка | Панэль кіравання фаерволам не павінна быць даступнай па тым жа адрасе, што і публічны вэб-сайт |
| IDS/IPS (выяўленне і прадухіленне атак) | Вядомыя шаблоны атак на сеткавым узроўні, незалежна ад таго, якая праграма працуе за ім |
| Аўтаматычныя абнаўленні бяспекі для самога фаервола | Фаервол без усталяваных абнаўленняў — гэта ўжо не абарона, а дадатковая мішэнь |
Спісы RBL: стандартны спосаб перадачы звестак пра рэпутацыю
RBL расшыфроўваецца як Real-time Blackhole List — тэрмін са сферы электроннай пошты: адзін адрас на радок, даступны праз HTTP і рэгулярна абнаўляецца. Практычна любы фаервол можа счытваць такі спіс і фармаваць на яго аснове правілы: OPNsense і pfSense — як URL Table Alias, HAProxy — як файл ACL, FortiGate — як External Block List, Palo Alto — як External Dynamic List, а Cisco, Sophos, Juniper і MikroTik выкарыстоўваюць уласныя назвы для гэтага ж прынцыпу.
Менавіта тут уступае ў дзеянне наш модуль — і менавіта тут пачынаецца другі ўзровень.
Узровень 2: Web RBL — мост паміж праграмай і фаерволам
Фаервол бачыць пакеты, а не логіку праграмы. Ён не ведае, што запыт да /xmlrpc/2/common з'яўляецца спробай уваходу, што дваццаць розных шляхоў за чатырнаццаць секунд сведчаць пра працу сканера, або што з нейкага адраса толькі што паспяхова паддабралі пароль. Усё гэта ведае толькі сама Odoo. Web RBL, наш уласны модуль з адкрытым зыходным кодам (AGPL-3), дазваляе выкарыстоўваць гэтыя веды — як для самой Odoo, так і, у выглядзе RBL-спіса, для фаервола перад ёй.
Спісы пагроз пастаянна сінхранізуюцца, кожны з уласным узроўнем.
Кароткае рэзюмэ таго, што падрабязна апісана ў папярэднім артыкуле:
- Распазнаванне шаблонаў у шляхах: файлы
.env, каталогі.git, файлы канфігурацыі, зонды WordPress і PHP, абыход каталогаў, выкананне каманд праз новыя інтэрфейсы штучнага інтэлекту - Абарона ад падбору пароляў, якая вядзе падлік нават пасля перазапуску — у адрозненне ад уласнага лічыльніка Odoo, які захоўваецца ў аператыўнай памяці
- Ацэнка кожнага адраса ад 0 да 100 з тлумачэннем простым тэкстам
- Памылкі канфігурацыі (QNAP, Autodiscover, Synology) выяўляюцца і ніколі не блакіруюцца, бо блакіраванне не ліквідуе праблему, а толькі хавае яе
- Знешнія спісы пагроз, такія як Spamhaus, FireHOL і выхадныя вузлы Tor, якія пастаянна сінхранізуюцца
- Спіс дазволеных адрасоў для адрасоў, якія ніколі не павінны блакіравацца
Для гэтага артыкула асабліва важныя дзве ўласцівасці, паколькі яны непасрэдна звязаны з фаерволам і аўтэнтыфікацыяй.
Стабільны спіс — гэта спіс, якому можна давяраць
Спіс дазволеных адрасоў — адрасы, якія ніколі не блакіруюцца, напрыклад каналы сувязі з уласнымі філіяламі, — звычайна змяняецца рэдка. Менавіта ў гэтым заключаецца яго каштоўнасць, а не недахоп: калі спакойны спіс амаль не змяняецца днямі, кожная рэдкая змена адразу кідаецца ў вочы. Штодзённае аўтаматычнае абнаўленне існуе не таму, што шмат што мяняецца, а для таго, каб рэдкія змены не даводзілася ўносіць уручную — бо менавіта ў такі момант пра гэта звычайна забываюць. Адна з нашых уласных памылак канфігурацыі ў мінулым месяцы была заўважана менавіта так: не праз вялікую колькасць падзей, а праз адзін выпадак, пра які ніхто не ведаў, пакуль вэб-API QNAP аднаго з кліентаў не быў памылкова заблакіраваны. З таго часу QNAP знаходзіцца ў спісе памылак канфігурацыі, якія ніколі не блакіруюцца, а толькі рэгіструюцца.
Аўтэнтыфікацыя — гэта тое месца, якога не бачыць фаервол
Фаервол можа заблакіраваць адрас. Але ён не здольны даведацца, ці была спроба ўваходу паспяховай, і тым больш — ці была яна здзейснена з адраса, які незадоўга да гэтага шукаў уліковыя даныя. Web RBL гэта ведае: адзнака, якая перавышае наладжвальны парог, цалкам забараняе ўваход, а пра паспяховы ўваход з падазронага адраса адпраўляецца паведамленне — гэта і ёсць сувязное звяно з наступным узроўнем.
Узровень 3: абарона самой Odoo
Двухфактарная аўтэнтыфікацыя: другі сакрэт, які немагчыма выкарыстаць паўторна
Галоўная праблема пароляў — не іх надзейнасць, а іх паўторнае выкарыстанне. Пароль, скрадзены на іншым сэрвісе, спрацуе і ў нас, калі ён такі ж самы. Двухфактарная аўтэнтыфікацыя (2FA, таксама вядомая як TOTP) супрацьпастаўляе гэтаму другі сакрэт: шасцізначны код, які змяняецца кожныя трыццаць секунд і вылічваецца на аснове ключа, вядомага толькі вашаму смартфону. Скрадзенага пароля самога па сабе цяпер недастаткова.
Odoo 19 Community змяшчае гэта адразу з скрыні — у выглядзе даступнага для ўсталявання модуля Two-Factor Authentication (TOTP), дапоўненага рэзервовым варыянтам праз электронную пошту. Кожны карыстальнік наладжвае яго для сябе самастойна праз QR-код з дапамогай любой папулярнай праграмы-аўтэнтыфікатара:
Налада: адсканаваць QR-код, адзін раз пацвердзіць шасцізначны код — гатова.
Але само па сабе гэта дапамагае толькі тым, хто наладжвае яго самастойна, а досвед паказвае, што без прымусу такіх застаецца меншасць. Таму ў Odoo ёсць палітыка прымусовага выкарыстання: альбо толькі для супрацоўнікаў (унутраных карыстальнікаў), альбо для ўсіх, уключаючы карыстальнікаў партала. Без наладжанага другога фактара ніхто больш не пройдзе далей за экран уваходу без пацвярджэння прынамсі кодам з электроннага ліста.
Палітыка пароляў: мінімальная даўжыня не з'яўляецца чымсьці само сабой зразумелым
Без дадатковага модуля Odoo Community не патрабуе ніякай мінімальнай даўжыні пароляў — карыстальнік можа задаць пароль з трох сімвалаў, калі ніхто гэтаму не перашкаджае. Уласны модуль Password Policy ліквідуе акурат гэты прагал: мінімальная даўжыня забяспечваецца на баку сервера, а не проста прапануецца ў браўзеры. Калі патрабуецца большае — прымусовы тэрмін дзеяння, гісторыя для прадухілення паўторнага выкарыстання, — для гэтага спатрэбіцца модуль ад OCA або іншых распрацоўшчыкаў; у версіі Community функцыянал свядома зроблены кампактным.
Правы доступу: доступ атрымлівае толькі той, каму ён сапраўды патрэбны
Odoo першапачаткова прадугледжвае тры ўзроўні: карыстальнікі партала (толькі ўласны партал кліента або пастаўшчыка), унутраныя карыстальнікі (бэкэнд з правамі для кожнай праграмы) і адміністратары (неабмежаваны доступ разам з тэхнічнымі наладамі). Самая частая памылка — не занадта просты пароль, а празмерна шчодра выдзеленая роля адміністратара: таму, хто павінен толькі выстаўляць рахункі, не патрэбны доступ да сістэмных налад.
Асноўны цяжар кладзецца на два прынцыпы:
Ключ API замест пароля: кожнае знешняе падключэнне (бухгалтарскае ПЗ, улік працоўнага часу, уласныя скрыпты) атрымлівае ўласны ключ, які можна адклікаць у любы час, і ні ў якім разе не пароль карыстальніка.
І тое, і іншае можна праверыць на тым самым экране, дзе наладжваецца двухфактарная аўтэнтыфікацыя:
Адзін экран, чатыры рычагі: пароль, другі фактар, ключы API, падключаныя прылады.
Сеансы і прылады: хто ўвайшоў у сістэму проста цяпер
На тым самым экране таксама паказваецца, з якіх прылад цяпер выкананы ўваход ва ўліковы запіс, і дазваляецца завяршыць асобны сеанс або ўсе адразу. Калі згубіўся ноўтбук альбо ёсць падазрэнне на кампраметацыю пароля, гэта самы хуткі і эфектыўны крок: сеанс завяршаецца неадкладна, незалежна ад таго, ці быў ужо зменены пароль.
Узровень 4: база даных і эксплуатацыя
Чацвёрты ўзровень — найменш бачны і разам з тым самы бескампрамісны, бо памылка тут можа звесці на нішто ўсё пабудаванае раней.
/web/database/manager прапануе інтэрфейс, у якім базы даных можна ствараць, захоўваць у рэзервовыя копіі, аднаўляць і выдаляць — пад абаронай аднаго-адзінага галоўнага пароля. Гэты інтэрфейс павінен быць даступны выключна з унутранай сеткі або цалкам адключаны.
- Рэгулярныя правераныя рэзервовыя копіі, захаваныя асобна ад самога сервера. Рэзервовая копія, якую ніколі не разгортвалі, — гэта толькі здагадка, а не рэзервовая копія.
- Канфідэнцыйным даным не месца ў лог-файлах. Паролі, ключы API, ліцэнзійныя звесткі — той, хто піша ўласныя пашырэнні, павінен ставіцца да іх гэтак жа, як да самога галоўнага пароля: нідзе не запісваць, нават «проста для адладкі».
- Падтрымліваць модулі ў актуальным стане, асабліва староннія. Бясплатныя дадатковыя модулі (OCA і іншыя), натуральна, адстаюць ад новых версій Odoo; перад кожным усталяваннем варта правяраць, якія залежнасці падцягваюцца аўтаматычна.
Працэс аўтэнтыфікацыі ў цэлым
Чатыры ўзроўні працуюць не паасобку ў розных месцах, а з адным і тым жа запытам, узровень за ўзроўнем. Найбольш наглядна гэта відаць на прыкладзе працэдуры ўваходу:
Пяць месцаў, дзе шкоднасны запыт можа быць спынены, перш чым дасягне фактычнай мэты, — і толькі адзін варыянт, калі аўтарызаваны карыстальнік праходзіць іх усе.
Сцэнарыі атак і супрацьдзеянне ім
Наступны агляд супастаўляе рэальныя сцэнарыі атак з узроўнямі, якія іх фактычна спыняюць. Некаторыя з іх — не тэорыя, а нашы ўласныя назіранні за сямнаццаць дзён рэальнага трафіку на нашых пяці сайтах.
| Сцэнарый атакі | Як адбываецца | Што яе спыняе |
|---|---|---|
| Падбор пароляў | Скрыпт падбірае сотні камбінацый праз форму ўваходу або XML-RPC | Абмежаванне частаты запытаў на фаерволе, захаванне лічыльніка Web RBL пасля перазапуску, блакіроўка пасля дзесяці спроб, неадкладная блакіроўка пры ігнараванні паведамлення пра чаканне |
| Паўторна выкарыстаныя ўліковыя даныя, скрадзеныя на іншых рэсурсах | Зламыснік ужо ведае імя карыстальніка і пароль са ўзламанага іншага сэрвісу | Двухфактарная аўтэнтыфікацыя спыняе ўваход, нягледзячы на правільны пароль; дадаткова Web RBL паведамляе пра паспяховы ўваход з падазронага адраса |
| Пошук забытых канфідэнцыйных даных | Аўтаматызаваныя запыты на .env, .git, воблачныя ключы доступу — у нас 57.721 запыт за семнаццаць дзён толькі на .env |
Web RBL блакуе пры першым супадзенні; пасля гэтага фаервол таксама атрымлівае адрас як запіс RBL для ўсіх астатніх службаў |
| Сканеры каталогаў і шляхоў | Дзясяткі прыдуманых шляхоў за некалькі секунд у пошуках забытых праграм | Паводзінскі аналіз: мноства памылак, амаль ніводнага трапляння за кароткі прамежак часу — незалежна ад таго, ці адпавядае шлях вядомаму шаблону |
| Няправільна наладжаная ўласная прылада | Кліент сінхранізацыі або паштовая праграма па памылцы спасылаюцца на няправільны адрас і дасылаюць запыты кожную хвіліну | Распазнаванне як памылкі канфігурацыі, а не атакі, стварэнне тыкета замест блакіроўкі — блакіроўка не ліквідуе праблему, а толькі зацягне яе вырашэнне |
| Аўтаматызаваны збор абавязковых выходных звестак | Парсер запытвае старонкі з юрыдычнай інфармацыяй пад іншымі варыянтамі напісання, часта з мэтай падрыхтоўкі хвалі прэтэнзій | Кананічны шлях заўсёды застаецца даступным (гэтага патрабуе закон), а іншыя варыянты напісання выяўляюцца і альбо фіксуюцца ў справаздачах, альбо блакуюцца |
| Згубленая або скрадзеная прылада | Ноўтбук ці мабільны тэлефон з адкрытым сеансам трапляе ў чужыя рукі | Агляд сеансаў з імгненным выхадам на ўсіх прыладах, незалежна ад змены пароля |
| Занадта шырокія ўнутраныя правы доступу | Уліковы запіс з залішнімі правамі скампраметаваны або выкарыстоўваецца не па прызначэнні | Прынцып найменшых прывілеяў для кожнай праграмы з самага пачатку абмяжоўвае патэнцыйную шкоду тым, што сапраўды неабходна для гэтага ўліковага запісу |
| Злоўжыванне знешнім інтэрфейсам | Украдзены ключ API або скампраметаваная староняя сістэма атрымлівае доступ праз XML-RPC/JSON-RPC | Уласныя ключы API з магчымасцю адклікання замест пароля карыстальніка; Web RBL таксама адсочвае няўдалыя спробы ўваходу праз RPC |
| Памылкова класіфікаваны пошукавы робат | Легітымны робат генеруе столькі трафіку, што выглядае як размеркаваная атака, — на адным з нашых сайтаў GPTBot ствараў больш за семдзесят працэнтаў усяго трафіку | Белы спіс з апублікаванымі дыяпазонамі адрасоў вядомых пошукавых сістэм прадухіляе ілжывую блакіроўку, якая выключыла б уласны сайт з індэксацыі |
| Састарэлы старонні модуль з вядомай уразлівасцю | Уразлівасць у бясплатным дадатковым модулі становіцца агульнавядомай, а абнаўленне з'яўляецца толькі праз некалькі тыдняў | Перад кожным усталяваннем правяраць, што далучаецца аўтаматычна; абнаўленні спачатку рабіць на тэставым асяроддзі, а не на жывой сістэме |
| Адкрытае кіраванне базамі даных | Інтэрфейс кіравання даступны праз адкрыты інтэрнэт; падабранага або слабога галоўнага пароля дастаткова, каб выдаліць або скапіяваць базы даных | Інтэрфейс ніколі не пакідаюць адкрытым для публічнага доступу, а галоўны пароль застаецца доўгім, выпадковым і нідзе не запісваецца |
Крок за крокам: абарона ўласнай устаноўкі Odoo
Ніжэй прыведзены парадак дзеянняў, якога мы прытрымліваліся б самі, — ад найбольшага эфекту да самай тонкай налады.
1. Увесці абавязковую двухфактарную аўтэнтыфікацыю
- Калі яшчэ не ўсталявана: адкрыйце Apps, знайдзіце «Two-Factor Authentication» і ўсталюйце (пры некалькіх вэб-сайтах дадаткова рэкамендуецца «Two-Factor Authentication by Mail» як запасны варыянт).
- Адкрыць Налады → Агульныя налады → Правы доступу.
- Уключыце «Прымусовая двухфактарная аўтэнтыфікацыя».
- Абярыце палітыку: «Толькі супрацоўнікі» для ўнутраных карыстальнікаў, «Усе карыстальнікі», калі трэба ахапіць і карыстальнікаў партала (кліентаў з доступам).
- Захаваць. Пачынаючы з наступнай спробы ўваходу Odoo будзе патрабаваць ад кожнага карыстальніка без наладжанага другога фактара як мінімум код з электроннага ліста, пакуль ён не наладзіць праграму-аўтэнтыфікатар.
2. Задаць мінімальную даўжыню пароляў
- Адкрыйце Apps, знайдзіце «Password Policy» і ўсталюйце.
- Адкрыць Налады → Агульныя налады → Правы доступу.
- Задайце «Мінімальная даўжыня пароля» — дванаццаць знакаў з'яўляюцца разумным пачатковым значэннем.
- Захаваць. Правіла пачынае дзейнічаць адразу ж для кожнага новага або змененага пароля і не мае зваротнай сілы для існых пароляў.
3. Правесці рэвізію правоў доступу
- Адкрыць Налады → Карыстальнікі & кампаніі → Карыстальнікі.
- Адкрыйце кожнага карыстальніка паасобку і праверце ўкладку з правамі доступу па кожным прыкладанні: ці сапраўды гэтаму чалавеку патрэбны «Менеджар» або «Адміністратар», ці хопіць «Карыстальніка»?
- Асабліва праверце: хто мае доступ да саміх «Налад»? Гэта павінна быць вельмі малая група.
- Для кожнага знешняга падключэння (бухгалтэрыя, уласныя скрыпты, уліковая сістэма часу) на ўкладцы «Бяспека ўліковага запісу» адпаведнага тэхнічнага карыстальніка стварыце ўласны ключ API, замест таго каб перадаваць пароль карыстальніка.
4. Усталяваць Web RBL і весці маніторынг перад баявым уключэннем
- Модуль ад github.com/Alex0176/odoo-web-rbl змясціць у каталог дапаўненняў і ўсталяваць.
- Некалькі дзён назіраць: меню Web RBL → Аналіз паказвае, якія шаблоны сапраўды спрацоўваюць.
- Толькі пасля гэтага ўключыць
web_rbl.sperren_aktiv(Налады → Тэхнічныя → Сістэмныя параметры) — з гэтага моманту выяўленыя зонды будуць сапраўды адхіляцца. - Падключыць чорны спіс па адрасе, паказаным у модулі і абароненым токенам, да фаервола ў якасці спіса RBL (у OPNsense/pfSense — як URL Table Alias, у HAProxy — як файл ACL).
5. Абараніць сам фаервол
- Зрабіць панэль кіравання фаервола даступнай выключна з унутранай сеткі і ні ў якім разе не праз той самы публічны адрас, што і сайт.
- Уключыць аўтаматычныя абнаўленні бяспекі для праграмнага забеспячэння фаервола, калі гэта прадугледжана вытворцам.
- Праверыць канфігурацыю TLS: толькі актуальныя версіі пратаколаў, састарэлыя метады шыфравання адключыць.
- Калі ёсць такая магчымасць: падключыць аўтарытэтны рэпутацыйны спіс (напрыклад, Spamhaus DROP) наўпрост на фаерволе — незалежна ад Web RBL, бо дзякуючы гэтаму фаервол бачыць і трафік да службаў, да якіх Odoo нават не даходзіць.
6. Закрыць доступ да кіравання базамі даных
- Праверыць, ці даступны
/web/database/managerзвонку: калі так, задаць у канфігурацыі Odoolist_db = Falseальбо заблакаваць гэты шлях на ўзроўні фаервола. - Зрабіць галоўны пароль для кіравання базамі даных доўгім і выпадковым і нідзе не запісваць яго ў месцах, даступных для іншых.
7. Правяраць рэзервовае капіраванне, а не проста наладжваць яго
- Наладзіць аўтаматычнае рэгулярнае рэзервовае капіраванне з захоўваннем асобна ад сервера Odoo.
- Прынамсі адзін раз фактычна разгарнуць копію і праверыць, ці працуе аднаўленне: неправераная рэзервовая копія — гэта толькі здагадка.
Ніводзін з гэтых крокаў не замяняе іншы. Той, хто рэалізуе толькі адзін з іх, умацоўвае адны дзверы, пакідаючы насцеж адкрытымі ўсе астатнія; той жа, хто выконвае ўсе сем, атрымлівае абарону, якая выстаіць нават пры збоі аднаго з узроўняў.
Чаго гэтая архітэктура не замяняе
Ніводная з апісаных мер не пазбаўляе ад неабходнасці быць пільнымі. Модуль, які адхіляе спробы сканавання .env, не робіць выпадкова апублікаваны файл .env бяспечным. Двухфактарная аўтэнтыфікацыя не абароніць, калі карыстальнік сам прадыктуе свой код таму, хто патэлефанаваў. А фаервол не прыме за вас рашэнне аб тым, каму якія правы сапраўды патрэбныя. Архітэктура бяспекі стварае ўмовы, пры якіх адзінкавая памылка не прыводзіць адразу да інцыдэнту, але яна не здымае адказнасці за абачлівасць.
Частыя пытанні
Ці дастаткова надзейнага пароля, каб засцерагчы Odoo 19?
Не. Пароль могуць скрасці ў іншым месцы, незалежна ад яго надзейнасці, і тады ён спрацуе ў любой службе, дзе выкарыстоўваецца той самы пароль. Толькі спалучэнне з двухфактарнай аўтэнтыфікацыяй, фаерволам перад сістэмай і прадуманай структурай правоў доступу стварае абарону, якая выстаіць нават пры крадзяжы пароля.
Як уключыць двухфактарную аўтэнтыфікацыю ў Odoo 19?
Усталяваць модуль «Two-Factor Authentication (TOTP)» праз кіраванне Apps, затым у раздзеле Налады → Агульныя налады → Правы доступу уключыць прымус і абраць паміж «Толькі супрацоўнікі» і «Усе карыстальнікі». Пасля гэтага кожны карыстальнік наладжвае свой другі фактар праз QR-код.
Што такое спіс RBL і навошта ён патрэбны для Odoo?
RBL (Real-time Blackhole List) — гэта даступны па HTTP спіс адрасоў, які можа счытваць практычна любы фаервол. Сама Odoo не змяшчае такога спіса — наш модуль Web RBL ліквідуе гэты прагал: ён выяўляе атакуючы трафік уласнага пратакола праграмы і перадае яго ў выглядзе спіса RBL вонкаваму фаерволу.
Ці дастаткова абаронена Odoo 19 Community без дадатковых модуляў?
Не зусім. Без модуля Password Policy няма мінімальнай даўжыні пароляў, без Two-Factor Authentication няма другога фактара, а без такога модуля, як Web RBL, Odoo не распазнае ні спробы сканавання, ні паўторныя спробы ўваходу пасля перазапуску. Усе чатыры функцыі можна дадаць бясплатна.
Даступнасць
Модуль Web RBL агульнадаступны пад ліцэнзіяй AGPL-3 і працуе ў нас у прадуктыўным рэжыме на пяці сайтах:
github.com/Alex0176/odoo-web-rbl
Поўнае апісанне функцый з усімі шаблонамі, ацэнкай і спісамі пагроз знаходзіцца ў папярэднім артыкуле: Web RBL — чорны спіс для атакуючага трафіку на ўласных сайтах.
Мы заўсёды рады пытанням, заўвагам і паведамленням пра памылкі — пажадана ў выглядзе Issue на GitHub.