diff --git a/docs/01_Architecture/Pangolin/About/How_Pangolin_Works.md b/docs/01_Architecture/Pangolin/About/How_Pangolin_Works.md new file mode 100644 index 00000000..8d15f1f8 --- /dev/null +++ b/docs/01_Architecture/Pangolin/About/How_Pangolin_Works.md @@ -0,0 +1,109 @@ +> ## Documentation Index +> Fetch the complete documentation index at: https://docs.pangolin.net/llms.txt +> Use this file to discover all available pages before exploring further. + +# How Pangolin Works + +> Learn about the fundamentals of Pangolin and how they work together to provide simple and secure remote access. + +
+ + Fastest way to get started with Pangolin using the hosted control plane. No credit card required. + +
+ +## Basic Steps + + + + Join remote networks together using site connectors. Pangolin's lightweight connectors use intelligent routing and NAT traversal to make any network anywhere available. + + + + Create resources that represent services or entire network ranges available for remote access. Resources can be public or fully private. + + + + Authenticated users can access resources anywhere using a web browser or when connected with a Pangolin client on their device. + + + +## Key Concepts + +Pangolin relies on several components that work together to provide secure remote access. Each component has a specific +role in ensuring that only authenticated users can access the resources they are authorized to use. + +### Pangolin Server + +The Pangolin server is the central coordination component for your network. It stores configuration changes, manages +access policies, and coordinates connections between clients and sites. The server handles user authentication and +generates access control lists that determine what resources each user can reach. + +You can use Pangolin Cloud, which is fully managed, or you can self-host your own Pangolin server for complete control +over your infrastructure and data. + + + Learn how to deploy your own self-hosted Pangolin server or use Pangolin Cloud. + + +### Sites + +Sites connect remote networks to your Pangolin server. They use Newt connectors to create secure tunnels from remote +networks back to Pangolin. Sites let you expose resources on those networks to authorized users. + +Sites run behind firewalls on remote networks. They maintain outbound connections to the Pangolin server. By default, +sites block all traffic until you define resources and grant access. This ensures that just deploying a site does not +expose any network resources. + +The Newt connector handles tunnel creation, NAT traversal, and routing. It makes remote networks available without +requiring complex firewall rules or public IP addresses. + + + Learn about sites, how they work, and how to install and configure them. + + +### Resources + +Resources are the applications, hosts, or network ranges you make available to users. They exist on sites and represent +what users can access. Users connect to resources, not to sites directly. + +There are two types of resources. Public resources work through web browsers and act as reverse proxies to backend +services. Private resources require a client connection and function like a zero-trust VPN. + +You must define resources and assign access before users can reach them. By default, no resources are available on +sites. This ensures that only explicitly defined resources can be accessed. + + + Learn about public and private resources and how to create them. + + +### Clients + +Clients are software components installed on user devices or machines. They let users and automated systems connect to +your Pangolin network and access private resources through a secure tunnel. + +Users authenticate through the client using their accounts. Machines connect with credentials. Once connected, users can +reach all resources their account has access to. The client handles routing decisions and establishes encrypted tunnels +to the appropriate sites. + +Clients are available for Mac, Windows, and Linux. They work transparently with applications, so no application +configuration is required. + + + Learn about clients and where to download them for Mac, Windows, and Linux. + + +### Remote Nodes + +Remote nodes are self-hosted Pangolin servers that you control while using Pangolin Cloud +or [Enterprise Edition](/self-host/enterprise-edition) for management and coordination. You maintain complete control +over your infrastructure and data flow, while the cloud handles the control plane, DNS, certificate management, and +backups. + +You can deploy multiple remote nodes for high availability and automatic failover. If your nodes become unavailable, +traffic can optionally fail over to cloud infrastructure until you restore service. + + + Learn about remote nodes and how they provide high availability and simplified operations. + + diff --git a/docs/01_Architecture/Pangolin/About/Pangolin_vs._Reverse-Proxy_vs._VPN.md b/docs/01_Architecture/Pangolin/About/Pangolin_vs._Reverse-Proxy_vs._VPN.md new file mode 100644 index 00000000..e011e900 --- /dev/null +++ b/docs/01_Architecture/Pangolin/About/Pangolin_vs._Reverse-Proxy_vs._VPN.md @@ -0,0 +1,89 @@ +> ## Documentation Index +> Fetch the complete documentation index at: https://docs.pangolin.net/llms.txt +> Use this file to discover all available pages before exploring further. + +# Pangolin vs. Reverse Proxy vs. VPN + +> What are the similarities and differences between Pangolin and traditional reverse proxies and VPNs? + +
+ + Fastest way to get started with Pangolin using the hosted control plane. No credit card required. + +
+ +Pangolin combines the capabilities of both a reverse proxy and a VPN into a single platform. It provides reverse proxy +functionality through public resources and VPN functionality through private resources, all with zero-trust access +control and distributed architecture. + +## What Each Solution Provides + +**Reverse Proxies** expose web applications to the internet. They handle SSL termination, load balancing, and basic +authentication. Users access applications through web browsers using domain names. + +**VPNs** create encrypted tunnels that give users access to entire private networks. Users install client software and +connect to a VPN server. Once connected, they can access any resource on the network they have network-level access to. + +**Pangolin** provides both capabilities. Public resources work like a reverse proxy, allowing browser-based access to +specific applications. Private resources work like a zero-trust VPN, giving users access to specific hosts or network +ranges when connected with a client. + +## Reverse Proxy Capabilities + +Pangolin's public resources function as reverse proxies. They expose web applications through domain names with +automatic SSL certificates. Users access these resources through web browsers without installing any software. + +Public resources support identity-aware access control. You can require authentication, enforce multi-factor +authentication, and create rules based on user identity, roles, geographic location, IP addresses, and URL paths. This +goes beyond what traditional reverse proxies offer. + +Unlike traditional reverse proxies, Pangolin does not require public IP addresses or open ports on your network. Sites +create outbound tunnels to Pangolin, so your applications remain behind firewalls. + +## VPN Capabilities + +Pangolin's private resources function like a zero-trust VPN. Users install a Pangolin client on their device and connect +to your organization. Once connected, they can access the specific hosts or network ranges you have granted them access +to. + +Private resources provide granular access control. Users only get access to the specific resources you define, not +entire networks. This reduces the risk of over-permission that comes with traditional VPNs. + +Clients work transparently with applications. No application configuration is required. Users connect once and can +access all their authorized resources. The client handles routing and establishes encrypted tunnels automatically. + +## Why Pangolin Combines Both + +Many organizations need both reverse proxy and VPN capabilities. You might want to expose web applications to users +through browsers while also providing secure access to databases, SSH servers, or internal services that require a +VPN-like connection. + +With Pangolin, you use one platform for both use cases. Public resources handle web application access. Private +resources handle VPN-like access. Both use the same authentication system, access control policies, and infrastructure. + +This unified approach simplifies management. You configure users, roles, and access policies once. Those policies apply +to both public and private resources. You do not need to maintain separate systems for reverse proxy and VPN access. + +## Infrastructure and Availability + +Traditional reverse proxies and VPNs typically run on a single server. If that server fails, all access is lost. They +also require public IP addresses and open ports, which adds complexity and security concerns. + +Pangolin uses a distributed architecture with multiple nodes. If one node fails, traffic automatically routes to another +node. Sites create outbound tunnels, so your networks do not need public IP addresses or open ports. + +You can deploy multiple remote nodes for high availability. If your nodes become unavailable, traffic can optionally +fail over to cloud infrastructure until you restore service. This provides redundancy that single-server solutions +cannot match. + +## When to Use Each Solution + +Use a traditional reverse proxy if you only need to expose web applications, you have a public IP address, and you do +not need advanced access control or high availability. + +Use a traditional VPN if you need full network access, you can accept the security risks of broad access, and you do not +need application-specific access control. + +Use Pangolin if you need both reverse proxy and VPN capabilities, you want granular access control, you need high +availability, or you want to avoid public IP addresses and open ports. + diff --git a/docs/01_Architecture/Pangolin/Documentation Index Fetch.md b/docs/01_Architecture/Pangolin/Documentation Index Fetch.md new file mode 100644 index 00000000..00e369dd --- /dev/null +++ b/docs/01_Architecture/Pangolin/Documentation Index Fetch.md @@ -0,0 +1,131 @@ +> ## Documentation Index +> Fetch the complete documentation index at: https://docs.pangolin.net/llms.txt +> Use this file to discover all available pages before exploring further. + +# How to Update + +> Keep your Pangolin deployment up to date with the latest features and security patches + +
+ + Fastest way to get started with Pangolin using the hosted control plane. No credit card required. + +
+ +Updating Pangolin is straightforward since it's a collection of Docker images. Simply pull the latest images and restart +the stack. Migration scripts run automatically to update your database and configuration files when needed. + +## Before You Update + + + **Always backup your data before updating.** Copy your `config` directory to a safe location so you can roll back if needed. + + + + **Recommended**: Update incrementally between major versions. For example, update from 1.0.0 → 1.1.0 → 1.2.0 instead of jumping directly from 1.0.0 → 1.2.0. + + +## Update Process + + + + Stop all running containers: + + ```bash theme={"dark"} + sudo docker compose down + ``` + + + + + Find the latest version numbers: + + * **Pangolin**: [GitHub Releases](https://github.com/fosrl/pangolin/releases) + * **Gerbil**: [GitHub Releases](https://github.com/fosrl/gerbil/releases) + * **Traefik**: [Docker Hub](https://hub.docker.com/_/traefik) + * **Badger**: [GitHub Releases](https://github.com/fosrl/badger/releases) + + + Look for the latest stable release (not pre-release or beta versions). + + + + + + Edit your `docker-compose.yml` file and update the image versions: + + ```yaml title="docker-compose.yml" theme={"dark"} + services: + pangolin: + image: fosrl/pangolin:1.16.2 # Update to latest version + # ... rest of config + + gerbil: + image: fosrl/gerbil:1.2.1 # Update to latest version + # ... rest of config + + traefik: + image: traefik:v3.4.0 # Update if needed + # ... rest of config + ``` + + Increase the Badger version number in `config/traefik/traefik_config.yml`: + + ```yaml title="traefik_config.yml" theme={"dark"} + experimental: + plugins: + badger: + moduleName: github.com/fosrl/badger + version: v1.3.0 # Update to latest version + ``` + + + Update each service you want to upgrade. You can update them individually or all at once. + + + + + + Download the updated Docker images: + + ```bash theme={"dark"} + sudo docker compose pull + ``` + + + + + Start the updated containers: + + ```bash theme={"dark"} + sudo docker compose up -d + ``` + + + + + Watch the logs to ensure everything starts correctly: + + ```bash theme={"dark"} + sudo docker compose logs -f + ``` + + + + + Test that everything is working: + + 1. Access your Pangolin dashboard + 2. Check that all sites are accessible + 3. Verify tunnel connections (if using Gerbil) + 4. Test any custom configurations + + + If everything works, your update is complete! + + + + + + +Built with [Mintlify](https://mintlify.com). diff --git a/docs/01_Architecture/Pangolin/Mange_Pangolin/Access_Control/ASN_Blocking.md b/docs/01_Architecture/Pangolin/Mange_Pangolin/Access_Control/ASN_Blocking.md new file mode 100644 index 00000000..ba885c47 --- /dev/null +++ b/docs/01_Architecture/Pangolin/Mange_Pangolin/Access_Control/ASN_Blocking.md @@ -0,0 +1,130 @@ +> ## Documentation Index +> Fetch the complete documentation index at: https://docs.pangolin.net/llms.txt +> Use this file to discover all available pages before exploring further. + +# ASN Blocking + +> Configure ASN blocking to restrict access based on Autonomous System Numbers + +
+ + Fastest way to get started with Pangolin using the hosted control plane. No credit card required. + +
+ + + ASN blocking is available in Pangolin community! Protect your resources by blocking or allowing specific networks and service providers. + + +## Benefits of ASN Blocking + +ASN blocking provides several important security and operational advantages: + +### Security Benefits + +* **Block Malicious Networks**: Prevent access from autonomous systems known for hosting malicious activity, botnets, or + spam operations +* **Control Cloud Provider Access**: Restrict or allow access from specific cloud providers (AWS, Azure, GCP, etc.) +* **Block VPN/Proxy Services**: Deny access from commercial VPN and proxy service providers to prevent anonymous access +* **Datacenter Filtering**: Block traffic from datacenter networks while allowing residential ISPs +* **Compliance Requirements**: Meet regulatory requirements that restrict access from certain network types or providers + +## Implementing ASN Blocking with Bypass Rules + +ASN blocking in Pangolin is implemented using [bypass rules](/manage/access-control/rules) with ASN-based matching. You +can create rules that either allow or deny access based on the visitor's Autonomous System Number. + + + Pangolin Dashboard + + +### Setting Up ASN Blocking Rules + +1. Navigate to your target resource and select the **Rules** tab +2. Create a new rule and select **ASN** as the match type +3. Choose an ASN from the dropdown of common providers, or manually enter a specific ASN number +4. Choose your rule action: + * **Allow**: Bypass authentication for users from specific ASNs + * **Deny**: Block all access from specific ASNs + * **Pass to Auth**: Let users from specific ASNs proceed to authentication + +### Common ASNs + +The dropdown includes many commonly-used ASNs such as: + +* **Cloud Providers**: Amazon (AS16509), Google Cloud (AS15169), Microsoft Azure (AS8075), DigitalOcean (AS14061) +* **Major ISPs**: Comcast (AS7922), AT\&T (AS7018), Verizon (AS701), Deutsche Telekom (AS3320) +* **VPN/Proxy Services**: NordVPN (various), ExpressVPN (various), Mullvad (AS42831) +* **CDN Providers**: Cloudflare (AS13335), Fastly (AS54113), Akamai (various) + +If the ASN you need isn't in the dropdown, you can manually enter the ASN number (e.g., AS12345 or just 12345). + +### Common ASN Blocking Patterns + +#### Block VPN and Proxy Services + +Create deny rules for known VPN and proxy ASNs to prevent anonymous access: + +1. Create **Deny** rules for each VPN/proxy provider ASN +2. Select ASNs from the dropdown or enter them manually +3. Set appropriate priorities + +#### Block Datacenter Traffic + +Block access from datacenter and hosting provider ASNs while allowing residential users: + +1. Create **Deny** rules for major cloud and hosting provider ASNs +2. Include providers like AWS, GCP, Azure, DigitalOcean, etc. +3. This helps ensure only real users from residential ISPs can access your resources + +#### Allow Only Specific Networks + +Create a default deny rule and explicitly allow only approved ASNs: + +1. Create a **Deny** rule matching all traffic with priority 100 +2. Create **Allow** rules for specific approved ASNs with higher priority (e.g., 10, 20, 30) + +#### Regional ISP Control + +Allow access only from specific country ISPs while blocking others: + +1. **Combine with Country Rules**: Use ASN rules to specify which ISPs are allowed +2. Create **Allow** rules for major residential ISPs in your target countries +3. Block datacenter and VPN ASNs that might circumvent country restrictions + +### Best Practices + + + ASN blocking affects all users from that network. Be careful when blocking large ISPs or cloud providers, as legitimate users or your own infrastructure may be affected. + + +### Finding ASN Numbers + +If you need to find the ASN for a specific network or provider: + +1. Use online tools like [bgp.he.net](https://bgp.he.net/) or [ipinfo.io](https://ipinfo.io/) +2. Search by company name, IP address, or ASN number +3. Enter the ASN in the rule configuration (with or without the "AS" prefix) + +### Rule Priority Example + +``` +Priority 1: Allow - ASN: AS7922 (Comcast) +Priority 2: Allow - ASN: AS7018 (AT&T) +Priority 3: Deny - ASN: AS13335 (Cloudflare - VPN) +Priority 4: Deny - ASN: AS16509 (Amazon - Datacenter) +``` + +This configuration allows access from residential users on Comcast and AT\&T while blocking Cloudflare's VPN service and +Amazon datacenters. + +### Advanced Patterns + +#### Block Bot Networks + +Identify and block ASNs associated with automated bot traffic: + +1. Monitor your access logs for suspicious ASNs +2. Create **Deny** rules for ASNs showing bot-like behavior +3. Regularly review and update your blocklist + diff --git a/docs/01_Architecture/Pangolin/Mange_Pangolin/Access_Control/Change_Password.md b/docs/01_Architecture/Pangolin/Mange_Pangolin/Access_Control/Change_Password.md new file mode 100644 index 00000000..c3c5815f --- /dev/null +++ b/docs/01_Architecture/Pangolin/Mange_Pangolin/Access_Control/Change_Password.md @@ -0,0 +1,36 @@ +> ## Documentation Index +> Fetch the complete documentation index at: https://docs.pangolin.net/llms.txt +> Use this file to discover all available pages before exploring further. + +# Change Password + +> Change or reset your Pangolin account password + +
+ + Fastest way to get started with Pangolin using the hosted control plane. No credit card required. + +
+ +### Change Password + +If you're already logged in, you can change your password by clicking your profile menu (top right) and selecting Change +Password. You will be required to confirm your old password and enter a new password. + + + If you want to require password changes at regular intervals for better security, check out the [password rotation documentation](/manage/access-control/password-rotation). + + +### Reset Password + +If you forgot your password, you can use the reset password function. On the login page, select Forgot your password?. +This will ask for your username or email. A reset code will be sent to that email to complete the reset. + +If you're self‑hosting Pangolin, you will need an SMTP server configured to send emails. If you don't have one +configured, the server will log the reset code to the server logs for you to retrieve and use to reset the password. + +### Force Reset Server Admin Password + +For self‑hosted Pangolin, if you need to force reset your server admin account password server‑side, you can use the +internal CLI. [See more here](/self-host/advanced/container-cli-tool). + diff --git a/docs/01_Architecture/Pangolin/Mange_Pangolin/Access_Control/Create_User.md b/docs/01_Architecture/Pangolin/Mange_Pangolin/Access_Control/Create_User.md new file mode 100644 index 00000000..b2e28539 --- /dev/null +++ b/docs/01_Architecture/Pangolin/Mange_Pangolin/Access_Control/Create_User.md @@ -0,0 +1,42 @@ +> ## Documentation Index +> Fetch the complete documentation index at: https://docs.pangolin.net/llms.txt +> Use this file to discover all available pages before exploring further. + +# Create User + +> Add internal or external users to your organization + +
+ + Fastest way to get started with Pangolin using the hosted control plane. No credit card required. + +
+ +Users can be added to organizations. When a user is added to Pangolin, there is a global user object and an +organization‑specific user object that links that user to the organization. This allows a user to exist in one or more +organizations. + + + Because the root user exists and a per‑organization user exists, a user invited to an organization may be able to create a new organization. You can disable this functionality via a flag in the config file in self‑hosted Pangolin. [Check out the config file documentation](/self-host/advanced/config-file#feature-flags). + + +When removing a user from an organization, their account still exists. To completely delete their account, visit the +server admin panel as the server admin and delete the global user in the users table. + +### Internal Users + +An internal user is an identity managed by Pangolin only. When adding the user, you will receive an invite link. The +user needs to use this link to either accept the invite, or create an account for the first time and accept the invite. + +### External Users + +An external user is an identity managed by an external identity provider. When creating an external user, you will need +to select an existing identity provider added to +Pangolin. [Check out the documentation on adding an IDP](/manage/identity-providers/add-an-idp). + +An identity provider may have auto‑provisioning enabled. This means new users who log in with the IDP are automatically +created and you do not need to manually create the +user. [Check out the auto‑provisioning documentation](/manage/identity-providers/auto-provisioning). + +Even if auto‑provisioning is enabled, you can still manually create users. + diff --git a/docs/01_Architecture/Pangolin/Mange_Pangolin/Access_Control/Custom_Login_Page.md b/docs/01_Architecture/Pangolin/Mange_Pangolin/Access_Control/Custom_Login_Page.md new file mode 100644 index 00000000..e5d49a6c --- /dev/null +++ b/docs/01_Architecture/Pangolin/Mange_Pangolin/Access_Control/Custom_Login_Page.md @@ -0,0 +1,56 @@ +> ## Documentation Index +> Fetch the complete documentation index at: https://docs.pangolin.net/llms.txt +> Use this file to discover all available pages before exploring further. + +# Custom Login Page + +> Configure a custom authentication page URL for your organization + +
+ + Fastest way to get started with Pangolin using the hosted control plane. No credit card required. + +
+ + + Custom auth pages are only available in Pangolin Cloud. + + +Custom organization authentication pages let you serve the login page at your own domain instead of the default +`app.pangolin.net`. This provides better user experience and brand consistency. + +