1

重新考虑 1.6。我正在尝试仅从运行客户端(ruby,python)的不同服务器连接到运行 rethinkdb 的远程服务器,并且它仅在 bind=all 时才有效,但这会将 Web 管理员暴露给我想要避免的每个人。

我尝试过使用和不使用 auth_key 并且仅适用于 bind=all 我还尝试指定我的远程服务器地址(即 bind=127.0.0.1、199.199.3.5),但它在重新思考服务器上不起作用(解析)等级

谢谢

4

3 回答 3

3

将 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
于 2013-06-17T23:14:28.847 回答
2

您必须创建代理服务器并仅在有条件(安全性)的情况下公开 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

于 2016-10-07T17:12:41.473 回答
1

除了使用上面 Nick 描述的 iptables 之外,您还可以在 Web UI 前面放置一个反向代理,以便通过密码访问它。我们(RethinkDB)很快就会写一篇关于如何做到这一点的文档,但你可以很容易地在 Google 上找到如何做到这一点。

对于身份验证问题,我们很抱歉,我们很快就会更清楚地说明这一点。

于 2013-06-18T00:53:04.773 回答