Gå til hovedinnhold

Tillatelsesliste for IP-adresser

Tillatelseslisten for IP-adresser begrenser organisasjonen til nettverkene du oppgir. Når listen er satt, avvises en forespørsel fra en adresse utenfor den, selv om legitimasjonen er gyldig og brukeren logget inn med SSO.

Den ligger under Sikkerhet › Tilgang › IP-tillatelsesliste (<your-org>/_admin/security/access/ip-allowlist). Bare eiere av organisasjonen kan endre den.

Hvor listen gjelder

Det finnes én liste, og den gjelder for hver flate nedenfor:

FlateDette avvises utenfor listen
Webadministrasjon<your-org>/_admin/*
fremforge-APIhttps://frem.sh/_app/api/v1/orgs/<your-org>/*
Webgrensesnitt for repositoryerOrganisasjonens sider og dens private repositoryer, filer, issues, pull requests, utgivelser og vedlegg
Forgejos REST-APIhttps://frem.sh/api/v1/-kall mot organisasjonens private repositoryer og mot selve organisasjonen
Git over HTTPSKloning, henting og push
Git LFSNedlasting og opplasting av objekter, og fillåser
PakkeregistreAlle registre, også containerregisteret
Git over SSHIngenting. Se Git over SSH er ikke dekket.

Offentlige repositoryer kan fortsatt leses av alle, fordi innholdet uansett er offentlig. Et medlem som er logget inn på et offentlig repository, vurderes likevel når det pusher, endrer innstillinger eller åpner organisasjonens sider. Anonyme besøkende ser aldri en avvisning: et privat repository ser ut for dem akkurat som før.

Sikkerhetssiden viser Hvor listen gjelder akkurat nå med én linje per flate: Håndheves, Bare logging (med årsaken) eller Ikke dekket. API-et returnerer den samme informasjonen i surfaces. Hvis denne siden og det panelet er uenige, er det panelet som har rett.

Utrulling. Én liste for alle flater slås på gradvis. Inntil organisasjonen din er flyttet over, kan panelet vise en flate som Logged only — still being rolled out. Forespørsler fra utenfor listen blir da registrert i revisjonsloggen, men ikke avvist. Webadministrasjonen og Git over HTTPS håndheves overalt (for en eldre liste med scopet web bare webadministrasjonen; se nedenfor).

Sette opp listen

  • Bruk CIDR-notasjon: 203.0.113.0/24, 2001:db8::/48. En enkelt adresse er /32, eller /128 for IPv6.
  • Skriv ett område per linje, eller skill dem med komma. Grensen er 100 områder.
  • /0 avvises. For å tillate alle adresser lar du listen være tom.
  • Ta med kontor- og VPN-områdene dine, og adressene for utgående trafikk fra all CI som ikke kjører på fremforge.
  • Siden viser Your address right now, som er adressen fremforge ser for deg.

Du kan ikke låse deg selv ute ved å lagre. Hvis en håndhevende liste ikke inneholder din egen adresse, avvises lagringen: legg enten til adressen din, eller kryss først av for Forhåndsvisning med bare logging.

En endring trer i kraft på alle flater innen omtrent ett minutt.

Forhåndsvisning med bare logging

Når Forhåndsvisning med bare logging er på, registrerer hver flate forespørslene den ville avvist, men slipper dem gjennom. En god måte å innføre en liste på:

  1. Skriv inn områdene og kryss av for Forhåndsvisning med bare logging. Lagre.
  2. Bruk organisasjonen som vanlig i en dag eller to, også CI og eventuelle integrasjoner.
  3. Gå gjennom ip_allowlist.would_block-hendelsene i revisjonsloggen. Hver av dem oppgir flaten, adressen, en eksempelsti og hvor mange forespørsler den står for.
  4. Legg til legitime områder du har glemt.
  5. Fjern krysset for Forhåndsvisning med bare logging. Listen håndheves fra nå av.

Runnere som hostes av fremforge

CI-jobber på fremforges egne runnere når organisasjonen din fra fremforges nettverk, ikke fra ditt. Tokenet som utstedes for en jobb, fungerer alltid. Tillat runnere som hostes av fremforge (på som standard) avgjør om annen legitimasjon som brukes fra en runner, for eksempel et PAT eller et OAuth-token som er lagret som secret, også fungerer. Slå det av hvis du vil at et stjålet PAT skal være ubrukelig selv når det brukes fra innsiden av en CI-jobb.

Selvhostede runnere og ekstern CI vurderes etter adressen for utgående trafikk, som alle andre klienter. Legg disse adressene til i listen.

Hvis en eier er låst ute

Adressen din kan endre seg: et nytt kontor, VPN-brudd, reiser. Break-glass (nødtilgang) setter alle flater til bare logging i 24 timer. Ingenting omgås permanent, og hvert steg registreres i revisjonsloggen.

  • Selvbetjening for eiere. Åpne https://frem.sh/_app/ip-allowlist/break-glass?org=<your-org> fra et hvilket som helst nettverk, innlogget som eier. Vi sender en signert lenke til e-postadressen på kontoen din. Lenken virker i 30 minutter. Åpne den og bekreft. Avvisningssider og Git-feilmeldinger for organisasjonen din skriver ut denne adressen.
  • fremverk-support kan slå på den samme break-glass for organisasjonen din på forespørsel.

Break-glass avsluttes av seg selv etter 24 timer og forlenges aldri mens den er aktiv. Rett listen, og avslutt den tidligere med Avslutt break-glass nå på sikkerhetssiden.

Handlinger i revisjonsloggen: ip_allowlist.break_glass.activated, ip_allowlist.break_glass.ended.

Lister som ble opprettet før én liste dekket alle flater

Eldre lister hadde et scope: web (bare webadministrasjonen) eller web+git (pluss Git over HTTPS). Disse listene fortsetter å håndheve der de håndhevet før. På de andre flatene logger de forespørsler som ville blitt avvist, i 30 dager etter at vi har varslet eierne av organisasjonen, og håndhever deretter også der. Sikkerhetssiden viser datoen.

For å slippe ventetiden bruker du Håndhev på alle flater nå (handlingen security.ip_allowlist.enforce_all i revisjonsloggen). Du kan ikke flytte en liste tilbake til et gammelt scope, og hver nye liste dekker alle flater.

Git over SSH er ikke dekket

Tillatelseslisten for IP-adresser filtrerer ikke Git over SSH. SSH når fremforge gjennom en lastbalanserer som erstatter klientens adresse med adressen til en av våre egne klyngenoder, så adressen utvikleren din kobler til fra, er ikke synlig for oss. Vi vurderer ikke en tilkobling etter en adresse vi vet er feil. En liste som i det stille blokkerte alle SSH-brukere, eller i det stille slapp dem alle gjennom mens den hevdet å filtrere, ville vært verre enn å si det rett ut.

Hvis organisasjonen din trenger at alle Git-operasjoner filtreres etter IP:

  1. Slå av Tillat SSH-protokollen på siden Autentiseringspolicy. Dette er standard for organisasjoner opprettet etter 2026-05-22.
  2. La medlemmene bruke HTTPS med Git Credential Manager (Sikker innlogging). Git over HTTPS er dekket av listen.

Når SSH slås av, avvises alle Git-operasjoner over SSH mot organisasjonens repositoryer: push, kloning og henting, og Git LFS over SSH. Det er en avvisning av SSH som helhet, ikke en IP-sjekk, så sikkerhetssiden viser fortsatt Git over SSH som Ikke dekket av listen, og API-et returnerer ssh_covered: false.

Dette ser en avvist forespørsel

FlateSvar
fremforge-API403 not-in-allowlist med adressen vi så
Webgrensesnitt, webadministrasjonEn avvisningsside som oppgir organisasjonen og adressen, med lenken til break-glass
Forgejos REST-API, LFS, pakker403 med den samme meldingen
Git over HTTPSgit skriver ut meldingen og lenken til break-glass

Hver avvisning registreres som ip_allowlist.blocked, og hver forespørsel som bare ble logget, som ip_allowlist.would_block. Gjentakelser fra samme adresse på samme flate samles i én hendelse med et count, så en feilkonfigurert CI-løkke ikke oversvømmer loggen.

API

Listen er også tilgjengelig via fremforge-API-et, med scopene policy:read og policy:write.

# Read: the list, the runner toggle, per-surface modes, break-glass state
curl -H "Authorization: Bearer $TOKEN" \
  https://frem.sh/_app/api/v1/orgs/<your-org>/security

# Replace the list
curl -X PUT -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"cidrs":["203.0.113.0/24","2001:db8::/48"],"audit_only":true,"allow_platform_runners":true}' \
  https://frem.sh/_app/api/v1/orgs/<your-org>/security/ip-policy

Objektet ip_allowlist inneholder cidrs, scope, audit_only, allow_platform_runners, surfaces (per flate: mode er enforce eller audit, pluss en reason), new_surfaces_enforce_at, break_glass_until og ssh_covered.

I API-et gjelder vernet mot å låse seg ute for adressen til den som kaller. Feil: invalid-cidr for et ugyldig område, invalid-allowlist for mer enn 100 områder, et /0-område eller en liste som ville blokkert den som kaller, og invalid-scope for et gammelt scope.

Begrensninger

  • Hvis Git-tjenesten i fremforge ikke kan lese organisasjonspolicyene i mer enn 24 timer, slutter den å håndheve listen i stedet for å avvise alle organisasjoner. fremforge-API-et og webadministrasjonen berøres ikke. Et slikt brudd er en plattformhendelse som vi håndterer; det forventes ikke ved normal drift.
  • Adressene vurderes slik fremforges kant ser dem. En proxy eller NAT foran brukerne dine avgjør hvilken adresse det er, så før opp proxyens område for utgående trafikk.
  • Høyst 100 områder.