
Ubuntu server qurduqdan sonra ən vacib ilk addımlardan biri şəbəkə girişini nəzarət altına almaqdır. Server internetə açıq olduqda lazım olmayan portların boş qalması, test xidmətlərinin unudulması və ya hər şeyə icazə verilməsi təhlükəsizlik riskini artırır. Məhz burada UFW, yəni Uncomplicated Firewall, sadə amma çox praktik bir həll kimi işə yarayır.
UFW, Linux nüvəsində işləyən firewall mexanizmini daha rahat idarə etmək üçün hazırlanmış alətdir. Yəni arxada daha güclü paket filtrləmə qaydaları işləyir, amma siz onları daha oxunaqlı əmrlərlə idarə edirsiniz. Bu səbəbdən UFW həm yeni başlayan sistem administratorları, həm də gündəlik server əməliyyatlarında sürətli və aydın qayda yazmaq istəyənlər üçün çox uyğundur.
Bu yazıda UFW-nin nə olduğunu sadə dillə izah edəcəyik, Ubuntu serverdə necə qurulduğunu addım-addım göstərəcəyik, SSH girişini kəsmədən firewall aktiv etmə qaydasını danışacağıq, port açma və bağlama nümunələri verəcəyik, həmçinin təhlükəsiz konfiqurasiya üçün praktik tövsiyələri paylaşacağıq.
UFW nədir?
UFW, Ubuntu və Debian tipli sistemlərdə firewall qaydalarını sadələşdirilmiş sintaksislə idarə etməyə imkan verən bir komanda xətti alətidir. Adı “qarışıq olmayan firewall” kimi başa düşülə bilər. Məqsədi odur ki, istifadəçi çox mürəkkəb aşağı səviyyəli firewall sintaksisinə girmədən ən vacib qaydaları rahat qura bilsin.
Praktik baxımdan UFW ilə siz bunları edə bilərsiniz:
- yalnız lazım olan portları açmaq
- digər bütün gələn bağlantıları bloklamaq
- SSH, HTTP, HTTPS kimi xidmətlər üçün hazır və aydın qaydalar yazmaq
- müəyyən IP ünvanlarına icazə vermək və ya blok qoymaq
- firewall statusunu və aktiv qaydaları izləmək
Yəni UFW server təhlükəsizliyinin yerini tam təkbaşına tutmur, amma çox vacib bir əsas qat yaradır. Xüsusilə VPS, cloud instance və ya yeni qurulan tətbiq serverlərində “əvvəlcə minimal açıq giriş” prinsipi üçün çox uyğundur.
Bu təlim kim üçündür?
- Ubuntu server quran yeni başlayanlar
- VPS və ya cloud serveri internetə açmadan əvvəl təhlükəsizlik bazasını qurmaq istəyənlər
- WordPress, Nginx, Apache, Node.js və ya digər tətbiqləri host edənlər
- SSH girişini qoruyaraq yalnız lazım olan portları açmaq istəyən sistem administratorları
Əsas məntiq: default deny, lazım olanı allow
Firewall qurarkən ən sağlam yanaşma budur: əvvəlcə gələn bağlantıları bağla, sonra həqiqətən lazım olan xidmətlərə ayrıca icazə ver. Buna çox vaxt “default deny” yanaşması deyilir. Məsələn, serverdə yalnız SSH, HTTP və HTTPS işləyəcəksə, o zaman əsas məntiq belə olmalıdır:
- 22 nömrəli port və ya istifadə etdiyiniz xüsusi SSH portu açıq olsun
- 80 və 443 portları açıq olsun
- digər bütün lazımsız girişlər bağlı qalsın
Bu yanaşma hücum səthini azaldır. Serverdə quraşdırdığınız amma istifadə etmədiyiniz bir xidmət təsadüfən internetə açıq qalsa belə, firewall onu xaricdən görünməz edə bilər.
Başlamazdan əvvəl vacib xəbərdarlıq
Əgər serverə uzaqdan SSH ilə qoşulmusunuzsa, firewall-u aktiv etməzdən əvvəl mütləq SSH qaydasını açın. Əks halda özünüzü serverdən kənarda qoya bilərsiniz. Bu, yeni başlayanların ən çox etdiyi səhvlərdən biridir.
Yəni qayda sadədir:
- əvvəl SSH üçün icazə verin
- sonra firewall-u aktiv edin
UFW quraşdırılıb-quraşdırılmadığını yoxlayın
Bir çox Ubuntu sistemində UFW mövcud olur, amma aktiv olmaya bilər. Yoxlamaq üçün bu əmrdən istifadə edin:
sudo ufw status
Əgər alət sistemdə yoxdursa, aşağıdakı əmrlə qura bilərsiniz:
sudo apt update
sudo apt install ufw -y
Quraşdırmadan sonra yenidən status yoxlaması edin. İlk mərhələdə çox vaxt belə bir nəticə görəcəksiniz:
Status: inactive
Bu normaldır. Deməli, qaydalar hələ tətbiq olunmayıb.
Default qaydaları təyin edin
Ən yaxşı başlanğıc budur ki, gələn trafiki bağlayasınız, çıxan trafiki isə açıq saxlayasınız. Serverlərin böyük hissəsində bu məntiqlidir, çünki server özü update çəkməli, paket quraşdırmalı, DNS sorğuları etməli və xaricə çıxış etməlidir.
sudo ufw default deny incoming
sudo ufw default allow outgoing
Bu iki əmr belə işləyir:
- deny incoming xaricdən gələn yeni bağlantıları standart olaraq bloklayır
- allow outgoing serverdən xaricə çıxan trafikə icazə verir
Bu, yaxşı təhlükəsizlik bazasıdır. Amma hələ SSH açılmayıbsa, firewall-u aktiv etməyə tələsməyin.
SSH üçün icazə verin
Əgər serverə standart SSH portu olan 22 üzərindən qoşulursunuzsa, bu əmrdən istifadə edin:
sudo ufw allow OpenSSH
Alternativ olaraq portu birbaşa da yaza bilərsiniz:
sudo ufw allow 22/tcp
Əgər SSH üçün fərqli port istifadə edirsinizsə, məsələn 2222, o halda uyğun portu açın:
sudo ufw allow 2222/tcp
Burada vacib məqam budur ki, real istifadə etdiyiniz port açılmadan firewall-u aktiv etməyin.
Web server portlarını açın
Əgər serverinizdə sayt, API və ya panel işləyirsə, çox vaxt HTTP və HTTPS portlarına da icazə vermək lazımdır:
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
Nginx və Apache üçün UFW-də bəzən hazır profil adları da olur. Məsələn:
sudo ufw app list
Əgər siyahıda Nginx Full və ya Apache Full kimi profillər görünürsə, belə də aça bilərsiniz:
sudo ufw allow 'Nginx Full'
Bu yanaşma 80 və 443 portlarını bir yerdə açır.
Firewall-u aktiv edin
İndi əsas qaydalar hazırdırsa, UFW-ni aktiv edə bilərsiniz:
sudo ufw enable
Sistem sizdən təsdiq istəyə bilər. Aktiv etdikdən sonra statusu ətraflı yoxlayın:
sudo ufw status verbose
Nəticədə təxminən belə bir görünüş görməlisiniz:
Status: active
Logging: on
Default: deny (incoming), allow (outgoing)
New profiles: skip
Və aşağıda icazə verilən portlar görünəcək.
Aktiv qaydaları oxumaq və anlamaq
Ən çox istifadə olunan yoxlama əmri budur:
sudo ufw status numbered
Bu əmr sizə qaydaları nömrə ilə göstərir. Bu isə sonradan müəyyən qaydanı silmək üçün rahatdır. Məsələn, belə bir çıxış görə bilərsiniz:
[ 1] OpenSSH ALLOW IN Anywhere
[ 2] 80/tcp ALLOW IN Anywhere
[ 3] 443/tcp ALLOW IN Anywhere
Bu o deməkdir ki, SSH, HTTP və HTTPS üçün xaricdən girişə icazə verilib.
Yeni port necə açılır?
Məsələn, tətbiqiniz 3000 portunda işləyirsə və onu birbaşa internetə açmaq istəyirsinizsə:
sudo ufw allow 3000/tcp
Amma burada bir məsləhət vacibdir: development portlarını internetə birbaşa açmaq həmişə yaxşı fikir deyil. Çox hallarda daha təhlükəsiz yanaşma odur ki, tətbiqi localhost-da saxlayasınız, qarşısına Nginx reverse proxy qoyasınız və yalnız 80/443 portlarını açıq saxlayasınız.
Müəyyən IP üçün icazə vermək
Bəzən admin panel, database portu və ya daxili xidmət bütün internetə açıq olmamalıdır. Məsələn, yalnız ofis IP-sindən 22 portuna giriş vermək istəyirsinizsə:
sudo ufw allow from 203.0.113.10 to any port 22 proto tcp
Bu qayda yalnız göstərilən IP-dən SSH girişinə icazə verir. Bu üsul xüsusilə admin panellər, xüsusi backend servis və məhdud erişim tələb edən portlar üçün çox faydalıdır.
Müəyyən IP-ni bloklamaq
Şübhəli və ya arzuolunmaz bir IP ünvanını bloklamaq istəsəniz:
sudo ufw deny from 198.51.100.25
Daha spesifik olmaq da mümkündür. Məsələn yalnız 22 portu üçün blok:
sudo ufw deny from 198.51.100.25 to any port 22 proto tcp
Qayda silmək necə olur?
Əgər səhv qayda yazmısınızsa və ya artıq lazım deyilsə, iki rahat üsul var.
1. Eyni sintaksislə delete:
sudo ufw delete allow 3000/tcp
2. Nömrə ilə delete:
sudo ufw status numbered
sudo ufw delete 4
Nömrə ilə silərkən diqqətli olun, çünki qayda sırası dəyişə bilər. Hər dəfə əvvəl statusu yenidən yoxlamaq yaxşıdır.
UFW log-ları və troubleshooting
Firewall aktivdir, amma tətbiq açılmırsa, bir neçə əsas ehtimal var:
- lazım olan port açılmayıb
- xidmət yalnız localhost üzərində dinləyir
- cloud provayder səviyyəsində ayrıca security group və ya network ACL var
- tətbiqin özü çökmüş və ya portda işləmir
Əvvəlcə dinləyən portları yoxlayın:
sudo ss -tulpn
Sonra UFW statusunu yenidən baxın:
sudo ufw status verbose
Log-ları izləmək üçün sistem jurnalından istifadə edə bilərsiniz:
sudo journalctl -xe
sudo dmesg | grep -i ufw
Əgər cloud server istifadə edirsinizsə, məsələn VPS paneli, AWS, Azure və ya başqa provayder, unutmayın ki, UFW yeganə filtr olmaya bilər. Yəni provayder səviyyəsində də port ayrıca açılmalı ola bilər.
Praktik təhlükəsizlik tövsiyələri
- SSH portunu açmadan UFW-ni aktiv etməyin
- ehtiyac olmayan portları açıq saxlamayın
- database portlarını bütün internetə açmaqdan qaçın
- admin panelləri mümkün olduqda yalnız müəyyən IP-lərə açın
- mütəmadi olaraq
sudo ufw status numberedilə qaydaları audit edin - UFW-ni Fail2Ban, güclü SSH konfiqurasiyası və sistem yeniləmələri ilə birlikdə düşünün
Yəni firewall yaxşıdır, amma təkbaşına bütün təhlükəsizlik strategiyası deyil. O, daha böyük təhlükəsizlik modelinin vacib hissəsidir.
Tipik nümunə konfiqurasiya
Sadə bir Ubuntu web server üçün ən çox görülən təhlükəsiz başlanğıc konfiqurasiyası belədir:
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
sudo ufw status verbose
Bu ssenaridə server yalnız SSH, HTTP və HTTPS üçün əlçatan olur. Digər portlar bağlı qalır.
UFW-ni söndürmək və yenidən yükləmək
Bəzən test və troubleshooting zamanı firewall-u müvəqqəti söndürmək lazım ola bilər:
sudo ufw disable
Qaydaları dəyişəndən sonra reload etmək istəsəniz:
sudo ufw reload
Amma praktik tövsiyə budur ki, production serverdə firewall-u səbəbsiz söndürməyin. Problemi qayda səviyyəsində həll etmək daha sağlam yanaşmadır.
UFW ilə bağlı ən çox edilən səhvlər
- SSH açılmadan firewall-u aktiv etmək
- application portlarını düşünmədən internetə açmaq
- UFW qaydasını yazıb, amma cloud firewall-u unutmaq
- port açıldığını zənn edib, xidmətin əslində həmin portda işləmədiyini nəzərə almamaq
- qayda əlavə etdikdən sonra statusu və real bağlantını test etməmək
Bu səhvlərin çoxu sadə audit və yoxlama addımları ilə qarşısı alına bilər.
Nəticə
UFW, Ubuntu server təhlükəsizliyi üçün çox praktik bir başlanğıc nöqtəsidir. O, mürəkkəb firewall idarəetməsini daha sadə əmrlərlə əlçatan edir və sizə serverdə hansı girişlərin açıq qalacağını aydın şəkildə nəzarətdə saxlamağa kömək edir. Xüsusilə VPS, cloud instance və hostinq mühitlərində minimal açıq port yanaşması üçün çox faydalıdır.
Ən doğru başlanğıc budur: əvvəlcə gələn trafiki standart olaraq bağlayın, sonra yalnız lazım olan portlara icazə verin, SSH qaydasını unutmayın və dəyişikliklərdən sonra real test aparın. Əgər bu yanaşmanı sistem yeniləmələri, SSH sərtləşdirilməsi və əlavə təhlükəsizlik alətləri ilə birləşdirsəniz, serveriniz daha təhlükəsiz və idarəolunan vəziyyətə gələcək.
Qısa xülasə
- UFW Ubuntu-da firewall qaydalarını sadə idarə etməyə kömək edir
- ən yaxşı başlanğıc yanaşması default deny incoming və allow outgoing modelidir
- firewall-u aktiv etməzdən əvvəl SSH portuna mütləq icazə verilməlidir
- HTTP və HTTPS kimi yalnız lazım olan portlar açıq saxlanmalıdır
- müəyyən IP-lərə xüsusi icazə və blok qaydaları yazmaq mümkündür
- UFW təhlükəsizlik üçün vacibdir, amma onu digər qoruma tədbirləri ilə birlikdə istifadə etmək lazımdır
Mənbə istiqaməti: UFW istifadəsi üçün Ubuntu sistem sənədləri və Linux firewall idarəetmə prinsiplərinə əsaslanan praktik əməliyyat yanaşmalarından faydalanılıb.