Back to Field Notes
Incident Recovery & Security•June 19, 2025•6 min read

Air-Gapping MongoDB in Production: Strict Firewall Whitelisting & Secure Payment Proxies in South Asia

Why leaving database port 27017 exposed to 0.0.0.0 is disastrous and how we architected a hardened webhook reverse proxy for bKash and Nagad payment rails.

By Abdullah Al Mamun • Systems Architect & Founder
Title card for the MongoDB hardening guide — air-gapped database behind UFW firewall whitelisting with HMAC-verified payment webhooks

A pragmatic security blueprint for protecting sensitive customer transactions, closing 0.0.0.0 exposure, isolating MongoDB behind application-only static IP whitelisting, and routing local payment webhooks through cryptographic proxy verification.

Table of Contents (4 sections)▼

1. The Open Port Hazard (0.0.0.0/0)

Air-gapping MongoDB means eliminating public internet exposure by binding port 27017 strictly to a private VPC subnet or internal network interface. Combining this with kernel-level UFW firewall rules that whitelist only the application server's static IP completely protects databases from automated internet-wide port scans and ransomware attacks.

Automated internet-wide port scans constantly probe for MongoDB port 27017. Binding a database to '0.0.0.0' or relying solely on user/password authentication is an invitation for automated ransomware scripts.

On MoneTrix and SubsDrop, protecting customer credentials and transactions required an air-gapped private networking strategy.

2. Zero-Exposure UFW Firewall Configuration

We bound MongoDB strictly to internal interfaces and enforced kernel-level packet drops via UFW on all external interfaces.

Only our application server's static internal IP is permitted to open a TCP handshake on port 27017.

ufw_db_rules.sh
# Set default firewall policies
sudo ufw default deny incoming
sudo ufw default allow outgoing

# Allow secure SSH access strictly on non-standard port
sudo ufw allow 22022/tcp comment "Hardened SSH"

# Whitelist database port exclusively from dedicated app server private IP
sudo ufw allow proto tcp from 10.0.1.15 to any port 27017 comment "App Server Only"

# Enable firewall and verify rule ordering
sudo ufw enable
sudo ufw status verbose

3. Hardened Payment Proxy & Cryptographic HMAC Verification

Local payment gateways (UddoktaPay, IT Pay BD, bKash) dispatch asynchronous webhooks upon customer payment completion. To protect our database from spoofed webhooks:

• Webhooks hit a dedicated isolated payment proxy endpoint.

• The proxy calculates a SHA-256 HMAC digest against the raw incoming payload and verifies it against the shared secret key.

• Replay attacks are prevented via mandatory timestamp validation (<5 minute drift) and transaction UUID idempotency checks using Redis SETNX locks.

Production Implementation

Review the verified telemetry in the Air-Gapped MongoDB & Payment Proxy Case Study.

Frequently Asked Questions

What does air-gapping MongoDB mean?
Air-gapping MongoDB means binding the database to private internal network interfaces only (e.g., 10.0.1.x) and blocking all public internet access to port 27017 using kernel-level firewall rules (UFW/iptables). Only whitelisted application server IPs can connect, eliminating exposure to automated port scans and ransomware attacks.
How do I secure MongoDB port 27017 with UFW?
Run 'sudo ufw default deny incoming', then whitelist only your application server's IP with 'sudo ufw allow proto tcp from YOUR_APP_IP to any port 27017'. Finally enable UFW with 'sudo ufw enable'. This ensures only your application can reach the database, even if authentication is somehow bypassed.
How do HMAC webhook signatures prevent payment fraud?
When a payment gateway sends a webhook, it includes a cryptographic HMAC-SHA256 signature computed from the raw payload and a shared secret. Your server independently computes the same HMAC from the received payload. If the signatures don't match, the webhook is rejected, preventing attackers from forging fake payment confirmations.
Tags:#MongoDB Hardening#FinTech Security#UFW Firewall#Reverse Proxy#HMAC Signatures
Abdullah Al Mamun

Systems Architect & Founder of SubsDrop, QuickMation, and MoneTrix.

Discuss Systems