Lektion 2 av 4 · 9 min
Brandväggar: stateful filtrering och macOS-alternativ
Hur en tillståndsfull brandvägg bestämmer vad som ska släppas igenom, skillnaden mellan inkommande och utgående filtrering och verktygen macOS ger dig för var och en.
En brandväggs jobb låter enkelt: släpp igenom bra trafik, håll dålig trafik ute. Det intressanta är hur det bestämmer, och på vilken nivå. Den här lektionen tar upp tillståndsfiltrering som ett koncept, och sedan de specifika, separata verktyg som macOS erbjuder, som vart och ett arbetar på ett annat lager.
Stateful filtrering: komma ihåg konversationen
En tidig, "statslös" brandvägg inspekterar varje paket isolerat mot en fast uppsättning regler. En stateful brandvägg håller istället reda på öppna anslutningar, och som Cloudflares nätverksordlista beskriver det, "sparar information om öppna anslutningar och använder denna information för att analysera inkommande och utgående trafik, snarare än att inspektera varje paket" från början. I praktiken innebär detta att en tillståndsbestämd brandvägg kan hålla portar effektivt stängda tills en anslutning du initierade ber om ett svar, och sedan släppa in det specifika svaret igen utan att öppna porten för något annat. Nästan alla konsument- och operativsystembrandväggar som används idag, inklusive macOS, är tillståndsfulla.
Inkommande vs utgående filtrering
Inkommande filtrering kontrollerar anslutningar som anländer till maskinen, oinbjudna, utifrån: någon eller något som försöker nå en tjänst som körs på den. Utgående (utgående) filtrering styr anslutningar som maskinen själv, eller en app på den, försöker göra utåt. De två spelar roll av olika anledningar. Inkommande filtrering hindrar en maskin från att nås och undersökas i första hand. Utgående filtrering är viktig efter att något har gått fel: skadlig programvara som kommer in på en maskin behöver fortfarande ringa hem, ta emot instruktioner eller skicka ut data, och var och en av dessa behöver en utgående anslutning. En maskin med en stark inkommande brandvägg och ingen egress-filtrering alls kan fortfarande läcka allt på den, en utgående anslutning i taget.
Vad macOS faktiskt ger dig
| Verktyg | Lager | Riktning | Anteckningar |
|---|---|---|---|
| Applikationsbrandvägg | Per app, i Systeminställningar → Nätverk → Brandvägg | Inkommande | Bestämmer om varje app överhuvudtaget får acceptera inkommande anslutningar; filtrerar inte vad appar skickar utåt. Täckt med kommandon för att kontrollera det i den här webbplatsens macOS-härdningskurs. |
| pf (paketfilter) | Paketfiltrering på kärnnivå, ärvt från BSD | Båda, regelbaserade | En kraftfull brandvägg för allmänt bruk som Apple använder internt (till exempel för Internetdelning), dokumenterad för administratörer på manualsidorna pfctl och pf.conf snarare än i en grafisk inställningsruta. Handskrivna pf-regler är en äldre BSD-brandvägg, inte en Apple-produkt med en supportsida, och macOS dokumenterar inte officiellt redigering av dem för slutanvändarhärdning. |
| Innehållsfilter för nätverkstillägg | App-nivå, via Apples NetworkExtension-ramverk | Utgående (och inkommande för flödena som ett filter ges) | Ramverket som tredjepartsappar använder för att inspektera eller blockera nätverkstrafik per app eller per domän, med användarens tillåtelse; det är det som gör en utgående brandvägg per app på macOS över huvud taget möjlig, snarare än bara inkommande. |
Den praktiska läsningen av den här tabellen är att macOS:s inbyggda, stödda brandvägg (applikationsbrandväggen) täcker inkommande anslutningar väl men säger ingenting om vad som lämnar maskinen. pf kan tekniskt sett göra båda, men det är ett skriptbaserat verktyg på låg nivå som syftar till att administratörer bekvämt kan redigera konfigurationsfiler och resonera om regelordning, inte något som den här kursen kommer att gå igenom konfigurationen av, eftersom ett misstag i en handskriven regeluppsättning tyst kan misslyckas med att öppna eller låsa ut nätverksåtkomst helt, och Apple behandlar det inte som att det i första hand ställer in applikationen. Brandvägg. Community-härdande guider som publicerar färdiga pf regeluppsättningar eller skript som drar in tredjeparts IP-blockeringslistor går längre än den här kursen rekommenderar: dessa listor måste litas på och hållas uppdaterade av någon, och en trasig uppdatering kan bryta anslutningen utan något tydligt felmeddelande.
Det gapet, en inbyggd brandvägg för inkommande endast utan ett enkelt sätt som stöds för att se eller kontrollera utgående anslutningar per app, är precis vad Apples nätverksextensionsramverk finns för att låta tredjepartsutvecklare fylla, med användarens uttryckliga tillåtelse vid installationen.
Viktigt att minnas
- En tillståndsfull brandvägg spårar öppna anslutningar och tillåter returtrafik för en anslutning du initierat, utan att inspektera varje paket mot en fast regellista.
- Inkommande filtrering hindrar en maskin från att nås utifrån; utgående (utgående) filtrering är viktig när något redan finns på maskinen och försöker kommunicera ut.
- macOS Application Firewall filtrerar inkommande anslutningar per app; den filtrerar inte utgående trafik.
- `pf` är en kraftfull BSD-brandvägg på kärnnivå som macOS använder internt, men det är inte en stödd, dokumenterad inställning för slutanvändarhärdning som applikationsbrandväggen är.
- Apples Network Extension-ramverk är det som låter tredjepartsappar tillhandahålla utgående filtrering per app, gapet som den inbyggda brandväggen lämnar öppet.
Testa dig själv
1. Vad gör en tillståndsbaserad brandvägg annorlunda än ett enkelt, tillståndslöst paketfilter?
- Det blockerar all trafik som standard utan undantag
- Den spårar öppna anslutningar och använder det sammanhanget för att tillåta förväntad returtrafik — Rätt.
- Det fungerar bara på Wi-Fi-nätverk
- Den krypterar all nätverkstrafik
Stateful brandväggar kommer ihåg tillståndet för öppna anslutningar snarare än att bedöma varje paket isolerat, vilket låter dem säkert tillåta svar på anslutningar du startade.
2. Varför spelar utgående (utgående) filtrering betydelse, givet en stark inkommande brandvägg?
- Det spelar ingen roll om inkommande filtrering är stark
- Eftersom programvara som redan finns på maskinen fortfarande behöver en utgående anslutning för att skicka ut data eller ta emot instruktioner — Rätt.
- Utgående anslutningar är alltid säkra
- Det spelar bara roll för webbservrar
Inkommande filtrering stoppar oönskade anslutningar från att nå maskinen, men gör ingenting när något redan körs på den och försöker kommunicera utåt.
3. Vad gör INTE macOS Application Firewall?
- Bestäm om en app får acceptera inkommande anslutningar
- Filtrera utgående anslutningar som en app gör — Rätt.
- Arbeta per app
- Kör utan ytterligare programvara
Programbrandväggen är endast inkommande; att kontrollera vilka appar som skickar utåt kräver en annan mekanism, till exempel en som är byggd på Apples nätverksextensionsramverk.
Testa det med FireAI
Omsätt den här lektionen i praktiken på din egen Mac.
- Regler: app, webbplats, domän, IP eller ett intervall, för alltid eller tills du startar om — Skriv en regel lika precis som en adress eller lika bred som en hel domän.
- Kill switch — Koppla bort din Mac från internet med ett klick när något känns fel.
- Undersök en anslutning — Bestäm dig med fakta framför dig, inte en vag varning.
- Aktivitet: varje app som varit uppkopplad, och en historiksökning i vanligt språk — Se varje app som varit uppkopplad idag, och agera på vilken som helst av dem med ett klick.
Källor
- Cloudflare Learning: What is a firewall?
- Apple Support: Block connections to your Mac with a firewall
- Apple Developer: Network Extension framework
Omsätt det på din Mac
Prova alla funktioner gratis i 17 dagar, inget kort behövs.