IAM appliance - iam-app-web-proxy

RPM balíček s centrální webovou proxy pro kontejnerizované služby appliance. Proxy je realizována službou nGinx, za kterou jsou schované všechny ostatní služby s webovým rozhraním - CzechIdM, CAS, atd.

Balíček je přímou součástí appliance. Proxy pass je konfigurován na úrovni interního DNS názvu kontejneru s danou aplikací.

Nginx funguje i jako web server pro statické soubory pro CAS, frontpage a další služby na url adrese /static/. Statické soubory lze upravovat (změna loga, změna css barev) v appliance v umístění /data/volumes-shared/web-proxy-static/…​ .

Obsahuje základní podporu pro LE certifikáty (serving challengí, adresáře). Samotné certifikáty a logiku jejich fungování zajišťuje balíček iam-letsencrypt-support, který je proxe podstrkuje.

  • Obsahuje ModSecurity (vědomě) bez CRS pravidel. Ta přibudou později.

Build probíhá standardním způsobem v bcv-rpmbuild kontejneru.

Služba

Kontejner je používán obecný OWASP - ModSecurity3 owasp/modsecurity:nginx zrcadlený z repo.iamappliance.com:8443/owasp/modsecurity-nginx:1.20.2. Služba je v appliance známá jako iam-web-proxy.

Adresáře na disku appliance

  • /data/volumes/web-proxy/config - uložena konfigurace webové proxy

  • /data/volumes/web-proxy/modsecurity-rules - uložena konfigurace ModSecurity pravidel

  • /data/volumes/web-proxy/secrets - uložen HTTPS certifikát a klíč

  • /data/volumes/web-proxy/frontpage - uložený index.html pro zobrazení rozcestníku

  • /data/volumes/web-proxy/letsencrypt - prázdná adresářová struktura, ze které se servují LE challenge

  • /data/volumes-shared/web-proxy-static - statické soubory css, js, obrázky rozdělené do adresářů podle služeb

  • /data/logs/web-proxy - logy

    • Tento adresář musí mít správně SElinux labely, o to se stará RPM balíček už v procesu instalace pomocí volání semanage fcontext …​.

Konfigurační soubory

  • /data/registry/node-active-config/docker-compose-web-proxy.yml - konfigurace kontejneru

  • /etc/rsyslog.d/10_web-proxy.conf - odbočka logů ze syslogu do vyhrazeného souboru na disku

  • /etc/logrotate.d/web-proxy - konfigurace rotace logů

Ovládání

  • Systemd unita je umístěna v /usr/lib/systemd/system/iam-web-proxy.service, ovládání klasicky přes systemctl start/stop/enable/disable.

  • Start unity ve skutečnosti zavolá docker-compose …​ up, který v případě změny compose file rovnou dropne a vygeneruje nový kontejner.

Závislosti

  • Služba nemá žádné závislosti pro svoji instalaci.

  • Služba nemá žádné závislosti pro svůj běh.