Firewall op Linux speel 'n belangrike rol in die beveiliging van 'n rekenaarstelsel. Dit dien as 'n versperring, beheer en filter netwerkverkeer om die stelsel te beskerm teen ongemagtigde toegang, aanvalle en ander bedreigings. Sonder 'n behoorlik gekonfigureerde Firewall kan die bediener kwesbaar wees vir verskeie tipes kuberaanvalle, wat lei tot ernstige gevolge vir datasekuriteit en vertroulikheid.
In hierdie artikel sal ons na twee hoofgereedskap kyk vir die konfigurasie van die Linux Firewall: firewalld en iptables. Ons sal 'n vergelykende analise van hul kenmerke, funksionaliteit en voordele doen. Daarbenewens sal ons gedetailleerde instruksies verskaf vir die opstel en gebruik van elk van hierdie gereedskap, asook beste praktyke bespreek vir die beveiliging van jou stelsel met 'n Firewall op die Linux-platform. Alle aksies sal op 'n virtuele bediener met worteltoegang gedemonstreer word.
Konfigureer firewalld op Linux
Firewalld (Firewall Daemon) is 'n program vir die bestuur van die firewall in Linux-bedryfstelsels. Dit bied 'n gebruikerskoppelvlak vir die konfigurasie van firewallreëls, die toelating of blokkering van verbindings van netwerktoepassings. Dit is standaard vooraf geïnstalleer in die meeste bedienerverspreidings. Indien Firewalld nie vooraf geïnstalleer is nie, kan dit onafhanklik van die verspreiding se amptelike bewaarplekke geïnstalleer word.
Vir Red Hat-stelsels (soos RHEL, CentOS, Fedora) word die installasie uitgevoer met die opdrag:
yum install firewalld
Vir Debian/Ubuntu:
apt-get install firewalld
Na die installasie kan dit onmiddellik begin en geaktiveer word met die opdrag:
systemctl start firewalld
Vervolgens moet u die diens by opstart voeg:
systemctl enable firewalld
Op hierdie stadium beveel ons aan om ufw te deaktiveer, aangesien die gelyktydige gebruik van hierdie instrument met firewalld of iptables nie aanbeveel word nie. Gaan die status na:
systemctl status ufw
Om dit te stop, voer die opdrag in:
systemctl stop ufw
Vir volledige deaktivering:
ufw disable
Na hierdie aksies kan u voortgaan om firewalld op te stel.
Eerstens is dit nodig om vertrouensones te definieer. Firewalld gebruik die konsep van sones om die vlak van vertroue vir netwerkkoppelvlakke te bepaal. Elke koppelvlak word een sone toegeken, en firewall-reëls word toegepas op grond van die sone. Die lys van alle beskikbare sones word oopgemaak met die opdrag:
firewall-cmd --get-zones
Tipies word 4 hoofsones gebruik:
- Openbare: Hierdie sone is vir netwerke wat jy as onveilig beskou;
- Privaat: Van toepassing op tuisnetwerke of ander betroubare netwerkverbindings;
- Interne: Word gebruik vir interne netwerke, soos dié binne 'n organisasie of korporatiewe netwerk;
- DMZ: Hierdie sone is waar bedieners gewoonlik geplaas word wat vanaf die internet toeganklik behoort te wees.
Dit is egter net een voorbeeld. Jy kan jou eie sone byvoeg deur die opdrag te gebruik:
firewall-cmd --permanent --new-zone=nameyourzone
Na byvoeging word 'n herlaai vereis:
firewall-cmd --reload
Om 'n sone uit te vee, word 'n soortgelyke metode gebruik
firewall-cmd --permanent --delete-zone=nameyourzone
Nadat sones gedefinieer is, is dit nodig om verkeer vir die nodige dienste en hawens toe te laat. Om 'n sekere diens toe te laat, gebruik die opdrag:
firewall-cmd --zone=public --add-service=name
Waar naam die naam van die diens is. Byvoorbeeld, om verkeer vir Apache toe te laat:
firewall-cmd --zone=public --add-service=http
Om toelaatbare poorte te definieer, gebruik die opdrag:
firewall-cmd --zone=public --add-port=number/protocol
Byvoorbeeld, die standaard 22-poort vir SSH sal soos volg lyk:
firewall-cmd --zone=public --add-port=22/tcp
In hierdie stadium is die hoofreëls reeds geskep. Bepaal vervolgens hoe verkeer verwerk sal word, afhangende van die bron, bestemming, poort en ander kriteria. Om 'n reël by te voeg (met die publieke sone as voorbeeld):
firewall-cmd --zone=public rule
Byvoorbeeld, om inkomende verkeer van enige bron na poort 80 (HTTP) toe te laat:
firewall-cmd --zone=public --add-port=80/tcp --permanent
Om 'n reël te verwyder:
firewall-cmd --permanent --remove-rule=rule_specification
Waar reël die tipe reël is (bv. poort, diens, ryk-reël, ens.), en reël_spesifikasie die spesifikasie van die reël self is.
Nadat jy veranderinge aan die Firewalld-konfigurasie gemaak het, is dit nodig om dit te stoor en toe te pas. Om veranderinge te stoor, gebruik die opdrag:
firewall-cmd --runtime-to-permanent
Om veranderinge toe te pas:
firewall-cmd --reload
Nadat u die opstelling voltooi het, kan u die geselekteerde parameters verifieer deur die lys van alle reëls oop te maak:
firewall-cmd --list-all
As enige probleme opduik, gaan die Firewalld-logboeke na met die opdrag:
journalctl -u firewalld
Let wel: Ons het slegs die algemene algoritme vir die opstel van die verbinding behandel. Die instrument het uitgebreide funksionaliteit. Vir volledige inligting oor alle beskikbare opsies, kan u die amptelike dokumentasie of oop hulp gebruik:
firewall-cmd --help
Konfigureer iptables op Linux
Anders as Firewalld, is iptables 'n ouer, maar steeds algemeen gebruikte instrument in Linux om die firewall te bestuur. Dit bied 'n meer direkte en buigsame benadering tot pakketfilterreëls op die Linux-kernvlak. iptables vereis egter meer gevorderde kennis en ervaring in vergelyking met Firewalld, wat dit minder toeganklik maak vir beginners. Gaan die vooraf geïnstalleerde weergawe van die instrument na met die opdrag:
iptables -V
As die instrument nie geïnstalleer is nie, sal dit geïnstalleer moet word. Die opdrag vir installasie op Ubuntu, Debian:
apt install iptables
Vir Red Hat-stelsels (bv. CentOS, Fedora):
yum install iptables
Die opdrag vir aktivering na installasie:
systemctl start iptables
Om by opstart by te voeg, voer uit:
systemctl enable iptables
Voordat u die iptables-konfigurasie begin, is dit belangrik om te verstaan hoe dit werk. Dit word aangehelp deur die sintaksis van die program. Dit lyk soos volg:
iptables -t table action chain additional_parameters
Kom ons delf dieper in elke item.
Iptables het vier hooftabelle: filter, nat, mangle en raw . Elkeen is ontwerp vir die verwerking van sekere tipes pakkette en het sy eie reëlkettings:
- filter: Dit is die tabel wat die meeste gebruik word, wat pakketfiltreerreëls bevat. Dit word gebruik om besluite te neem of pakkies toe te laat of te weier.
- nat: Hierdie tabel word gebruik om netwerkadresse en poorte in pakkies te wysig. Dit word dikwels gebruik vir die opstel van maskeradering (NAT).
- mangel: In hierdie tabel kan jy pakkieopskrifte wysig. Dit word gebruik vir gespesialiseerde pakkiebewerkings, soos nasien.
- rou: Hierdie tabel word gebruik vir die opstel van reëls wat van toepassing is voordat hulle deur die verbindingsopsporingstelsel gaan. Dit word tipies gebruik vir die opstel van reëls wat nie deur die opsporingstelsel gewysig moet word nie, soos om pakkies van sekere adresse af te laat val.
Elke tafel bevat 'n stel kettings. Kettings is 'n reeks reëls wat opeenvolgend nagegaan word. Daar is drie voorafbepaalde kettings:
- INVOER (inkomende). Die reëls in hierdie ketting bepaal wat om met inkomende pakkies te doen.
- UITGANG (uitgaande). Hierdie ketting is van toepassing op alle pakkies wat jou rekenaar na ander toestelle of rekenaars op die netwerk stuur.
- VOORUIT (aanstuur). Die reëls in hierdie ketting spesifiseer wat om te doen met aangestuurde pakkies.
Ten slotte, elke ketting beskik oor 'n mate van aksie (teiken). In die praktyk word 5 hoofaksies gebruik:
- AANVAAR: Laat die pakkie deur die firewall gaan.
- DROP: Verwerp die pakkie en gooi dit weg sonder enige reaksie.
- VERWERP: Verwerp die pakkie en stuur 'n ICMP-foutboodskap aan die sender.
- LOG: Teken die pakkie in die stelsellogboek aan en voer 'n ander aksie uit (bv. AANVAAR of LAAT).
- TERUG: Hou op om die reëls in die huidige ketting na te gaan en keer terug na die oproepketting (indien van toepassing).
Om die opstelling te begin, maak die lys bestaande reëls oop met die opdrag:
iptables -L
As 'n gids vir die opstel van Iptables, kom ons kyk na praktiese voorbeelde van die mees gebruikte opdragte. Gerieflikheidshalwe verdeel ons die voorbeelde in 3 groepe, afhangende van die spesifieke ketting.
Kettinginvoer :
- Laat inkomende verkeer toe via TCP-protokol op poort 80:
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
2. Laat inkomende verkeer toe via UDP-protokol op poort 22:
iptables -A INPUT -p udp --dport 22 -j ACCEPT
3. Blokkeer inkomende verkeer vanaf 'n spesifieke IP-adres:
iptables -A INPUT -s 192.168.1.100 -j DROP
Kettinguitvoer :
- Laat uitgaande verkeer toe via TCP-protokol op poort 443:
iptables -A OUTPUT -p tcp --dport 443 -j ACCEPT
2. Laat uitgaande verkeer toe via UDP-protokol op poort 80:
iptables -A OUTPUT -p udp --dport 80 -j ACCEPT
3. Blokkeer uitgaande verkeer na 'n spesifieke poort (byvoorbeeld, 21):
iptables -A OUTPUT -p tcp --dport 21 -j DROP
Ketting VOORUIT :
- Blokkeer aangestuurde verkeer vanaf 'n spesifieke reeks IP-adresse:
iptables -A FORWARD -s 172.16.0.0/24 -j DROP
2. Blokkeer die aanstuur van pakkies vanaf 'n spesifieke netwerkkoppelvlak:
iptables -A FORWARD -i eth1 -j DROP
3. Beperk die aantal gelyktydige verbindings vir 'n spesifieke poort (in hierdie voorbeeld, 10 verbindings per minuut op poort 80):
iptables -A INPUT -p tcp --dport 80 -m limit --limit 10/minute -j ACCEPT
Soos u kan sien, word 'n addisionele argument (opdrag) in elke afsonderlike geval gebruik. Om 'n volledige lys van moontlike argumente en algehele ondersteuning vir die nutsding se funksionaliteit te kry, voer in:
iptables -h
Om te verseker dat die instellings korrek is, voer die opdrag weer in om die lys reëls te sien:
iptables -L
Om 'n spesifieke reël uit te vee, gebruik die opdrag:
iptables -D chain rule_number
Byvoorbeeld, as jy reël nommer 1 van die INPUT-ketting wil uitvee, sal die opdrag soos volg lyk:
iptables -D INPUT 1
Om alle reëls met een opdrag uit te vee:
iptables -F
Belangrike nota : iptables-reëls word nie outomaties gestoor nadat die stelsel of diens herbegin is nie. Om die reëls te stoor, moet hulle by 'n konfigurasielêer gevoeg word en na herbegin herstel word. Die iptables-save en iptables-restore- hulpprogramme kan hiermee help. Om die reëls te stoor, voer die opdrag in:
iptables-save > /etc/iptables/rules.v4
Dit stoor die huidige iptables-reëls in die reëls.v4-lêer. Om te herstel na herlaai, voer in:
iptables-restore < /etc/iptables/rules.v4
Hierdie opdrag herstel die reëls vanaf die reëls.v4-lêer.
Gevolgtrekking
Die konfigurasie van Firewall op Linux met behulp van firewalld of iptables is 'n belangrike aspek om bedienersekuriteit te verseker. Beide instrumente bied betroubare maniere om netwerkverkeer te bestuur en die stelsel te beskerm teen ongemagtigde toegang en kuberaanvalle. Die keuse tussen firewalld en iptables hang af van die spesifieke behoeftes en voorkeure van die gebruiker, met inagneming van hul verskillende funksionaliteit en sterk punte.