Deploy Secure App Connector V2 on Docker for UDP Applications
Limited Availability: Deploy Secure App Connector V2 on Docker for UDP Applications is a Limited Availability feature. To Deploy Secure App Connector V2 on Docker for UDP Applications, contact Skyhigh Support. |
A Secure App Connector enables end users to securely access their organization's private applications through Skyhigh SSE. Docker-based solutions provide a lightweight and faster deployment method. Whether using OVA, AWS, or Azure, a single container can perform similar tasks as a microk8s setup. This makes Docker an efficient choice for quick deployment.
Prerequisites
Before deploying the Docker image, make sure your system meets the following requirements:
- Minimum OS Requirement:
- Ubuntu: 22.04/24.04
- RHEL: 9.6
- CentOS: 9
- Docker version >= 24.0.5
- Only one UDP container per host is supported.
- Skyhigh Security recommends that a secure App Connector have at least 4 CPUs, 8 GB RAM, and 50 GB storage. To deploy both TCP and UDP container on the same host, use at least 8 CPUs, 12 GB RAM, and 80 GB storage.
NOTE: Make sure to allow the following domains and HTTP(S) ports when using a firewall. For more details, see Secure App Connector V2 Prerequisites and Firewall Settings for Private Applications.
Steps to Add Secure App Connector
- Navigate to Settings > Secure App Connector.
- Click Add Secure App Connector.
A new window opens.
- Click Auto-detected during Installation to select the gateway according to the location of the connector installation.
NOTE: Skyhigh SSE platform recommends using the Auto-detected during Installation option as it selects the nearest server based on connector installation location. You can still override the default by selecting a specific gateway.
- Click Select Connector Group and select Connector Group from the list.
NOTE: To create a connector group, refer to Add Connector Groups.
NOTE: Ensure to select a Connector Group to save the settings.
- Select TCP and UDP as protocol.
- Select Docker as the Platform Image for the connector deployment.
- Click Save.
- After adding a connector successfully, the config file automatically generates and gets downloaded to your system.
For the Docker-based solutions, scroll down the pop-up window and copy the login command that is displayed.
NOTE: After copying the login command, change ztna-connector:latest
to udp-connector:latest
.
NOTE: Click copy option next to the box instead of manually selecting and copying the text. If the command is not copied, select the Download > Reinstall option at the end of the row.
- Click Done.
Steps to Deploy Docker Image
-
Log in to the host, copy the downloaded config file, and rename the file to
connector.conf
in your home directory.
IMPORTANT: The generated config file has a validity of 12 hours. Generate a new config file whenever retrying a deployment.
-
Paste the Docker command copied to pull the image from the ECR Docker repository.
-
To deploy the image, create a new container using this command:
For Ubuntu, use the following command :
docker run \
--cap-add={NET_ADMIN,NET_RAW}
\
--name=skyhigh-pa-conn \
--hostname=skyhigh-secure-app-connector \
--restart=always \
-d \
-v <Directory_of_config>:/skyhigh/mount:ro \
-e https_proxy="http://proxyhost.com:9090" \
-e UDP_SOCKS_PROXY="hostname:8080" \
public.ecr.aws/y0m9s9j4/usprod-pop-services/udp-connector:latest
-
Replace the mount path
Directory_of_config
appropriately.
NOTE: Exclude the config file name from this path. -
Docker provides a default name for the container if you don’t include the
--name
option when you run the above command. You can replaceskyhigh-pa-conn
it with a different container name of your choice. -
Docker provides a default value if you don’t include the
--hostname
option while executing the above command. -
If the proxy is not used, remove
-e https_proxy="http://proxyhost.com:9090"
from the Docker run command. -
If the UDP socks proxy is not used, remove
-e UDP_SOCKS_PROXY="hostname:8080"
from the Docker run command.-
NOTE: Make sure you have the UDP Socks Proxy in this format i.e., <ip>:<port> or <hostname>:<port>. For example: 172.22.20.41:1080
-
-
Here we are using the NET_ADMIN capability, which performs various network-related operations:
- interface configuration
- administration of IP firewall, masquerading, and accounting
- modify routing tables
- bind to any address for transparent proxying
- set type-of-service (TOS)
- clear driver statistics
- set promiscuous mode
- enabling multicasting
- Here we are also using NET_RAW capability, which performs below operations:
- use RAW and PACKET sockets
- bind to any address for transparent proxying
-
You can stop and restart the container without losing any state or data. However, if the container is deleted, a new configuration file must be generated to run it again.
-
Auto-update of the container isn’t supported. To get the latest version, generate a fresh config file, and redeploy the container.
Deployment Validation
- Run the diagnostics tests option to verify the connector setup:
docker exec -it skyhigh-pa-conn run_diag
Replace skyhigh-pa-conn
with the name specified in Step 4.
The screenshot below shows the output of this command when everything is working properly.
Remove or Stop Connector
NOTE: Replace skyhigh-pa-conn
with the name of the connector.
- Use
docker stop skyhigh-pa-conn
command to stop a running connector. - Use
docker start skyhigh-pa-conn
command to start a stopped connector. - Use
docker rm skyhigh-pa-conn
command to remove/delete a connector.
IMPORTANT: Removing or deleting a connector is equivalent to uninstalling it. To recreate the connector, a new configuration file is required.
Troubleshoot Connector for Docker
For generating and transferring the logs to the VM, run these commands:
docker exec -it skyhigh-pa-conn collect-state-wrapper.sh
- This command will create a file
connector_state_YYYY-MM-DD_HH-MM-SS.tar.gz
in the/tmp
directory inside the container.
- This command will create a file
docker cp skyhigh-pa-conn:tmp/udp_connector_state.tar.gz /tmp/
- Using this command, the logs bundle will be copied from the container to the
/tmp/
directory on the VM. If Docker is installed via snap, then they'll be present in/tmp/snap-private-tmp/snap.docker/tmp/
.
- Using this command, the logs bundle will be copied from the container to the