首页 > ODOO > 正文

Odoo 生产环境安全加固清单

fenij 2026-08-19 43 ODOO

把 Odoo 直接裸跑在 8069 端口、master 密码还是 admin、数据库列表谁都能看——这是 2026 年最常见的 Odoo 入侵入口。下面这份清单,按「关暴露面 → 锁数据库 → 上防火墙」的顺序,把生产 Odoo 该堵的洞一次堵上,照着做半小时能搞定。

第一步:藏好数据库管理器

默认 Odoo 会在 /web/database/manager 暴露建库、删库界面,且 list_db=True 时还能列出所有库名。生产环境必须关掉,否则别人扫到你域名就能看到库清单。

# /etc/odoo.conf
list_db = False
# 或用启动参数 --no-database-list

第二步:锁死 PostgreSQL

PostgreSQL 默认监听所有网卡是巨大风险,而且 Odoo 的数据库用户不应是超级用户。把监听收回到本地,再用一个强密码的非特权账号。

# postgresql.conf
listen_addresses = 'localhost'

# 进入 psql 后执行
ALTER USER odoo WITH PASSWORD '换成一段强密码';
# 建议把 db_user 设为非超级用户,库归属另一个用户

第三步:防火墙只留必要口

8069 绝不能直接对公网开放,只让 Nginx 反代 443 对外,SSH 强制用密钥。8069 这个端口只在内网流通。

sudo ufw default deny incoming
sudo ufw allow OpenSSH
sudo ufw allow 'Nginx Full'
sudo ufw enable
# 确认 8069 不在放行列表里

踩坑实录

去年帮一家客户巡检,发现他们的 Odoo 主密码还是安装时的 admin,且 list_db=True,外网一访问 /web/database/manager 就把库名全列出来了。更离谱的是 PostgreSQL 监听 0.0.0.0,而且 Odoo 用的是 postgres 超级用户。我先把 list_db 设 False、master 密码改成 24 位随机串,再改 pg_hba 只放行本地,最后 ufw 只开 443 和 SSH。改完当晚,fail2ban 日志里十几条爆库尝试全部落空。教训:暴露面越小,被扫到的概率越低。

加固清单速查

加固项 做法 作用
关数据库列表 list_db = False 隐藏库名,防爆库
强主密码 24 位随机串 防管理页被接管
PG 收本地 listen localhost 防数据库被远程连
防火墙 只开 443 / SSH 缩暴露面
上 fail2ban 限制登录失败 防暴力破解

常见问题

关了 list_db 后自己还能建库吗?
能。只是匿名访问者看不到建库界面,管理员用 –db-filter 配好单一库后,日常维护不受影响。

Nginx 反代还要配什么?
记得开 proxy 超时和长连接,并上 Certbot 的免费 SSL,让 8069 全程走内网、443 对外加密。

如果你正在上 Odoo 生产环境,欢迎到 fenij.com 留言说说你担心的安全点,我可以再写一期「Odoo + Nginx + SSL」的完整部署文。

排错自查清单

  • ☐ 第一步:藏好数据库管理器:默认 Odoo 会在 /web/database/manager 暴露建库、删库界面,且 list_db=Tr
  • ☐ 第二步:锁死 PostgreSQL:PostgreSQL 默认监听所有网卡是巨大风险,而且 Odoo 的数据库用户不应是超级用户。把监听收回到本地
  • ☐ 第三步:防火墙只留必要口:8069 绝不能直接对公网开放,只让 Nginx 反代 443 对外,SSH 强制用密钥。8069 这个端口只
  • ☐ 踩坑实录:去年帮一家客户巡检,发现他们的 Odoo 主密码还是安装时的 admin,且 list_db=True,外网一
  • ☐ 加固清单速查
  • ☐ 常见问题:关了 list_db 后自己还能建库吗?能。只是匿名访问者看不到建库界面,管理员用 --db-filter 配

关键命令速查

  • # /etc/odoo.conf list_db = False # 或用启动参数 --no-database-list
  • # postgresql.conf listen_addresses = 'localhost' # 进入 psql 后执行 ALTER USER odoo WITH PASSWO
  • sudo ufw default deny incoming sudo ufw allow OpenSSH sudo ufw allow 'Nginx Full' sudo ufw

相关延伸

更系统的排查思路,见 ODOO 分类归档

相关完整手册

系统化的排查与配置思路,建议顺手收藏这几篇完整手册: