Oct 31, 2023

firewalld

Šta je firewalld

firewalld je dinamički firewall menadžer koji se koristi na mnogim Linux distribucijama kako bi se upravljalo sigurnosnim politikama i pravilima firewall-a. firewalld je dizajniran da bude jednostavan za upotrebu i omogućava korisnicima da konfigurišu firewall pravila za zaštitu sistema od neovlašćenog mrežnog saobraćaja.

Ovde su neke od glavnih karakteristika i funkcija firewalld-a:

  1. Dinamička rekonfiguracija: firewalld omogućava dinamičku promenu firewall pravila bez potrebe za ručnim ponovnim pokretanjem firewall-a. To znači da možete dodavati, izmenjivati i uklanjati pravila dok je firewall aktivan.

  2. Zone: firewalld koristi koncept zona kako bi organizovao sigurnosne politike. Svaka zona ima svoja pravila koja se primenjuju na mrežni saobraćaj koji prolazi kroz određeni mrežni interfejs. Primeri zona uključuju "Public" (Javna), "Internal" (Unutrašnja) i "DMZ" (Demilitarizovana zona).

  3. Servisi i portovi: Možete lako omogućiti ili onemogućiti određene servise i portove za mrežni saobraćaj u okviru firewalld-a. To omogućava preciznu kontrolu nad aplikacijama i uslugama koje su dostupne preko mreže.

  4. Rich Rules: firewalld podržava "Rich Rules" koje omogućavaju složenije uslove za filtriranje saobraćaja, uključujući specifične adrese, portove, protokole i mnoge druge faktore.

  5. CLI i GUI podrška: Možete konfigurisati firewalld putem komandne linije koristeći firewall-cmd, ali takođe mnoge Linux distribucije nude i grafičke korisničke interfejse (GUI) za konfiguraciju firewall-a.

  6. Integracija sa D-Bus: firewalld se integriše sa D-Bus sistemom, omogućavajući aplikacijama da lako komuniciraju sa firewall-om.

firewalld je postao popularan izbor za upravljanje firewall-om na Linux sistemu jer omogućava korisnicima da efikasno konfigurišu sigurnosne politike bez potrebe za naprednim znanjem o firewall-ima.

Instalacija Firewalld

Instalacija firewalld na Linux sistemu zavisi od distribucije koju koristite. Evo kako se može instalirati na nekoliko popularnih distribucija:

1. Za CentOS i RHEL (Red Hat Enterprise Linux):

Koristite yum za instalaciju:

sudo yum install firewalld

Zatim aktivirajte servis i postavite ga da se pokreće pri svakom pokretanju sistema:

sudo systemctl start firewalld sudo systemctl enable firewalld

2. Za Fedora:

Koristite dnf za instalaciju:

sudo dnf install firewalld

Aktivirajte servis i postavite ga da se pokreće pri svakom pokretanju sistema:

sudo systemctl start firewalld sudo systemctl enable firewalld

3. Za Ubuntu:

Na Ubuntu, firewalld nije standardno dostupan, već se umesto toga koristi ufw (Uncomplicated Firewall). Možete instalirati ufw i koristiti ga umesto firewalld. Ako ipak želite instalirati firewalld, možete to uraditi ovako:

sudo apt update sudo apt install firewalld

Aktivirajte servis i postavite ga da se pokreće pri svakom pokretanju sistema:

sudo systemctl start firewalld sudo systemctl enable firewalld

Nakon što instalirate firewalld, možete ga konfigurisati korišćenjem firewall-cmd komandi za postavljanje sigurnosnih pravila i zona prema vašim potrebama.

Napomena: Uvek budite pažljivi pri konfigurisanju firewall-a kako ne biste slučajno onemogućili neophodan mrežni saobraćaj. Preporučuje se da pravilno konfigurišete sigurnosne politike i zone u skladu sa potrebama vašeg sistema i mreže.

Konfiguracioni fajlovi

Konfiguracioni fajlovi za firewalld se obično nalaze u određenim direktorijumima na Linux sistemu. Ovi fajlovi se koriste za postavljanje globalnih opcija za firewalld, definisanje pravila za zone i druge konfiguracije. Evo glavnih direktorijuma i fajlova za konfiguraciju firewalld:

  1. Glavni direktorijum konfiguracije:

    • /etc/firewalld/: Ovaj direktorijum sadrži glavne konfiguracione fajlove za firewalld.
    • /etc/firewalld/firewalld.conf: Ovde se nalazi glavni konfiguracioni fajl za firewalld, u kojem možete postaviti globalne opcije za firewalld.
  2. Zone konfiguracioni fajlovi:

    • /etc/firewalld/zones/: Ovaj direktorijum sadrži fajlove za svaku pojedinačnu zonu koja se koristi u firewalld. Na primer, "public.xml" za zonu "Public".
    • Ovi fajlovi definiraju pravila i konfiguracije za svaku zonu. Ako želite prilagoditi pravila za određenu zonu, možete uređivati odgovarajući XML fajl u ovom direktorijumu.
  3. Custom servis fajlovi:

    • /etc/firewalld/services/: Ovaj direktorijum sadrži fajlove koji opisuju custom servise koje možete koristiti u firewalld pravilima.
    • Custom servis fajlovi su obično u XML formatu i definišu portove, protokole i druge karakteristike servisa.
  4. Druge konfiguracione datoteke:

    • /etc/sysconfig/: Ovaj direktorijum sadrži dodatne konfiguracijske datoteke koje utiču na način na koji firewalld radi. Na primer, /etc/sysconfig/firewalld sadrži dodatne globalne opcije za firewalld.

Nakon što izmenite bilo koji od ovih konfiguracionih fajlova, preporučuje se ponovno pokretanje firewalld servisa kako bi se promene primenile. To možete učiniti komandom systemctl restart firewalld na većini Linux distribucija.

firewall-cmd komande

1. Da biste prikazali sve definisane zone u firewalld, možete koristiti sledeću komandu:

sudo firewall-cmd --get-zones

Ovo će prikazati listu svih zona koje su trenutno dostupne na vašem sistemu. Na primer, možete očekivati da će se prikazati zone kao što su "public", "internal", "external", "dmz" i druge, u zavisnosti od vaše specifične konfiguracije firewall-a.

2. Da biste prikazali podrazumevanu zonu (default zone) u firewalld, koristite sledeću komandu

sudo firewall-cmd --get-default-zone

Ova komanda će prikazati koja zona je postavljena kao podrazumevana za sve mrežne interfejse na vašem sistemu.

3. Da biste prikazali aktivne zone na svim mrežnim interfejsima na vašem sistemu, koristite sledeću komandu:

sudo firewall-cmd --get-active-zones

Ova komanda će prikazati liste zona koje su trenutno aktivne na svim mrežnim interfejsima. Na primer, možete dobiti informacije o tome koje zone su dodeljene interfejsima kao što su "public," "internal," i druge.

4. Da biste prikazali konfiguraciju za određenu zonu, kao što je "public" zona, možete koristiti sledeću komandu:

sudo firewall-cmd --zone=public --list-all

Ova komanda će prikazati sve pravila, servise i opcije konfiguracije koji su postavljeni za "public" zonu na vašem sistemu. Možete zamijeniti "public" sa imenom druge zone ako želite pregledati konfiguraciju za drugu zonu.

5. Za prikaz konfiguracije svih zona koristite sledeću komandu:
sudo firewall-cmd --list-all-zones

Ova komanda će prikazati konfiguraciju svih definisanih zona na sistemu, uključujući pravila, servise i druge opcije konfiguracije za svaku zonu.

6. Da biste prikazali listu servisa za određenu zonu, možete koristiti sledeću komandu:
sudo firewall-cmd --zone=public --list-services

Ova komanda će prikazati sve servise (portove) koji su konfigurisani za odabranu zonu.

7. Da biste postavili podrazumevanu zonu na vašem sistemu, koristite sledeću komandu:
sudo firewall-cmd --set-default-zone=your_zone

Zamenite "your_zone" sa imenom zone koju želite postaviti kao podrazumevanu. Na primer, ako želite postaviti "public" zonu kao podrazumevanu, koristite:

sudo firewall-cmd --set-default-zone=public

Nakon izvršenja ove komande, "public" zona će postati podrazumevana za sve mrežne interfejse na vašem sistemu.

8. Da biste ponovo učitali pravila firewall-a na Linux sistemu koristeći firewall-cmd, koristite sledeću komandu:

sudo firewall-cmd --reload

Ova komanda će primeniti sve promene u konfiguraciji firewall-a bez potrebe za ponovnim pokretanjem samog firewall servisa. Pravila će biti odmah ažurirana i primenjena na vašem sistemu.

9. Da biste dodali servis (port) određenoj zoni na vašem sistemu, koristite sledeću komandu:

sudo firewall-cmd --zone=internal --add-service=http

Ova komanda će dodati servis "http" u odabranu zonu i omogućiti saobraćaj na portu 80 za tu zonu.x

10. Da biste dodali port (servis) public zoni na vašem sistemu, koristite sledeću komandu:

sudo firewall-cmd --zone=public --add-port=8080/tcp

Ova komanda će dodati port 8080 u public zonu i omogućiti saobraćaj na tom portu za tu zonu.

11. Da biste trajno sačuvali pravila koja dodate u firewall-cmd, koristite opciju --permanent zajedno sa komandama za dodavanje pravila. Na primer, ako želite trajno sačuvati pravilo za dodavanje servisa u zonu, koristite sledeću komandu:
sudo firewall-cmd --zone=your_zone --add-service=your_service --permanent

Ova komanda će dodati servis u odabranu zonu i sačuvati promene kao trajne, što znači da će se ta pravila očuvati i nakon ponovnog pokretanja sistema ili firewall servisa.

Obratite pažnju na upotrebu opcije --permanent kada želite sačuvati pravila, kako biste bili sigurni da će vaše konfiguracije ostati nepromenjene čak i nakon ponovnog pokretanja sistema.

12. Da biste trajno sačuvali promene iz runtime konfiguracije (konfiguracije koja se primenjuje tokom trenutnog sesije) u permanentnu konfiguraciju (koja će opstati i nakon ponovnog pokretanja sistema), koristite sledeću komandu:

sudo firewall-cmd --runtime-to-permanent

Ova komanda će kopirati sve promene iz runtime konfiguracije u permanentnu konfiguraciju i sačuvati ih. Ovo je korisno kada želite da zadržite promene koje ste napravili tokom trenutne sesije i da ih očuvate kao trajne, tako da će ostati i nakon ponovnog pokretanja sistema ili firewall servisa.

13. Da biste dodali opciju timeout (vreme isteka) za određeni port u zoni, koristite sledeću komandu:

sudo firewall-cmd --zone=public --add-port=8080/tcp --timeout=3600

Ova komanda će dodati port 8080 sa vremenom isteka od jednog sata u public zonu. Nakon isteka vremena, pravilo će biti automatski uklonjeno iz zone.

14. Da biste obrisali određeni port iz odabrane zone, koristite sledeću komandu:

sudo firewall-cmd --zone=your_zone --remove-port=your_port/tcp

Zamenite "your_zone" sa imenom zone iz koje želite ukloniti port i "your_port" sa brojem porta koji želite ukloniti. Na primer, ako želite ukloniti port 8080 iz zone "internal," koristite:

sudo firewall-cmd --zone=internal --remove-port=8080/tcp

Ova komanda će ukloniti port 8080 iz odabrane zone na vašem sistemu.

No comments:

Post a Comment