ufw firewall: zatvori šta nije potrebno
Kako da podesiš ufw za pet minuta: dozvoli potrebne portove, zatvori ostale, ograniči pristup po adresi i izbegni da prekineš sopstveni SSH.
Ažurirano 23. avgust 2026.
Na svežoj mašini sve što sluša na mreži je otvoreno. Neke servise si instalirao namerno, neki su došli uz pakete. Firewall ovo rešava u jednom potezu: sve je zabranjeno osim onoga što navedeš.
ufw je jednostavan omotač oko kernelskih pravila. Dovoljan je u velikoj većini slučajeva; složenije konfiguracije pokrivene su u članku o nftables.
Osnovno podešavanje
apt install -y ufw
ufw default deny incoming
ufw default allow outgoing
ufw allow 22/tcp
ufw enable
ufw status verbose
Redosled je ovde važan: SSH pravilo se dodaje pre uključivanja. U suprotnom će ufw enable prekinuti tvoju vezu, pa ćeš morati da se vratiš preko konzole u panelu /hosting/vds/m/<id> ili preko rescue moda.
Konzola u panelu radi nezavisno od mreže, tako da ne možeš potpuno da se zaključaš — ali to košta vremena.
Uobičajena pravila
ufw allow 80/tcp
ufw allow 443/tcp
ufw allow from 203.0.113.5 to any port 22 proto tcp
ufw limit 22/tcp
ufw delete allow 80/tcp
ufw status numbered
ufw delete 3
ufw limit usporava svakoga ko otvori više od šest veza u 30 sekundi — jeftina zaštita od brute-force napada na lozinku. Prefinjeniji alat za isti posao je fail2ban.
Pravilo allow from korisno je za servise koji ne treba da budu javni: baze podataka, admin paneli, izvoznici metrika.
ufw allow from 203.0.113.5 to any port 5432 proto tcp
Provera rezultata
ufw status verbose
ss -tulpn
ss pokazuje šta sistem sluša, ufw status pokazuje šta je propušteno spolja. Razlika između lista su servisi koje si zatvorio, i to je u redu. Obrnuto je loše: port je otvoren u ufw, ali nema slušaoca.
Spolja proveravaj preko porta, ne preko pinga:
nc -vz <address> 443
Docker i ufw
Ako mašina pokreće Docker, imaj na umu: prosleđivanje portova kontejnera obavlja se u kernelskim lancima pre ufw pravila. Kontejner pokrenut sa -p 5432:5432 biće dostupan spolja čak i kada ufw status prikazuje deny. Takve portove veži za lokalni interfejs:
docker run -p 127.0.0.1:5432:5432 postgres
Uobičajene greške
| Greška | Posledica | Rešenje |
|---|---|---|
ufw enable bez SSH pravila | Gubitak mrežnog pristupa | Uđi preko konzole u panelu, ufw allow 22/tcp |
| Promenio si SSH port, ostavio staro pravilo | Isto | Prvo pravilo, pa onda port |
| Port je otvoren, servis ne odgovara | Servis sluša na 127.0.0.1 | Promeni bind adresu |
| Kontejner je dostupan uprkos deny | Docker zaobilazi ufw | Veži za 127.0.0.1 |
Pre nego što zatvoriš port, pokreni
ss -tulpni uveri se da razumeš šta sedi na njemu. Zatvoren port za monitoring kasnije izgleda kao „servis je pao".