pritunl zero 零信任系统

一、概述

1、介绍

Pritunl Zero是一个零信任系统,它可以在不使用VPN的情况下从不受信任的网络安全地访问内部服务。

2、背景

内网搭建了类百度文库系统dochub,想通过硬件防火墙NAT转换IP和端口后映射到公网,但不希望任何人都可以访问,也不想用VPN的方式,最好是在访问dochub之前添加一层WEB授权。

  • 使用 pritunl zero 零信任系统进行授权访问dochub后,不需要将dochub内网服务器映射到公网

    (如果会go语言,也可以自己重写dochub的登录认证机制,因为不会,所以选择pritunl zero)

3、环境

  • 一台虚拟机(可以通过网关防火墙NAT映射到公网,这里举例将443端口映射到公网8443,如果有其他内网穿透方案也行,或者直接用公有云上的虚拟机)

    • 单网卡即可
    • 关闭防火墙(或开放相关端口)
    • MongoDB 和 pritunl zero 都安装在同一台机器即可(资源占用很少)
  • 2个公网域名:控制台 node.pritunl.zero 服务 service.pritunl.zero 建议自己申请公网域名,国内是需要备案通过后才可以正常访问

  • 申请2张SSL证书:对应上面的2个域名,建议申请公网免费证书 https://freessl.cn ,(需要在域名中添加解析)

申请操作参考 https://www.cnblogs.com/cn1151/p/17167080.html


二、安装 pritunl zero

安装方法可以参照官方安装手册

https://docs.pritunl.com/docs/pritunl-zero-service


三、配置 pritunl zero 保护内部 web server

1、初次登录

浏览器访问 https://IP地址 (如果不能打开,请检查操作系统防火墙设置)

通过命令获取管理账号和密码:sudo pritunl-zero default-password

2、添加SSL证书

登录后,点击菜单中的“Certificates”添加证书

证书类型 Type:txt(公网SSL证书)

将提前申请好的证书 key 和 pem 文件内容,复制粘贴到证书私钥和证书链的文本框中,(注意:pem证书链只复制上半部分,-----END CERTIFICATE-----为止)

证书1:

  • name(名称可以自定义)node.pritunl.zero

证书2:

  • name(名称可以自定义)service.pritunl.zero


3、创建服务services

点击“services”,添加服务

  • name(可以自定义):dochub
  • Type:HTTP
  • External Domains:service.pritunl.zero(需要通过这个域名来代理访问内部服务器,主机 Host 留空,不需要设置)
  • Internal Servers:HTTP 192.168.0.80 :8090(根据内网WEB服务器使用的协议选择http或https,IP是内部WEB服务器的地址,端口号是内网访问WEB网站的端口号,建议不要使用80或443端口,否则可能无法正常通过零信任系统进行访问)
  • Logout Path:/logout
  • Roles:dochub(名称可以自定义,点Add进行添加,控制哪些用户角色可以访问该服务)
  • 打开 Allow WebSockets

4、设置节点 nodes

点击“Nodes”,设置节点

  • name:建议保持系统默认不变
  • 打开 management 和 proxy
  • Protocol and Port:HTTP 443
  • 建议打开 Web redirect server,强制使用https
  • Services:点击 “ Add Service ” 添加第3步创建的服务 dochub
  • certificates:点击 “ Add certificate ”,添加第2步创建的两张SSL证书 node.pritunl.zero 和 service.pritunl.zero

-> 点击 “ Save ” 保存 Nodes 配置后,IP地址将不可访问控制台,必须使用node配置的域名进行访问 https://node.pritunl.zero:8443

(因为是通过硬件防火墙NAT映射了443端口到外网的8443,所以这里需要带上端口号)

如果SSL证书没有问题,浏览器不会提示证书错误。

5、添加用户账号

通过域名访问打开 pritunl zero 控制台,点击“ Users ”,添加用户

  • Type:local
  • Roles:dochub(这里的角色必须和第3步创建服务时使用的角色保持一致,才能访问服务)

6、测试访问服务

在浏览器新窗口访问网址:https://service.pritunl.zero:8443(端口号和控制台node的端口号相同)

注意:如果Pritunl zero系统是通过了NAT端口映射的方式,必须要加上外网端口号,而且内网服务器不能使用了默认的80或443端口,否则不能正常代理

输入账户密码后,会自动跳转到内网dochub服务器

说明:我这里 dochub 因为配置的后端存储 使用的是内网 minio 存储系统,所以外网无法正常预览

如果要预览,必须要使用VPN,直接打通,让客户端可以直接访问内部IP

最新文章

  1. NodeJs在Linux下使用的各种问题
  2. java环境配置
  3. DOCTYPE声明作用及用法详解
  4. 边工作边刷题:70天一遍leetcode: day 84-1
  5. Div 不换行、垂直居中等样式
  6. 七天学会NodeJS-学习笔记
  7. 使用PyInstaller打包Python程序
  8. HDU 2102 A计划(三维BFS)
  9. 基于Bootstrap实现下图所示效果的页面,一个白底的带有两个菜单项、一个下拉菜单和一个登录表单的基本导航条
  10. JS将毫秒转换成时间格式
  11. ubuntu apache2配置详解(含虚拟主机配置方法)
  12. 一天搞定CSS: 标签样式初始化(CSS reset)及淘宝样式初始化代码--09
  13. 使用jdbc调用存储,函数
  14. 程序员50题(JS版本)(二)
  15. cnblogs鼠标点击特效
  16. BZOJ 5104
  17. EXTENDED LIGHTS OUT
  18. Javascript对象Oject的强制类型转换
  19. ssh免密登陆及时间设置
  20. 【转】每天一个linux命令(42):kill命令

热门文章

  1. *已解决 Javawe中servlet时出现空白页面,但又网站不报错的问题追溯(编码
  2. JZOJ 2020.07.16【NOIP提高组】模拟
  3. Philips and Calculator
  4. Ansible-playbook 快速入门到放弃
  5. CCRD_TOC_2008年第7和第8期(ACR专辑)
  6. .Net 6 使用Log4Net
  7. Python 生成多个空列表 空List 空数组方法
  8. CF1753C Wish I Knew How to Sort
  9. mui、拍照、个推推送消息【问题链接】
  10. 【Direct3D 12】学习准备