Jedan vatrozid je jedna od ključnih komponenti osiguravanja sustava. Odgovoran je za upravljanje dolaznim i odlaznim vezama preko mreže. To je primarna linija obrane za vaše poslužitelje i podatke. Zbog toga je od iznimne važnosti imati dobro konfiguriran vatrozid. U ovom vodiču, provest ćemo vas kroz korake postavljanja vatrozida s UFW-om na Ubuntu 18.04.
UFW na Ubuntuu
Pojam UFW označava „Uncomplicated Firewall” (jednostavan vatrozid). To je zadani program vatrozida koji dolazi unaprijed instaliran s Ubuntuom. UFW je zapravo sučelje za iptables. Cilj UFW-a je olakšati konfiguriranje i upravljanje vatrozidom. Iako je iptables sam po sebi solidna i fleksibilna opcija, nije pristupačan početnicima. UFW olakšava rad i početnicima i iskusnim korisnicima.
Najprije pogledajte naš sveobuhvatni vodič koji će vam pomoći da se upoznate s osnovnim funkcijama UFW-a. Također možete pratiti ovaj vodič za instalaciju vašeg Ubuntu poslužitelja. Sada, krenimo!
Za početak, ako iz nekog razloga vaš UFW nije instaliran, instalirajte ga odmah:
|
1 |
$ sudo apt install ufw |
Konfiguriranje UFW-a
-
Korištenje IPv6
Za sada je IPv4 još uvijek dominantna sila. Imajući to na umu, većina ovog vodiča također prikazuje IPv4. Srećom, UFW također dolazi s podrškom za IPv6. Sve što trebate učiniti je omogućiti tu značajku u konfiguracijskoj datoteci UFW-a.
Najprije otvorite konfiguracijaciju datoteku UFW-a u uređivaču teksta. Da biste spremili promjene, uređivač teksta mora se pokrenuti s privilegijom sudo:
|
1 |
$ sudo vim /etc/default/ufw |
Potražite „IPV6” i provjerite je li postavljen na „yes”.
-
Zadano pravilo
Ako vam je ovo prvi put da radite s vatrozidom, preporučuje se da najprije definirate zadana pravila. Ova pravila određuju kako se kontrolira promet koji ne odgovara nijednom izričitom pravilu. Prema zadanim postavkama, UFW je konfiguriran da odbija sve dolazne veze, ali dopušta sve odlazne veze. To definira da nitko ne može doći do poslužitelja dok aplikacija koja se izvodi na poslužitelju može doći do vanjskog svijeta.
Sljedeće naredbe samo će ponovno definirati zadano ponašanje UFW-a. Imajte na umu da će to promijeniti ponašanje UFW-a ako je prethodno bilo modificirano:
|
1 2 |
$ sudo ufw default deny incoming $ sudo ufw default allow outgoing |
Za osobno računalo, sama ova pravila vatrozida bila bi dovoljna. Međutim, poslužitelji zahtijevaju više kako bi se ispravno pojačala njihova sigurnost.
Dopuštanje SSH veza
Način na koji je UFW sada konfiguriran odbit će sve dolazne veze. Za udaljeni poslužitelj to ne dolazi u obzir. Bez pristupa poslužitelju ništa se ne može učiniti. Kako bi se izbjegao ovaj problem, UFW se može konfigurirati da dopušta dolazne SSH ili HTTP veze.
Da biste dopustili SSH veze s poslužiteljem, pokrenite sljedeću naredbu. Ona će u biti reći UFW-u da dopusti sve veze na priključku 22. To je priključak koji SSH demon sluša prema zadanim postavkama:
|
1 |
$ sudo ufw allow ssh |
Umjesto ove naredbe, moguće je izravno konfigurirati dopuštanje veza na priključak 22. Ovaj priključak je definiran u /etc/services datoteci:
|
1 |
$ sudo ufw allow 22 |
Budući da je priključak 22 zadani za SSH demon, također može biti podložan napadima. Što ako je SSH poslužitelj konfiguriran da sluša na drugom priključku? U takvoj situaciji, UFW must dopustiti vezu s tim priključkom. Pod pretpostavkom da SSH poslužitelj sluša na priključku 1234, tada upotrijebite sljedeću naredbu:
|
1 |
$ sudo ufw allow 1234 |
Omogućivanje UFW-a
Iako su pravila UFW-a uspostavljena, ona neće učiniti ništa osim ako se UFW ne aktivira. Prema zadanim postavkama, UFW je onemogućen, što znači da unatoč deklariranju pravila, on ih neće provoditi. Da biste omogućili UFW, pokrenite sljedeću naredbu:
|
1 |
$ sudo ufw enable |
UFW može prikazati poruku upozorenja o prekidu postojećih SSH veza. Budući da su SSH veze konfigurirane da budu dopuštene, omogućivanje UFW-a neće uzrokovati nikakve smetnje. Da biste vidjeli koja su pravila postavljena, pokrenite sljedeću naredbu:
|
1 |
$ sudo ufw status verbose |
Dopuštanje raznih veza
U ovom trenutku, UFW bi trebao biti opremljen drugim pravilima kako bi se osiguralo stabilno iskustvo. Veze koje treba dopustiti ovise o vašim specifičnim potrebama. Već je prikazano kako reći UFW-u da dopusti veze na temelju naziva usluge ili broja porta.
Evo još nekih portova koje je vrlo uobičajeno imati otvorene:
- SSH (
port 22): Ovo je zadani port konfiguriran za SSH veze. - HTTP (
port 80): Ovo je zadani port koji koriste nešifrirani web poslužitelji. - HTTPS (
port 443): Ovo je zadani port koji koriste šifrirani web poslužitelji.
Za omogućavanje SSH veza, pokrenite jednu od sljedećih naredbi:
|
1 2 |
$ sudo ufw allow ssh $ sudo ufw allow 22 |
Zatim, za omogućavanje HTTP veza, pokrenite jednu od sljedećih naredbi:
|
1 2 |
$ sudo ufw allow http $ sudo ufw allow 80 |
Za omogućavanje HTTPS veza, pokrenite jednu od sljedećih naredbi:
|
1 2 |
$ sudo ufw allow https $ sudo ufw allow 443 |
Port Range
Do sada smo prikazali kako dopustiti određeni port. Što ako postoji potreba za rasponom portova? Deklariranje svakog porta u UFW-u prilično je neučinkovito. Neke aplikacije koriste više portova. Srećom, UFW omogućuje deklariranje raspona portova. Da biste to učinili, koristite sljedeću strukturu naredbe:
|
1 |
$ sudo ufw allow <start>:<end>/<protocol> |
Sljedeći primjer omogućuje X11 veze koje koriste portove 6000 do 6007:
|
1 2 |
$ sudo ufw allow 6000:6007/tcp $ sudo ufw allow 6000:6007/udp |
Preporučuje se deklariranje protokola kad god je to moguće. Međutim, u većini slučajeva to nije potrebno i sve će raditi sasvim u redu.
Specifične IP adrese
Kada koristite UFW, također je moguće filtrirati veze prema specifičnim IP adresama. Prema zadanim postavkama, UFW će blokirati veze s bilo koje IP adrese. Moguće je deklarirati dopuštanje veze s određenih IP adresa. Da biste dopustili vezu s IP adrese, koristite sljedeću strukturu naredbe:
|
1 |
$ sudo ufw allow from <ip_address> |
Također možete deklarirati specifične portove na koje se IP adresa smije povezati. Da biste to učinili, dodajte to any port praćeno brojem porta u naredbi:
|
1 |
$ sudo ufw allow from <ip_address> to any port <port> |
Podmreže
Ako imate potrebu dopustiti podmrežu IP adresa, to je moguće učiniti pomoću CIDR notacije. U ovom primjeru, UFW će dopustiti vezu s IP adresa u rasponu od 203.0.113.1 do 203.0.113.254:
|
1 |
$ sudo ufw allow from 203.0.113.0/24 |
Slično prethodnom koraku, također je moguće odrediti port na koji se ove IP adrese mogu povezati:
|
1 |
$ sudo ufw allow from 203.0.113.0/24 to any port <port> |
Povezivanje na specifično mrežno sučelje
U poslužiteljskom okruženju može postojati više mrežnih sučelja povezanih sa sustavom. Koristeći UFW, moguće je opisati da se određeno pravilo odnosi samo na specifično mrežno sučelje. Prvo provjerite sva mrežna sučelja povezana s poslužiteljem. Naziv ciljnog mrežnog sučelja je u primarnom fokusu:
|
1 |
$ ip addr |
U našem slučaju postoji samo jedno mrežno sučelje ens3 koje se povezuje na javni internet. Da biste dopustili dolazne veze s ovog mrežnog sučelja, koristite sljedeću strukturu naredbe:
|
1 |
$ sudo ufw allow in on <network_interface> |
Također je moguće definirati port do kojeg promet može doći dolazeći s mrežnog sučelja:
|
1 |
$ sudo ufw allow in on <network_interface> to any port <port> |
Odbijanje veze
Prema zadanoj konfiguraciji, UFW će odbiti vezu iz bilo kojeg izvora (osim deklariranih iznimaka). Ovo je preporučeni način korištenja UFW-a. Međutim, možda će biti potrebno blokirati određene veze s određene izvorne IP adrese ili podmreže. Možda je zadano ponašanje UFW-a postavljeno da dopušta sve veze (nije preporučeno).
Za odbijanje veze s određenih IP adresa, UFW zahtijeva pravila odbijanja. Pisanje pravila odbijanja prilično je jednostavno. Uzmite bilo koje pravilo dopuštanja, zamijenite izraz „allow” s „deny” i voila! Postaje pravilo odbijanja.
Pogledajte sljedeći primjer. Za odbijanje bilo koje HTTP veze, upotrijebite sljedeće pravilo odbijanja:
|
1 2 |
$ sudo ufw deny http $ sudo ufw deny 80 |
Za odbijanje veze s 203.0.113.1, upotrijebite sljedeće pravilo odbijanja:
|
1 |
$ sudo ufw deny from 203.0.113.1 |
Brisanje pravila
Sve što smo do sada naučili je kako stvoriti pravila. Baš kao što se pravila stvaraju, mogu se i obrisati. U slučaju UFW-a, postoje dva specifična načina brisanja pravila.
-
Brisanje pravila prema broju pravila
Ovo je najjednostavniji način brisanja UFW pravila. Svako pravilo u UFW-u ima broj pravila. Sljedeća naredba ispisat će sva UFW pravila zajedno s brojem pravila:
|
1 |
$ sudo ufw status numbered |
Sljedeća naredba obrisat će pravilo specificirano brojem pravila:
|
1 |
$ sudo ufw delete <rule_number> |
-
Brisanje pravila prema stvarnom pravilu
Ovo je teža metoda brisanja pravila. Zahtijeva ručno navođenje stvarnog pravila za njegovo brisanje. U sljedećem primjeru, UFW će obrisati pravilo specificirano s allow http:
|
1 |
$ sudo ufw delete allow http |
Pravilo je također moglo biti specificirano s allow 80. U tom slučaju, sljedeća naredba će ga obrisati:
|
1 |
$ sudo ufw delete allow 80 |
Brisanjem pravila ono će se obrisati i za IPv4 i za IPv6.
Provjera statusa i pravila UFW-a
Bitno je osigurati je li UFW aktivan ili ne. Da biste utvrdili status UFW-a, pokrenite sljedeću naredbu:
|
1 |
$ sudo ufw status verbose |
Ako je status „inactive”, aktivirajte ga prateći korak Omogućavanje UFW-a iznad. Ako je aktivan, UFW će prijaviti status „active” i izlistati sva aktivna pravila.
Onemogućavanje UFW-a
Ako iz nekog razloga nećete koristiti UFW, onemogućite ga pomoću sljedeće naredbe:
|
1 |
$ sudo ufw disable |
Ako je UFW onemogućen, sva stvorena pravila više nisu aktivna. Međutim, pravila se ne brišu. Kada se UFW ponovno aktivira, sva će pravila ponovno postati aktivna. Što ako je trenutna konfiguracija UFW-a u neredu? Umjesto brisanja pravila, moguće ih je obrisati sve jednom naredbom. Za resetiranje UFW-a pokrenite sljedeću naredbu:
|
1 |
$ sudo ufw reset |
Imajte na umu da to neće promijeniti zadano ponašanje UFW-a koje je konfigurirano na početku.
Zaključak
Ispravna konfiguracija vatrozida nužna je za osiguranje sigurnosti i funkcionalnosti. Trebao bi biti konfiguriran tako da dopušta samo potrebne dolazne veze, dok ograničava nepotrebne veze.
Ako se želite upoznati s više rješenja za vatrozid, pogledajte naš blog za dodatne resurse:
- Postavljanje vatrozida s FirewallD-om na CentOS-u 7
- Izlistavanje i brisanje Iptables pravila vatrozida
- Kako izgraditi robusne sigurnosne mjere za zaštitu vaših poslužitelja
Ugodan rad na računalu!











Komentari
Još nema komentara. Budite prvi.