Build default-deny inbound and outbound through the adapter
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 40/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Stack tecnologico
- bash, linux, powershell
- Ambito
- networking, security
Direzione di ricerca
Read Design 03, 01 and 12 linked in the issue, then inspect the adapter in core/platform/platform.sh and core/platform/Platform.ps1 which already do inbound deny. Create module lockout.firewall under phases/lockout/modules/firewall/ with .sh and .ps1 entry points adding outbound default deny and allow list. Write bats and Pester tests in tests/phases/lockout/firewall/; done when CI passes on Ubuntu and Windows runners with snapshot/restore intact.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Read first
- Design 03, section 6.1: the first-minute bundle, steps 5 and 6, and what to allow
- Design 03, section 8: preventing self-lockout
- Design 01, section 5: the firewall adapter, and section 3.1: which firewall is active
- Design 12, section 3: domain traffic to the domain controller
- Conventions, section 3.1: the revert timer and the login check
- Roadmap, first usable release, step 4
- AGENTS.md: hard rules 3 (no blanket actions) and 5 (never impede scoring)
Read these before starting. If this issue and the spec disagree, the spec wins; say so in the pull request.
Summary
Build the firewall step of the first-minute lockout: the host's firewall drops all incoming and outgoing traffic except what the host needs and what scoring needs. This stops a reverse shell or beacon planted before the run from calling out, and closes every port that is not scored or the admin path. A revert timer undoes it if the team can no longer log in.
Depends on
- Blocked by #66 (automatic runs and the login check) and #75 (credentials, which run before the firewall in the bundle).
- Uses the dependency map from #72 for the outbound allow list, when it exists.
- Blocks #85 (the first-minute bundle).
Location & Context
- Branch:
phase-4/firewall. Module ID:lockout.firewall, inphases/lockout/modules/firewall/, withmodule.ymland the.shand.ps1entry points (design 00, section 4). - The adapter it extends:
core/platform/platform.shandcore/platform/Platform.ps1, which already do snapshot, scoring allowlist, inbound default deny and restore on UFW, firewalld, nftables, iptables and Windows Firewall. - Tests:
tests/phases/lockout/firewall/for the module (bats and Pester), andtests/platform/firewall.batsandtests/platform/Firewall.Tests.ps1for the adapter.
Current Behavior
Labyrinth has no firewall module. The adapter can set an inbound default deny, but has no outbound default and no outbound-allow list, so nothing stops a planted program from connecting out.
Plan
- Add an outbound default deny and the
outbound-allowlist to the adapter, on every backend. - Build the module: inbound and outbound default deny through the adapter, under the revert timer, with the allows in design 03, section 6.1 (scoring, scored ports from every source, official sources, ICMP, the admin path; for outbound, replies, loopback, DNS, NTP, the SIEM, the package mirror, and each scored service's outbound addresses).
- Refuse an allow or a deny narrower than "every source" on a scored port.
- On a domain controller, allow domain traffic from member hosts (design 12, section 3).
- Add the module to the shipped profiles that use it, its manual entry and its help page (
about.txt).
Acceptance tests
Write these first, in bats and Pester:
- After default-deny, a reverse shell planted before the run cannot connect out, and scoring checks still work.
- A scored service whose outbound dependency is missing from the allow list fails its probe, and the module is rolled back.
- An allow with a narrower source on a scored port is refused, and so is a deny of one.
- The revert timer restores the firewall when verify is made to fail.
- After default-deny, the host still answers ping and an established session survives.
- On each backend, snapshot, then changes, then restore gives the same state.
- Negative test: protected accounts and scored services are untouched before and after.
Done when
- The Linux and Windows versions both pass CI, including the real-host tests on the Ubuntu and Windows Server runners. A test never cuts the runner off from GitHub.
- The manual and the module's help page are written.
- The tests above pass in the lab on each firewall backend (
docs/lab/README.md).
Out of scope
- Reopening outbound after the lockout: the Harden phase (#68).
- Installing UFW on a Debian host with no front end: the Harden phase (design 01, section 5).
- Firewall drift alerts (#91) and dynamic bans (#108).
- Router and firewall appliances: runbooks only (#111).
- Lingua principale
- PowerShell
- Stelle
- 0
- Fork
- 0
- Merge medio
- 54m
- PR unite (30g)
- 43
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di dotnetdork/Labyrinth
-
area: tests-ci type: feature
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
dotnetdork/Labyrinth#128 ·
I maintainer di solito rispondono entro 1 giorno
-
area: command-line platform: linux platform: windows type: docs
Difficoltà 4/5 3-5 giorni Idoneità per principianti 70/100
dotnetdork/Labyrinth#125 ·
I maintainer di solito rispondono entro 1 giorno
-
area: tests-ci platform: windows type: build
Difficoltà 4/5 3-5 giorni Idoneità per principianti 55/100
dotnetdork/Labyrinth#124 ·
I maintainer di solito rispondono entro 1 giorno
-
area: command-line platform: linux platform: windows type: feature
Difficoltà 4/5 3-5 giorni Idoneità per principianti 70/100
dotnetdork/Labyrinth#121 ·
I maintainer di solito rispondono entro 1 giorno
-
area: command-line platform: linux platform: windows type: feature
Difficoltà 4/5 3-5 giorni Idoneità per principianti 70/100
dotnetdork/Labyrinth#120 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di dotnetdork/Labyrinth
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
libretiny-eu/libretiny#435 ·
I maintainer di solito rispondono entro 4 giorni
-
module/http Type/Bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
ballerina-platform/ballerina-library#9450 ·
I maintainer di solito rispondono entro 1 giorno
-
clawsweeper:fix-shape-clear clawsweeper:queueable-fix clawsweeper:source-repro impact:other issue-rating: 🦞 diamond lobster maturity:stable no-stale P1
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
openclaw/openclaw#190772 · 1 commento · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
[HttpClient] RecorderHttpClient cannot replay a response whose body was redacted: stale content-lengthForse già presa @akasakariko l’ha presa oggi. ApertaBug HttpClient Status: Needs Review
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
symfony/symfony#67779 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno