Kako konfigurirati FirewallD u RHEL-u, Rockyju i AlmaLinuxu


Net-filter kao što svi znamo, to je vatrozid u Linuxu. Firewalld je dinamički demon za upravljanje vatrozidima s podrškom za mrežne zone. U ranijoj verziji, RHEL & CentOS, koristili smo iptables kao demon za okvir za filtriranje paketa.

U novijim verzijama distribucija koje se temelje na RHEL-u kao što su Fedora, Rocky Linux, CentOS Stream, AlmaLinux i openSUSE – sučelje iptables zamijenjeno je vatrozidom.

[ Također bi vam se moglo svidjeti: 10 korisnih sigurnosnih vatrozida otvorenog koda za Linux sustave ]

Preporuča se početi koristiti Firewalld umjesto iptables jer bi to moglo prestati u budućnosti. Međutim, iptables su i dalje podržani i mogu se instalirati naredbom yum. Ne možemo držati Firewalld i iptables u istom sustavu što može dovesti do sukoba.

U iptables smo koristili konfiguraciju kao INPUT, OUTPUT & FORWARD CHAIN, ali ovdje u Firewalldu koncept koristi Zone. Prema zadanim postavkama, u vatrozidu su dostupne različite zone, o kojima će se raspravljati u ovom članku.

Osnovne zone koje su poput javne zone i privatne zone. Kako bi stvari funkcionirale s tim zonama, moramo dodati sučelje s podrškom za navedene zone i tada možemo dodati usluge u vatrozid.

Prema zadanim postavkama, postoji mnogo dostupnih usluga, jedna od najboljih značajki firewallda je da dolazi s unaprijed definiranim uslugama i te usluge možemo uzeti kao primjer za dodavanje naših usluga jednostavnim kopiranjem.

Firewalld također odlično radi s IPv4, IPv6 i Ethernet mostovima. Možemo imati zasebno vrijeme izvođenja i stalnu konfiguraciju u firewalldu.

Počnimo s time kako raditi sa zonama i stvarati vlastite usluge i mnogo uzbudljivije korištenje vatrozida u Linuxu.

Operating System :	Red Hat Enterprise Linux release 9.0 (Plow)
IP Address       :	192.168.0.159
Host-name	:	tecmint-rhel9

Korak 1: Instalacija Firewallda u sustave temeljene na RHEL-u

1. Paket Firewalld instaliran je prema zadanim postavkama u RHEL, Fedora, Rocky Linux, CentOS Stream, AlmaLinux i openSUSE. Ako nije, možete ga instalirati pomoću sljedeće naredbe yum.

# yum install firewalld -y

2. Nakon što je paket firewalld instaliran, vrijeme je da provjerite radi li usluga iptables ili ne, ako je pokrenuta, trebate zaustaviti i maskirati (više ne koristiti) uslugu iptables pomoću naredbi u nastavku.

# systemctl status iptables
# systemctl stop iptables
# systemctl mask iptables

Korak 2: Razumijevanje komponenti vatrozida (zone i pravila)

3. Prije nego krenem na konfiguraciju vatrozida, želio bih razgovarati o svakoj zoni. Prema zadanim postavkama, dostupne su neke zone. Moramo dodijeliti sučelje zoni. Zona definira zonu koja je bila pouzdana ili odbijena razina sučelja za uspostavljanje veze. Zona može sadržavati usluge i luke.

Ovdje ćemo opisati svaku zonu dostupnu u Firewalldu.

  • Drop zona: Svi dolazni paketi se odbacuju ako koristimo drop zone. Ovo je isto što koristimo za dodavanje iptables -j drop. Ako koristimo pravilo ispuštanja, to znači da nema odgovora, bit će dostupne samo odlazne mrežne veze.
  • Zona blokiranja: Zona blokiranja će zabraniti dolazne mrežne veze koje su odbijene s icmp-host-prohibited. Bit će dopuštene samo uspostavljene veze unutar poslužitelja.
  • Javna zona: Za prihvaćanje odabranih veza možemo definirati pravila u javnoj zoni. Ovo će omogućiti samo otvaranje određenog priključka na našem poslužitelju, ostale veze će biti prekinute.
  • Vanjska zona: Ova zona će djelovati kao opcije usmjerivača s omogućenim maskiranjem, druge će veze biti ispuštene i neće prihvaćati, a samo će određene veze biti dopuštene.
  • DMZ zona: Ako trebamo dopustiti pristup nekim uslugama javnosti, možete to definirati u DMZ zoni. Ovo također ima značajku prihvaćanja samo odabranih dolaznih veza.
  • Radna zona: U ovoj zoni možemo definirati samo interne mreže, tj. dopušten je promet privatnim mrežama.
  • Kućna zona: Ova zona se posebno koristi u kućnim područjima, možemo koristiti ovu zonu kako bismo vjerovali drugim računalima na mreži da neće oštetiti vaše računalo kao u svakoj zoni. Ovo također dopušta samo odabrane dolazne veze.
  • Unutarnja zona: Ova je slična radnoj zoni s odabranim dopuštenim vezama.
  • Pouzdana zona: Ako postavimo pouzdanu zonu, sav promet je prihvaćen.

Sada imate bolju predodžbu o zonama, sada saznajmo dostupne zone i zadane zone i popišimo sve zone pomoću sljedećih naredbi.

# firewall-cmd --get-zones
# firewall-cmd --get-default-zone
# firewall-cmd --list-all-zones

Napomena: Izlaz gornje naredbe neće stati na jednu stranicu jer će navesti sve zone kao što su blok, dmz, drop, eksterna, kućna, interna, javna, pouzdana i radna. Ako zone imaju bilo kakva bogata pravila, omogućene usluge ili priključci također će biti navedeni s informacijama o tim zonama.

Korak 3: Postavljanje zadane zone vatrozida

4. Ako želite postaviti zadanu zonu kao unutarnju, vanjsku, zonu za odlaganje, radnu ili bilo koju drugu zonu, možete upotrijebiti naredbu u nastavku za postavljanje zadane zone. Ovdje koristimo unutarnju zonu kao zadanu.

# firewall-cmd --set-default-zone=internal

5. Nakon postavljanja zone, potvrdite zadanu zonu pomoću donje naredbe.

# firewall-cmd --get-default-zone

6. Ovdje je naše sučelje enp0s3. Ako trebamo provjeriti zonu u kojoj je ograničeno sučelje možemo upotrijebiti naredbu ispod.

# firewall-cmd --get-zone-of-interface=enp0s3

7. Još jedna zanimljiva značajka firewallda je 'icmptype' jedan od tipova icmp-a koje firewalld podržava. Za dobivanje popisa podržanih tipova icmp-a možemo upotrijebiti naredbu u nastavku.

# firewall-cmd --get-icmptypes

Korak 4: Stvaranje vlastitih usluga u Firewalldu

8. Usluge su skup pravila s portovima i opcijama koje koristi Firewalld. Usluge koje su omogućene automatski će se učitati kada se Firewalld usluga pokrene.

Prema zadanim postavkama, mnoge usluge su dostupne, da biste dobili popis svih dostupnih usluga, koristite sljedeću naredbu.

# firewall-cmd --get-services

9. Da biste dobili popis svih zadanih dostupnih usluga, idite na sljedeći direktorij, ovdje ćete dobiti popis usluga.

# cd /usr/lib/firewalld/services/

10. Da biste kreirali vlastitu uslugu, morate je definirati na sljedećoj lokaciji. Na primjer, ovdje želim dodati uslugu za RTMP port 1935, prvo napravite kopiju bilo koje od usluga.

# cd /etc/firewalld/services/
# cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/

Zatim idite na mjesto gdje je kopirana naša servisna datoteka, zatim preimenujte datoteku 'ssh.xml' u 'rtmp.xml' kao što je prikazano na slici ispod.

# cd /etc/firewalld/services/
# mv ssh.xml rtmp.xml
# ls -l rtmp.xml

11. Zatim otvorite i uredite datoteku kao Naslov, Opis, Protokol i Broj porta, koji trebamo koristiti za RTMP uslugu kao što je prikazano na slici ispod.

12. Da biste ove promjene aktivirali, ponovno pokrenite uslugu vatrozida ili ponovno učitajte postavke.

# firewall-cmd --reload

13. Da biste potvrdili je li usluga dodana ili ne, pokrenite donju naredbu da dobijete popis dostupnih usluga.

# firewall-cmd --get-services

Korak 5: Dodjeljivanje usluga zonama vatrozida

14. Ovdje ćemo vidjeti kako upravljati vatrozidom pomoću naredbe firewall-cmd. Da biste saznali trenutno stanje vatrozida i svih aktivnih zona, upišite sljedeću naredbu.

# firewall-cmd --state
# firewall-cmd --get-active-zones

15. Da biste dobili javnu zonu za sučelje enp0s3, ovo je zadano sučelje, koje je definirano u /etc/firewalld/firewalld.conf datoteci kao DefaultZone= javno.

Za popis svih dostupnih usluga u ovoj zadanoj zoni sučelja.

# firewall-cmd --get-service

Korak 6: Dodavanje usluga u zone vatrozida

16. U gornjim primjerima vidjeli smo kako kreirati vlastite usluge kreiranjem rtmp usluge, ovdje ćemo vidjeti kako dodati rtmp uslugu u zonu.

# firewall-cmd --add-service=rtmp

17. Za uklanjanje dodane zone upišite.

# firewall-cmd --zone=public --remove-service=rtmp

Gore navedeni korak bio je samo privremeni period. Da bismo ga učinili trajnim, moramo pokrenuti donju naredbu s opcijom –permanent.

# firewall-cmd --add-service=rtmp --permanent
# firewall-cmd --reload

18. Definirajte pravila za raspon mrežnog izvora i otvorite bilo koji od portova. Na primjer, ako želite otvoriti mrežni raspon, recite '192.168.0.0/24' i priključak '1935' koristite sljedeće naredbe.

# firewall-cmd --permanent --add-source=192.168.0.0/24
# firewall-cmd --permanent --add-port=1935/tcp

Obavezno ponovno učitajte uslugu vatrozida nakon dodavanja ili uklanjanja bilo koje usluge ili priključka.

# firewall-cmd --reload 
# firewall-cmd --list-all

Korak 7: Dodavanje Firewalld Rich Rules za mrežni raspon

19. Ako želim dopustiti usluge kao što su http, https, vnc-server i PostgreSQL, koristim sljedeća pravila. Prvo dodajte pravilo i učinite ga trajnim te ponovno učitajte pravila i provjerite status.

# firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="http" accept' 
# firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="http" accept' --permanent

# firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="https" accept'
# firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="https" accept' --permanent

# firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="vnc-server" accept'
# firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="vnc-server" accept' --permanent

# firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="postgresql" accept'
# firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="postgresql" accept' --permanent

Sada, raspon mreže 192.168.0.0/24 može koristiti gornju uslugu s mog poslužitelja. Opcija –trajno može se koristiti u svakom pravilu, ali moramo definirati pravilo i provjeriti pristup klijenta nakon toga ga moramo učiniti trajnim.

20. Nakon dodavanja gornjih pravila, ne zaboravite ponovno učitati pravila vatrozida i popis pravila pomoću:

# firewall-cmd --reload
# firewall-cmd --list-all

Da biste saznali više o Firewalldu.

# man firewalld

To je to, vidjeli smo kako postaviti net-filter pomoću Firewallda u distribucijama temeljenim na RHEL-u kao što su Fedora, Rocky Linux, CentOS Stream, AlmaLinux i openSUSE.

Net-filter je okvir za vatrozid za svaku distribuciju Linuxa. U svim izdanjima RHEL-a i CentOS-a koristili smo iptables, ali u novijim verzijama uveli su Firewalld. Lakše je razumjeti i koristiti vatrozid. Nadamo se da ste uživali u pisanju.