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

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

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

【IPFS相关】在Ubuntu上使用反向代理和http basic auth保护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节点
点击:“阅读原文”查看英文原版

原创文章,作者:root,如若转载,请注明出处:http://ipfser.org/2018/12/11/ipfsxianguan-3/

发表评论

登录后才能评论

联系我们

在线咨询:点击这里给我发消息

邮件:[email protected]

工作时间:周一至周五,9:30-18:30,节假日休息

QR code