惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
Tenable Blog
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
V
Vulnerabilities – Threatpost
G
GRAHAM CLULEY
Simon Willison's Weblog
Simon Willison's Weblog
C
CXSECURITY Database RSS Feed - CXSecurity.com
P
Privacy International News Feed
H
Heimdal Security Blog
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
S
Secure Thoughts
MyScale Blog
MyScale Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
V
Visual Studio Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
L
LINUX DO - 最新话题
D
Darknet – Hacking Tools, Hacker News & Cyber Security
The Cloudflare Blog
美团技术团队
Recorded Future
Recorded Future
T
Tailwind CSS Blog
Latest news
Latest news
Security Archives - TechRepublic
Security Archives - TechRepublic
Security Latest
Security Latest
Know Your Adversary
Know Your Adversary
Cloudbric
Cloudbric
Schneier on Security
Schneier on Security
I
Intezer
L
LINUX DO - 热门话题
P
Palo Alto Networks Blog
云风的 BLOG
云风的 BLOG
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Vercel News
Vercel News
Attack and Defense Labs
Attack and Defense Labs
人人都是产品经理
人人都是产品经理
L
LangChain Blog
爱范儿
爱范儿
博客园 - 三生石上(FineUI控件)
博客园 - 叶小钗
L
Lohrmann on Cybersecurity
S
SegmentFault 最新的问题
W
WeLiveSecurity
C
Cybersecurity and Infrastructure Security Agency CISA
S
Securelist
SecWiki News
SecWiki News
V2EX - 技术
V2EX - 技术
IT之家
IT之家
Cyberwarzone
Cyberwarzone
F
Full Disclosure
Spread Privacy
Spread Privacy
阮一峰的网络日志
阮一峰的网络日志

博客园 - 刘俊涛的博客

qoder-体验分享 50+专家角色+多代理框架,一个人就能建起一支AI 公司 小米突然放大招!2亿 Token 免费领,最后几天冲刺! 这个项目把浏览器“干了30年的事”干掉了:Pretext 为什么突然爆火? 通用商品打标模块实现方案(基于位运算,适配多框架多语言) 后端工程中使用 Model + Trait 设计可复用的数据模型(完整实现示例) 最小阻力之路 U盘打不开 : 文件损坏 : 提示需要格式化?用CHKDSK轻松修复教程 祂看顧麻雀(His Eye Is on the Sparrow)鄭漢良 别再把一切都变成数组了:用迭代器让 JavaScript 既快又省心 Spark性能调优实战笔记 Spark神操作:轻松拿捏公司“历史烂数据”,一人干翻十年脏表 特定血型血液生成的研究进展:化学合成与微生物生产技术路线 禁止直接 update 业务关键字段 非暴力沟通 PHP 8.1+ 引入的 枚举(Enum) 类型 PHP 8.5 新特性速览:管道操作符、clone with、闭包增强与更多实用功能 从错误中学习 产品拆解到底怎么做?8步框架,新手产品经理必学干货! 《创作与爱:托芙·扬松传》读书笔记 为什么软件反应特别慢?一次因版本架构错误导致的性能问题排查记录 【Go 语言神器】iota 到底是什么?为什么高手都爱用它?
MongoDB 端口安全加固方案
刘俊涛的博客 · 2026-02-09 · via 博客园 - 刘俊涛的博客

** MongoDB 端口安全加固方案**

1. 修改默认端口

避免使用默认 27017,改成一个不常用的高位端口(如 30017、37017 等):

# /etc/mongod.conf
net:
  port: 30017
  bindIp: 127.0.0.1

2. 限制访问来源(bindIp)

默认配置一般只绑定 127.0.0.1,如果必须远程访问,建议只允许特定内网 IP:

net:
  bindIp: 127.0.0.1,192.168.1.100

3. 启用认证

默认 MongoDB 没有开启认证,所有人都能直接操作数据库,非常危险。

步骤:

  1. 编辑配置文件启用:
security:
  authorization: enabled
  1. 创建管理员用户:
use admin
db.createUser({
  user: "root",
  pwd: "StrongPasswordHere",
  roles: ["root"]
})

4. 使用防火墙/安全组

  • Linux iptables / firewalld:只允许内网或指定服务器访问 MongoDB 端口。
  • 云服务器安全组:仅开放给可信的应用服务器,禁止公网访问。

示例(只允许内网 192.168.1.0/24 访问):

sudo ufw allow from 192.168.1.0/24 to any port 30017
sudo ufw deny 30017

5. 使用 TLS/SSL 加密

防止明文传输泄露数据:

net:
  ssl:
    mode: requireSSL
    PEMKeyFile: /etc/ssl/mongodb.pem

6. 定期安全检查

  • 使用 netstat -tulnp | grep mongod 确认端口监听范围。
  • 检查是否有未授权用户。
  • 定期更新 MongoDB 版本,修复安全漏洞。

推荐实践组合(生产环境最常用)

  • ✅ 改端口(如 30017)
  • ✅ 绑定内网 IP
  • ✅ 开启认证 + 强密码
  • ✅ 防火墙限制访问

MongoDB 端口安全加固一键配置脚本

** 一键脚本(bash)**

#!/bin/bash
# MongoDB 安全加固脚本
# 功能:修改端口、防火墙限制、开启认证

set -e

# === 配置部分 ===
MONGO_PORT=30017              # 修改后的 MongoDB 端口
MONGO_BIND_IP="127.0.0.1"     # 绑定的 IP,可以换成内网 IP
ADMIN_USER="root"             # 管理员用户名
ADMIN_PASS="StrongPass123!"   # 管理员密码(请修改为更强的)

# === 修改 mongod.conf ===
CONF_FILE="/etc/mongod.conf"
if [ ! -f "$CONF_FILE" ]; then
  echo "❌ 未找到 $CONF_FILE,请确认 MongoDB 安装路径"
  exit 1
fi

echo " 修改 MongoDB 配置..."
sudo sed -i "s/port:.*/port: ${MONGO_PORT}/" $CONF_FILE
sudo sed -i "s/bindIp:.*/bindIp: ${MONGO_BIND_IP}/" $CONF_FILE

# 如果 security 字段不存在,则追加
if ! grep -q "authorization:" $CONF_FILE; then
  echo -e "\nsecurity:\n  authorization: enabled" | sudo tee -a $CONF_FILE
else
  sudo sed -i "s/authorization:.*/authorization: enabled/" $CONF_FILE
fi

# === 重启 MongoDB ===
echo " 重启 MongoDB..."
if command -v systemctl &>/dev/null; then
  sudo systemctl restart mongod
else
  sudo service mongod restart
fi

# === 创建管理员用户 ===
echo " 创建 MongoDB 管理员用户..."
mongo admin --eval "db.createUser({user:'$ADMIN_USER', pwd:'$ADMIN_PASS', roles:['root']})" || true

# === 配置防火墙 ===
echo " 配置防火墙..."
if command -v ufw &>/dev/null; then
  sudo ufw allow from 127.0.0.1 to any port $MONGO_PORT
  sudo ufw deny $MONGO_PORT
elif command -v firewall-cmd &>/dev/null; then
  sudo firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='127.0.0.1' port protocol='tcp' port=$MONGO_PORT accept"
  sudo firewall-cmd --permanent --remove-port=27017/tcp
  sudo firewall-cmd --reload
else
  echo "⚠ 未检测到 ufw 或 firewalld,请手动配置防火墙"
fi

echo "✅ MongoDB 已加固完成!"
echo " 连接方式: mongo --port $MONGO_PORT -u $ADMIN_USER -p $ADMIN_PASS --authenticationDatabase admin"

** 脚本说明**

  1. 修改 mongod.conf:

    • 端口改为 30017
    • 绑定 127.0.0.1
    • 启用认证
  2. 重启 MongoDB

  3. 创建管理员用户 root/StrongPass123!

  4. 配置防火墙:

    • 只允许本机访问
    • 拒绝公网访问

Don’t reinvent the wheel, library code is there to help.

欢迎关注公-众-号【TaonyDaily】、留言、评论,一起学习。