Kunskapsbas Enkla instruktioner för att arbeta med Profitserver-tjänsten
Huvudsida Kunskapsbas Konfigurera brandvägg på Linux

Konfigurera brandvägg på Linux


Brandvägg på Linux spelar en viktig roll för att säkra ett datorsystem. Det fungerar som en barriär, kontrollerar och filtrerar nätverkstrafik för att skydda systemet från obehörig åtkomst, attacker och andra hot. Utan en korrekt konfigurerad brandvägg kan servern vara sårbar för olika typer av cyberattacker, vilket leder till allvarliga konsekvenser för datasäkerhet och konfidentialitet.

I den här artikeln kommer vi att titta på två huvudverktyg för att konfigurera Linux-brandväggen: brandvägg och iptables. Vi kommer att göra en jämförande analys av deras egenskaper, funktionalitet och fördelar. Dessutom kommer vi att tillhandahålla detaljerade instruktioner för att ställa in och använda vart och ett av dessa verktyg, samt diskutera bästa praxis för att säkra ditt system med en brandvägg på Linux-plattformen. Alla åtgärder kommer att demonstreras på en virtuell server med root-åtkomst.

Konfigurera brandvägg på Linux

Firewalld (Firewall Daemon) är ett program för att hantera brandväggen i Linux-operativsystem. Det tillhandahåller ett användargränssnitt för att konfigurera brandväggsregler, tillåta eller blockera anslutningar av nätverksapplikationer. Den är förinstallerad som standard i de flesta serverdistributioner. Om Firewalld inte är förinstallerat kan den installeras oberoende av distributionens officiella arkiv.

För Red Hat-system (som RHEL, CentOS, Fedora) utförs installationen med kommandot:

yum install firewalld

För Debian/Ubuntu:

apt-get install firewalld

Efter installationen kan den startas och aktiveras omedelbart med kommandot:

systemctl start firewalld

Därefter måste du lägga till tjänsten vid start:

systemctl enable firewalld
Lägger till brandvägg i Linux autoload

Vid det här laget rekommenderar vi att du inaktiverar ufw, eftersom samtidig användning av detta verktyg med brandvägg eller iptables inte rekommenderas. Kontrollera status:

systemctl status ufw
Kollar ufw linux

För att stoppa det, skriv in kommandot:

systemctl stop ufw

För fullständig avaktivering:

ufw disable

Efter dessa åtgärder kan du fortsätta att konfigurera brandväggen.

Först är det nödvändigt att definiera förtroendezoner. Firewalld använder konceptet med zoner för att bestämma nivån av förtroende för nätverksgränssnitt. Varje gränssnitt tilldelas en zon och brandväggsregler tillämpas baserat på zonen. Listan över alla tillgängliga zoner öppnas med kommandot:

firewall-cmd --get-zones

Vanligtvis används 4 huvudzoner:

  1. offentliga: Den här zonen är för nätverk som du anser vara osäkra;
  2. Privat: Gäller hemnätverk eller andra betrodda nätverksanslutningar;
  3. Inre: Används för interna nätverk, till exempel inom en organisation eller företagsnätverk;
  4. DMZ: Denna zon är där servrar vanligtvis placeras som bör vara tillgängliga från internet.

Detta är dock bara ett exempel. Du kan lägga till din egen zon med kommandot:

firewall-cmd --permanent --new-zone=nameyourzone

Efter tillägg krävs en omladdning:

firewall-cmd --reload

För att radera en zon används en liknande metod

firewall-cmd --permanent --delete-zone=nameyourzone

Efter att ha definierat zoner är det nödvändigt att tillåta trafik för de tjänster och hamnar som behövs. För att tillåta en viss tjänst, använd kommandot:

firewall-cmd --zone=public --add-service=name

Var namn är tjänstens namn. Till exempel, för att tillåta trafik för Apache:

firewall-cmd --zone=public --add-service=http

För att definiera tillåtna portar, använd kommandot:

firewall-cmd --zone=public --add-port=number/protocol

Till exempel skulle standard 22-porten för SSH se ut så här:

firewall-cmd --zone=public --add-port=22/tcp

I detta skede är huvudreglerna redan skapade. Bestäm sedan hur trafiken kommer att behandlas beroende på källa, destination, port och andra kriterier. För att lägga till en regel (med hjälp av allmän zon som ett exempel):

firewall-cmd --zone=public rule

Till exempel, för att tillåta inkommande trafik från valfri källa till port 80 (HTTP):

firewall-cmd --zone=public --add-port=80/tcp --permanent

Så här tar du bort en regel:

firewall-cmd --permanent --remove-rule=rule_specification

Var härska är typen av regel (t.ex. hamn, tjänst, rik-regel, etc.), och regelspecifikation är specifikationen av själva regeln.

Efter att ha gjort ändringar i Firewalld-konfigurationen är det nödvändigt att spara och tillämpa dem. För att spara ändringar, använd kommandot:

firewall-cmd --runtime-to-permanent

Så här tillämpar du ändringar:

firewall-cmd --reload

När du har slutfört installationen kan du verifiera de valda parametrarna genom att öppna listan med alla regler:

firewall-cmd --list-all
brandväggs Linux-regler

Om några problem uppstår, kontrollera Firewalld-loggarna med kommandot:

journalctl -u firewalld

Obs: Vi har bara täckt den allmänna algoritmen för att ställa in anslutningen. Verktyget har omfattande funktionalitet. För fullständig information om alla tillgängliga alternativ kan du använda officiell dokumentation eller öppen hjälp:

firewall-cmd --help

Konfigurera iptables på Linux

Till skillnad från Firewalld är iptables ett äldre men fortfarande allmänt använt verktyg i Linux för att hantera brandväggen. Det ger en mer direkt och flexibel inställning till paketfiltreringsregler på Linux-kärnnivå. Men iptables kräver mer avancerad kunskap och erfarenhet jämfört med Firewalld, vilket gör det mindre tillgängligt för nybörjare. Kontrollera den förinstallerade versionen av verktyget med kommandot:

iptables -V

Om verktyget inte är installerat måste det installeras. Kommandot för installation på Ubuntu, Debian:

apt install iptables

För Red Hat-system (t.ex. CentOS, Fedora):

yum install iptables

Kommandot för aktivering efter installation:

systemctl start iptables

För att lägga till i start, kör:

systemctl enable iptables

Innan du startar iptables-konfigurationen är det viktigt att förstå hur det fungerar. Detta underlättas av programmets syntax. Det ser ut som följer:

iptables -t table action chain additional_parameters

Låt oss gräva djupare in i varje objekt.

Iptables har fyra huvudtabeller: filter, nat, mangle och raw. Var och en är designad för att bearbeta vissa typer av paket och har sina egna reglerkedjor:

  1. filtrera: Detta är den mest använda tabellen som innehåller paketfiltreringsregler. Den används för att fatta beslut om huruvida paket ska tillåtas eller nekas.
  2. nat: Den här tabellen används för att ändra nätverksadresser och portar i paket. Det används ofta för att ställa in maskerad (NAT).
  3. mangrove: I den här tabellen kan du ändra pakethuvuden. Det används för specialiserade paketoperationer, såsom märkning.
  4. obehandlad: Den här tabellen används för att konfigurera regler som gäller innan de går igenom anslutningsspårningssystemet. Det används vanligtvis för att ställa in regler som inte bör ändras av spårningssystemet, till exempel att släppa paket från vissa adresser.

Varje bord innehåller en uppsättning kedjor. Kedjor är en sekvens av regler som kontrolleras sekventiellt. Det finns tre fördefinierade kedjor:

  1. INPUT (inkommande). Reglerna i den här kedjan bestämmer vad som ska göras med inkommande paket.
  2. OUTPUT (utgående). Denna kedja gäller alla paket som din dator skickar till andra enheter eller datorer i nätverket.
  3. FORWARD (vidarebefordra). Reglerna i denna kedja anger vad som ska göras med vidarebefordrade paket.

Slutligen har varje kedja någon handling (mål). I praktiken används 5 huvudåtgärder:

  1. ACCEPTERA: Låt paketet passera genom brandväggen.
  2. FALLA: Avvisa paketet och kassera det utan något svar.
  3. AVVISA: Avvisa paketet och skicka ett ICMP-felmeddelande till avsändaren.
  4. LOGGA: Logga paketet i systemloggen och utför en annan åtgärd (t.ex. ACCEPTERA eller SLÄPP).
  5. ÅNGERRÄTT & RETURER: Sluta kontrollera reglerna i den aktuella kedjan och återgå till anropskedjan (om tillämpligt).

För att starta installationen, öppna listan över befintliga regler med kommandot:

iptables -L
Konfigurera brandvägg på Linux

Som en guide för att konfigurera Iptables, låt oss titta på praktiska exempel på de vanligaste kommandona. För enkelhetens skull delar vi upp exemplen i 3 grupper, beroende på den specifika kedjan.

Kedja INPUT:

  1. Tillåt inkommande trafik via TCP-protokoll på port 80:
iptables -A INPUT -p tcp --dport 80 -j ACCEPT

2. Tillåt inkommande trafik via UDP-protokoll på port 22:

iptables -A INPUT -p udp --dport 22 -j ACCEPT

3. Blockera inkommande trafik från en specifik IP-adress:

iptables -A INPUT -s 192.168.1.100 -j DROP

Kedja PRODUKTION:

  1. Tillåt utgående trafik via TCP-protokoll på port 443:
iptables -A OUTPUT -p tcp --dport 443 -j ACCEPT

2. Tillåt utgående trafik via UDP-protokoll på port 80:

iptables -A OUTPUT -p udp --dport 80 -j ACCEPT

3. Blockera utgående trafik till en specifik port (till exempel 21):

iptables -A OUTPUT -p tcp --dport 21 -j DROP

Kedja FRAM:

  1. Blockera vidarebefordrad trafik från ett specifikt intervall av IP-adresser:
iptables -A FORWARD -s 172.16.0.0/24 -j DROP

2. Blockera vidarebefordran av paket från ett specifikt nätverksgränssnitt:

iptables -A FORWARD -i eth1 -j DROP

3. Begränsa antalet samtidiga anslutningar för en specifik port (i det här exemplet 10 anslutningar per minut på port 80):

iptables -A INPUT -p tcp --dport 80 -m limit --limit 10/minute -j ACCEPT

Som du kan se används ett extra argument (kommando) i varje enskilt fall. För att få en fullständig lista över möjliga argument och övergripande stöd för verktygets funktionalitet anger du:

iptables -h
iptables linux setup kommandolista

För att säkerställa att inställningarna är korrekta, skriv kommandot igen för att se listan med regler:

iptables -L
Kollar iptables linux regler

För att ta bort en specifik regel, använd kommandot:

iptables -D chain rule_number

Om du till exempel vill ta bort regel nummer 1 från INPUT-kedjan kommer kommandot att se ut så här:

iptables -D INPUT 1

Så här tar du bort alla regler med ett kommando:

iptables -F

Viktig anmärkning: iptables-regler sparas inte automatiskt efter omstart av systemet eller tjänsten. För att spara reglerna måste de läggas till i en konfigurationsfil och återställas efter omstart. De iptables-spara och iptables-restore verktyg kan hjälpa till med detta. För att spara reglerna, skriv in kommandot:

iptables-save > /etc/iptables/rules.v4

Detta sparar de aktuella iptables-reglerna i filen rules.v4. För att återställa efter omstart anger du:

iptables-restore < /etc/iptables/rules.v4

Detta kommando återställer reglerna från filen rules.v4.

Slutsats

Att konfigurera brandvägg på Linux med brandvägg eller iptables är en viktig aspekt för att säkerställa serversäkerhet. Båda verktygen erbjuder pålitliga sätt att hantera nätverkstrafik och skydda systemet från obehörig åtkomst och cyberattacker. Valet mellan brandvägg och iptables beror på användarens specifika behov och preferenser, med tanke på deras olika funktionalitet och styrkor.

❮ Föregående artikel Serverbelastningsdiagnostik
Nästa artikel ❯ Linux-användare: Hantering och behörigheter

Fråga oss om VPS

Vi är alltid redo att svara på dina frågor när som helst på dygnet.