Firewall li Linux-ê di ewlehiya pergala komputerê de rolek girîng dilîze. Ew wekî astengiyek tevdigere, seyrûsefera torê kontrol dike û fîlter dike da ku pergalê ji gihîştina bêdestûr, êrîş û xetereyên din biparêze. Bêyî Firewallek bi rêkûpêk hatî mîheng kirin, server dikare ji cûrbecûr êrîşên sîber xeternak be, ku bibe sedema encamên cidî ji bo ewlehiya daneyê û nepenîtiyê.
Di vê gotarê de, em ê li du amûrên sereke ji bo mîhengkirina Firewall Linux-ê binêrin: firewalld û iptables. Em ê di derheqê taybetmendî, fonksiyon û avantajên wan de analîzek berawirdî bikin. Wekî din, em ê rêwerzên hûrgulî ji bo sazkirin û karanîna her yek ji van amûran peyda bikin, û her weha li ser pratîkên çêtirîn ji bo ewlekirina pergala we bi Firewall-ê li ser platforma Linux-ê nîqaş bikin. Hemû çalakî wê li ser a Server server bi gihîştina root.
Veavakirina firewalld li ser Linux
Firewalld (Firewall Daemon) bernameyek ji bo birêvebirina dîwarê agir di pergalên xebitandinê yên Linux de ye. Ew ji bo mîhengkirina qaîdeyên dîwarê agir, destûr an astengkirina girêdanên serîlêdanên torê navgînek bikarhêner peyda dike. Ew di piraniya belavkirinên serverê de ji hêla xwerû ve hatî saz kirin. Ger Firewalld ne pêş-sazkirî be, ew dikare serbixwe ji depoyên fermî yên belavkirinê were saz kirin.
Ji bo pergalên Red Hat (wek RHEL, CentOS, Fedora) sazkirin bi fermanê pêk tê:
yum install firewalld
Ji bo Debian / Ubuntu:
apt-get install firewalld
Piştî sazkirinê, ew dikare bi fermanê tavilê were destpêkirin û çalak kirin:
systemctl start firewalld
Dûv re, hûn hewce ne ku karûbar li destpêkê zêde bikin:
systemctl enable firewalld
Di vê nuqteyê de, em pêşniyar dikin ku ufw neçalak bikin, ji ber ku karanîna hevdem a vê amûrê bi firewalld an iptables re nayê pêşniyar kirin. Rewşê kontrol bikin:
systemctl status ufw
Ji bo rawestandina wê, emrê binivîse:
systemctl stop ufw
Ji bo betalkirina bêkêmasî:
ufw disable
Piştî van çalakiyan, hûn dikarin ji bo mîhengkirina firewalld-ê bidomînin.
Pêşîn, pêdivî ye ku meriv deverên pêbaweriyê diyar bike. Firewalld têgeha deveran bikar tîne da ku asta pêbaweriyê ji bo pêwendiyên torê diyar bike. Ji her navbeynkar re yek herêmek tê veqetandin, û qaîdeyên firewallê li gorî deverê têne sepandin. Navnîşa hemî deverên berdest bi fermanê ve tê vekirin:
firewall-cmd --get-zones
Bi gelemperî, 4 deverên sereke têne bikar anîn:
- Alenî: Ev herêm ji bo torên ku hûn ne ewledar dibînin e;
- taybet: Ji bo torên malê an girêdanên torê yên pêbawer ên din re derbas dibe;
- Navbend: Ji bo torên navxweyî, wekî yên di nav rêxistinek an tora pargîdanî de tê bikar anîn;
- DMZ: Ev qad ew e ku bi gelemperî serverên ku divê ji înternetê werin gihîştin têne danîn.
Lêbelê, ev tenê mînakek e. Hûn dikarin bi karanîna fermanê devera xwe zêde bikin:
firewall-cmd --permanent --new-zone=nameyourzone
Piştî lêzêdekirinê, ji nû ve barkirinek pêdivî ye:
firewall-cmd --reload
Ji bo jêbirina herêmek, rêbazek wekhev tê bikaranîn
firewall-cmd --permanent --delete-zone=nameyourzone
Piştî diyarkirina deveran, pêdivî ye ku ji bo karûbar û portên hewce rê bide trafîkê. Ji bo destûrkirina karûbarek diyarkirî, emrê bikar bînin:
firewall-cmd --zone=public --add-service=name
Ko nav navê xizmetê ye. Mînakî, ji bo destûrkirina seyrûsefera Apache:
firewall-cmd --zone=public --add-service=http
Ji bo destnîşankirina portên destûr, fermanê bikar bînin:
firewall-cmd --zone=public --add-port=number/protocol
Mînakî, porta standard 22 ji bo SSH wiha xuya dike:
firewall-cmd --zone=public --add-port=22/tcp
Di vê qonaxê de, qaîdeyên sereke jixwe têne afirandin. Dûv re, diyar bikin ka dê seyrûsefera li gorî çavkanî, cîh, port û pîvanên din çawa were pêvajo kirin. Ji bo zêdekirina qaîdeyek (bikaranîna alenî zone wek nimûne):
firewall-cmd --zone=public rule
Mînakî, ji bo ku rê bidin seyrûsefera hatina ji her çavkaniyek berbi porta 80 (HTTP):
firewall-cmd --zone=public --add-port=80/tcp --permanent
Ji bo rakirina qaîdeyek:
firewall-cmd --permanent --remove-rule=rule_specification
Ko rêz cureyê hukmê ye (mînak, bender, xizmet, dewlemend-rule, hwd.), û rule_specification taybetmendiya qaîdeyê bi xwe ye.
Piştî ku di veavakirina Firewalld de guheztinan bikin, pêdivî ye ku wan hilînin û bicîh bikin. Ji bo tomarkirina guhertinan, emrê bikar bînin:
firewall-cmd --runtime-to-permanent
Ji bo pêkanîna guhertinan:
firewall-cmd --reload
Piştî qedandina sazkirinê, hûn dikarin bi vekirina navnîşa hemî qaîdeyan pîvanên hilbijartî verast bikin:
firewall-cmd --list-all
Ger pirsgirêk derkevin, têketinên Firewalld bi fermanê kontrol bikin:
journalctl -u firewalld
Nîşe: Me tenê algorîtmaya giştî ya ji bo sazkirina pêwendiyê vegirtiye. Amûr xwedan fonksiyonek berfireh e. Ji bo agahdariya tevahî li ser hemî vebijarkên berdest, hûn dikarin bikar bînin belgeyên fermî an jî alîkariya vekirî:
firewall-cmd --help
Veavakirina iptables li ser Linux
Berevajî Firewalld, iptables amûrek kevntir e lê dîsa jî di Linux-ê de ji bo birêvebirina dîwarê fireh tê bikar anîn. Ew ji bo qaîdeyên fîlterkirina pakêtê di asta kernel Linux de nêzîkatiyek rasterast û maqûltir peyda dike. Lêbelê, iptables li gorî Firewalld hewceyê zanyarî û ezmûna pêşkeftîtir hewce dike, ku ew ji bo destpêkek kêmtir peyda dike. Guhertoya pêş-sazkirî ya amûrê bi fermanê kontrol bikin:
iptables -V
Ger amûr neyê saz kirin, pêdivî ye ku were saz kirin. Fermana sazkirinê li Ubuntu, Debian:
apt install iptables
Ji bo pergalên Red Hat (mînak, CentOS, Fedora):
yum install iptables
Fermana aktîvkirina piştî sazkirinê:
systemctl start iptables
Ji bo zêdekirina destpêkê, bicîh bikin:
systemctl enable iptables
Berî destpêkirina veavakirina iptables, girîng e ku hûn fêm bikin ka ew çawa dixebite. Ev ji hêla syntaksa bernameyê ve tê arîkar kirin. Ev wiha xuya dike:
iptables -t table action chain additional_parameters
Werin em li her babetekê kûrtir bigerin.
Iptables çar tabloyên sereke hene: Parzûn, nat, mangle, û xav. Her yek ji bo hilberandina hin celeb pakêtan hatî çêkirin û zincîreyên xwe yên rêzikên xwe hene:
- parzûn: Ev tabloya ku herî zêde tê bikaranîn e, ku qaîdeyên fîlterkirina pakêtê vedihewîne. Ew ji bo girtina biryarên li ser destûr an redkirina pakêtan tê bikar anîn.
- nat: Ev tablo ji bo guherandina navnîşanên torê û portên di pakêtan de tê bikaranîn. Ew bi gelemperî ji bo sazkirina masquerading (NAT) tê bikar anîn.
- xemgîn: Di vê tabloyê de, hûn dikarin sernavên pakêtê biguherînin. Ew ji bo operasyonên pakêtê yên pispor, wekî nîşankirin, tê bikar anîn.
- xavî: Ev tablo ji bo veavakirina qaîdeyên ku berî ku ew derbasî pergala şopandina girêdanê bibin tê bikar anîn. Ew bi gelemperî ji bo sazkirina qaîdeyên ku divê ji hêla pergala şopandinê ve neyên guheztin, wekî avêtina pakêtan ji hin navnîşanan tê bikar anîn.
Di her tabloyê de komek zincîre hene. Zincîr rêzek rêzik in ku bi rêz têne kontrol kirin. Sê zincîreyên ji berê diyarkirî hene:
- INPUT (hatin). Rêgezên di vê zincîrê de diyar dikin ku bi pakêtên hatine re çi bikin.
- DERKET (derketî). Ev zincîre ji bo hemî pakêtên ku komputera we ji cîhazên din an komputerên li ser torê re dişîne re derbas dibe.
- PÊŞ (pêşvebirin). Rêgezên di vê zincîrê de diyar dikin ku bi pakêtên şandinê re çi bikin.
Di dawiyê de, her zincîr xwedan hin çalakî (armanc) ye. Di pratîkê de, 5 çalakiyên sereke têne bikaranîn:
- BAWERANÎN: Bihêle ku pakêt ji dîwarê agir derbas bibe.
- DILOPKIRIN: Pakêtê red bike û bê bersiv jê bavêje.
- REFZKIRIN: Paketê red bikin û ji şanderê re peyamek xeletiya ICMP bişînin.
- ROJNAME: Pakêtê di têketina pergalê de têkevin û çalakiyek din pêk bînin (mînak, QEBÛL an DOP).
- VEGERR: Kontrolkirina qaîdeyên di zincîra heyî de rawestînin û vegerin zincîra bangkirinê (heke hebe).
Ji bo destpêkirina sazkirinê, navnîşa qaîdeyên heyî bi fermanê vekin:
iptables -L
Wekî rêberek ji bo mîhengkirina Iptables, werin em li mînakên pratîkî yên fermanên ku herî gelemperî têne bikar anîn binêrin. Ji bo rehetiyê, em ê mînakan li gorî zincîra taybetî li 3 koman dabeş bikin.
Merbend BEYAN:
- Destûrê bide seyrûsefera hatinê bi protokola TCP ya li porta 80:
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
2. Destûrê bide seyrûsefera hatina bi protokola UDP ya li port 22:
iptables -A INPUT -p udp --dport 22 -j ACCEPT
3. Trafîka hatina ji navnîşanek IP-ya taybetî asteng bikin:
iptables -A INPUT -s 192.168.1.100 -j DROP
Merbend KARÛABR:
- Destûrê bide seyrûsefera derketinê bi protokola TCP ya li porta 443:
iptables -A OUTPUT -p tcp --dport 443 -j ACCEPT
2. Destûrê bide seyrûsefera derketinê bi protokola UDP ya li port 80:
iptables -A OUTPUT -p udp --dport 80 -j ACCEPT
3. Trafîka derketinê ya berbi portek taybetî asteng bikin (mînak, 21):
iptables -A OUTPUT -p tcp --dport 21 -j DROP
Merbend BENDA:
- Ji rêzek taybetî ya navnîşanên IP-ê seyrûsefera hatî şandin asteng bikin:
iptables -A FORWARD -s 172.16.0.0/24 -j DROP
2. Pêşkêşkirina pakêtan ji navgînek torê ya taybetî asteng bikin:
iptables -A FORWARD -i eth1 -j DROP
3. Hejmara girêdanên hevdemî ji bo portek taybetî sînordar bikin (di vê nimûneyê de, 10 girêdan di hûrdemê de li porta 80-ê):
iptables -A INPUT -p tcp --dport 80 -m limit --limit 10/minute -j ACCEPT
Wekî ku hûn dikarin bibînin, di her rewşek cûda de, argumanek (ferman) zêde tê bikar anîn. Ji bo ku hûn navnîşek bêkêmasî ya argumanên gengaz û piştgirîya giştî ya fonksiyona amûrê bistînin, têkevin:
iptables -h
Ji bo ku mîhengan rast bin, emrê ji nû ve têkevin da ku navnîşa qaîdeyan bibînin:
iptables -L
Ji bo ku qaîdeyek taybetî jêbirin, emrê bikar bînin:
iptables -D chain rule_number
Mînakî, heke hûn dixwazin qaîdeya jimare 1 ji zincîra INPUT jêbirin, ferman dê wiha xuya bike:
iptables -D INPUT 1
Ji bo jêbirina hemî qaîdeyan bi yek fermanê:
iptables -F
Girîng e: Rêbazên iptables piştî ji nû ve destpêkirina pergalê an karûbar bixweber nayê hilanîn. Ji bo tomarkirina qaîdeyan, pêdivî ye ku ew li pelek vesazkirinê werin zêdekirin û piştî ji nû ve destpêkirinê werin sererast kirin. Ew iptables- xilas bike û iptables-restore karûbar dikarin bi vê yekê re bibin alîkar. Ji bo tomarkirina rêbazan, emrê binivîse:
iptables-save > /etc/iptables/rules.v4
Ev qaîdeyên iptables yên heyî di pelê rule.v4 de hilîne. Ji bo vegerandina piştî ji nû ve destpêkirinê, têkevin:
iptables-restore < /etc/iptables/rules.v4
Ev ferman qaîdeyên ji pelê rule.v4 vedigire.
Xelasî
Veavakirina Firewall-ê li ser Linux-ê bi karanîna firewalld an iptables vebijarkek girîng e ku ewlehiya serverê peyda bike. Her du amûr rêgezên pêbawer ên birêvebirina seyrûsefera torê û parastina pergalê ji gihîştina bêdestûr û êrîşên sîber pêşkêşî dikin. Hilbijartina di navbera firewalld û iptables de bi hewcedarî û vebijarkên taybetî yên bikarhêner ve girêdayî ye, li gorî fonksiyon û hêzên wan ên cihêreng.