اگر آموزش نصب UFW روی CentOS را برای یک سرور جدید دنبال میکنید، ابتدا نسخه سیستم و مدیر فعلی فایروال را بررسی کنید. CentOS Linux 7 و 8 پایانعمر هستند و اجرای راهنمای قدیمی روی سرور اینترنتی انتخاب مناسبی نیست. در بسیاری از توزیعهای خانواده RHEL، firewalld مسیر بومیتری برای مدیریت قوانین است.
آیا UFW روی این خانواده قابل استفاده است؟
در بعضی نسخهها و مخازن بسته UFW وجود دارد، اما قابل نصب بودن به معنی بهترین انتخاب برای هر پشته نیست. پنل میزبانی، Docker و ابزارهای شبکه ممکن است قواعد خودشان را بسازند. پیش از جابهجایی، مالک هر مجموعه قانون باید معلوم باشد؛ اجرای دو مدیر با تصور مستقلبودن آنها میتواند نتیجه غیرمنتظره ایجاد کند.
۱. وضعیت فعلی را ثبت کنید
cat /etc/os-release
systemctl is-active firewalld
sudo firewall-cmd --get-active-zones
sudo ss -ltnp
فرمانهای firewall-cmd تنها وقتی معنی دارند که firewalld در حال اجراست. اگر UFW دارید، خروجی sudo ufw status verbose و قواعد سرویسهای دیگر را ثبت کنید. روی سرور واقعی دستور reset، flush یا توقف مدیر موجود را بدون طرح انتقال اجرا نکنید.
۲. پیش از تغییر، دسترسی بازیابی داشته باشید
پورت واقعی SSH را مشخص کنید و یک نشست باز نگه دارید. امکان ورود از کنسول ارائهدهنده یا مسیر مدیریتی مستقل باید موجود باشد. در پنلها تنظیم فایروال را از مسیر همان محصول انجام دهید؛ جایگزینی دستی ابزار امنیتی آن ممکن است پشتیبانی سرویس را مختل کند.
۳. تفاوت Runtime و Permanent
در firewalld، تغییر Runtime فوراً فعال است ولی پس از reload یا راهاندازی دوباره از بین میرود. تغییر Permanent ذخیره میشود اما بدون اعمال به Runtime الزاماً اثر فوری ندارد. ابتدا قانون را روی Zone درست آزمایش کنید و سپس فقط همان تغییر تأییدشده را پایدار کنید.
۴. نمونه افزودن سرویس وب
ابتدا Zone مربوط به رابط شبکه را با get-active-zones بیابید. نمونه زیر فقط برای سروری است که رابط مورد نظر واقعاً در public قرار دارد:
sudo firewall-cmd --zone=public --list-all
sudo firewall-cmd --zone=public --add-service=http
sudo firewall-cmd --zone=public --add-service=https
از بیرون سرور وب را تست کنید. سپس برای نگهداری همین دو قانون:
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
ذخیره همه Runtime با runtime-to-permanent زمانی مناسب است که تمام قواعد Runtime بررسی شده باشند؛ ممکن است قوانین موقتی دیگری را هم دائمی کند.
۵. مدیریت SSH بدون قطع دسترسی
اگر SSH روی پورت پیشفرض است، سرویس ssh را در Zone مربوط بررسی کنید. برای پورت سفارشی، قانون همان شماره و پروتکل لازم است. قانون قبلی را پیش از تأیید ورود جدید حذف نکنید. برای محدودسازی به IP مدیریتی، آدرس ثابت و مسیر جایگزین لازم است؛ یک IP نمونه را کورکورانه استفاده نکنید.
آزمون از داخل و خارج
بازبودن یک پورت در firewalld، وجود سرویس شنونده را ثابت نمیکند. همچنین Security Group یا فایروال شبکه میتواند اتصال را زودتر قطع کند. وضعیت سرویس، قواعد میزبان و دسترسی خارجی سه بررسی جدا هستند. محدودیت IPv6 را نیز در کنار IPv4 کنترل کنید.
پرسشهای رایج
آیا برای حل خطا باید SELinux را خاموش کرد؟
خیر. SELinux و فایروال وظایف متفاوت دارند. خطای مجوز اپلیکیشن را از لاگ تشخیص دهید.
آیا بستن پورت جلوی تمام حملات را میگیرد؟
خیر. سرویس عمومی همچنان به وصله، احراز هویت درست، محدودیت برنامه و پایش نیاز دارد.
آیا این مقاله دستور مهاجرت کامل UFW است؟
خیر؛ مهاجرت به موجودی قواعد، پنل و شبکه وابسته است. ابتدا قوانین موردنیاز را مستند و روی محیط آزمایش معادلسازی کنید.
منابع رسمی
بازبینی منابع: ۱۸ اکتبر ۲۰۲۶.