重新考虑 1.6。我正在尝试仅从运行客户端(ruby,python)的不同服务器连接到运行 rethinkdb 的远程服务器,并且它仅在 bind=all 时才有效,但这会将 Web 管理员暴露给我想要避免的每个人。
我尝试过使用和不使用 auth_key 并且仅适用于 bind=all 我还尝试指定我的远程服务器地址(即 bind=127.0.0.1、199.199.3.5),但它在重新思考服务器上不起作用(解析)等级
谢谢
重新考虑 1.6。我正在尝试仅从运行客户端(ruby,python)的不同服务器连接到运行 rethinkdb 的远程服务器,并且它仅在 bind=all 时才有效,但这会将 Web 管理员暴露给我想要避免的每个人。
我尝试过使用和不使用 auth_key 并且仅适用于 bind=all 我还尝试指定我的远程服务器地址(即 bind=127.0.0.1、199.199.3.5),但它在重新思考服务器上不起作用(解析)等级
谢谢
将 5.5.5.5 替换为应该能够访问 Web 界面的服务器的 IP。将 2222 替换为运行 Web 界面的端口。
#!/bin/sh
iptables -F
iptables -X
# Default rules
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A FORWARD -i lo -j ACCEPT
iptables -A FORWARD -o lo -j ACCEPT
# rethinkdb
iptables -A INPUT -s 5.5.5.5 -p tcp -m tcp --dport 2222 -j ACCEPT
iptables -A OUTPUT -d 5.5.5.5 -p tcp -m tcp --sport 2222 -j ACCEPT
# We allow TCP and UDP connections already established to enter
iptables -A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p udp -m state --state ESTABLISHED,RELATED -j ACCEPT
完成此操作后,将配置保存到文件
sudo sh -c "iptables-save > /etc/iptables.rules"
编辑您的网络接口文件,以便在重新启动时重新应用规则
sudo vi /etc/network/interfaces
添加 pre-up 规则,使其看起来类似于下面
auto eth0
iface eth0 inet dhcp
pre-up iptables-restore < /etc/iptables.rules
您必须创建代理服务器并仅在有条件(安全性)的情况下公开 web ui,在 rethinkdb 文档中已经提到如何使用 apache 服务器进行操作,但老实说这是不切实际的。
如果您使用的是 node.js(expressjs 或 connect),那么您可以通过反向代理在自定义 url 下将 rethink db web ui 集成到您的 Web 应用程序中,例如http://example.com/rethinkdb
// Configure Proxy Servers
var proxy = require('proxy-middleware');
// Server 1: rethinkdb
var rethinkdb = proxy('http://localhost:8080/');
var rethinkdb_path = "/rethinkdb";
app.use(rethinkdb_path, function (req, res, next) {
if (req.originalUrl === rethinkdb_path) return res.redirect(301, rethinkdb_path + "/");
// add your own security here ;)
if (req.isAuthenticated() && req.user.email === "digital.flowers@hotmail.com") {
return rethinkdb(req, res, next);
}
next();
});
当然你需要通过安装代理中间件 nodejs 模块npm install proxy-middleware --save
除了使用上面 Nick 描述的 iptables 之外,您还可以在 Web UI 前面放置一个反向代理,以便通过密码访问它。我们(RethinkDB)很快就会写一篇关于如何做到这一点的文档,但你可以很容易地在 Google 上找到如何做到这一点。
对于身份验证问题,我们很抱歉,我们很快就会更清楚地说明这一点。