IP-tillåtelselista
IP-tillåtelselistan begränsar din organisation till de nätverk som du anger. När listan är satt avvisas en begäran från en adress utanför den, även om autentiseringsuppgiften är giltig och användaren loggade in med SSO.
Den finns under Säkerhet › Åtkomst › IP-tillåtelselista (<your-org>/_admin/security/access/ip-allowlist). Bara organisationens ägare kan ändra den.
Var listan gäller
Det finns en lista, och den gäller för varje yta nedan:
| Yta | Vad som avvisas utanför listan |
|---|---|
| Webbadministration | <your-org>/_admin/* |
| fremforges API | https://frem.sh/_app/api/v1/orgs/<your-org>/* |
| Repositoryns webbgränssnitt | Organisationens sidor och dess privata repon, filer, issues, pull requests, releaser och bilagor |
| Forgejos REST-API | Anrop till https://frem.sh/api/v1/ som gäller organisationens privata repon och själva organisationen |
| Git över HTTPS | Clone, fetch och push |
| Git LFS | Nedladdning och uppladdning av objekt samt fillås |
| Paketregister | Varje register, även containerregistret |
| Git över SSH | Ingenting. Se Git över SSH omfattas inte. |
Publika repon förblir läsbara för alla, eftersom deras innehåll ändå är publikt. En medlem som är inloggad i ett publikt repo bedöms fortfarande när hen pushar, ändrar inställningar eller öppnar organisationens sidor. Anonyma besökare ser aldrig någon avvisning: ett privat repo ser likadant ut för dem som det alltid har gjort.
Säkerhetssidan visar Var listan gäller just nu med en rad per yta: Tillämpas, Endast loggad (med orsaken) eller Omfattas inte. API:t returnerar samma information i surfaces. När den här sidan och den panelen inte stämmer överens är det panelen som har rätt.
Utrullning. En lista för varje yta slås på gradvis. Tills din organisation har ställts om kan panelen visa en yta som Endast loggad — håller fortfarande på att rullas ut. Begäranden utanför listan registreras då i granskningsloggen men avvisas inte. Webbadministrationen och Git över HTTPS tillämpas överallt (för en äldre lista med scopet
webbara webbadministrationen; se nedan).
Ställa in listan
- Använd CIDR-notation:
203.0.113.0/24,2001:db8::/48. En enskild adress är/32, eller/128för IPv6. - Skriv ett intervall per rad, eller separera dem med kommatecken. Gränsen är 100 intervall.
/0avvisas. Lämna listan tom om du vill tillåta alla adresser.- Ta med intervallen för kontoret och VPN:en och utgående adresser för all CI som inte körs på fremforge.
- Sidan visar Din adress just nu, alltså den adress som fremforge ser för dig.
Du kan inte låsa ute dig själv genom att spara. Om en lista som tillämpas inte innehåller din egen adress avvisas sparandet: lägg antingen till din adress eller kryssa först i Endast granskning (förhandsläge).
En ändring slår igenom på varje yta inom ungefär en minut.
Endast granskning (förhandsläge)
Med Endast granskning (förhandsläge) påslaget registrerar varje yta de begäranden den skulle avvisa men släpper igenom dem. Ett bra sätt att införa en lista:
- Ange intervallen och kryssa i Endast granskning (förhandsläge). Spara.
- Använd organisationen som vanligt i en eller två dagar, inklusive CI och eventuella integrationer.
- Gå igenom händelserna
ip_allowlist.would_blocki granskningsloggen. Var och en anger ytan, adressen, en exempelsökväg och hur många begäranden den representerar. - Lägg till legitima intervall som du har missat.
- Kryssa ur Endast granskning (förhandsläge). Listan tillämpas från och med nu.
Runners som fremforge hostar
CI-jobb på fremforges egna runners når din organisation från fremforges nätverk, inte från ditt. Den token som skapas för ett jobb fungerar alltid. Tillåt runners som fremforge hostar (påslaget som standard) avgör om andra autentiseringsuppgifter som används från en runner, till exempel en PAT eller en OAuth-token som sparats som secret, också fungerar. Stäng av det om du vill att en stulen PAT ska vara oanvändbar även när den används inifrån ett CI-jobb.
Egna runners och extern CI bedöms efter sin utgående adress precis som alla andra klienter. Lägg till de adresserna i listan.
Om en ägare blir utelåst
Din adress kan ändras: ett nytt kontor, ett VPN-avbrott, en resa. Nödåtkomst (break-glass) sätter varje yta i enbart loggning i 24 timmar. Ingenting kringgås permanent, och varje steg registreras i granskningsloggen.
- Självbetjäning för ägare. Öppna
https://frem.sh/_app/ip-allowlist/break-glass?org=<your-org>från valfritt nätverk, inloggad som ägare. Vi mejlar en signerad länk till ditt kontos egen e-postadress. Länken fungerar i 30 minuter. Öppna den och bekräfta. Avvisningssidor och Gits felmeddelanden för din organisation skriver ut den här adressen. - fremverks support kan slå på samma nödåtkomst för din organisation på begäran.
Nödåtkomsten upphör av sig själv efter 24 timmar och förlängs aldrig medan den är aktiv. Rätta listan och avsluta den sedan tidigare med Avsluta nödåtkomst nu på säkerhetssidan.
Åtgärder i granskningsloggen: ip_allowlist.break_glass.activated, ip_allowlist.break_glass.ended.
Listor som skapades innan en lista täckte varje yta
Äldre listor hade ett scope: web (bara webbadministrationen) eller web+git (plus Git över HTTPS). De listorna fortsätter att tillämpas där de tillämpades tidigare. På de övriga ytorna loggar de begäranden som skulle ha avvisats i 30 dagar efter att vi har meddelat organisationens ägare, och därefter tillämpas de även där. Säkerhetssidan visar datumet.
Om du vill slippa vänta använder du Tillämpa på alla ytor nu (åtgärden security.ip_allowlist.enforce_all i granskningsloggen). Du kan inte flytta tillbaka en lista till ett äldre scope, och varje ny lista täcker varje yta.
Git över SSH omfattas inte
IP-tillåtelselistan filtrerar inte Git över SSH. SSH når fremforge via en lastbalanserare som ersätter klientens adress med adressen till en av våra egna klusternoder, så den adress som din utvecklare ansluter från syns inte för oss. Vi bedömer inte en anslutning utifrån en adress som vi vet är fel. En lista som i tysthet blockerade varje SSH-användare, eller i tysthet släppte igenom alla medan den påstod att den filtrerade, vore sämre än att säga som det är.
Om din organisation behöver att varje Git-operation filtreras efter IP:
- Stäng av Tillåt SSH-protokollet på sidan Autentiseringspolicy. Det är standard för organisationer som skapats efter 2026-05-22.
- Låt medlemmarna använda HTTPS med Git Credential Manager (Säker inloggning). Git över HTTPS omfattas av listan.
När SSH är avstängt avvisas varje Git-operation över SSH mot organisationens repon: push, clone och fetch samt Git LFS över SSH. Det är en avvisning av SSH som helhet, inte en IP-kontroll, så säkerhetssidan listar fortfarande Git över SSH som Omfattas inte av listan, och API:t returnerar ssh_covered: false.
Vad en avvisad begäran ser
| Yta | Svar |
|---|---|
| fremforges API | 403 not-in-allowlist med adressen vi såg |
| Webbgränssnitt, webbadministration | En avvisningssida som anger organisationen och adressen, med länken för nödåtkomst |
| Forgejos REST-API, LFS, paket | 403 med samma meddelande |
| Git över HTTPS | git skriver ut meddelandet och länken för nödåtkomst |
Varje avvisning registreras som ip_allowlist.blocked, och varje begäran som bara loggas som ip_allowlist.would_block. Upprepningar från samma adress på samma yta grupperas i en händelse med ett count, så att en felkonfigurerad CI-loop inte översvämmar loggen.
API
Listan finns också i fremforges API, med scopen policy:read och 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-policyObjektet ip_allowlist innehåller cidrs, scope, audit_only, allow_platform_runners, surfaces (per yta: mode är enforce eller audit, plus en reason), new_surfaces_enforce_at, break_glass_until och ssh_covered.
I API:t gäller skyddet mot utelåsning anroparens egen adress. Fel: invalid-cidr för ett felformaterat intervall, invalid-allowlist för fler än 100 intervall, ett /0-intervall eller en lista som skulle blockera anroparen, och invalid-scope för ett äldre scope.
Begränsningar
- Om fremforges Git-tjänst inte kan läsa organisationernas policyer i mer än 24 timmar slutar den att tillämpa listan hellre än att avvisa varje organisation. fremforges API och webbadministrationen påverkas inte. Ett sådant avbrott är en plattformsincident som vi åtgärdar; det förväntas inte vid normal drift.
- Adresser bedöms så som fremforges edge ser dem. En proxy eller NAT framför dina användare avgör vilken adress det är, så lista proxyns utgående intervall.
- Högst 100 intervall.