راهنمای کامل قوانین فایروال 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)
در این بخش لیستی از قواعد متداولی را که در سرورهای گوناگون استفاده میشود، میبینید:
- SSH
sudo ufw allow ssh
یا اگر از پورت سفارشی استفاده میکنید:
sudo ufw allow 2022/tcp
- HTTP (وب سرور)
sudo ufw allow http
یا:
sudo ufw allow 80/tcp
- HTTPS (اتصال امن وب)
sudo ufw allow https
یا:
sudo ufw allow 443/tcp
- FTP
پورت پیشفرض FTP، ۲۱ است. برای فعالکردن:sudo ufw allow 21/tcp
ولی دقت کنید FTP برای حالت فعال/غیرفعال به پورتهای دیگری هم نیاز دارد؛ بهتر است از vsftpd یا سایر تنظیمات راهنمای FTP ایمن استفاده کنید.
- SFTP
اگر از SFTP استفاده میکنید (که معمولاً با SSH در پورت ۲۲ یا پورت سفارشی است)، همان قانون SSH کافیست. - SMTP (ایمیل)
پورت پیشفرض SMTP، ۲۵ است.sudo ufw allow 25/tcp
گاهی SMTP ایمن روی پورتهای 465 یا 587 هم فعال است.
- DNS
اگر سرور DNS دارید، معمولاً از پورت 53 در هر دو پروتکل UDP و TCP استفاده میشود:sudo ufw allow 53/udp sudo ufw allow 53/tcp
- MySQL
پورت پیشفرض MySQL، ۳۳۰۶ است:sudo ufw allow 3306/tcp
(بهتر است MySQL از بیرون در دسترس نباشد مگر در شرایط خاص.)
- PostgreSQL
پورت پیشفرض PostgreSQL، ۵۴۳۲ است:sudo ufw allow 5432/tcp
- 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 که متصل می شوید بلاک نکنید، ولی اگر بلاک شد نیز نگران نباشید سرورهای مجازی دیاکو وب دارای کنسول مدیریت دارند و می توانید به مانیتور سرور متصل شوید و مشکل را حل کنید.
دیدگاهتان را بنویسید