Een firewall (UFW) configureren op je trading server
Je trading server staat 24/7 aan en verwerkt gevoelige data: API-sleutels van brokers, backtestresultaten en live orderstromen.
Zonder firewall loop je risico op ongewenste toegang, DDoS-aanvallen of misbruik van je Python-bots. Een UFW-firewall is je digitale voordeur met slot: simpel, effectief en snel ingesteld. Je beschermt je VPS zonder complexe tools, zodat je bot blijft draaien en je risicomanagement intact blijft.
Wat is UFW en waarom gebruik je het op een trading server?
UFW staat voor Uncomplicated Firewall. Het is een makkelijke schil bovenop iptables op Linux, waarmee je poorten open of dichtzet zonder ingewikkelde regels te typen.
Voor een trading server betekent dit: je laat alleen het nodige verkeer toe, zoals SSH voor beheer en de API-poorten van je broker. Een open poort is een open deur. Stel je gebruikt Interactive Brokers TWS API op poort 7496 of 7497, of je pollt Binance via HTTPS op poort 443.
Zonder firewall kan elk script proberen binnen te komen. UFW bepaalt wie binnenmag en wie niet, en houdt ook bij wat er gebeurt.
Denk aan je backtesting-omgeving: je Python-scripts laden data, draaien modellen en schrijven resultaten weg. Als er ongewenst verkeer binnenkomt, kan je server langzamer worden en ontstaat jitter. Met UFW hou je latency laag en je data schoon.
UFW is je simpele, sterke slot op je trading server. Zet het aan, zet de juiste poorten open, en je rust uit.
Stappenplan: UFW installeren en configureren voor trading
Check eerst of UFW al actief is. Doe dit op je VPS (bijvoorbeeld DigitalOcean, Vultr of Hetzner) via: sudo ufw status.
Als het inactive is, installeer je het met sudo apt install ufw -y op Ubuntu/Debian.
Stel de basishouding in: blok alles, behalve wat je expliciet toelaat. Gebruik hiervoor: Open nu alleen wat nodig is. Voor SSH (beheer) typ je: sudo ufw allow 22/tcp.
- sudo ufw default deny incoming
- sudo ufw default allow outgoing
Voor je broker-API kies je de juiste poort. Voor IBKR TWS API op een development-account is dat vaak 7496 (TWS) of 7497 (Gateway).
Voor live trading zet je deze poorten alleen open naar je eigen IP of een beperkt IP-bereik. Voor Binance REST-API hoef je niets open te zetten; je initieert de verbinding vanaf je server naar poort 443. Voor WebSockets (bijv. Alpaca, Coinbase) laat je alleen uitgaand verkeer toe, en hou je de firewall verder dicht. Activeer UFW pas nadat je de juiste poorten hebt geopend.
Doe dit met: sudo ufw enable. Je krijgt een waarschuwing dat de verbinding kan onderbreken.
Zorg dat je SSH-sessie open blijft of open eerst poort 22. Controleer met sudo ufw status verbose wat er actief is. Belangrijk: als je meerdere bots draait op aparte containers of VMs, zorg dan dat je interne netwerk niet via UFW wordt geblokkeerd.
UFW werkt op de host; Docker kan eigen regels toevoegen. Zet je bot in een container?
Pas op met Docker’s eigen iptables. Gebruik bij voorkeur --iptables=false of regel het netwerk via een aparte bridge.
Handige regels voor je Python-bots en broker-APIs
Je Python-bots praten met brokers via REST of WebSockets. Voor IBKR zet je de juiste poort open, maar alleen voor je eigen IP of een beperkte range. Gebruik hiervoor: Wil je latency minimaliseren?
- sudo ufw allow from 192.168.1.0/24 to any port 7496 proto tcp (interne LAN)
- sudo ufw allow from 10.0.0.5 to any port 7497 proto tcp (specifiek IP)
Zet je broker-API op een dedicated interface. Gebruik ufw allow in on eth1 to any port 7496 proto tcp als je een tweede netwerkkaart hebt voor een privédomein.
Dit scheelt milliseconden en houdt je publieke poorten dicht. Voor Binance, Bybit of Kraken hoef je geen poorten open te zetten.
Je bot start een HTTPS-verbinding naar de exchange. UFW blokkeert alleen inkomend verkeer; uitgaand verkeer is standaard toegestaan. Wel belangrijk: zet onnodige services uit.
Geen open poorten voor web, database of Redis tenzij nodig. Backtesting vraagt geen open poorten.
Je draait je script lokaal of in een afgeschermd netwerk. Zorg dat je bestanden niet openbaar toegankelijk zijn. UFW helpt hier indirect door ongewenst inkomend verkeer te weren. Risicomanagement zit ook in je firewall: beperk wie je server mag benaderen.
Gebruik whitelisten voor IP’s van je broker, je eigen kantoor en je beheer-IP. Hou je logboeken bij; UFW logt met sudo ufw logging on en schrijft naar /var/log/ufw.log.
Varianten, modellen en kosten: van simpel tot enterprise
UFW is gratis en open source. Je betaalt alleen je VPS.
Een instap-VPS voor een trading bot kost zo’n €5–€15 per maand (bij DigitalOcean, Vultr, Hetzner). Daarop draai je Ubuntu met UFW en Python 3.11+. Voor meer controle kies je een VPS met privénetwerk en dedicated CPU.
Prijzen liggen rond €20–€60 per maand. Je kunt dan meerdere bots draaien en UFW per interface afstemmen.
Voor low-latency trading kies je een VPS dicht bij je broker (bijvoorbeeld Londen voor LSE of New York voor NYSE).
Dat scheelt 5–20 ms. Wil je enterprise-niveau? Dan kies je voor een managed firewall of cloud-native security. Op AWS bijvoorbeeld een Security Group (gratis, maar wel apart te configureren).
Op Azure heet het Network Security Group. Prijzen variëren, maar de groepen zelf zijn gratis; je betaalt voor verkeer en compute.
Voor algoritmische trading bots is UFW vaak al voldoende, zolang je je IPs beheert en services beperkt. Alternatieven zijn er ook: fail2ban voor extra bescherming tegen brute-force (gratis), of CrowdSec (gratis, community-gedreven). Deze tools werken naast UFW en blokkeren kwaadwillende IP’s automatisch.
Voor trading bots is fail2ban nuttig op poort 22, maar zorg dat je eigen IP niet geblokkeerd raakt.
Denk aan monitoring: tools zoals Prometheus of Grafana zijn gratis, maar vereisen extra poorten. Zet deze alleen open in je private netwerk. Zo hou je latency laag en beveiliging hoog.
Praktische tips voor je trading server
Hou het simpel: open alleen poorten die je echt nodig hebt. Gebruik sudo ufw status numbered om regels te zien en verwijder onnodige regels met sudo ufw delete [nummer]. Test je firewall voordat je live gaat.
Gebruik vanaf een andere machine nmap -p 22,7496,7497 [je-server-IP] om te zien welke poorten open zijn. Voorkom brute force aanvallen door je server extra goed te beveiligen.
Alleen jouw toegestane poorten mogen responden. Beperk toegang tot je broker-API.
Bij IBKR kun je in TWS of Gateway je IP whitelisten. Doe dit ook bij je VPS: open poort 7496/7497 alleen voor het IP van je broker. Bij Binance en andere exchanges is dat niet nodig, maar hou je API-sleutels veilig: gebruik environment variables en geen hardcoded keys in je Python-code.
Log en monitor. Zet UFW logging aan en bekijk regelmatig je logbestanden.
Combineer dit met een simpel dashboard voor je bot: een cronjob die je server-status en latency meet. Zo blijf je bovenop je risicomanagement. Backup je configuratie. Kopieer je UFW-regels naar een veilige plek: sudo ufw --dry-run > ~/ufw-rules.txt.
Bij een nieuwe VPS zet je ze snel terug. En vergeet niet: je firewall is maar één laag. Zorg ook voor goede updates, beveiligde SSH-sleutels en je Python-omgeving inrichten voor je trading bots.
