راهنمای کامل قوانین فایروال UFW و دستورات رایج

مقدمه

UFW (مخفف Uncomplicated Firewall) ابزاری است که کار با iptables را ساده‌تر می‌کند. استفاده از iptables برای مدیریت فایروال، برای بسیاری از کاربران سردرگم‌کننده است. درحالی‌که iptables قدرتمند است و تقریباً هر کاری از عهده‌اش برمی‌آید، اما UFW سعی دارد پیکربندی فایروال را برای نیازهای متداول تا حد ممکن ساده کند.

در این راهنما، ما مروری بر عملکرد کلی UFW خواهیم داشت و دستورات معمولی که ممکن است نیاز باشد را معرفی می‌کنیم تا بتوانید قوانین ساده فایروال بسازید. در انتهای کار، شما درکی از تنظیمات و وضعیت کلی UFW و نحوه کنترل ترافیک ورودی و خروجی به سرور لینوکسی خود پیدا می‌کنید.


پیش‌نیازها

  • سروری که توزیع اوبونتو یا دبین یا توزیع‌هایی که از UFW پشتیبانی می‌کنند داشته باشد. (در اکثر توزیع‌های مبتنی بر Debian/Ubuntu، UFW به‌صورت پیش‌فرض نصب است؛ اگر نصب نبود می‌توانید با دستور sudo apt update && sudo apt install ufw آن را نصب کنید.)
  • دسترسی به یوزر با امتیازات sudo (یا کاربر ریشه).

مرحله‌ی ۱ — بررسی وضعیت UFW

اول از همه، باید ببینیم آیا UFW در سیستم ما فعال است یا خیر و در حال حاضر چه وضعیتی دارد.

برای بررسی وضعیت، از دستور زیر استفاده می‌کنیم:

sudo ufw status

اگر خروجی چیزی مانند زیر بود:

Status: inactive

یعنی فایروال غیرفعال است. اگر فعال بود، معمولاً به‌شکل Status: active و به‌دنبال آن قوانین فعلی را نشان می‌دهد.


مرحله‌ی ۲ — اجازه‌دادن به اتصال SSH

قبل از فعال‌کردن UFW، بهتر است مطمئن شوید که اتصال SSH به سرور شما مسدود نشود؛ در غیر این صورت دسترسی خود را از راه دور از دست می‌دهید. به همین دلیل، معمولاً اولین قانونی که اضافه می‌کنید اجازه‌دادن به پورت SSH (پورت پیش‌فرض ۲۲) است.

برای اجازه‌دادن به SSH، دستور زیر را بزنید:

sudo ufw allow ssh

درصورتی‌که پورت SSH شما پورت پیش‌فرض نیست، باید به‌شکل زیر پورت موردنظر را مشخص کنید:

sudo ufw allow 2222/tcp

(فرضاً اگر پورت ۲۲۲۲ باشد.)


مرحله‌ی ۳ — مسدودکردن اتصالات (Deny)

اگر می‌خواهید ترافیکی را صریحاً مسدود کنید، از دستور deny استفاده می‌کنید. به‌صورت کلی، UFW بر مبنای «سیاست پیش‌فرض» (default policy) برای ترافیک ورودی و خروجی عمل می‌کند که می‌توانید در فایل تنظیمات UFW آن را تغییر دهید؛ اما در این راهنما به ساده‌ترین روش اشاره می‌کنیم:

برای مسدودکردن یک سرویس یا پورت مشخص، مثلاً پینگ ICMP یا هر سرویس دیگر، می‌توانید از دستور زیر استفاده کنید (این فقط یک مثال کلی است):

sudo ufw deny 1234/udp

دستور فوق تمام ترافیک UDP روی پورت ۱۲۳۴ را مسدود می‌کند. به همین ترتیب:

sudo ufw deny from 192.168.1.10

دسترسی از آی‌پی 192.168.1.10 را به‌کلی مسدود می‌کند.


مرحله‌ی ۴ — اجازه‌دادن به سایر اتصالات (Allow)

برای اجازه‌دادن به ترافیک روی پورت یا پروتکل مشخص، از ufw allow استفاده می‌کنیم. برای مثال:

  • برای اجازه دادن به پورت HTTP (۸۰):
    sudo ufw allow http
    

    یا:

    sudo ufw allow 80/tcp
    
  • برای اجازه دادن به پورت HTTPS (۴۴۳):
    sudo ufw allow https
    

    یا:

    sudo ufw allow 443/tcp
    
  • برای اجازه‌دادن به برنامه‌هایی که پروفایل ثبت‌شده در /etc/services یا در فایل‌های پیکربندی UFW دارند، می‌توانید نام سرویس را وارد کنید. مثال:
    sudo ufw allow OpenSSH
    

    گاهی در توزیع‌های مختلف، سرویس‌ها با نام خاصی تعریف شده‌اند و می‌توانید از آن‌ها استفاده کنید.

اجازه‌دادن با محدوده‌ی IP یا شبکه
شما می‌توانید یک رنج IP یا subnet خاص را هم تعریف کنید؛ برای نمونه اگر بخواهید فقط به یک شبکه داخلی اجازه دهید به پورت خاصی دسترسی داشته باشد:

sudo ufw allow from 192.168.1.0/24 to any port 80

دستور بالا دسترسی شبکه‌ی 192.168.1.0/24 به پورت ۸۰ را آزاد می‌کند.


مرحله‌ی ۵ — فعال‌کردن UFW

پس از این‌که قوانین مدنظرتان را اضافه کردید (خصوصاً قانون SSH)، می‌توانید فایروال را فعال کنید:

sudo ufw enable

ممکن است پیامی شبیه زیر ببینید:

Firewall is active and enabled on system startup

اکنون فایروال با قوانین تعیین‌شده در حال اجراست.

اگر بعداً نیاز شد UFW را غیرفعال کنید، کافیست بزنید:

sudo ufw disable

دستورات متداول دیگر در UFW

  • حذف قوانین (Deleting Rules)
    اگر می‌خواهید یک قانون را حذف کنید، باید فرمت دستور اضافه‌شده را بدانید یا از حالت عددی (شماره‌ی قوانین) استفاده کنید.

    ۱) پیدا کردن شماره‌ی قانون:

    sudo ufw status numbered
    

    ۲) حذف قانون با اشاره به شماره:

    sudo ufw delete <rule_number>
    

    مثلاً:

    sudo ufw delete 3
    

    قانون شماره ۳ را حذف می‌کند.

  • نمایش جزئیات (Verbose)
    sudo ufw status verbose
    

    این دستور جزئیات بیشتری مثل سیاست پیش‌فرض (Default policy) را نشان می‌دهد.

  • تنظیم سیاست‌های پیش‌فرض (Default Policies)
    برای تنظیمات کلی، مثلاً مسدودکردن پیش‌فرض همه‌ی ترافیک ورودی و اجازه‌دادن به خروجی، می‌توانید از دستورات زیر استفاده کنید:
    sudo ufw default deny incoming
    sudo ufw default allow outgoing
    

    یا اگر می‌خواهید خروجی‌ها را هم به‌صورت پیش‌فرض مسدود کنید:

    sudo ufw default deny outgoing
    
  • Reset یا ریست‌کردن تنظیمات
    اگر می‌خواهید همه‌ی قوانین را پاک کنید و پیکربندی را به حالت پیش‌فرض برگردانید، از دستور زیر استفاده کنید:
    sudo ufw reset
    

    سپس دوباره از اول قوانین مدنظرتان را ایجاد کنید.


قوانین رایج UFW (Common UFW Rules)

در این بخش لیستی از قواعد متداولی را که در سرورهای گوناگون استفاده می‌شود، می‌بینید:

  1. SSH
    sudo ufw allow ssh
    

    یا اگر از پورت سفارشی استفاده می‌کنید:

    sudo ufw allow 2022/tcp
    
  2. HTTP (وب سرور)
    sudo ufw allow http
    

    یا:

    sudo ufw allow 80/tcp
    
  3. HTTPS (اتصال امن وب)
    sudo ufw allow https
    

    یا:

    sudo ufw allow 443/tcp
    
  4. FTP
    پورت پیش‌فرض FTP، ۲۱ است. برای فعال‌کردن:
    sudo ufw allow 21/tcp
    

    ولی دقت کنید FTP برای حالت فعال/غیرفعال به پورت‌های دیگری هم نیاز دارد؛ بهتر است از vsftpd یا سایر تنظیمات راهنمای FTP ایمن استفاده کنید.

  5. SFTP
    اگر از SFTP استفاده می‌کنید (که معمولاً با SSH در پورت ۲۲ یا پورت سفارشی است)، همان قانون SSH کافی‌ست.
  6. SMTP (ایمیل)
    پورت پیش‌فرض SMTP، ۲۵ است.
    sudo ufw allow 25/tcp
    

    گاهی SMTP ایمن روی پورت‌های 465 یا 587 هم فعال است.

  7. DNS
    اگر سرور DNS دارید، معمولاً از پورت 53 در هر دو پروتکل UDP و TCP استفاده می‌شود:
    sudo ufw allow 53/udp
    sudo ufw allow 53/tcp
    
  8. MySQL
    پورت پیش‌فرض MySQL، ۳۳۰۶ است:
    sudo ufw allow 3306/tcp
    

    (بهتر است MySQL از بیرون در دسترس نباشد مگر در شرایط خاص.)

  9. PostgreSQL
    پورت پیش‌فرض PostgreSQL، ۵۴۳۲ است:
    sudo ufw allow 5432/tcp
    
  10. Nginx، Apache، و سرویس‌های وب دیگر
    این‌ها معمولاً روی پورت‌های 80 و 443 کار می‌کنند که قبلاً گفتیم. اگر وب‌سرور شما پروفایل جدا دارد (مثلاً sudo ufw allow 'Nginx Full')، می‌توانید از آن به‌صورت نام سرویس هم استفاده کنید.

این‌ها رایج‌ترین نمونه‌ها بودند. بسته به نیازتان می‌توانید دستورات خاص دیگری را اضافه کنید.


فعال‌کردن IPv6 در UFW

اگر قصد استفاده از IPv6 دارید (که توصیه می‌شود در سرورهای جدید فعال باشد)، باید مطمئن شوید که پشتیبانی IPv6 در تنظیمات UFW هم فعال باشد. برای این کار، فایل /etc/default/ufw را باز کنید:

sudo nano /etc/default/ufw

مقداری با عنوان IPV6=yes را پیدا کنید و درصورت نیاز مقدار آن را روی yes قرار دهید. سپس UFW را ریست یا ری‌لود کنید:

sudo ufw disable
sudo ufw enable

با این کار، UFW روی هر دو پشته‌ی IPv4 و IPv6 اعمال خواهد شد.


نتیجه‌گیری (Conclusion)

UFW یک ابزار ساده و در عین حال قدرتمند است که مدیریت فایروال را برای کاربران آسان‌تر می‌کند. شما می‌توانید با چند دستور ساده، پورت‌های حیاتی را باز یا بسته کرده، دسترسی برخی آدرس‌های IP را محدود کنید و سیاست‌های پیش‌فرض فایروال را مطابق نیاز خود تنظیم کنید.

با اجرای دستوراتی که در این راهنما مرور کردیم، شما می‌توانید با اطمینان بیشتری ترافیک سرور خود را کنترل کرده و امنیت کلی سیستم را افزایش دهید.

اگر نیاز به پیکربندی پیشرفته‌تری دارید، همیشه می‌توانید از مستندات رسمی UFW یا حتی مستقیم از iptables استفاده کنید. اما برای اغلب کاربران و کاربردهای معمول، UFW تمام آنچه که لازم دارید را به ساده‌ترین شکل فراهم می‌کند.

در زمانی که با این فایروال کار می کنید توجه داشته باشید که پورت ssh که متصل می شوید بلاک نکنید، ولی اگر بلاک شد نیز نگران نباشید سرورهای مجازی دیاکو وب دارای کنسول مدیریت دارند و می توانید به مانیتور سرور متصل شوید و مشکل را حل کنید.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *