Üzemeltetői felület-referencia

Minden hálózati port, socket és fájl, amit ez az átjáró megnyit vagy tárcsáz, alrendszerenként egy szakaszban, mindig ugyanabban a három részben: hol állítódik be az érték, mit foglal az érték, és melyik parancs méri.

Annak a három portnak, amit az ISG maga nyit meg — az admin felület, a CA megújítási végpontja és a diagnosztikai figyelő —, alapértelmezése van a kódban, és az alábbi számok ezek az alapértelmezések. Ezen az oldalon minden más port egy olyan értékből származik, amit egy operátor írt be egy konfigurációs fájlba. Azokra nincs idézhető alapértelmezés, ezért ami helyettük szerepel, az ebben a telepítésben szokásos érték, így is jelölve. Ha bármelyiket alapértelmezésnek olvasod, az az egyetlen mód, ahogy ezt az oldalt félre lehet használni.

Minden szakasz táblázatban nevezi meg a kulcsait és a flagjeit, nem mondatokban, szándékosan: azokat a cellákat a make operations-check veti össze a kóddal, egy bekezdésbe hegesztett értéket pedig egyetlen kapu sem talál meg.

webUI

A böngészős admin felület: jóváhagyások, munkamenetek és az audit-nyomvonal. HTTPS-t szolgál, ha az isg ca init lefutott, mert az állítja ki a kiszolgáló-tanúsítványát; anélkül sima HTTP-t szolgál loopback bindon, és bármi máson megtagadja az indulást.

A webUI áttekintő oldala: aktív munkamenetek, jóváhagyásra váró kérések, megújítható tanúsítványok és a rendszer-ellenőrzés összesítése

Képernyőkép: referencia-környezet (env1), 2026-10-17.

Hol állítódik be

Parancs Flag Referencia
isg serve --bind isg serve
isg serve --port isg serve
isg serve --secure-cookie isg serve
isg serve --ui-hostname isg serve
Konfigurációs fájl Kulcs Referencia
ldap.yaml url ldap.yaml
jira.yaml webui_base_url jira.yaml
tls.yaml webui.cert_file tls.yaml
tls.yaml webui.key_file tls.yaml

Az ldap.yaml url-je azért van ezen a listán, mert az dönti el, hogy a felület kér-e egyáltalán bejelentkezést: konfigurált címtárral a felület űrlapos hitelesítésű, anélkül nyitva fut. Ha van sso.yaml, a belépő oldal a jelszó-űrlap mellett az identity providert is kínálja (web: optional), vagy csak azt (web: required); a címtár mindkét esetben kötelező, mert amit a provider visszaad, az csak egy keresőkulcs abba — lásd lentebb: SSO (OIDC identity provider). A webui_base_url az a cím, amire egy JIRA-jegy visszalinkel — ugyanaz a felület, valaki más böngészőjéből nézve.

A tls.yaml két kulcsa a kilépés abból, hogy ennek a portnak a tanúsítványát az ISG CA adja — lásd lentebb: Kiszolgáló-tanúsítvány. Ezen a lapon ez az egyetlen két kulcs, amelyek HIÁNYA maga a dokumentált alapértelmezés: a fájl nélkül az ISG CA állítja ki a tanúsítványt, ahogy minden telepítés tette, mielőtt ez a fájl létezett.

Mit foglal

Erőforrás Érték Honnan jön az érték
TCP port 8765 a --port alapértelmezése
Bind-cím 127.0.0.1 a --bind alapértelmezése
Kiszolgáló-tanúsítvány a $ISG_HOME/pub/x509_ca_cert.pem alatt publikált X.509 CA írja alá a CA-t az isg ca init hozza létre; a kiszolgáló-tanúsítvány induláskor áll ki
Kiszolgáló-tanúsítvány, külső a tls.yaml-ben megnevezett PEM-pár csak akkor van, ha a tls.yaml is; az ISG CA ilyenkor semmit nem ad ki ehhez a porthoz

A tanúsítványnak két lehetséges forrása van, és az isg system check webui_cert_source sora mindig megmondja, melyik van használatban.

Az ISG CA (az alapértelmezés). tls.yaml nélkül az isg serve induláskor az átjáró saját X.509 CA-jából állítja ki ennek a portnak a tanúsítványát, a ca/server/server_<ui-hostname>.crt fájlba. Nem kell hozzá PKI a te oldaladon, és az első futásra működik; az ára az, hogy minden böngészőnek, ami ezt a felületet eléri, bíznia kell a pub/x509_ca_cert.pem-ben.

Ez az ár az, ami megszorítja a CA-t. Egy tanúsítvány-tárba importált CA kulcsa bármely névért helytállni tud, amire aláírhat, ezért egy ÚJ X.509 CA csak úgy jön létre, hogy ez a halmaz ki van mondva: az isg ca init --permitted-dns <name> --permitted-ip <CIDR> ezeket írja a tanúsítványba nameConstraints-ként, és egyik kapcsoló nélkül sem hoz létre a parancs semmit. Az eredményt utána két dolog jelenti: az x509_ca_name_constraints sor megmondja, meg van-e szorítva ez a CA és mire — megszorítás nélkül WARN, soha nem FAIL, mert az egyetlen javítás egy új CA, és egy CA cseréje minden általa aláírt tanúsítványt érvénytelenít —, a kiállítás pedig megtagadja a halmazon kívüli hostnevet, ahelyett hogy olyan tanúsítványt gyártana, amit minden láncot ellenőrző kliens elutasít.

A saját PKI-d (tls.yaml). Nevezz meg egy tanúsítványt és egy kulcsot, amit egy olyan CA adott ki, amiben a géppark már bízik, és ez a port azt fogja kiszolgálni — nincs importálandó ISG-gyökér sehol. A cert_file a leafet tartalmazza elöl, utána a köztes tanúsítványokat; a key_file módja 0600 legyen, tulajdonosa a daemon fiókja. A párt az indulás ellenőrzi a név ellen, amin ezt a listenert hívják, és egy jelen lévő, de használhatatlan tls.yaml megtagadja az indulást — csendes visszaesés az ISG CA certjére nincs, mert az egy működő felületet adna egy böngésző-figyelmeztetéssel, és soha nem mondaná meg, hogy a konfigurációdat figyelmen kívül hagyták.

A külső pár cseréjéhez nem kell újraindítás: a daemon újraolvassa a fájlokat (legfeljebb 30 másodpercenként egy stat), és a következő kézfogás már az új tanúsítványt kapja, egy WEBUI_CERT_RELOADED audit-bejegyzéssel. Az a csere, ami ugyanazokon az ellenőrzéseken elbukik, elutasításra kerül, a korábbi tanúsítvány marad kiszolgálva, és ezt a WEBUI_CERT_RELOAD_REJECTED meg egy piros webui_cert_source sor mondja ki.

Amit az ISG nem ellenőriz, az a lánc: a te gyökered nincs nála, tehát hogy egy böngésző elfogadja-e a tanúsítványt, csak kliensről válaszolható meg.

Hogyan mérd

CA renew

Az az mTLS-végpont, amit egy szolgáltatás-gép ügynöke hív a hozzáférési tanúsítványa megújításához. Ez az egyetlen ISG-port, ami alapból minden interfészre köt, mert a megújító gépek definíció szerint nem ezek; a védelme a kölcsönös TLS, nem a bind-cím.

Hol állítódik be

Parancs Flag Referencia
isg serve --ca-renew-bind isg serve
isg serve --ca-renew-port isg serve
isg serve --ca-renew-hostname isg serve
Konfigurációs fájl Kulcs Referencia
agent.yaml ca_renew_url agent.yaml
agent.yaml renew_interval agent.yaml
ca.yaml renewable_ttl_days ca.yaml

Az első két kulcs a szolgáltatás-gépen él, nem az átjárón: ezek ennek a végpontnak a kliens-fele, és a ca_renew_url az a hely, ahol a fent leírt portszámot meg kell ismételni.

Mit foglal

Erőforrás Érték Honnan jön az érték
TCP port 8766 a --ca-renew-port alapértelmezése
Bind-cím 0.0.0.0 a --ca-renew-bind alapértelmezése
Útvonal /ca/renew a végpont rögzíti

Hogyan mérd

Web Access

A listener, ami a webes konzolokat az ISG-belépés mögé teszi, és a kapcsolatai a konzolok felé. Ki van kapcsolva, ha nincs apps.yaml; hogy egy kérés milyen úton jár, az a hogyan működik a Web Access lapon áll.

Hol állítódik be

Konfigurációs fájl Kulcs Referencia
apps.yaml listen apps.yaml
apps.yaml tls_cert_file apps.yaml
apps.yaml tls_key_file apps.yaml
apps.yaml webui_url apps.yaml
apps.yaml apps[].upstream apps.yaml
apps.yaml apps[].upstream_ca_file apps.yaml
apps.yaml dynamic_apps_domain apps.yaml

Mit foglal

Erőforrás Érték Honnan jön az érték
TCP-port ebben a telepítésben 8444 — nem alapértelmezés a listen portja (a szállított Ansible-ben isg_apps_port)
Irány bejövő, böngésző → átjáró (TLS; a hosztnév választja ki az alkalmazást) —
TCP-port minden alkalmazás saját portja — nem alapértelmezés az upstream URL-je
Irány kimenő, átjáró → webes konzol —
Fájl a listener tanúsítványa és kulcsa tls_cert_file, tls_key_file (a kulcs 0600 vagy 0400)
Fájl az assertion aláíró kulcsa, identity: jwt alkalmazás mellett assertion_key_file

Az alkalmazás-munkamenetek és a jóváhagyások a rekord-tárban élnek, mint az SSH-munkamenetek; egy kind: form fiók upstream munkamenet-sütijei csak a kiszolgáló bróker memóriájában, és egy újraindítással elvesznek (a következő kérés újra belép).

Hogyan mérhető

Diagnosztika és metrikák

Az egészség- és metrika-figyelő: életjel egy orkesztrátornak, készenlét egy terheléselosztónak, és egy Prometheus-formátumú scrape. Ki van kapcsolva, amíg be nem kapcsolják, és loopbackre köt, hacsak mást nem mondanak neki — egy másik gépen futó scraper kimondott döntés, nem a funkció bekapcsolásának mellékhatása.

Hol állítódik be

Konfigurációs fájl Kulcs Referencia
diag.yaml enabled diag.yaml
diag.yaml listen diag.yaml
diag.yaml auth_token diag.yaml
diag.yaml per_host_labels diag.yaml
diag.yaml scrape_staleness_warn diag.yaml

Mit foglal

Erőforrás Érték Honnan jön az érték
TCP port 8767 a listen alapértelmezése
Bind-cím 127.0.0.1 a listen alapértelmezése
Útvonalak /healthz, /readyz, /metrics a figyelő rögzíti

Az auth_token, ha be van állítva, a /readyz-n és a /metrics-en kötelező, a /healthz-n soha.

Hogyan mérd

Egy mérés, három felület. Az isg system check nem magától mér: a futó daemontól kéri a jelentést a session-socketen, és a választ jeleníti meg. Ugyanaz a jelentés, amit az admin felület /system oldala mutat, és ugyanazok az ellenőrzések, amelyeknek egy vetületét a /readyz adja — a daemon saját bemeneteivel mérve —, így a kimenet nem függ attól, melyik fiók futtatja a parancsot. A jelentés első sora ezt ki is mondja (Measured by the daemon (pid N, user isg) over /run/isg/session.sock). Aki a socketet megnyithatja, az kérheti; semmi több nem kell hozzá.

Daemon nélkül — nem fut, ebből a fiókból nem érhető el, vagy túl régi ahhoz, hogy ismerje a kérést — a parancs ugyanazzal a kóddal helyben mér, és a Measured locally as user … sorral nyit, megnevezve az okot; a --local ezt az utat kényszeríti ki összehasonlításhoz. A helyi úton azok a sorok, amelyek csak a daemon által olvasható fájlokat olvasnak — a rekord-tár hitelesítő fájlját a Lockout store, Revocation list, Login state store, Broker version skew és Retention artifact integrity sorok mögött — azt mondják: not measurable from this account, és WARN-t adnak: a nem-mért sosem hamis zöld. Soha nem FAIL-ek a hívó saját jogosultságai miatt, és soha nem tűnnek el.

A színt kérni kell, nem kitalálni. A riport a [OK ], [WARN] és [FAIL] jelölőit csak valódi terminálon színezi, így a cső, a fájl és a cron megkapja az escape-mentes, soronként-egy-sor alakot, amit a parse-olók olvasnak. Egy másik gépről az ssh gateway isg system check alakkal olvasva sincs távoli terminál, tehát az a kimenet is színtelen — a --color=always mégis kéri a színt, és pont ez kell egy naplózott, nem interaktív futáshoz, a másik út pedig az ssh -t; a --color=never terminálon is elutasítja. A szín soha nem hozza magával a tördelést: a --color=always csövön is soronként egy sort ad. Az alap auto módban a NO_COLOR (bármilyen értékkel jelen van) erősebb a CLICOLOR_FORCE-nál (bármi, csak nem 0), az pedig erősebb a terminál-vizsgálatnál.

Rekord-tár (PostgreSQL)

Itt élnek a munkamenet-rekordok, a bróker-bérletek, a bejelentkezési állapot, a kizárási számlálók és a visszavonások, ha egynél több bróker osztozik rajtuk. A kapcsolati sztringet fájlból olvassuk, nem a konfigból, hogy a jelszó soha ne üljön egy mindenki által olvasható YAML-ben.

Hol állítódik be

Konfigurációs fájl Kulcs Referencia
storage.yaml records.backend storage.yaml
storage.yaml records.postgres.dsn_file storage.yaml

Mit foglal

Erőforrás Érték Honnan jön az érték
TCP port 5432 ebben a telepítésben — nem alapértelmezés a records.postgres.dsn_file által megnevezett fájlban álló DSN
Irány kimenő, átjáró → adatbázis —

Hogyan mérd

Objektumtár (S3)

Ide kerül egy lezárt munkamenet felvétele. Az üres endpoint az igazi AWS S3-at jelenti, és az SDK feloldja a régió saját címét; bármi más egy S3-kompatibilis szolgáltatás címe, és azt a címet a port is hordozza.

Hol állítódik be

Konfigurációs fájl Kulcs Referencia
storage.yaml recordings.backend storage.yaml
storage.yaml recordings.s3.endpoint storage.yaml
storage.yaml recordings.s3.bucket storage.yaml
storage.yaml recordings.s3.path_style storage.yaml
storage.yaml recordings.s3.credentials_file storage.yaml
storage.yaml recordings.dir.path storage.yaml

Mit foglal

Erőforrás Érték Honnan jön az érték
TCP port 9000 ebben a telepítésben — nem alapértelmezés a recordings.s3.endpoint-ban álló URL
Irány kimenő, átjáró → objektumtár —
Lokális alternatíva a recordings.dir.path által megnevezett könyvtár akkor használt, ha a recordings.backend a könyvtár-háttértár

Hogyan mérd

Titok-tár (OpenBao)

Akkor olvassuk, ha a tanúsítvány-aláírás delegálva van — abban a módban az SSH CA privát kulcsa sosem ezen a lemezen van, és minden tanúsítvány, amit az ISG kiad, ezen a kapcsolaton át íródik alá —, akkor, ha a többfaktoros titkok a KV-tárában vannak a lokális totp/ könyvtár helyett, és akkor, ha egy Web Access-alkalmazás közös fiókot használ (identity: credential), amelynek a titkát minden belépéskor vagy kéréskor a KV-tárból olvassuk. Az X.509 CA-t ez nem érinti, az lokális marad.

Hol állítódik be

Konfigurációs fájl Kulcs Referencia
vault.yaml address vault.yaml
vault.yaml token_file vault.yaml
vault.yaml ssh_mount vault.yaml
vault.yaml tls_ca_file vault.yaml
vault.yaml kv_mount vault.yaml
ca.yaml signer ca.yaml
mfa.yaml store mfa.yaml
apps.yaml credential_kv_prefix apps.yaml

A ca.yaml signer-je és az mfa.yaml store-ja a két kapcsoló: a beépített aláíróval és a fájl-alapú titok-tárral a vault.yaml-t soha nem nyitjuk meg, és ebből a szakaszból semmi nem érvényes.

Mit foglal

Erőforrás Érték Honnan jön az érték
TCP port 8200 ebben a telepítésben — nem alapértelmezés az address-ben álló URL
Irány kimenő, átjáró → titok-tár —

Hogyan mérd

SSO (OIDC identity provider)

A szervezet OIDC identity providere mint belépés két felületen: a böngészős belépés az admin felületre (Authorization Code PKCE-vel), és az átjárós bejelentkezés az ssh isg-login@gateway úton (az RFC 8628 device flow — a daemon kiír egy kódot és egy URL-t, az operátor a saját böngészőjében hagyja jóvá, Enter után a daemon pollol). Amit a provider eldönt, az az, hogy ki lép be. Amit nem dönt el, az az, hogy az a személy létezik-e itt, és hogy mit tehet: a username_claim értéke egy keresőkulcs, amit a címtárnak fel kell oldania, a szerepkör, a csoportok és a jóváhagyói jog pedig továbbra is a címtárból jön.

Hol állítódik be

Konfigurációs fájl Kulcs Referencia
sso.yaml enabled sso.yaml
sso.yaml issuer sso.yaml
sso.yaml client_id sso.yaml
sso.yaml client_secret_file sso.yaml
sso.yaml redirect_url sso.yaml
sso.yaml username_claim sso.yaml
sso.yaml mfa sso.yaml
sso.yaml web sso.yaml
sso.yaml cli sso.yaml

Az issuer az, ahonnan a discovery olvasódik, és HTTPS kell legyen. A client_secret_file egy 0600 módú fájl — maga a titok sosincs a YAML-ban. A redirect_url-nek /login/sso/callback végűnek kell lennie, és bájtra egyeznie kell azzal, amit a provider regisztrált. A web és a cli független tengelyek: mit kínál a belépő oldal, és mit csinál az SSH-bejelentkezés promptja.

SAML 2.0 az OIDC helyett

Ha a protocol értéke saml, a böngészős belépés SAML 2.0-t beszél, és csak a böngészős belépés: az SSH-bejelentkezés jelszó plusz az átjáró saját második faktora marad, ezért a cli értéke csak off lehet. A fenti OIDC-kulcsokat ilyenkor a betöltő nem olvassa.

Konfigurációs fájl Kulcs Referencia
sso.yaml protocol sso.yaml
sso.yaml saml_idp_metadata_url sso.yaml
sso.yaml saml_idp_metadata_file sso.yaml
sso.yaml saml_sp_entity_id sso.yaml
sso.yaml saml_acs_url sso.yaml
sso.yaml saml_username_attribute sso.yaml
sso.yaml saml_use_name_id sso.yaml
sso.yaml saml_idp_mfa_authn_context sso.yaml
sso.yaml saml_clock_skew_seconds sso.yaml

A saml_idp_metadata_url (HTTPS) és a saml_idp_metadata_file közül pontosan az egyik nevezi meg a provider metaadatát, amiben kell lennie egy aláíró tanúsítványnak és egy HTTP-Redirect belépési végpontnak. A saml_acs_url-nek /login/sso/saml/acs végűnek kell lennie. Csak az ezen az átjárón indított belépést fogadja el, és magának az assertionnek aláírtnak kell lennie. A felhasználónév a saml_username_attribute által megnevezett attribútum értéke (alapértelmezés uid), vagy a NameID, ha a saml_use_name_id be van kapcsolva. mfa: idp mellett az assertion AuthnContextClassRef értékének a saml_idp_mfa_authn_context egyikének kell lennie, különben a helyi második faktor fut. Az átjáró a saját metaadatát a /sso/saml/metadata címen teszi közzé, hogy a provider adminisztrátora importálhassa.

Mit foglal

Erőforrás Érték Honnan jön az érték
TCP port egyáltalán nincs alapértelmezés az issuer URL-jében álló port
Irány kimenő, átjáró → identity provider (HTTPS: discovery, JWKS, token- és device-végpont) —
Útvonalak, bejövő /login/sso/start, /login/sso/callback a felület rögzíti, a webUI portján
TCP port, SAML egyáltalán nincs alapértelmezés a saml_idp_metadata_url URL-jében álló port; saml_idp_metadata_file mellett nincs
Irány, SAML kimenő, átjáró → identity provider (HTTPS: a metaadat, egyszer, induláskor) —
Útvonalak, bejövő, SAML /login/sso/start, /login/sso/saml/acs, /sso/saml/metadata a felület rögzíti, a webUI portján

A böngésző saját forgalma a provider felé nem az átjáróé, és nincs ebben a táblában.

Hogyan mérd

Az induláskor elérhetetlen provider nem végzetes: a daemon SSO nélkül indul — a jelszó-űrlap web: required mellett is megjelenik, és a cli: required továbbra is jelszót kér —, és az ellenőrzés sora piros marad, amíg a provider újra elérhető nem lesz. Hogy bárki beléphet-e egy futó átjáróba, az nem múlhat azon, hogy egy JSON-dokumentum letölthető-e.

LDAP

Az elsődleges identitásforrás: ki egy felhasználó, mely csoportokban van, és — az admin felület bejelentkezéséhez — egy jelszavas bind. Enélkül az átjáró egy lokális identitásfájlra esik vissza, ami támogatott mód, nem hiányosság.

Hol állítódik be

Konfigurációs fájl Kulcs Referencia
ldap.yaml url ldap.yaml
ldap.yaml start_tls ldap.yaml
ldap.yaml tls_ca_file ldap.yaml
ldap.yaml allow_plaintext ldap.yaml
ldap.yaml bind_dn ldap.yaml
ldap.yaml bind_password ldap.yaml
ldap.yaml base_dn ldap.yaml
ldap.yaml group_base_dn ldap.yaml
ldap.yaml timeout_seconds ldap.yaml

Mit foglal

Erőforrás Érték Honnan jön az érték
TCP port 636 ebben a telepítésben — nem alapértelmezés az url-ben álló URL
Irány kimenő, átjáró → címtár —

A 636 a szabványos LDAPS-port, és ez a javasolt üzemmód; a 389 a szabványos sima port, ami csak start_tls: true-val hordoz biztonságosan jelszavakat. A referencia-környezet a privilegizált portot a címtár-hoszton ip_unprivileged_port_start sysctl-lel köti be rootless módon, amit az isg_directory Ansible-role maga állít be — csak lefelé, és soha nem egy már alacsonyabb küszöb fölé. Sysctl nélkül egy rootless konténer jellemzően magas porton ül, pl. 1389-en. Mindegyik az operátor url-ben álló értéke, nem egy szám, amit az ISG választ.

A címtár oldalán van egy fél, amit az átjáró nem tud kikényszeríteni: az a címtár, amelyik a sima portján továbbra is válaszol, ezt a transzportot a hálózaton bárki másnak is elérhetővé hagyja. Ez a telepítés ezért a 636-ot ajánlja ki a flottának, a sima portot pedig csak a címtár-hoszton belülről hagyja elérhetőnek, azoknak a komponenseknek, amelyek ott futnak, és még nincs saját TLS-útjuk.

A kapcsolat titkosított, vagy a daemon nem indul el. Egy ldaps:// url, vagy egy ldap:// url start_tls: true-val, a két normál alak; a tls_ca_file a kiadó CA PEM-jét nevezi meg, ha az nincs a gép trust-storéjában. Egy ldap:// url egyik kulcs nélkül megtagadja az indulást, az allow_plaintext: true pedig a kimondott, WARN-ként jelentett engedély a titkosítatlan bindra — és ez itt azért számít, mert ez a kapcsolat nem csak a szolgáltatásfiók, hanem az operátorok jelszavát is hordozza. Az isg system check az ldap.yaml sorában kimondja a transzportot, a LDAP bind sorában pedig a valódi kézfogást és a tanúsítvány lejáratát is megméri; a teljes szabály a hozzáférési modell lapon áll.

A bind-fiók CSAK OLVASÓ. Az ldap.yaml minden brókeren 0660 isg:isg-operators módban áll — a gépen minden operátor elolvassa, és az is, akinek egy mentése van róla. A benne álló bind_dn ezért egy dedikált, csak olvasó szolgáltatás-fiók legyen, sosem a címtár adminisztrátora: az admin bindjával az a fájl a teljes címtár írási jogát adja — jelszó-csere, csoport-tagság átírás, bejegyzés-törlés.

Egy csak olvasó bindhoz két dolog kell, és a második könnyen marad el: a fiók, és egy ACL-szabály, ami olvasni engedi. Ebben a címtár-image-ben a gyárilag szállított ACL egy sima kötött fióknak csak önmagát adja, tehát a szabály nélkül a fiók bindol, aztán nulla bejegyzést olvas — a telepítés zöld marad, miközben az identity-feloldás és az IdP felhasználó-importja üres. A szabály helye dönt a többiről: a címtár userPassword-szabálya ELŐTT a fiók a fában minden jelszó-hasht elolvas, a catch-all szabály UTÁN pedig néma no-op.

A referencia-telepítésben mindezt az Ansible-role-ok birtokolják: a fiókok és az ACL-szabály a futó címtárba kerülnek (isg_directory), a renderelt ldap.yaml a csak olvasó bindot hordozza, és a gateway verify-ja minden brókeren megméri, hogy a bind DN ez a fiók, és hogy a címtár adminisztrátorának jelszava a fájlban SEHOL nem szerepel. A címtár-oldalt két irányból mérjük — a fiókkal kötve ÉS rootként a címtár saját socketjén —, négy állítással: annyit olvas, amennyi a fán van; jelszó-hasht nem kap vissza; egy valódi írási kísérletet 50 Insufficient access utasít el; és a szolgáltatás-fiókok nem jelennek meg a felhasználók között. Részletek: ansible/README.md, „Csak olvasó LDAP-bind".

Hogyan mérd

SMTP

Az MFA-kód kézbesítési csatornája. Ha nincs, a kód helyette egy lokális kimenő-fájlba íródik, ami fejlesztői mód, és az ellenőrzés kimenete ki is mondja.

Hol állítódik be

Konfigurációs fájl Kulcs Referencia
smtp.yaml host smtp.yaml
smtp.yaml port smtp.yaml
smtp.yaml from smtp.yaml
smtp.yaml tls smtp.yaml
smtp.yaml timeout_seconds smtp.yaml

Mit foglal

Erőforrás Érték Honnan jön az érték
TCP port 1025 ebben a telepítésben — nem alapértelmezés a port értéke
Irány kimenő, átjáró → levéltovábbító —

Az 1025 a lokális teszt-továbbító. Egy termelési továbbító az 587 STARTTLS-es beküldéshez, vagy a 25 sima esetén; az érték mindkét esetben a port.

Hogyan mérd

JIRA

A jegy-integráció: egy munkamenettől megkövetelhető, hogy jegyet nevezzen meg, és az átjáró ellenőrzi, hogy az a jegy létezik. A hitelesítőadat-fájl csak a tulajdonosnak olvasható, tehát egy operátori shell kevesebbet mér itt, mint a daemon — a sorok ezt kimondják, nem csendben mennek át.

Hol állítódik be

Konfigurációs fájl Kulcs Referencia
jira.yaml endpoint jira.yaml
jira.yaml project_key jira.yaml
jira.yaml auth_email jira.yaml
jira.yaml auth_token jira.yaml
jira.yaml timeout_seconds jira.yaml
jira.yaml ticket_min_level jira.yaml

Mit foglal

Erőforrás Érték Honnan jön az érték
TCP port 443 egy hosztolt példányhoz — nem alapértelmezés az endpoint-ban álló URL
Irány kimenő, átjáró → JIRA —

Hogyan mérd

Audit-export (syslog)

Minden auditbejegyzés opcionálisan bekapcsolható másolata, egy SIEM felé továbbítva RFC 5424 syslogként, TCP-n, TLS-sel. A másolat másolat: egy sikeres küldés nem elégíti ki a szigorú audit-garanciát, és a lemezen lévő fájl marad a hivatalos audit.

Ettől függetlenül, és a SIEM-exporttól elkülönítve, ez az átjáró fogadni is tud továbbított break-glass naplósorokat a célgépektől. Az a fogadó egy, a csomagolással szállított rsyslog drop-in, nem ISG-figyelő, és emiatt jelenik meg egy második port az alábbi táblában.

Hol állítódik be

Konfigurációs fájl Kulcs Referencia
audit.yaml syslog.enabled audit.yaml
audit.yaml syslog.address audit.yaml
audit.yaml syslog.tls_ca_file audit.yaml
audit.yaml syslog.timeout_seconds audit.yaml
audit.yaml syslog.queue_size audit.yaml
breakglass.yaml breakglass_log_target breakglass.yaml
breakglass.yaml breakglass_log_protocol breakglass.yaml

Mit foglal

Erőforrás Érték Honnan jön az érték
TCP port, kimenő egyáltalán nincs alapértelmezés a syslog.address-ben álló host:port
TCP port, bejövő 20514 ebben a telepítésben — nem alapértelmezés /etc/rsyslog.d/10-isg-breakglass-receiver.conf, egy rsyslog drop-in
Irány kimenő a SIEM felé; bejövő a célgépektől —

Hogyan mérd

Licenc

Mely modulokban nyithat az átjáró új munkamenetet: ssh_broker és web_access. Licencfájl nélkül az átjáró 30 napos értékelési módban fut, minden modullal; utána, illetve egy licenc 14 napos türelmi ideje után új munkamenet nem indul. A futó munkamenetek, a break-glass és a /readyz sosem érintettek. A fájlt az Inshipia adja ki és írja alá; változatlanul kell telepíteni, és az átjáró 30 másodpercen belül, újraindítás nélkül felveszi.

Hol állítódik be

Konfigurációs fájl Kulcs Referencia
license.yaml key_id license.yaml
license.yaml payload license.yaml
license.yaml signature license.yaml

Ansible-es telepítésnél a fájl a repóban a környezet konfigurációs könyvtárába kerül, a policy.yaml mellé; a playbooks/config-src.yml viszi a config-forrásba, a playbooks/site.yml a brókerekre.

Mit foglal

Erőforrás Érték Honnan jön az érték
Fájl license.yaml az állapot-könyvtárban a rögzített név
Rekord egy rekord a közös rekord-tárban: az értékelési óra a flotta első licenc nélküli indulásakor íródik, soha nem írja felül semmi
Hálózat nincs — a licenc ellenőrzése offline —

Hogyan mérd

Brókerek

Egy több-brókeres telepítésben minden átjáró ugyanazt a daemont futtatja egyetlen közös rekord-táron, egyetlen közös név mögött. Itt semmi nem nyit új portot az átjárón — az alábbi SSH-port az operációs rendszer saját sshd-jéé, ami előbb indult, mint az ISG.

Hol állítódik be

Konfigurációs fájl Kulcs Referencia
broker.yaml id broker.yaml
broker.yaml public_name broker.yaml
broker.yaml ssh_port broker.yaml

Mit foglal

Erőforrás Érték Honnan jön az érték
TCP port 22 az ssh_port alapértelmezése; a port az sshd-é, nem az ISG-é
Lokális socket /run/isg/session.sock a daemon munkamenet-socketje
Lokális socket /run/isg/issue.sock a daemon tanúsítvány-kiadási socketje
Lokális socket /run/isg/gateway.sock a daemon átjárós bejelentkezési socketje
Konfig-gyökér /var/lib/isg a rendszer-unit elrendezése, az $ISG_HOME felülírja

Hogyan mérd

Vegyes verziók gördülő frissítés alatt. A brókerek bármilyen sorrendben frissíthetők. Két mért tulajdonság teszi ezt biztonságossá: a PostgreSQL-séma additív (minden migráció egy CREATE TABLE IF NOT EXISTS a saját indexeivel és szekvenciáival, és a make migrations-check elutasít minden DROP-ot, RENAME-et, oszlop-újratípusozást és DEFAULT nélküli NOT NULL oszlopot), és egy rekord azon tagjai, amelyeket egy régebbi bináris nem ismer, változatlanul túlélik annak olvas–módosít–visszaír körét (internal/recordjson, rekordcsaládonként egy teszt). Mindkettő addig tart, amíg a brókerek egyetértenek a közös állapotról, és a v0.476.0 óta ezt az egyetértést egy kimondott szám méri, nem a kiadások közti távolság: a FLOTTA-KOMPATIBILITÁSI SZÁM (internal/fleetcompat), amit ember emel, ha a brókerek közös állapota vagy a bróker–bróker protokoll változik, és amit semmi más nem emel. Az isg --version második sora, az isg_build_info compat címkéje és a bróker-bérlet fleet_compat mezője publikálja. Két bróker ugyanazon a számon akárhány minor távolságra lehet; a Broker version skew sor ott OK, WARN, amíg a flotta EGY kompatibilitási lépést fog át (folyamatban lévő gördülő frissítés — ennek rövidnek kell lennie), vagy ha egy bróker verziója nem értelmezhető, és FAIL egy lépésen túl, vagy ha két bróker a major verzióban tér el — a majoron át semmi nincs megígérve. Egy v0.476.0 előtt írt bérlet nem hordoz számot, és azokra a sor a régebbi N-1 minor-szabályra esik vissza, és ezt kimondja. A migrációt az elsőként induló új bináris futtatja, advisory lock alatt, egy tranzakcióban.

Web Access az app-azonosítós frissítésen át (B491). Ettől a kiadástól egy alkalmazásra az azonosítója (apps.yaml id) hivatkozik a neve helyett. Kompatibilitási lépés nélkül elfogadva: amíg régi és új brókerek egymás mellett szolgálnak ki, a félkész Web Access-belépés (átadási kód, alkalmazás-munkamenet) és a név szerint beadott, még függő jóváhagyási kérelem újrakezdést kér. Az alkalmazásnévre tett incidens-zár tovább hat, és a név szerinti policy.yaml http_rules-elem is illeszkedik még, betöltéskor figyelmeztetéssel.

Firewall

Ezt a szakaszt egyetlen kapu sem méri. A make operations-check portszámokat, kulcsneveket és parancssorokat vet össze a kóddal; arról, hogy egy tűzfalat ténylegesen mire kértek meg, semmiképp nem tudhat, és ezt a repó egyetlen olvasata sem árulhatná el neki. A táblát a szándéknak tekintsd, a tűzfal saját konfigurációját pedig a ténynek.

Az irány ennek az átjárónak a szemszögéből van írva. Egy Ansible-role-okkal telepített környezetben ezek a bejövő szabályok nem kézzel íródnak: egy baseline role telepíti és elindítja a firewalldot, és minden portot az a role nyit, amelyiké — egyetlen környezeti fájl címtartományaira szűkítve (ansible/README.md, „Tűzfal-baseline (isg_firewall)"). Ott az üres forráslista azt jelenti, hogy a port zárva marad, nem azt, hogy mindenkinek nyitva.

Port Irány Partner Mihez kell
8765 bejövő operátori munkaállomások és a többi bróker az admin felület; az isg system check --fleet a társ meghirdetett végpontjait tárcsázza
8766 bejövő az ügynököt futtató szolgáltatás-gépek és a többi bróker tanúsítvány-megújítás; ugyanaz a flotta-ellenőrzés
8767 bejövő a monitorozó scraper és a többi bróker egészség és metrikák; hagyd zárva, ha a scraper lokális és nincs társ
22 bejövő operátori munkaállomások brókerezett SSH-bejelentkezés az átjáróra
22 kimenő célgépek a munkamenetek, amiket az átjáró brókerez
LDAP kimenő a címtár identitás- és csoport-feloldás
SMTP kimenő a levéltovábbító MFA-kód kézbesítése
PostgreSQL kimenő a rekord-tár közös munkamenet-rekordok és bérletek
S3 kimenő az objektumtár munkamenet-felvételek archiválása
OpenBao kimenő a titok-tár tanúsítvány-aláírás, ha delegálva van
JIRA kimenő JIRA jegy-ellenőrzés
IdP kimenő az identity provider SSO discovery, token- és device-végpont
SIEM syslog kimenő a SIEM az audit-export másolata
20514 bejövő célgépek továbbított break-glass naplósorok

A nyolc szám nélküli sor szándékosan szám nélküli: a portjuk az, amit az operátor a fenti szakaszokban megnevezett konfigurációs kulcsokba írt, és egy ide írt szám arra hívna, hogy valaki azt nyissa ki a helyett, amit a saját telepítése ténylegesen használ.