改善CouchDB安全性的4个步骤

2020年12月30日11:25:07 发表评论 41 次浏览

默认情况下, CouchDB没有访问限制, 因为它最初只能从localhost访问。如果你打算通过将CouchDB绑定到服务器的公共IP地址来将其公开给Internet, 我们建议你按照以下简单步骤来保护CouchDB的安装。

要求

  • 安装了CouchDB和Futon的云服务器(Ubuntu 16.04)。

要安装CouchDB, 请按照本文中的说明进行操作在Ubuntu 16.04上安装和使用CouchDB。要设置和使用Futon, 请参阅我们的文章使用Futon管理CouchDB.

步骤1:建立管理员使用者

新安装的CouchDB将允许任何匿名用户对任何数据库或记录进行任何更改。 CouchDB将此称为"管理方"。改善CouchDB安全性的第一步是创建一个管理员用户。

登录到Futon管理面板。请点击解决这个问题在右下角的安全提示中。

改善CouchDB的安全性

输入所需的管理员用户名和密码。然后点击创造.

改善CouchDB的安全性

步骤2:启用SSL

启用S​​SL后, 你可以通过受SSL保护的连接发送命令行Curl请求。这对于涉及传递敏感数据(例如密码)的请求非常有用。

首先, 在服务器上安装SSL证书。相关文章:

  • 设置notlogy SSL证书
  • 使用Linux在云服务器上安装"让我们加密SSL证书"

如果你有防火墙, 则需要允许访问端口6984。

有关在Cloud Server上使用防火墙的更多信息, 请查阅我们关于该主题的文档.

配置SSL证书和防火墙规则后, 使用SSH连接到服务器。打开CouchDB配置文件进行编辑:

sudo nano /etc/couchdb/default.ini

找到显示以下内容的行:

[daemons]

加httpsd = {couch_httpd, start_link, [https]}在此行下面:

[daemons]
httpsd = {couch_httpd, start_link, [https]}

接下来, 找到以下内容:

[ssl]
port = 6984

添加SSL的路径证书和键文件:

[ssl]
port = 6984
cert_file = /path/to/server_cert.pem
key_file = /path/to/server_key.pem

保存并退出文件。重新启动CouchDB以使更改生效:

sudo systemctl restart couchdb

HTTPS请求将在端口上服务6984而标准的HTTP请求将在端口上提供5984.

要从命令行验证HTTP和HTTPS请求是否正常运行, 请使用以下命令:

curl http://192.168.0.1:5984/
curl https://192.168.0.1:6984/

你还可以通过访问来验证Futon是否受SSL保护https://192.168.0.1:6984在浏览器中。

步骤3:为你的数据库定义用户

如果没有为数据库定义用户, 则默认情况下其访问权限是公共的。要在Futon中为数据库定义用户, 请选择数据库, 然后单击安全...

改善CouchDB的安全性

至少填写一个管理员名称和一个会员名称。名称必须以JSON字符串格式输入:["名称"]。例如, 添加用户do作为该数据库的管理员和成员, 你将[" jdoe"]进入这两个领域。

改善CouchDB的安全性

请点击更新添加用户。

在命令行中, 你需要创建一个_安全数据库中的文档, 然后将用户添加到该文档中:

curl -X PUT https://192.168.0.1:6984/mydatabase/_security \
     -u [admin username]:[admin password] \
     -H "Content-Type: application/json" \
     -d '{"admins": { "names": [], "roles": [] }, "members": { "names": ["jdoe"], "roles": [] } }

对每个CouchDB数据库重复这些步骤。

步骤4:如果你不打算使用它, 则禁用它

Futon是使用CouchDB执行管理任务的有用且方便的工具。但是, 有些人更喜欢从命令行使用Curl。如果你不打算使用Futon界面, 建议你禁用此功能。

打开CouchDB配置文件进行编辑:

sudo nano /etc/couchdb/default.ini

找到显示以下内容的行:

_utils = {couch_httpd_misc_handlers, handle_utils_dir_req, "/usr/share/couchdb/www"}

通过在此行的开头放置分号来禁用Futon, 使其显示为:

;_utils = {couch_httpd_misc_handlers, handle_utils_dir_req, "/usr/share/couchdb/www"}

保存并退出文件。重新启动CouchDB以使更改生效:

sudo systemctl restart couchdb
一盏木

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: