AUDIT APLIKASI — REVERSE PROXY ============================== Tanggal audit : 2026-06-10 Sumber : server/host.txt Metode : SSH langsung IP/SSH : 10.100.1.24 | ssh -m hmac-sha1 root@10.100.1.24 -p 22 Hostname : proxy.lan OS : CentOS Linux 8 Uptime : ~78 hari Resource : RAM 15 GiB (avail ~8.6 GiB) | Disk / 50G (32% terpakai) Peran host: gateway HTTPS, manajemen Docker (Dockge), monitoring, automation, dan reverse proxy ke infrastruktur lain (Proxmox, VMware, Zabbix, IIS, Tomcat, dll). A. LAYANAN NATIVE (systemd, bukan Docker) ----------------------------------------- | Layanan | Fungsi | |--------------------|---------------------------------------------| | nginx | Reverse proxy HTTPS → backend internal | | php-fpm (7.2.24) | PHP FastCGI untuk situs native di host | | mosquitto | MQTT broker | | zabbix-agent | Monitoring agent (Zabbix 4.4 release) | | vncserver@:1 | Remote desktop VNC | | docker | Container runtime (Docker CE 26.1.3) | Versi penting: - nginx/1.27.0 - PHP 7.2.24 (cli) - Docker 26.1.3 + docker compose plugin 2.27.0 B. DOCKER CONTAINER (semua di /opt/stacks/) ------------------------------------------- | Container | Image | Status | Port host | Domain (Nginx) | |--------------------|-------------------------------|----------|------------------------|-----------------------------------| | geonet-console | geonet-console:latest | healthy | 127.0.0.1:8091→80 | console.gisportal.id | | sqlservercheck | sqlservercheck:latest | healthy | 127.0.0.1:8090→80 | sqlservercheck.gisportal.id | | dockge-dockge-1 | louislam/dockge:1 | healthy | 0.0.0.0:5001→5001 | dockge.gisportal.id | | grafana-web | grafana/grafana:10.4.2 | healthy | 0.0.0.0:3000→3000 | grafana.gisportal.id | | grafana-loki | grafana/loki:2.9.4 | healthy | 0.0.0.0:3100→3100 | (internal logging) | | grafana-promtail | grafana/promtail:2.9.4 | running | — | (log shipper) | | uptime-kuma | louislam/uptime-kuma:1 | healthy | 0.0.0.0:3001→3001 | uptime.gisportal.id | | n8n | docker.n8n.io/n8nio/n8n | healthy | 0.0.0.0:5678→5678 | n8n.gisportal.id | | node-red | nodered/node-red:latest | healthy | 0.0.0.0:1880→1880 | node-red.gisportal.id | | simple-web | ghcr.io/rianjawa93/simple-web | healthy | 0.0.0.0:8088→80 | simple-web.gisportal.id | | nginx-config-check | nginx:1.27-alpine | healthy | — | (validasi config nginx) | Folder stack: /opt/stacks/ geonet-console, sqlservercheck, grafana, n8n, node-red, simple-web, uptime-kuma, nginx-config-check C. NGINX REVERSE PROXY (39+ virtual host) ----------------------------------------- Nginx mem-proxy domain *.gisportal.id ke berbagai backend (Docker, VM, IIS, dll). Contoh domain terdaftar: acunetix, adfs, apache, apimobile, app, arc, asset, asset.opr, databaselist, dockge, explore, git, grafana, help, hse, iis, laragon, maps, martin, monitor, n8n, node-red, proxmox, pve00/01/02, rpm, rwa, sfile, simp, simple-web, speed, sqlservercheck, stream, todo, tomcat, uptime, vmware, wsp, zabbix Config lokasi: /etc/nginx/conf.d/production/*.conf D. STACK DARI PROJECT server-connection (repo lokal) ---------------------------------------------------- | Stack | Path di server | URL publik | Koneksi DB | |----------------|-----------------------------|-----------------------------------------|-------------------| | geonet-console | /opt/stacks/geonet-console/ | https://console.gisportal.id | MSSQL 10.100.1.25 | | (legacy 301) | databaselist.gisportal.id | redirect → console.gisportal.id | — | | sqlservercheck | /opt/stacks/sqlservercheck/ | https://sqlservercheck.gisportal.id | MSSQL 10.100.1.25 | - geonet-console : Geonet Console — database, LDAP, API, audit - sqlservercheck: PHP test koneksi TS (/ts) & NTS (/nts), dipantau Uptime Kuma - Keduanya bind ke 127.0.0.1 saja; akses publik hanya via Nginx + HTTPS E. ANALISA & CATATAN -------------------- Catatan: - PHP 7.2 sudah EOL; pertimbangkan upgrade jika masih dipakai produksi. - Beberapa container expose port ke 0.0.0.0 (3000, 3001, 5678, 1880, 8088, 5001). Pastikan firewall Mikrotik membatasi akses langsung ke port tersebut. - geonet-console & sqlservercheck aman: hanya 127.0.0.1, wajib lewat Nginx. PERINTAH VERIFIKASI ULANG ------------------------- # Semua container Docker ssh -m hmac-sha1 root@10.100.1.24 -p 22 "docker ps -a" # Stack server-connection ssh -m hmac-sha1 root@10.100.1.24 -p 22 "ls /opt/stacks/geonet-console /opt/stacks/sqlservercheck" # Status stack geonet-console ssh -m hmac-sha1 root@10.100.1.24 -p 22 "cd /opt/stacks/geonet-console && docker compose ps" # Status stack sqlservercheck ssh -m hmac-sha1 root@10.100.1.24 -p 22 "cd /opt/stacks/sqlservercheck && docker compose ps" # Daftar domain nginx ssh -m hmac-sha1 root@10.100.1.24 -p 22 "grep -rh server_name /etc/nginx/conf.d/production/*.conf | grep -v '#' | sort -u"