För länge sedan var jag lite nybörjare datoranvändare som hörde att ha en brandvägg var tänkt att vara super bra. Det skulle låta mig bestämma vad som kom in, och vad fick ut av min dator, eller hur? Men det verkade mest att stoppa mina videospel från att komma åt internet; Jag var inte en lycklig camper.
Naturligtvis, om du är här, har du förmodligen en bättre uppfattning om vad en brandvägg är och vad den gör än jag gjorde. Men om din brandvägg erfarenhet innebär att tala om för Windows Defender att ja, för kärleken till allt som är heligt, din nya app är tillåten att använda internet, oroa dig inte. Det står "för nybörjare" upp på toppen, jag har dig.
Med andra ord bör mina nördar vara medvetna om att det kommer att finnas en hel del förklaringar till inkomst.
Så låt oss tala om vad vi är här för. brandvägg är standard-brandväggsappen paketerad med Rocky Linux, och den är utformad för att vara ganska enkel att använda. Du behöver bara veta lite om hur brandväggar fungerar, och inte vara rädd för att använda kommandoraden.
Här får du lära dig:
Själva grunderna i hur brandvägg fungerar
Hur du använder brandvägg för att begränsa eller tillåta inkommande och utgående anslutningar
Hur man tillåter endast personer från vissa IP-adresser eller platser att logga in på din maskin på distans
Hur man hanterar några brandvägg-specifika funktioner som Zoner.
Detta är inte avsett att vara en komplett eller uttömmande guide.
En anteckning om att använda kommandoraden för att hantera din brandvägg¶
Väl... det finns grafiska brandväggskonfigurationsalternativ. På skrivbordet finns brandvägg-config som kan installeras från repos, och på servrar kan du installera Cockpit för att hjälpa dig att hantera brandväggar och ett helt gäng andra saker. Jag kommer dock att lära dig kommandoradssättet att göra saker i den här handledningen av ett par skäl:
Om du kör en server, kommer du att använda kommandoraden för de flesta av dessa saker ändå. Massor av övningar och guider för Rocky server kommer att ge kommandoraden instruktioner för brandväggshantering, och det är bäst att du förstår dessa instruktioner, snarare än att bara kopiera och klistra in vad du än ser.
Att förstå hur brandvägg kommandon fungerar kan hjälpa dig att bättre förstå hur brandväggsprogrammet fungerar. Du kan ta samma principer som du lär dig här, och har en bättre uppfattning om vad du gör om du väljer att använda ett grafiskt gränssnitt i framtiden.
En Rocky Linux-maskin av alla slag, lokal eller fjärrstyrd, fysisk eller virtuell
Tillgång till terminalen, och en vilja att använda den
Du behöver root-åtkomst, eller åtminstone möjligheten att använda sudo på ditt användarkonto. För enkelhetens skull antar jag att alla kommandon körs som rot.
En grundläggande förståelse för SSH skulle inte skada för hantering av fjärrmaskiner.
brandvägg körs som en tjänst på din maskin. Det börjar när maskinen gör det, eller det borde. Om brandvägg av någon anledning inte redan är aktiverat på din maskin, kan du göra det med ett enkelt kommando:
systemctlaktivera--nubrandvägg
Flaggan --now startar tjänsten så snart den är aktiverad, och låt dig hoppa över systemctl starta brandväggen steget.
Som med alla tjänster på Rocky Linux kan du kontrollera om brandväggen körs med:
brandväggsystemctlstatus
Att stoppa det helt och hållet:
systemctlstoppabrandvägg
Och för att ge tjänsten en hård omstart:
systemctlstartaombrandvägg
Grundläggande brandvägg konfigurations- och hanteringskommandon¶
brandvägg är konfigurerad med brandvägg-cmd kommandot. Du kan till exempel kontrollera statusen för brandvägg med:
brandvägg-cmd--stat
Efter varje permanent ändring av din brandvägg, måste du ladda om den för att se ändringarna. Du kan ge brandväggskonfigurationerna en "mjuk omstart" med:
brandvägg-cmd--laddaom
Anteckning
Om du laddar om dina konfigurationer som inte har blivit permanenta, försvinner de på dig.
Du kan se alla dina konfigurationer och inställningar samtidigt med:
brandvägg-cmd--list-all
Det kommandot kommer att skriva ut något som ser ut så här:
Som standard är alla ändringar i firewallds konfiguration tillfälliga. Om du startar om hela firewalld-tjänsten eller startar om din maskin, Ingen av dina ändringar i brandväggen kommer att sparas om du inte gör en av två mycket specifika saker.
Det är bäst att testa alla dina ändringar en efter en, ladda om din brandvägg konfiguration när du går. På det sättet, om du av misstag låsa dig själv ur något, Du kan starta om tjänsten (eller maskinen), alla dessa ändringar försvinner som nämnts ovan.
Men när du har en fungerande konfiguration, kan du spara dina ändringar permanent med:
brandvägg-cmd--runtime-to-permanent
Men om du är helt säker på vad du gör, och bara vill lägga till regeln och gå vidare med ditt liv, du kan lägga till flaggan --permanent till valfritt konfigurationskommando:
Innan något annat måste jag förklara zoner. Zoner är en funktion som i grunden gör att du kan definiera olika uppsättningar av regler för olika situationer. Zoner är en stor del av brandvägg så det lönar sig att förstå hur de fungerar.
Om din maskin har flera sätt att ansluta till olika nätverk (t.ex. Ethernet och WiFi) kan du bestämma att en anslutning är mer betrodd än den andra. Du kan ställa in din Ethernet-anslutning till den "betrodda" zonen om den bara är ansluten till ett lokalt nätverk som du byggt, och sätta WiFi (som kan vara ansluten till internet) i den "offentliga" zonen med strängare begränsningar.
Anteckning
En zon kan endast vara i ett aktivt tillstånd om den har något av dessa två förutsättningar:
Zonen är tilldelad till ett nätverksgränssnitt
Zonen är tilldelad källa IP-adresser eller nätverksintervall. (Mer om detta nedan)
droppe: Den lägsta nivån av tillit. Alla inkommande anslutningar släpps utan svar och endast utgående anslutningar är möjliga.
block: Liknar ovan, men istället för att helt enkelt släppa anslutningar, avvisas inkommande förfrågningar med ett icmp-host-förbjudet eller icmp6-adm-förbjudet meddelande.
public: Representerar offentliga, opålitliga nätverk. Du litar inte på andra datorer men kan tillåta valda inkommande anslutningar från fall till fall. externt: Externa nätverk i händelse av att du använder brandväggen som port. Det är konfigurerat för NAT maskering så att ditt interna nätverk förblir privat men kan nås.
internt: Den andra sidan av den yttre zonen, som används för den inre delen av en gateway. Datorerna är ganska pålitliga och vissa ytterligare tjänster finns tillgängliga.
dmz: Används för datorer som ligger i en DMZ (isolerade datorer som inte har tillgång till resten av ditt nätverk). Endast vissa inkommande anslutningar är tillåtna.
arbete: Används för arbetsmaskiner. Lita på de flesta datorer i nätverket. Några fler tjänster kan tillåtas.
hem: En hemmiljö. Det innebär i allmänhet att du litar på de flesta andra datorer och att några fler tjänster kommer att accepteras.
litade på: Lita på alla maskiner i nätverket. Den mest öppna av de tillgängliga alternativen och bör användas sparsamt.
Okej, så några av dessa förklaringar blir komplicerade, men ärligt? Den genomsnittliga nybörjaren kan få med att förstå "betrodd", "hem", och "offentlig", och när man ska använda vilken.
För att se vilka zoner som är aktiva och göra saker, köra:
brandvägg-cmd--get-active-zoner
!!! Notera att en del av detta kan ha gjorts för dig."
Om du kör Rocky Linux på en VPS, är det troligt att en grundläggande konfiguration har konfigurerats för dig. Specifikt bör du kunna komma åt servern via SSH, och nätverksgränssnittet kommer redan att ha lagts till den "offentliga" zonen.
För de oinitierade är portarna (i detta sammanhang) bara virtuella ändpunkter där datorer ansluter till varandra så att de kan skicka information fram och tillbaka. Tänk på dem som fysiska Ethernet eller USB-portar på din dator, men osynliga, och du kan ha upp till 65.535 av dem alla på en gång.
Det skulle jag inte, men ni kan.
Varje port definieras av ett nummer, och vissa hamnar är reserverade för specifika tjänster och typer av information. Om du någonsin har arbetat med webbservrar för att bygga en webbplats, till exempel, kan du vara bekant med port 80 och port 443. Dessa portar möjliggör överföring av webbsidedata.
Specifikt, port 80 tillåter överföring av data via Hypertext Transfer Protocol (HTTP), och port 443 är reserverad för Hypertext Transfer Protocol Secure (HTTPS) data. *
Port 22 är reserverad för Secure Shell Protocol (SSH) som låter dig logga in och hantera andra maskiner via kommandoraden (se vår korta guide på suject). helt ny fjärrserver kan bara tillåta anslutningar över port 22 för SSH, och inget annat.
Andra exempel är FTP (portar 20 och 21), SSH (port 22), och så många fler. Du kan också ställa in anpassade portar som ska användas av nya appar som du kan installera, som inte redan har ett standardnummer.
Obs: Du bör inte använda portar för allt.
För saker som SSH, HTTP/S, FTP och mer, är det faktiskt rekommenderat att lägga till dem i din brandväggszon som tjänster, och inte som portnummer. Jag ska visa dig hur det fungerar nedan. Som sagt, du behöver fortfarande veta hur man öppnar portar manuellt.
* För absolut nybörjare är HTTPS i princip (mer eller mindre) samma som HTTP, men krypterad.
För det här avsnittet använder jag --zone=public... och portar 9001 som ett slumpmässigt exempel, eftersom det är över 9000.
För att se alla öppna portar:
brandvägg-cmd--list-portar
För att lägga till en port till din brandväggszon (öppna den för användning), kör du bara detta kommando:
brandvägg-cmd--zone=public--add-port=9001/tcp
Anteckning
Om den /tcp-biten:
Den där /tcp-biten i slutet talar om för brandväggen att anslutningar kommer in över överföringskontrollprotokollet, vilket är vad du kommer att använda för de flesta server-och-hem-relaterade grejer.
Alternativ som UDP är för felsökning, eller andra mycket specifika typer av saker som uppriktigt sagt inte omfattas av den här guiden. Se dokumentationen för vilken app eller tjänst du vill öppna en port för.
För att ta bort en port, vänd bara kommandot med en enda ordändring:
Tjänster, som ni kanske tror, är ganska standardiserade program som körs på din dator. brandvägg är satt upp så att det bara kan öppna vägen för de vanligaste tjänsterna när du behöver göra det.
Detta är det bästa sättet att öppna hamnarna för dessa gemensamma tjänster, och en hel del mer:
HTTP och HTTPS: för webbservrar
FTP: För att flytta filer fram och tillbaka (gammaldags sätt)
SSH: För att styra fjärrmaskiner och flytta filer bacck och framåt det nya sättet
Samba: För att dela filer med Windows-maskiner
Varning
Ta aldrig bort SSH-tjänsten från en fjärrservers brandvägg!
Kom ihåg att SSH är vad du använder för att logga in på din server. Om du inte har ett annat sätt att komma åt den fysiska servern, eller dess skal (dvs via. en kontrollpanel som tillhandahålls av värden), ta bort SSH-tjänsten kommer att låsa dig permanent.
Du behöver antingen kontakta supporten för att få tillbaka din åtkomst eller installera om operativsystemet helt och hållet.
Låt oss säga att du har en server, och du vill bara inte göra det offentligt. om du vill definiera bara vem som får komma åt det via SSH, eller visa några privata webbsidor/appar, kan du göra det.
Det finns ett par metoder för att åstadkomma detta. För det första, för en mer låst server, kan du välja en av de mer restriktiva zonerna, tilldela din nätverksenhet till det, lägg till SSH-tjänsten till den som visas ovan, och sedan vitlista din egen publika IP-adress såhär:
Återigen, ändra bara --add-source till --remove-source för att ändra processen.
Men om du hanterar en fjärrserver med en webbplats på den som måste vara offentlig, och ändå bara vill öppna upp SSH för en IP-adress eller ett litet utbud av dem, har du ett par alternativ. I båda dessa exempel är det enda nätverksgränssnittet tilldelat den offentliga zonen.
Först kan du använda en "rik regel" till din offentliga zon, och det skulle se ut ungefär så här:
När väl den rika regeln är på plats, gör inte reglerna permanenta ännu. Ta först bort SSH-tjänsten från konfigurationen för offentlig zon och testa din anslutning för att se till att du fortfarande kan komma åt servern via SSH.
För det andra kan man använda två olika zoner åt gången. Om du har ditt gränssnitt bundet till den offentliga zonen, du kan aktivera en andra zon (den "betrodda" zonen till exempel) genom att lägga till en källa IP eller IP-intervall till den som visas ovan. Lägg sedan till SSH-tjänsten till den betrodda zonen, och ta bort den från den offentliga zonen.
Om du blir utlåst, starta om servern (de flesta VPS kontrollpaneler har ett alternativ för detta) och försök igen.
Varning
Dessa tekniker fungerar bara om du har en statisk IP-adress.
Om du har fastnat med en internetleverantör som ändrar din IP-adress varje gång ditt modem startar om, Använd inte dessa regler (åtminstone inte för SSH) förrän du har en rättelse för det. Du kommer att låsa dig själv från din server
Antingen uppgradera din internetplan/leverantör, eller få en VPN som ger dig en dedikerad IP-adress, och aldrig, någonsin förlorar den.
Uppenbarligen på ett lokalt nätverk som du styr (och där du kan ställa in alla maskiners IP-adress manuellt), du kan använda alla dessa regler så mycket du vill.
Detta är långt ifrån en uttömmande guide, och du kan lära dig en hel del mer med officiella brandvägg dokumentation. Det finns också praktiska app-specifika guider över hela internet som visar dig hur du ställer in din brandvägg för de specifika apparna.
För dig fans av iptables (om du har kommit så här långt... , vi har en guide som beskriver några av skillnaderna i hur brandvägg och iptables fungerar. Den guiden kan hjälpa dig att räkna ut om du vill stanna med brandvägg eller gå tillbaka till De gamla vägarna(TM). Det finns något att säga till The Old Ways(TM), i detta fall.
Och det är brandvägg med så få ord som jag kunde hantera samtidigt som jag fortfarande förklarar alla grunder. Ta det långsamt, experimentera noggrant, och gör inga regler permanenta förrän du är säker på att de fungerar.
Och du vet, ha kul. När du har grunderna ner, faktiskt inrätta en anständig, kan fungerande brandvägg ta 5-10 minuter.