RethinkDB远程客户端连接,不向所有人公开管理Web界面

时间:2013-06-17 19:26:50

标签: rethinkdb

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

我尝试过使用和不使用auth_key,只能使用bind = all 我还试图指定我的远程服务器地址(即bind = 127.0.0.1,199.199.3.5),但它在重新思考服务器级别上不起作用(解析)

由于

3 个答案:

答案 0 :(得分:2)

将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

添加预备规则,使其看起来类似于下面的

auto eth0
iface eth0 inet dhcp
  pre-up iptables-restore < /etc/iptables.rules

答案 1 :(得分:1)

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

对于身份验证问题,我们很快就会明白这一点。

答案 2 :(得分:1)

你必须创建代理服务器并公开web ui仅供公众使用条件(安全性),在rethinkdb文档中已经提到过如何使用apache服务器,但老实说它不实用

如果您正在使用node.js(expressjs或connect),那么您可以通过反向代理在自定义URL下将重新思考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();
});

当然您需要通过npm install proxy-middleware --save

安装proxy-middleware nodejs模块