Uvod
Firewalld je rješenje za upravljanje vatrozidom koje je dostupno za mnoge Linux distribucije. Služi kao sučelje za sustav filtriranja paketa iptables koji pruža Linux jezgra. U ovom vodiču naučit ćete kako konfigurirati vatrozid za svoj poslužitelj. Također ćemo vam pokazati osnove upravljanja vatrozidom pomoću administrativnog alata firewall-cmd.
Osnove Firewalld-a
FirewallD koristi koncepte zona i usluga, umjesto lanaca i pravila iptables-a. Ovisno o zonama i uslugama koje konfigurirate, možete kontrolirati koji je promet dopušten ili zabranjen prema sustavu i iz njega. FirewallD se može konfigurirati i njime upravljati pomoću uslužnog programa naredbenog retka firewall-cmd.
Instalirajte i omogućite pokretanje vatrozida pri podizanju sustava
Na većini Linux distribucija firewallD je već instaliran. Međutim, ako ga trebate sami instalirati, upišite sintaksu u nastavku:
|
1 |
sudo yum install firewalld |
Možete omogućiti uslugu i ponovno pokrenuti poslužitelj nakon što se firewalld instalira:
|
1 2 |
sudo systemctl enable firewalld sudo reboot |
Zatim ponovno pokrenite poslužitelj. Vaš će vatrozid biti omogućen nakon što uspješno ponovno pokrenete poslužitelj. Nakon toga upotrijebite naredbu u nastavku kako biste provjerili je li usluga aktivirana:
|
1 |
sudo firewall-cmd --state |

Izlaz pokazuje da zadana postavka vatrozida radi.
Provjera zadanih postavki
Zonu koju je odabrao poslužitelj možete provjeriti pomoću ove naredbe:
|
1 |
firewall-cmd --get-default-zone |

Provjerite aktivnu zonu upisivanjem:
|
1 |
firewall-cmd --get-active-zones |

Ispišite konfiguraciju zadane zone kako biste saznali pravila pridružena javnom području pomoću ove sintakse:
|
1 |
sudo firewall-cmd --list-all |

Izlaz pokazuje da je ova zona i zadana i aktivna zona. Također pokazuje da su sučelja eth0 i eth1 dodijeljena ovoj zoni.
Provjera alternativnih zona
Osim zadanih i aktivnih zona, postoje i druge zone koje možete istražiti. Unesite ovu naredbu da biste vidjeli sve dostupne zone:
|
1 |
firewall-cmd --get-zones |

Provjerite određenu konfiguraciju dodijeljenu zoni dodavanjem parametra –zone= u naredbu –list-all:
|
1 |
sudo firewall-cmd --zone=home --list-all |

Promjena zone sučelja
Možete jednostavno promijeniti zonu sučelja pomoću opcije –change-interface u kombinaciji s opcijom –change-interface. Sljedeća naredba dodijelit će sučelje eth1 radnom prostoru:
|
1 |
sudo firewall-cmd --zone=work --change-interface=eth1 |
Promjene možete provjeriti upisivanjem:
|
1 |
sudo firewall-cmd --get-active-zones |
Promjena zadane zone
Da biste promijenili zadanu zonu, upotrijebite –set-default-zone nakon čega slijedi naziv zone koju želite postaviti kao zadanu. Na primjer, da biste promijenili zadanu zonu za početak, trebali biste pokrenuti sljedeću naredbu:
|
1 |
sudo firewall-cmd --set-default-zone=home |
Zatim možete provjeriti promjene pomoću:
|
1 |
sudo firewall-cmd --get-default-zone |
Postavljanje pravila za vaše aplikacije
Prođimo kroz osnove potrebne za definiranje iznimaka vatrozida za usluge:
Dodavanje usluge u vaše zone
Najjednostavniji način je dodavanje potrebnih priključaka ili usluga u zone koje koristite. Isto tako, možete koristiti opciju –get-services da biste vidjeli sve dostupne usluge:
|
1 |
firewall-cmd --get-services |

Uslugu za zonu možete aktivirati parametrom –add-service =. Radnja cilja zadanu zonu ili bilo koju zonu definiranu parametrom –zone =. Prema zadanim postavkama konfigurirana je samo trenutna sesija vatrozida. Trajnu konfiguraciju vatrozida možete postaviti aktiviranjem zastavice –permanent. Na primjer, ako pokrećete web poslužitelj koji pruža uobičajeni HTTP promet, taj promet možete dopustiti za sučelja u našoj zoni “public” za ovu sesiju unosom:
|
1 |
sudo firewall-cmd --zone=public --add-service=http |
Možete izostaviti –zone = ako želite promijeniti zadanu zonu. Uspješnost operacije možete provjeriti operacijama –list-all ili –list-services:
|
1 |
sudo firewall-cmd --zone=public --list-services |

Nakon što potvrdite da sve radi kako je očekivano, najvjerojatnije ćete htjeti promijeniti trajna pravila vatrozida kako bi vaša usluga i dalje bila dostupna nakon ponovnog pokretanja. Promjenu u našoj zoni “public” možemo učiniti trajnom unosom sintakse:
|
1 2 3 4 |
sudo firewall-cmd --zone=public --permanent --add-service=http izlaz: success |
Možete provjeriti je li ovo bilo uspješno dodavanjem zastavice –permanent operaciji –list-services. Morate koristiti sudo za –sve trajne operacije:
|
1 2 3 4 |
sudo firewall-cmd --zone=public --permanent --list-services izlaz: dhcpv6-client http ssh |
Vaša zona “public” sada dopušta HTTP promet na portu 80. To možete dodati trenutnoj sesiji i trajnom skupu pravila pomoću naredbe u nastavku:
|
1 2 3 |
sudo firewall-cmd --zone=public --add-service=https sudo firewall-cmd --zone=public --permanent --add-service=https |
Ako nema usluga koje odgovaraju vašim zahtjevima, imate dvije izvrsne opcije za rješavanje ove situacije:
- Otvaranje porta za vaše zone
Najjednostavniji način za dodavanje podrške za vašu određenu aplikaciju je otvaranje portova koji se koriste u svakoj zoni. To je jednostavno poput određivanja porta ili raspona portova i odgovarajućeg protokola za portove koje trebate otvoriti. Na primjer, ako se vaša aplikacija izvodi na portu 5000 i koristi TCP, možete je dodati u zonu “public” za ovu sesiju pomoću parametra –add-port =. Protokoli mogu biti TCP ili UDP:
|
1 2 3 4 |
sudo firewall-cmd --zone=public --add-port=5000/tcp izlaz: success |
Kako biste provjerili je li operacija uspješna, upotrijebite operaciju –list-ports:
|
1 2 3 4 |
sudo firewall-cmd --zone=public --list-ports Izlaz: 5000/tcp |
Također možete odrediti raspon za serijsko sučelje odvajanjem početnog i završnog porta u rasponu crticom. Na primjer, ako vaša aplikacija koristi UDP portove od 4990 do 4999, možete ih otvoriti u zoni “public” upisivanjem:
|
1 |
sudo firewall-cmd --zone=public --add-port=4990-4999/udp |
Nakon testiranja, vjerojatno ćemo ih htjeti dodati u trajni vatrozid. To možete učiniti upisivanjem sljedećeg:
|
1 2 3 |
sudo firewall-cmd --zone=public --permanent --add-port=5000/tcp sudo firewall-cmd --zone=public --permanent --add-port=4990-4999/udp sudo firewall-cmd --zone=public --permanent --list-ports |

- Definiranje usluge
Usluga je zbirka priključaka s pridruženim nazivom i opisom. Uslugama je lakše upravljati nego priključcima, ali to zahtijeva malo početnog rada. Najjednostavniji način za početak je kopiranje postojeće skripte (u / usr / lib / firewalld / services) u direktorij /etc/firewalld/services. Na primjer, možete kopirati definiciju SSH usluge kako biste je koristili u definiciji usluge “example” na sljedeći način. Naziv datoteke bez XML sufiksa određuje naziv usluge na popisu usluga vatrozida:
|
1 |
sudo cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/example.xml |
U ovom trenutku možete prilagoditi definiciju u kopiranoj datoteci:
|
1 |
sudo vi /etc/firewalld/services/example.xml |
Prvo, datoteka sadrži SSH definiciju koju ste kopirali:
|
1 2 3 4 5 6 |
<?xml version="1.0" encoding="utf-8"?> <service> <short>SSH</short> <description>Secure Shell (SSH) je jedan protokol za prijavu na i izvršavanje naredbi na udaljenim računalima. Ono pruža sigurnu šifriranu komunikaciju. Ako planirate planirate na pristupanje svom računalu daljinski putem SSH preko jednog zaštićenog vatrozidom sučelja, omogućite ovu opciju. Trebate imati the openssh-server paket instaliran kako bi ova opcija bila bila korisna.</description> <port protocol="tcp" port="22"/> </service> |
Većina ove definicije sastoji se od metapodataka. Morate promijeniti kratki naziv usluge u oznakama <short>. Ovo je čitljiv naziv usluge. Zamislite da za našu “example” uslugu moramo otvoriti priključak 7777 za TCP i 8888 za UDP. Možete promijeniti postojeću definiciju ulaskom u način rada INSERT pritiskom na i:
|
1 2 3 4 5 6 7 |
<?xml version="1.0" encoding="utf-8"?> <service> <short>Primjer usluge</short> <description>Ovo je samo jedan primjer usluge. Ona vjerojatno ne bi'trebala biti korištena na stvarnom stvarnom sustavu.</description> <port protocol="tcp" port="7777"/> <port protocol="udp" port="8888"/> </service> |
Zatim pritisnite ESC i upišite: x za spremanje i zatvaranje datoteke. Nakon toga upišite naredbu u nastavku kako biste ponovno pokrenuli vatrozid i dobili pristup novoj usluzi;
|
1 |
sudo firewall-cmd --reload |
Nakon toga upotrijebite naredbu u nastavku za popis dostupnih usluga:
|
1 |
firewall-cmd --get-services |

Ova je usluga sada dostupna u vašoj zoni.
Stvaranje vlastitih zona
Iako će unaprijed definirane zone vjerojatno biti dovoljne za većinu korisnika, moglo bi biti korisno definirati vlastite zone koje potpunije opisuju njihovu funkciju.
Kada dodajete zonu, dodajte je u trajne postavke vatrozida. Zatim možete ponovno učitati kako biste primijenili postavke na svoju sesiju. Na primjer, možete stvoriti dvije ranije spomenute zone upisivanjem:
|
1 2 |
sudo firewall-cmd --permanent --new-zone=publicweb sudo firewall-cmd --permanent --new-zone=privateDNS |
Možete potvrditi da su prisutne u vašoj trajnoj konfiguraciji pomoću ove naredbe:
|
1 |
sudo firewall-cmd --permanent --get-zones |

Ponovno učitajte vatrozid kako biste ove nove zone uveli u aktivnu konfiguraciju:
|
1 2 3 4 5 |
sudo firewall-cmd --reload firewall-cmd --get-zones izlaz: block dmz drop external home internal privateDNS public publicweb trusted work |
Sada možete dodijeliti odgovarajuće usluge i portove svojim zonama. Na primjer, za zonu “publicweb” možda biste željeli dodati usluge SSH, HTTP i HTTPS:
|
1 2 3 |
sudo firewall-cmd --zone=publicweb --add-service=ssh sudo firewall-cmd --zone=publicweb --add-service=http sudo firewall-cmd --zone=publicweb --add-service=https |

Također, možete dodati DNS uslugu u svoju zonu „privateDNS” pomoću ove naredbe:
|
1 2 |
sudo firewall-cmd --zone=privateDNS --add-service=dns sudo firewall-cmd --zone=privateDNS --list-all |

Zatim možete promijeniti svoja sučelja na ove nove zone kako biste ih testirali:
|
1 2 3 |
sudo firewall-cmd --zone=publicweb --change-interface=eth0 sudo firewall-cmd --zone=privateDNS --change-interface=eth1 |
Testirajte konfiguraciju da vidite radi li. Ako vam ove vrijednosti odgovaraju, morate dodati ista pravila u trajnu konfiguraciju. To možete učiniti ponovnom primjenom pravila s indikatorom —permanent:
|
1 2 3 4 5 6 7 |
sudo firewall-cmd --zone=publicweb --permanent --add-service=ssh sudo firewall-cmd --zone=publicweb --permanent --add-service=http sudo firewall-cmd --zone=publicweb --permanent --add-service=https sudo firewall-cmd --zone=privateDNS --permanent --add-service=dns |
Nakon što trajno primijenite ova pravila, možete ponovno pokrenuti svoju mrežu i ponovno učitati uslugu vatrozida:
|
1 2 3 |
sudo systemctl restart network sudo systemctl reload firewalld |
Provjerite jesu li zone ispravno dodijeljene:
|
1 |
firewall-cmd --get-active-zones |

Nadalje, provjerite imaju li obje zone ispravnu uslugu:
|
1 2 3 4 |
sudo firewall-cmd --zone=publicweb --list-services izlaz: http https ssh |
|
1 2 3 4 5 |
sudo firewall-cmd --zone=privateDNS --list-services izlaz: dns |
Ako želite postaviti jednu od svojih zona kao zadanu za druga sučelja, morate konfigurirati ovo ponašanje pomoću parametra –set-default-zone= koristeći ovu naredbu:
|
1 |
sudo firewall-cmd --set-default-zone=publicweb |
Zaključak
U ovom ste trenutku uspješno stvorili vlastite zone. Trebali biste imati osnovno razumijevanje administriranja usluge firewalld na vašem CentOS sustavu za svakodnevnu upotrebu. Dobro razumijevanje usluge firewalld omogućuje vam da u potpunosti iskoristite njezinu snagu i fleksibilnost.
Sretno računanje!


Komentari
Još nema komentara. Budite prvi.