Baza znanja Jednostavna uputstva za rad sa uslugom Profitserver
glavni Baza znanja Konfiguriranje zaštitnog zida na Linuxu

Konfiguriranje zaštitnog zida na Linuxu


Firewall na Linuxu igra vitalnu ulogu u osiguravanju računarskog sistema. Djeluje kao barijera, kontrolira i filtrira mrežni promet kako bi zaštitio sistem od neovlaštenog pristupa, napada i drugih prijetnji. Bez pravilno konfigurisanog zaštitnog zida, server bi mogao biti ranjiv na različite vrste sajber napada, što dovodi do ozbiljnih posljedica po sigurnost i povjerljivost podataka.

U ovom članku ćemo pogledati dva glavna alata za konfigurisanje Linux zaštitnog zida (Firewall): firewalld i iptables. Provest ćemo komparativnu analizu njihovih karakteristika, funkcionalnosti i prednosti. Osim toga, pružit ćemo detaljna uputstva za postavljanje i korištenje svakog od ovih alata, kao i razgovarati o najboljim praksama za zaštitu vašeg sistema pomoću zaštitnog zida (Firewall) na Linux platformi. Sve radnje će biti demonstrirane na virtuelnom serveru s root pristupom.

Konfiguriranje firewalld-a na Linuxu

Firewalld (Firewall Daemon) je program za upravljanje zaštitnim zidom (firewall) u Linux operativnim sistemima. Pruža korisnički interfejs za konfigurisanje pravila zaštitnog zida (firewall), dozvoljavanje ili blokiranje veza mrežnih aplikacija. Prethodno je instaliran u većini serverskih distribucija. Ako Firewalld nije unaprijed instaliran, može se instalirati nezavisno iz službenih repozitorija distribucije.

Za Red Hat sisteme (kao što su RHEL, CentOS, Fedora) instalacija se izvodi naredbom:

yum install firewalld

Za Debian/Ubuntu:

apt-get install firewalld

Nakon instalacije, može se odmah pokrenuti i aktivirati naredbom:

systemctl start firewalld

Zatim morate dodati servis za pokretanje:

systemctl enable firewalld
Dodavanje firewalld-a u Linux automatsko učitavanje

U ovom trenutku preporučujemo da onemogućite ufw, jer se ne preporučuje istovremena upotreba ovog alata sa firewalld ili iptables. Provjerite status:

systemctl status ufw
Provjeravam ufw linux

Da ga zaustavite, unesite naredbu:

systemctl stop ufw

Za potpunu deaktivaciju:

ufw disable

Nakon ovih radnji, možete nastaviti s konfiguracijom firewalld-a.

Prvo, potrebno je definirati zone povjerenja. Firewalld koristi koncept zona za određivanje nivoa povjerenja za mrežna sučelja. Svakom interfejsu je dodeljena jedna zona, a pravila zaštitnog zida se primenjuju na osnovu zone. Lista svih dostupnih zona otvara se naredbom:

firewall-cmd --get-zones

Obično se koriste 4 glavne zone:

  1. Javni: Ova zona je za mreže koje smatrate nesigurnima;
  2. privatan: Odnosi se na kućne mreže ili druge pouzdane mrežne veze;
  3. interni: Koristi se za interne mreže, kao što su one unutar organizacije ili korporativne mreže;
  4. DMZ: Ova zona je mjesto gdje se obično postavljaju serveri koji bi trebali biti dostupni sa interneta.

Međutim, ovo je samo jedan primjer. Možete dodati svoju zonu koristeći naredbu:

firewall-cmd --permanent --new-zone=nameyourzone

Nakon dodavanja, potrebno je ponovno učitavanje:

firewall-cmd --reload

Za brisanje zone koristi se slična metoda

firewall-cmd --permanent --delete-zone=nameyourzone

Nakon definiranja zona, potrebno je omogućiti promet za potrebne servise i luke. Da biste dozvolili određenu uslugu, koristite naredbu:

firewall-cmd --zone=public --add-service=name

Gdje je name naziv servisa. Na primjer, da biste dozvolili promet za Apache:

firewall-cmd --zone=public --add-service=http

Za definiranje dozvoljenih portova koristite naredbu:

firewall-cmd --zone=public --add-port=number/protocol

Na primjer, standardni 22 port za SSH bi izgledao ovako:

firewall-cmd --zone=public --add-port=22/tcp

U ovoj fazi, glavna pravila su već kreirana. Zatim, odredite kako će se promet obrađivati ​​ovisno o izvoru, odredištu, portu i drugim kriterijima. Da biste dodali pravilo (koristeći javnu zonu kao primjer):

firewall-cmd --zone=public rule

Na primjer, da dozvolite dolazni promet iz bilo kojeg izvora na port 80 (HTTP):

firewall-cmd --zone=public --add-port=80/tcp --permanent

Da biste uklonili pravilo:

firewall-cmd --permanent --remove-rule=rule_specification

Gdje je pravilo tip pravila (npr. port, usluga, bogato pravilo, itd.), a specifikacija_pravila je specifikacija samog pravila.

Nakon što izvršite promjene u konfiguraciji Firewalld-a, potrebno ih je sačuvati i primijeniti. Za spremanje promjena koristite naredbu:

firewall-cmd --runtime-to-permanent

Za primjenu promjena:

firewall-cmd --reload

Po završetku podešavanja, možete provjeriti odabrane parametre otvaranjem liste svih pravila:

firewall-cmd --list-all
firewalld Linux pravila

Ako dođe do bilo kakvih problema, provjerite Firewalld dnevnike naredbom:

journalctl -u firewalld

Napomena: Obradili smo samo opći algoritam za postavljanje veze. Alat ima široku funkcionalnost. Za potpune informacije o svim dostupnim opcijama možete koristiti službenu dokumentaciju ili otvoriti pomoć:

firewall-cmd --help

Konfiguriranje iptablesa na Linuxu

Za razliku od Firewalla, iptables je stariji, ali još uvijek široko korišten alat u Linuxu za upravljanje firewall-om. Pruža direktniji i fleksibilniji pristup pravilima filtriranja paketa na nivou jezgre Linuxa. Međutim, iptables zahtijeva naprednije znanje i iskustvo u odnosu na Firewalld, što ga čini manje dostupnim za početnike. Provjerite unaprijed instaliranu verziju alata naredbom:

iptables -V

Ako alat nije instaliran, morat će se instalirati. Naredba za instalaciju na Ubuntu, Debian:

apt install iptables

Za Red Hat sisteme (npr. CentOS, Fedora):

yum install iptables

Naredba za aktivaciju nakon instalacije:

systemctl start iptables

Za dodavanje u pokretanje, izvršite:

systemctl enable iptables

Prije nego što započnete konfiguraciju iptables, važno je razumjeti kako ona funkcionira. Tome pomaže sintaksa programa. To izgleda ovako:

iptables -t table action chain additional_parameters

Udubimo se dublje u svaku stavku.

Iptables ima četiri glavne tabele: filter, nat, mangle i raw . Svaka je dizajnirana za obradu određenih tipova paketa i ima svoje vlastite lance pravila:

  1. Filter: Ovo je najčešće korištena tabela koja sadrži pravila filtriranja paketa. Koristi se za donošenje odluka o tome da li dozvoliti ili odbiti pakete.
  2. nat: Ova tabela se koristi za modifikaciju mrežnih adresa i portova u paketima. Često se koristi za postavljanje maskiranja (NAT).
  3. mangle: U ovoj tabeli možete mijenjati zaglavlja paketa. Koristi se za specijalizirane paketne operacije, kao što je označavanje.
  4. sirov: Ova tabela se koristi za konfiguriranje pravila koja se primjenjuju prije nego što prođu kroz sistem za praćenje veze. Obično se koristi za postavljanje pravila koja sistem za praćenje ne bi trebao mijenjati, kao što je ispuštanje paketa sa određenih adresa.

Svaka tabela sadrži skup lanaca. Lanci su niz pravila koja se provjeravaju uzastopno. Postoje tri unapred definisana lanca:

  1. INPUT (dolazni). Pravila u ovom lancu određuju šta treba raditi sa dolaznim paketima.
  2. IZLAZ (odlazni). Ovaj lanac se odnosi na sve pakete koje vaš računar šalje drugim uređajima ili računarima na mreži.
  3. FORWARD (prosljeđivanje). Pravila u ovom lancu određuju šta treba raditi sa proslijeđenim paketima.

Konačno, svaki lanac posjeduje neku akciju (cilj). U praksi se koristi 5 glavnih radnji:

  1. ACCEPT: Dozvolite paketu da prođe kroz zaštitni zid.
  2. DROP: Odbacite paket i odbacite ga bez ikakvog odgovora.
  3. ODBITI: Odbijte paket i pošaljite pošiljaocu ICMP poruku o grešci.
  4. LOG: Zabilježite paket u sistemski dnevnik i izvršite drugu radnju (npr. PRIHVATI ili ODBACI).
  5. POVRATAK: Zaustavite provjeru pravila u trenutnom lancu i vratite se u lanac pozivanja (ako je primjenjivo).

Da započnete instalaciju, otvorite listu postojećih pravila naredbom:

iptables -L
Konfiguriranje zaštitnog zida na Linuxu

Kao vodič za konfiguriranje Iptables, pogledajmo praktične primjere najčešće korištenih naredbi. Radi praktičnosti, podijelit ćemo primjere u 3 grupe, ovisno o specifičnom lancu.

Lančani ulaz :

  1. Dozvolite dolazni saobraćaj preko TCP protokola na portu 80:
iptables -A INPUT -p tcp --dport 80 -j ACCEPT

2. Dozvolite dolazni promet putem UDP protokola na portu 22:

iptables -A INPUT -p udp --dport 22 -j ACCEPT

3. Blokirajte dolazni saobraćaj sa određene IP adrese:

iptables -A INPUT -s 192.168.1.100 -j DROP

IZLAZ LANCA :

  1. Dozvolite odlazni promet preko TCP protokola na portu 443:
iptables -A OUTPUT -p tcp --dport 443 -j ACCEPT

2. Dozvolite odlazni promet putem UDP protokola na portu 80:

iptables -A OUTPUT -p udp --dport 80 -j ACCEPT

3. Blokirajte odlazni promet na određeni port (na primjer, 21):

iptables -A OUTPUT -p tcp --dport 21 -j DROP

Lanac NAPRIJED :

  1. Blokirajte proslijeđeni promet sa određenog raspona IP adresa:
iptables -A FORWARD -s 172.16.0.0/24 -j DROP

2. Blokirajte prosljeđivanje paketa sa određenog mrežnog sučelja:

iptables -A FORWARD -i eth1 -j DROP

3. Ograničite broj istovremenih veza za određeni port (u ovom primjeru, 10 veza u minuti na portu 80):

iptables -A INPUT -p tcp --dport 80 -m limit --limit 10/minute -j ACCEPT

Kao što vidite, u svakom posebnom slučaju koristi se dodatni argument (naredba). Da biste dobili potpunu listu mogućih argumenata i cjelokupnu podršku za funkcionalnost alata, unesite:

iptables -h
lista komandi iptables linux setup

Da biste bili sigurni da su postavke ispravne, ponovo unesite naredbu da vidite listu pravila:

iptables -L
Provjera iptables linux pravila

Za brisanje određenog pravila koristite naredbu:

iptables -D chain rule_number

Na primjer, ako želite izbrisati pravilo broj 1 iz INPUT lanca, naredba će izgledati ovako:

iptables -D INPUT 1

Da obrišete sva pravila jednom komandom:

iptables -F

Važna napomena : iptables pravila se ne spremaju automatski nakon ponovnog pokretanja sistema ili servisa. Da biste sačuvali pravila, potrebno ih je dodati u konfiguracijsku datoteku i vratiti nakon ponovnog pokretanja. Uslužni programi iptables-save i iptables-restore mogu vam pomoći u tome. Da biste sačuvali pravila, unesite naredbu:

iptables-save > /etc/iptables/rules.v4

Ovo sprema trenutna iptables pravila u datoteci rules.v4. Za vraćanje nakon ponovnog pokretanja, unesite:

iptables-restore < /etc/iptables/rules.v4

Ova komanda vraća pravila iz datoteke rules.v4.

zaključak

Konfiguriranje Firewall-a na Linux-u pomoću firewalld-a ili iptables-a važan je aspekt osiguravanja sigurnosti servera. Oba alata nude pouzdana sredstva za upravljanje mrežnim prometom i zaštitu sistema od neovlaštenog pristupa i sajber napada. Izbor između firewalld i iptables ovisi o specifičnim potrebama i preferencijama korisnika, s obzirom na njihovu različitu funkcionalnost i snagu.

❮ Prethodni članak Dijagnostika opterećenja servera
Sljedeći članak ❯ Korisnici Linuxa: upravljanje i dozvole

Pitajte nas za VPS

Uvek smo spremni da odgovorimo na vaša pitanja u bilo koje doba dana i noći.