این راهنما به شما نشان میدهد چگونه UFW (Uncomplicated Firewall) را نصب و پیکربندی کنید؛ فایروالی ساده اما کارآمد برای لینوکس. UFW مدیریت قوانین فایروال را روی سرور VPS شما آسان میکند.
📋 پیشنیازها
- یک سرور VPS با دسترسی روت (root) یا sudo
- یک اتصال SSH فعال
- Ubuntu/Debian (فرمانها برای این توزیعها تطبیق داده شدهاند)
📥 نصب UFW
نصب روی Ubuntu/Debian
Bashsudo apt update sudo apt install ufw -y
بررسی نصب
Bash# Vérifier le statut d'UFW sudo ufw status
اگر UFW فعال نباشد، این پیام را میبینید: Status: inactive
⚙️ پیکربندی پایه
مهم: پیش از فعالسازی UFW، حتماً پورت SSH (22) را مجاز کنید، وگرنه دسترسی شما به سرور مسدود میشود.
تعیین قوانین پیشفرض
Bash# Tout bloquer en entrée, autoriser en sortie sudo ufw default deny incoming sudo ufw default allow outgoing
مجاز کردن اتصالهای ضروری
Bash# Autoriser SSH (PORT 22) - TRÈS IMPORTANT ! sudo ufw allow 22/tcp # Autoriser HTTP et HTTPS (si vous avez un serveur web) sudo ufw allow 80/tcp sudo ufw allow 443/tcp
فعالسازی UFW
Bash# Activer le pare-feu sudo ufw enable
هنگام پرسش، با y تأیید کنید.
🔧 قوانین پیشرفته
مجاز کردن یک پورت مشخص
Bash# Autoriser un port TCP sudo ufw allow 8080/tcp # Autoriser un port UDP sudo ufw allow 53/udp # Autoriser un port pour un protocole spécifique sudo ufw allow 3306/tcp # MySQL sudo ufw allow 5432/tcp # PostgreSQL
مجاز کردن یک IP مشخص
Bash# Autoriser toutes les connexions depuis une IP sudo ufw allow from 192.168.1.100 # Autoriser un port spécifique pour une IP sudo ufw allow from 192.168.1.100 to any port 22 # Autoriser une plage d'adresses IP sudo ufw allow from 10.0.0.0/8
مسدود کردن یک IP یا یک پورت
Bash# Bloquer une IP sudo ufw deny from 192.168.1.100 # Bloquer un port sudo ufw deny 3306/tcp
📊 مدیریت قوانین
فهرست کردن همه قوانین
Bash# Statut simple sudo ufw status # Statut détaillé avec numéros sudo ufw status numbered # Statut très verbeux sudo ufw status verbose
حذف یک قانون
Bash# Supprimer par numéro (trouvé avec status numbered) sudo ufw delete 3 # Supprimer par règle sudo ufw delete allow 8080/tcp
بازنشانی همه قوانین
Bashsudo ufw --force reset
توجه: این فرمان همه قوانین را حذف و UFW را غیرفعال میکند. با احتیاط از آن استفاده کنید!
🎯 نمونههای پیکربندی
پیکربندی برای یک سرور وب
Bashsudo ufw default deny incoming sudo ufw default allow outgoing sudo ufw allow ssh sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw enable
پیکربندی برای یک سرور پایگاه داده
Bashsudo ufw default deny incoming sudo ufw default allow outgoing sudo ufw allow ssh sudo ufw allow from 10.0.0.0/8 to any port 3306 sudo ufw enable
پیکربندی برای یک سرور بازی (مثلاً Minecraft)
Bashsudo ufw default deny incoming sudo ufw default allow outgoing sudo ufw allow ssh sudo ufw allow 25565/tcp # Port Minecraft sudo ufw enable
📝 بررسی و پایش
مشاهده لاگها
Bash# Voir les logs en temps réel sudo tail -f /var/log/ufw.log # Voir les dernières entrées sudo tail -n 50 /var/log/ufw.log
بررسی وضعیت تفصیلی
Bashsudo ufw status verbose
این فرمان این موارد را نمایش میدهد:
- وضعیت فایروال (فعال/غیرفعال)
- قوانین پیشفرض
- همه قوانین فعال
- رابطهای شبکه
🔄 غیرفعال کردن UFW (در صورت نیاز)
Bash# Désactiver temporairement sudo ufw disable # Réactiver sudo ufw enable
✅ بهترین روشها
-
همیشه پیش از فعالسازی، SSH را مجاز کنید: مطمئن شوید پورت SSH (22) پیش از فعال کردن فایروال مجاز شده است.
-
اصل حداقل دسترسی: فقط پورتها و IPهای لازم برای سرویسهای خود را مجاز کنید.
-
قوانین خود را آزمایش کنید: پیش از قطع اتصال، آزمایش کنید که همهچیز درست کار میکند.
-
لاگها را پایش کنید: لاگها را مرتب بررسی کنید تا تلاشهای نفوذ را تشخیص دهید.
-
از fail2ban استفاده کنید: UFW را با fail2ban ترکیب کنید تا در برابر حملات brute force حفاظت قویتری داشته باشید.
🆘 عیبیابی
از سرور بیرون ماندهام
اگر پس از فعال کردن فایروال از سرور بیرون ماندید:
- با اطلاعات ورود خود با پشتیبانی Infrawire تماس بگیرید
- در صورت وجود، از کنسول VNC/KVM پنل کنترل خود استفاده کنید
- مستقیماً وارد شوید و UFW را غیرفعال کنید:
sudo ufw disable
قوانین کار نمیکنند
Bash# Vérifiez que UFW est bien activé sudo ufw status # Vérifiez l'ordre des règles sudo ufw status numbered # Rechargez les règles sudo ufw reload
UFW با Docker تداخل دارد
اگر از Docker استفاده میکنید، باید Docker را طوری پیکربندی کنید که با قوانین UFW تداخل نکند:
Bash# Éditer la configuration Docker sudo nano /etc/docker/daemon.json # Ajouter cette configuration { "iptables": false } # Redémarrer Docker sudo systemctl restart docker
📚 منابع بیشتر
❓ پرسشهای متداول
پرسش: آیا میتوانم UFW را با فایروالهای دیگر استفاده کنم؟
پاسخ: خیر، برای جلوگیری از تداخل باید در هر زمان فقط از یک فایروال استفاده کنید.
پرسش: آیا UFW با Docker کار میکند؟
پاسخ: بله، اما باید Docker را طوری پیکربندی کنید که با قوانین UFW تداخل نکند (بخش عیبیابی را ببینید).
پرسش: چگونه چند پورت را همزمان مجاز کنم؟
پاسخ: میتوانید از یک حلقه استفاده کنید یا یک اسکریپت bash بسازید تا افزودن قوانین خودکار شود.
پرسش: آیا میتوانم UFW را روی CentOS/RHEL استفاده کنم؟
پاسخ: بله، اما نصب ممکن است متفاوت باشد. مستندات توزیع خود را بررسی کنید.
پیکربندی خوبی داشته باشید! 🚀