IPFS相关在Ubuntu上使用反向代理和http basic auth保护IPFS节点

Posted IPFS原力区

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IPFS相关在Ubuntu上使用反向代理和http basic auth保护IPFS节点相关的知识,希望对你有一定的参考价值。


本文由IPFS原力区收集译制,版权所属原作者


       我需要设置一个IPFS节点,我想分享我如何保护它,因为我找不到一个很好的指南。

首先,使用以下说明设置和安装IPFS: https://docs.ipfs.io/introduction/install/

我为Ubuntu使用了预构建的二进制文件,并将其移至/usr/local/bin。移动它之后,运行以下命令:ipfs init — profile server

nginx的安装,然后安装Certbot使用说明这里为: https://certbot.eff.org/lets-encrypt/ubuntuxenial-nginx.html

我为ipfs创建了一个systemd init脚本,以确保它保持运行并在重启时启动,但这是可选的。如果您想要init脚本,请将下面的文本放入/lib/systemd/system/ipfs.service

  [Unit]

说明= IPFS守护程序
[服务] 
Type = simple
User = ubuntu
Environment = HOME = / home / ubuntu
Restart = always
ExecStart = / usr / local / bin / ipfs daemon
[Install] 
WantedBy = multi-user.target

如果你想启动这项服务,你可以这样做,sudo systemctl start ipfs如果你想确保它在启动时自动运行,你应该运行sudo systemctl enable ipfs

接下来,你要成立nginx的反向代理。要做到这一点,我跑sudo certbot --nginx在提示时把我的域名。这设置我的nginx配置文件在文件/etc/nginx/sites-enabled/default的顶部已经有另一个服务器{}条目,所以我删除了它,只剩下certbot创建的那个。我还有certbot创建一个条目将http重定向到https。我添加了一个位置{}条目到传入的请求传递给API IPFS暴露在localhost:5001。

我还使用HTTP基本身份验证添加了身份验证,这可以通过以下说明来完成:https://docs.nginx.com/nginx/admin-guide/security-controls/configuring-http-basic-authentication/但我使用/etc/nginx/.htpasswd作为我的.htpasswd路径,因为我的机器上不存在/ etc / apache2因为我只有nginx。

我也想只公开/api/v0/add端点,因为这就是我现在所需要的。因此,在nginx配置文件中,允许到该端点的流量,并拒绝所有其他流量。

最终结果是这个nginx配置文件在 /etc/nginx/sites-enabled/default

server { 
   server_name ipfs.deco.network; #由Certbot管理
    location / api / v0 / add { 
       proxy_pass http:// localhost:5001 ;
       proxy_set_header Host $ host;
       proxy_cache_bypass $ http_upgrade;
       允许全部;
   }
    location / { 
       proxy_pass http:// localhost:5001 ;
       proxy_set_header Host $ host;
       proxy_cache_bypass $ http_upgrade;
       否认所有;
   }
    auth_basic“需要验证”; 
   auth_basic_user_file /etc/nginx/.htpasswd;
    听443 ssl; #由Certbot 
   ssl_certificate /etc/letsencrypt/live/ipfs.deco.network/fullchain.pem 管理; #由Certbot管理
   ssl_certificate_key /etc/letsencrypt/live/ipfs.deco.network/privkey.pem; #由Certbot管理
   包括/etc/letsencrypt/options-ssl-nginx.conf; #由Certbot
   ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem 管理; #由Certbot管理
}
server { 
   if($ host = ipfs.deco.network){
       return 301 https:// $ host $ request_uri ;
   由Certbot管理
    听80; 
   server_name ipfs.deco.network;
   返回404; #由Certbot管理
}

祝好运!


【IPFS相关】由IPFS原力区译制整理,收集外网中各领域人士在使用或开发IPFS及其相关应用时所分享的文章内容。


IPFS原力区官网:http://ipfsforce.com

IPFSER社区: http://ipfser.org

微博:http://weibo.com/ipfsforce


点击:“阅读原文”查看英文原版

以上是关于IPFS相关在Ubuntu上使用反向代理和http basic auth保护IPFS节点的主要内容,如果未能解决你的问题,请参考以下文章

Nginx反向代理多域名的HTTP和HTTPS服务

Ubuntu 20.04 上安装 Nginx 转载

Laravel - 所有路由上的 NGINX + Apache 反向代理 404

apache反向代理tomcat的两个代理模式及相关的会话保持配置示例

ubuntu12.04+apache2.4+django 配置反向代理

使用 node-http-proxy 从 NodeJS 到 Apache 的反向代理不起作用