> Source: [sk176726](https://support.checkpoint.com/results/sk/sk176726)

# sk176726 - Protecting Azure PaaS services using CloudGuard for Azure

| Property | Value |
|----------|-------|
| Solution ID | sk176726 |
| Date Created | 2022-01-10 |
| Last Modified | 2022-11-23 |
| Technical Level | General |
| Products | Cloud Firewall |
| Versions | R81 (EOS), R81.10 (EOS), R81.20 |
| Platform | Azure |

## Solution

**Table of Contents**

* 1. Overview
* 2. Azure private link introduction
* 3. Deploy and configure a PaaS service in Azure
  * 3.1. Deploy a PaaS instance
  * 3.2. Private Endpoint Creation
* 4. Configuring CloudGuard Network products to protect PaaS services
  * 4.1. CloudGuard Controller configuration
  * 4.2. East-West Traffic
  * 4.3. Inbound Traffic
* 5. Limitations

Click Here to Show Entire Article

(1) Overview {#Overview}
------------------------

Azure provides PaaS instances such as SQL servers and storage.  
Unlike IaaS instances, PaaS instances do not have an IP and are accessible through FQDN.  
CloudGuard Network offers protection support for environments with PaaS instances.

(2) Azure private link introduction {#Tools}
--------------------------------------------

Show / Hide this section  

### Private Endpoint {#Toggle_Tools}

Use Private Link to bring services delivered on Azure into your private virtual network by mapping it to a private endpoint, or privately supply your own services in your customers' virtual networks. Private Link keeps traffic on the Microsoft global network.  

### How it works

The design of a [private endpoint](https://docs.microsoft.com/en-us/azure/private-link/private-endpoint-overview) enables access to a PaaS instance.   
<https://azure.microsoft.com/en-us/services/private-link/>  

![](https://sc1.checkpoint.com/sc/SolutionsStatics/sk176726/pep202201041346031.png)  

In this case, all the consumed resources stay on the Azure network. Because private links let you adjust the UDRs, you can secure and protect PaaS services, eliminating the "non-protected" access.  

![](https://sc1.checkpoint.com/sc/SolutionsStatics/sk176726/pep2202201041721391.png)

<br />

(3) Deploy and configure a PaaS service in Azure {#Setup}
---------------------------------------------------------

<br />

### (3.1) Deploy a PaaS instance {#Deploy a PaaS instance}

Show / Hide this section  

The example below focuses on a SQL server. However, this solution can work with any PaaS instance.   
If you have already deployed a PaaS instance, jump to step 3.2. - Private Endpoint Creation.

1. SQL Server: ![](https://sc1.checkpoint.com/sc//SolutionsStatics/sk176726/10202201041514542.png)

2. Click on Create:

   ![](https://sc1.checkpoint.com/sc//SolutionsStatics/sk176726/20202201041515123.png)
3. Configure as desired:

   ![](https://sc1.checkpoint.com/sc//SolutionsStatics/sk176726/25202201041534167.png)
4. Decline an access to SQL server:

   ![](https://sc1.checkpoint.com/sc//SolutionsStatics/sk176726/30202201041534348.png)
5. Review + Create

   This is the initial architecture after the SQL server creation:

   ![](https://sc1.checkpoint.com/sc/SolutionsStatics/sk176726/pep32022010415371310.png)

   As a PaaS service is deployed, it deploys behind Azure Gateways in Azure.  
   That means it is external to the VNET and can be accessed from **everywhere**.

   To continue, create a private endpoint:

### (3.2) Private Endpoint Creation {#Private Endpoint Creation}

Show / Hide this section  

1. Go to the **SQL new resource**:

   ![](https://sc1.checkpoint.com/sc//SolutionsStatics/sk176726/402022010415400511.png)
2. Select on the left menu **Private endpoint connections**

   ![](https://sc1.checkpoint.com/sc//SolutionsStatics/sk176726/502022010415405612.png)
3. Create a new Private-Endpoint:

   ![](https://sc1.checkpoint.com/sc//SolutionsStatics/sk176726/602022010415415113.png)
4. Select the subscription and region the SQL is placed:

   ![](https://sc1.checkpoint.com/sc//SolutionsStatics/sk176726/702022010415422414.png)
5. Select the type of resource you are making a private-endpoint for

   ![](https://sc1.checkpoint.com/sc//SolutionsStatics/sk176726/pep4202201041727096.png)
6. Place it in the subnet you would like.  
   Select **Integrate with private DNS zone**

   ![](https://sc1.checkpoint.com/sc//SolutionsStatics/sk176726/80202201041725114.png)
7. No tags are necessary

8. Review + Create

9. When the deployment is completed, enter the private endpoint's resource and make sure the status is Approved:

   ![](https://sc1.checkpoint.com/sc//SolutionsStatics/sk176726/90202201041728097.png)
10. Enter the PaaS resource

11. Make sure the Private Endpoint appears below **Private endpoint connections** :

    ![](https://sc1.checkpoint.com/sc//SolutionsStatics/sk176726/100202201041728478.png)
12. Deny public network access below **Firewalls and virtual networks** :

    ![](https://sc1.checkpoint.com/sc//SolutionsStatics/sk176726/110202201041729099.png)

    This disables public access to the public FQDN.
13. Click **Save**

<br />

(4) Configuring CloudGuard Network products to protect PaaS services {#Configure a secure way}
----------------------------------------------------------------------------------------------

<br />

### (4.1) CloudGuard Controller configuration {#Controller configuration}

Show / Hide this section  

#### The CloudGuard Controller supports private-endpoint objects and make the configuration easier. {#Toggle_Controller}

#### The private endpoint is supported in the Controller starting the following takes:

* Azure R81.20 and above -- upgrading is unnecessary.
* Azure R81.10 -- minimum requirements: Jumbo hotfix Take 14
* Azure R81 -- minimum requirements: Jumbo hotfix Take 51
* Azure R80.40 -- minimum requirements: Jumbo hotfix Take 140

### (4.2) East-West Traffic {#East-West Traffic}

Show / Hide this section  

![](https://sc1.checkpoint.com/sc/SolutionsStatics/sk176726/pep10202201041745291.png)

### Background {#Toggle_East_West}

Azure default routes allow direct traffic between subnets.  
When a private endpoint is created, Azure creates a system route to its private IP. Therefore, it is necessary to overwrite this route to inspect the traffic and audit logs.

### Configuration

1. **Sanity Check**:

   At this time, you can see that all VMs in the VNET are familiar with the new private endpoint private IP.  
   If you pick a VM and translate your PaaS instance FQDN to an IP address, you should see a private IP address. Try to use "nslookup" with the PaaS instance FQDN.

   ![](https://sc1.checkpoint.com/sc/SolutionsStatics/sk176726/pep11202201041747442.png)
2. **Add UDR**:

   Imply a UDR on the Client subnet from it through the Gateway
   1. Look for **Route Tables**:

      ![](https://sc1.checkpoint.com/sc//SolutionsStatics/sk176726/120202201041748591.png)
   2. Click **Create**

      ![](https://sc1.checkpoint.com/sc//SolutionsStatics/sk176726/130202201041749212.png)
   3. Create it under the resource group that consist the client's subnet:

      ![](https://sc1.checkpoint.com/sc//SolutionsStatics/sk176726/140202201041749413.png)
   4. Review + Create

   5. Go to the Route Table new resource:

      ![](https://sc1.checkpoint.com/sc//SolutionsStatics/sk176726/150202201041751494.png)
   6. Select **Routes**

      ![](https://sc1.checkpoint.com/sc//SolutionsStatics/sk176726/160202201041807139.png)
   7. Add a new route:

      ![](https://sc1.checkpoint.com/sc//SolutionsStatics/sk176726/pep12202201041757576.png)
   8. Configure a new route rule

      **Destination:** PaaS instance's Private Endpoint (Use full subnet /32).  
      **Next Hop Type:** Virtual appliance **Next Hop IP address:** The NVA - Check Point's Gateway public IP.

      For example, for this architecture:

      ![](https://sc1.checkpoint.com/sc/SolutionsStatics/sk176726/PaaS1202201041758357.png)

      Configure this:

      ![](https://sc1.checkpoint.com/sc//SolutionsStatics/sk176726/170202201041752305.png)
   9. Click **OK**.

   10. Go to the client's VNET resource and click on **Subnets**:

       ![](https://sc1.checkpoint.com/sc//SolutionsStatics/sk176726/1802022010418074710.png)
   11. Add the Route Table on the client's subnet, and assign it the routing table created above:

       ![](https://sc1.checkpoint.com/sc//SolutionsStatics/sk176726/1902022010418150311.png)

       ![](https://sc1.checkpoint.com/sc//SolutionsStatics/sk176726/1902022010418150311.png)
3. **Add static-routes on the Gateway**:

   Make sure that the Gateway contains static routes for the Client's subnet and for the subnet on which the private-endpoint resides.   
   Use the command "route".  

   If static routes are not present, add them:  
   set static-route \<YOUR-CLIENT-SUBNET-NETWORK-IP\> nexthop gateway address \<YOUR-GATWAY'S-DG\> priority 1 on  
   set static-route \<YOUR-HOST-SUBNET-NETWORK-IP\> nexthop gateway address \<YOUR-GATWAY'S-DG\> priority 1 on  

   In our example, we see these two routes in the Gateway:  
   ![](https://sc1.checkpoint.com/sc/SolutionsStatics/sk176726/pep132022010418162512.png)
4. **Add a Source NAT rule on your Gateway**:

   Original Source: \<HOST-OBJECT-REPRESENTING-THE-CLIENT-SUBNET-NETWORK-IP\>  
   Original Destination: \<The Private endpoint imported by CloudGuard controller\>   
   Translated Source: \< HOST-OBJECT-REPRESENTING-THE-GATEWAY-PRIVATE-IP-ETH1\>  

   ![](https://sc1.checkpoint.com/sc//SolutionsStatics/sk176726/2002022010418165813.png)

<br />

### (4.3) Inbound Traffic {#Inbound Traffic}

Show / Hide this section  

![](https://sc1.checkpoint.com/sc/SolutionsStatics/sk176726/Fix32022010418183114.png)

#### Background {#Toggle_Inbound}

This solution involves Remote Access VPN.

**To configure Remote Access VPN to a VMSS:**

Configure CME as explained in the [CloudGuard Network for Azure VMSS R80.10 and Higher Administration Guide](https://sc1.checkpoint.com/documents/IaaS/WebAdminGuides/EN/CP_VMSS_for_Azure/Default.htm) \> Configuration Steps \> Step 14: (Optional) Configure and Deploy the Remote Access VPN Client.

In the example above:

* Office Mode --10.9.10.0/24
* Encryption Domain -- 10.9.2.0/24  

  <br />

**To Configure Remote Access VPN to a Single Gateway:**

1. Enter to SmartConsole's **Gateways \& Servers**:

   ![](https://sc1.checkpoint.com/sc//SolutionsStatics/sk176726/2102022010418191315.png)
2. Double click on the Gateway object

3. Enable IPSec VPN blade in Gateway creation main page

   ![](https://sc1.checkpoint.com/sc//SolutionsStatics/sk176726/ra1202201050014571.png)
4. Add the Gateway to RemoteAccess VPN community

   ![](https://sc1.checkpoint.com/sc//SolutionsStatics/sk176726/ra2202201050015202.png)
5. Set Office Mode - static office-mode pool with "hide behind Nat":

   1. This is a network that is not currently used (nor in the future).

   2. The users who will use this remote access VPN will get a private IP from this scope

      ![](https://sc1.checkpoint.com/sc//SolutionsStatics/sk176726/ra3202201050015413.png)
   3. Make sure to hide those IP addresses behind the Gateway's IP:

      ![](https://sc1.checkpoint.com/sc//SolutionsStatics/sk176726/ra4202201050018114.png)
6. Set the pool in the Gateway's object -\> VPN Clients -\> Office Mode:

   1. Allow Office Mode to all users

   2. Add static office mode pool

      ![](https://sc1.checkpoint.com/sc//SolutionsStatics/sk176726/ra5202201050019125.png)
7. Alternative for static office mode pool -- Automatic DHCP

   1. Allow Office Mode to all users

   2. Add automatic DHCP

   3. Virtual IP address for DHCP server replies should be the internal NIC of the Gateway

      ![](https://sc1.checkpoint.com/sc//SolutionsStatics/sk176726/ra6202201050019566.png)
8. If you use a version lower than**R81.10**:

   In Remote Access need to set the Support Visitor Mode

   ![](https://sc1.checkpoint.com/sc//SolutionsStatics/sk176726/ra7202201050021117.png)
9. Setup Link selection properly (needed in Public Cloud)

   Statically NATed IP: The Gateway public IP

   ![](https://sc1.checkpoint.com/sc//SolutionsStatics/sk176726/ra8202201050021418.png)
10. Create a network group consisting of:

    1. The client's subnet - internal network of the Gateway

    2. Public IP of the Gateway (as type: host)

    3. The private DNS server: 168.63.129.16

       **Note:** This IP enables communication with the DNS virtual server to provide filtered name resolution to the resources (such as VM) that do not have a custom DNS server.

       This unique public IP address is owned by Microsoft and will not change.

       ![](https://sc1.checkpoint.com/sc//SolutionsStatics/sk176726/ra9202201050022269.png)

       ![](https://sc1.checkpoint.com/sc//SolutionsStatics/sk176726/ra9202201050037261.png)
11. Set it as the VPN domain:

    ![](https://sc1.checkpoint.com/sc//SolutionsStatics/sk176726/ra10202201050038532.png)
12. Configuring a VPN Client

    ![](https://sc1.checkpoint.com/sc//SolutionsStatics/sk176726/ra11202201050039383.png)
13. Select default

    ![](https://sc1.checkpoint.com/sc/SolutionsStatics/sk176726/ra12202201050039554.png)
14. Enter username:

    ![](https://sc1.checkpoint.com/sc//SolutionsStatics/sk176726/ra13202201050040125.png)
15. Set Password:

    ![](https://sc1.checkpoint.com/sc//SolutionsStatics/sk176726/ra14202201050041356.png)
16. Enter Check Point's Endpoint Security:

    ![](https://sc1.checkpoint.com/sc/SolutionsStatics/sk176726/ra15202201050041537.png)
17. Select **Remote Access VPN** and enter user details you configured:

    ![](https://sc1.checkpoint.com/sc//SolutionsStatics/sk176726/ra16202201050046408.png)

    Now you can log in to your PaaS instance.

<br />

(5) Limitations {#Limitation}
-----------------------------

Show / Hide this section  

1. Source NAT must be used (in West-East traffic)
2. UDR and NSG configurations don't have effects on private endpoints.
3. UDR implemented on user/client subnet must use the private endpoint IP address as destination (a.b.c.d/32)
4. You can not configure more than one PaaS instance to the same private endpoint.
5. A PaaS instance can be attached to multiple private endpoints; therefore, it is essential to make sure that other private endpoint access if configured, is inspected.

<br />

---

# Agent Instructions

This content is from the Check Point Support Center (https://support.checkpoint.com), the official knowledge base for Check Point cybersecurity products.

## Navigating This Knowledge Base

- **Complete index**: [llms.txt](https://support.checkpoint.com/llms.txt)
- **All SK articles**: [SecureKnowledge Sitemap](https://support.checkpoint.com/sitemaps/secureknowledge-sitemap-index.xml)
- **SK article URL pattern**: `https://support.checkpoint.com/results/sk/{skId}`
- **Markdown responses**: AI bot User-Agents automatically receive `text/markdown` content
