【问题标题】:Connect to remote PostgreSQL server over Tor? [python] [Tor]通过 Tor 连接到远程 PostgreSQL 服务器? [蟒蛇] [托尔]
【发布时间】:2018-01-27 20:24:25
【问题描述】:

我正在创建一个 Python 3 蜘蛛,用于抓取 Tor 隐藏服务以获取有用数据。我使用psycopg2 库将这些数据存储在PostgreSQL 数据库中。目前,蜘蛛脚本和数据库托管在同一个网络上,因此它们通信没有问题。但是,我计划将数据库迁移到 VPS 上的远程服务器,以便我可以让一组用户从多个远程位置运行蜘蛛脚本,所有这些都为同一个数据库做出贡献。例如,我可以在我家运行脚本,我的朋友可以从他的 VPS 运行它,我的教授可以从大学实验室的几个不同系统运行脚本,所有这些单独的系统都可以与在我的远程 VPS 上运行的 PostgreSQL 服务器。

如果我只是打开数据库 VPS 以接受来自任何地方的连接,这将很容易,将数据库公开。但是,出于安全原因,我不想这样做。我知道我可以通过 SSH 建立隧道连接,但这需要为每个人提供一个用户名和密码,以授予他们访问服务器本身的权限。我不想这样做。我宁愿简单地让他们访问数据库而不授予对 shell 帐户的访问权限。

我宁愿限制到本地系统127.0.0.1的连接,并为数据库创建一个Tor隐藏服务.onion地址,这样我的远程蜘蛛客户端就可以通过Tor连接到数据库.onion。

问题是,我不知道如何使用psycopg2 通过代理连接到远程数据库。我可以连接到远程数据库,但我没有看到任何通过代理连接的选项。

有人知道这是怎么做到的吗?

【问题讨论】:

  • 欢迎来到 Stackoverflow。在发布问题之前,请阅读How to Ask。如果您遵循该指南并发布 minimal reproducible example 我们可以帮助您,我相信有人能够帮助您

标签: python python-3.x postgresql psycopg2 tor


【解决方案1】:

如果我只是打开数据库 VPS 以接受来自任何地方的连接,这将很容易

这就是你的问题。只需使用fail2banufw 锁定您的VPS。创建一个ufw 角色以仅允许从您要授予该 VPS ip 地址访问权限的 IP 地址连接到您的 Postgres 端口。

这样,您不会向任何人(来自 *)开放 Postgres 端口,而只会向您控制的特定其他服务器或服务器开放。这就是你的做法。不要运行洋葱服务来连接 Postgres 内容,因为这只会使事情复杂化并减慢对 Postgres 数据库的读取速度,我假设 API 最终会消耗这些数据来获取您将要抓取的“有用数据”。

我希望至少可以为您指明正确的方向。你的问题很笼统,所以我的回答保持不变。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-04
    • 2015-03-08
    • 1970-01-01
    • 2023-04-08
    • 1970-01-01
    • 2015-10-28
    • 2016-07-21
    • 2021-04-16
    相关资源
    最近更新 更多