Reflection NAT
Introduction
This document describes how to configure Reflection NAT. Reflection NAT is a mechanism that allows you to secure any Internet Site using the Acreto Platform. Technically, to achieve this, we need to:
- Let the user redirect the traffic to the Acreto-allocated IP address by setting correct DNS records,
- On the Acreto side the traffic headers sent by the user are modified:
- The source IP address is changed to Acreto-allocated IP address
- The destination IP address is changed to the Internet site’s IP address
- On the Internet Site side all the incoming traffic is firewalled, with the exception of what comes from the Acreto-allocated IP address.
You can find more about this technique on the Internet, for example at http://www.nycnetworkers.com/real-world/nat-reflectionnat-loopbacknat-hairpinning/
Securing website scenario
In this example, we will protect the website http://kb.acreto.net, hosted on a server with IP 52.216.94.210. In order to achieve this, we will do the following:
Configuration of Acreto Platform
Create Address object for remote Server / Application to be Protected
- Log in to Acreto Platform at https://wedge.acreto.net
- Go to Elements > Objects and click Add new object
- Select Address
- Fill fields:
- Name - kb.acreto.net Server
- Address - 52.216.94.210
- Category - Application
- Press “Save”
Allocate IP address for remote Server / Application to be Protected
- Go to Elements > Objects and click Add new object
- Select Allocated IP
- Fill fields:
- Name - kb.acreto.net Public IP
- Press “Save”
Create Reflection NAT Rule
- Go to Policies > Address Translation
- Press “Add New Translation Policy”
- Fill the fields:
- Name: KB ACRETO RNAT
- If communications attributes match this:
- Source - select “Any Internet IP”
- Destination - select previously allocated IP - “kb.acreto.net Public IP”
- Then translate to the following:
- Source - select “kb.acreto.net Public IP”
- Destination - select " kb.acreto.net Server”
- Click “Save”
Ensure that NAT policy exists
- Go to Policies > Address Translations
- Find the rule you have just created and note the IP address written below " kb.acreto.net Public IP "
- in our case, it is 104.193.146.129.
Create security policy to add threat management
- Go to Policies > Security
- Click “Add New Policy”
- Create a new policy that will allow traffic to ACRETO:
- Name: KB ACRETO Protection
- Source: any
- Service: select TCP/80 (HTTP)
- Application: any
- Destination: select " kb.acreto.net Server”
- Action: Allow
- Threat protection - enabled
- Press “Save”
- Commit your changes
Configuration of DNS records
In your DNS server, create or change DNS record for secure.acreto.io to point to 104.193.146.129, for example:
secure IN A 104.193.146.129
Note: In the future, we will use CNAME records instead of A records.
Note 2: For testing, you can put this name into your host’s file (/etc/hosts on Linux/Mac) instead:
104.193.146.129 secure.acreto.io
Configuration of ACRETO web server
On ACRETO web server, configure the firewall to allow traffic to TCP ports 80 and 443 from ACRETO Public IP, in our example - 104.193.146.129
Testing
Go to http://104.193.146.129 - you should see the ACRETO website