反思1.6。我正在尝试从运行客户端(ruby,python)的不同服务器连接到运行rethinkdb的远程服务器,它仅在bind = all时才有效,但是将Web管理员暴露给我想要避免的每个人。
我尝试过使用和不使用auth_key,只能使用bind = all 我还试图指定我的远程服务器地址(即bind = 127.0.0.1,199.199.3.5),但它在重新思考服务器级别上不起作用(解析)
由于
答案 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