3.9 KiB
Server A OpenSIPS Baseline Runbook
Task: S18 - Server A OpenSIPS baseline Environment: local KVM development servers over Tailscale
Scope
S18 installs and pins OpenSIPS 3.6.x on Server A, binds SIP to the Tailscale address 100.90.90.90:15060/udp, enables local-only MI HTTP, loads the Redis and HEP/tracer module baseline, and adds basic SIP anti-scan handling.
Full Redis routing, RTPEngine/media handling, CDR Stream emission, and production SIP routing are intentionally left for S19-S22.
Installed Packages
Packages installed from https://apt.opensips.org noble 3.6-releases:
opensips3.6.7-1opensips-auth-modules3.6.7-1opensips-redis-module3.6.7-1opensips-http-modules3.6.7-1opensips-json-module3.6.7-1opensips-restclient-module3.6.7-1opensips-prometheus-module3.6.7-1opensips-tlsmgm-module3.6.7-1opensips-tls-module3.6.7-1opensips-tls-openssl-module3.6.7-1opensips-cli0.4.0~20260522~570a9a9-1
All listed OpenSIPS packages are held with apt-mark hold.
Server Files
/etc/opensips/opensips.cfg/etc/default/opensips/etc/apt/sources.list.d/opensips.list/etc/apt/sources.list.d/opensips-cli.list/etc/nftables.d/lisglosips-s18-opensips.nft
Repository copies:
infra/server-a/s18/opensips/opensips.cfginfra/server-a/s18/opensips/opensips.defaultinfra/server-a/s18/nftables/lisglosips-s18-opensips.nft
Runtime
- OpenSIPS listens on
100.90.90.90:15060/udp. - HEP transport placeholder listens on
127.0.0.1:9061/udp. - MI HTTP listens on
127.0.0.1:8888/tcp. - Node Exporter remains on
100.90.90.90:9100/tcpfrom S06.
SIP Behavior
OPTIONSwithout a user part returns200 Keepalive.REGISTERreturns401 Authentication Requiredwith a Digest challenge.INVITEreturns503 Routing Not Readyuntil S20/S21 routes are implemented.pikeblocks excessive request density.maxfwdrejects loops with483 Too Many Hops.
Firewall
The S18 nftables table only filters the new SIP and MI surfaces:
- allow
100.93.185.30 -> 100.90.90.90:15060/udp; - drop other UDP
15060sources; - drop non-local TCP access to
8888.
The table uses policy accept and does not alter SSH. SSH key login remains enabled and unchanged.
Validation
Commands used:
opensips -C -f /etc/opensips/opensips.cfg
systemctl is-active opensips
systemctl is-enabled opensips
ss -lntu | grep -E '15060|8888|9061|9100'
curl -X POST http://127.0.0.1:8888/mi -H 'Content-Type: application/json' --data-binary @mi-version.json
Observed results:
- OpenSIPS config check: OK.
opensips.service: active and enabled.- MI JSON-RPC
version: returnedOpenSIPS (3.6.7 (x86_64/linux)). - From Server T, SIP
OPTIONSreturnedSIP/2.0 200 Keepalive. - From Server T, SIP
REGISTERreturnedSIP/2.0 401 Authentication RequiredwithWWW-Authenticate.
Rollback
Backup directory:
/var/backups/lisglosips-s18/20260621T051403Z
Basic rollback:
sudo systemctl stop opensips
sudo cp -a /var/backups/lisglosips-s18/20260621T051403Z/opensips-etc-before-deploy/. /etc/opensips/
sudo cp -a /var/backups/lisglosips-s18/20260621T051403Z/opensips-default-before-deploy /etc/default/opensips
sudo nft delete table inet lisglosips_s18_opensips
sudo systemctl daemon-reload
If removing packages is required, do it in a maintenance window after confirming no S19/S20 work depends on them:
sudo apt-mark unhold opensips opensips-auth-modules opensips-redis-module opensips-http-modules opensips-json-module opensips-restclient-module opensips-prometheus-module opensips-tlsmgm-module opensips-tls-module opensips-tls-openssl-module opensips-cli
sudo apt-get remove --purge opensips opensips-auth-modules opensips-redis-module opensips-http-modules opensips-json-module opensips-restclient-module opensips-prometheus-module opensips-tlsmgm-module opensips-tls-module opensips-tls-openssl-module opensips-cli