Deployment guide

ntopng

Overview

ntopng is a high-speed, web-based network traffic monitor and the next generation of the original ntop. It captures traffic directly from a network interface, identifies applications and protocols with deep packet inspection (nDPI), and presents per-host and per-flow statistics, top talkers, alerts and historical trends through an interactive web dashboard. The SecureAnyCloud image serves the ntopng community edition (GPL-3.0) on a hardened Ubuntu 24.04 LTS base that is patched at build time.

What you get:

  • ntopng community edition (GPL-3.0), installed from the official ntop apt repository and managed by systemd
  • The web UI on :3000 over HTTP. Front it with a reverse proxy and TLS.
  • Redis as the mandatory in-memory backing store on 127.0.0.1:6379, already installed and wired up, so the dashboard monitors traffic the moment the VM boots
  • Deep packet inspection (nDPI) for Layer-7 application and protocol detection
  • Real-time and historical per-host and per-flow traffic analysis, top talkers and alerts
  • Flow collection for NetFlow, sFlow and IPFIX exported by routers, switches and firewalls
  • No default login. A stock ntopng install ships with the well-known admin / admin login, and this image does not. No usable credential is baked into the image, and a unique admin password is generated on every VM's first boot.
  • redis-server.service and ntopng.service as enabled systemd units
  • ntopng-firstboot.service, a one-shot first-boot service that rotates the admin password per VM and records it on the VM for you
  • 24/7 SecureAnyCloud support

Prerequisites

You need an active Azure subscription, an SSH key pair, and a VNet and subnet in the target region.

Standard_B2s (2 vCPU, 4 GiB RAM) is a sensible starting size. Size up for busier links or larger flow volumes.

In the network security group, allow inbound 22/tcp from your management network and 3000/tcp for the web UI. Port 3000 serves the administrative interface, so restrict 3000/tcp to trusted networks and place TLS in front of it for encrypted access.

Step 1 - Deploy from the Azure Marketplace

Sign in to the Azure Portal, choose Create a resource, search the Marketplace for ntopng by SecureAnyCloud, and select Create.

On the Basics tab, pick your subscription, resource group, region and size. Under Administrator account, choose SSH public key and paste your key. Under Inbound port rules, allow SSH (22), then add a custom rule for 3000. Review the defaults, then select Review + create and Create.

Step 2 - Deploy from the Azure CLI

Accept the Marketplace terms once per subscription, then create the VM:

# Accept the Marketplace terms once per subscription (required before the first CLI deploy)
az vm image terms accept --urn sac1647283583153:ntopng-ubuntu-24-04:default:latest
az vm create \
  --resource-group <your-rg> \
  --name ntopng \
  --image sac1647283583153:ntopng-ubuntu-24-04:default:latest \
  --size Standard_B2s \
  --admin-username azureuser \
  --generate-ssh-keys \
  --public-ip-sku Standard

Open the web UI port:

az vm open-port --resource-group <your-rg> --name ntopng --port 3000 --priority 900

Step 3 - Confirm the services are running

SSH in as azureuser and confirm that Redis and ntopng are active.

ntopng requires Redis as its backing store, so both run as enabled systemd units. ntopng listens on port 3000 and Redis on loopback port 6379. Check the services, then the listening ports:

systemctl is-active redis-server ntopng ntopng-firstboot
sudo ss -tlnp | grep -E ':3000 |:6379 ' | awk '{print $1, $4}'

Step 4 - Retrieve your per-VM admin password

The SecureAnyCloud image ships with no usable login. On the first boot of every VM, ntopng-firstboot.service generates a unique administrator password, stores it in Redis and records it in a root-only credentials file. Read the file with sudo:

sudo cat /root/ntopng-credentials.txt

The file records the username (admin), the generated password, the port and the URL for this VM's own address.

Keep the file safe. You can change the password from the UI after you sign in.

Step 5 - Sign in to the traffic dashboard

Browse to http://<vm-public-ip>:3000/ and sign in as admin with the password from the credentials file.

ntopng opens on its traffic dashboard. It shows top flow talkers, top local and remote hosts, top applications and a live traffic classification, all updating in real time from the monitored interface.

Step 6 - Explore the host inventory

Open Hosts from the left navigation to see every host ntopng has observed on the monitored interface. Each host shows its traffic totals, throughput, the applications it uses and an activity breakdown.

Select any host to drill into its flows, ports, protocols and historical activity.

Step 7 - Inspect live flows with Layer-7 detection

Open Flows to watch active connections in real time. Each flow shows the client and server, the Layer-7 application detected by nDPI (for example TCP:SSH or TCP:HTTP), a risk score, duration and throughput.

Use the filters at the top to narrow the list by host, protocol, application or traffic type.

Step 8 - Review interface statistics

Open Interface to see the monitored interface's overall statistics: packet and byte counters, traffic distribution by protocol, throughput over time and interface-level charts.

This is the top-down view of everything crossing the interface that ntopng is watching.

Step 9 - Verify the stack

Check the installed ntopng community version, the build that the binary reports, and that the Redis backing store answers:

dpkg-query -W -f='${Version}\n' ntopng
ntopng --version | head -3
redis-cli ping

Step 10 - Confirm the secure-by-default login

You can prove from the command line that only your per-VM credential works and that the stock admin / admin login has been disabled. Test both logins against the ntopng REST API.

The per-VM password authenticates and returns 200. The default admin / admin is rejected and redirects to the login page (302):

curl -s -o /dev/null -w 'per-VM admin -> HTTP %{http_code}\n' -u 'admin:<ADMIN_PASSWORD>' http://127.0.0.1:3000/lua/rest/v2/get/ntopng/interfaces.lua
curl -s -o /dev/null -w 'default admin/admin -> HTTP %{http_code}\n' -u admin:admin http://127.0.0.1:3000/lua/rest/v2/get/ntopng/interfaces.lua

Step 11 - Choose the monitored interface (optional)

By default, ntopng monitors the VM's primary network interface. To change which interface or interfaces it watches, edit /etc/ntopng/ntopng.conf (the -i= line), then restart the service:

sudo systemctl restart ntopng

To collect flows exported by other devices instead of, or in addition to, live capture, add a collector interface such as -i=tcp://0.0.0.0:6343 for sFlow or a zmq endpoint. Open the corresponding port in the network security group.

Security notes

  • The web UI serves on port 3000 over plain HTTP. Restrict 3000/tcp in the network security group to trusted networks, place a reverse proxy with TLS in front of it for encrypted access, and consider putting the UI behind your own VPN.
  • The image ships with no usable login. A unique admin password is generated on first boot and stored in the root-only file /root/ntopng-credentials.txt, and the stock admin / admin login is disabled. Change the password from the UI after your first sign-in, and create additional per-user accounts as needed.
  • ntopng captures traffic on the interface it monitors. Deploy it where it can see the traffic you care about (for example a mirrored or SPAN port, or as a flow collector), and consider the privacy implications of packet inspection on your network.
  • Keep the VM patched. The image is patched at build time and ships with unattended security upgrades enabled.

Support

SecureAnyCloud provides 24/7 support for this image. For questions about ntopng or help with your deployment, contact us through the SecureAnyCloud website.

Deploy on Azure

Launch ntopng on Ubuntu 24.04 LTS on Azure with 24/7 support from SecureAnyCloud.

View this image

Need Help?

Our support team is available 24/7.

sales@secureanycloud.com

Deploy on Azure