آموزش فایروال UFW در اوبونتو؛ بازکردن پورت بدون قطع SSH

UFW ابزاری برای مدیریت سادهتر فایروال اوبونتو است. هدف این راهنما بازگذاشتن فقط دسترسیهای لازم است، نه اجرای یک مجموعه قانون یکسان روی همهٔ سرورها. مثالها برای یک VPS ساده هستند؛ روی سرور دارای Docker، VPN، مسیریابی یا تنظیمات موجود، ابتدا طراحی فعلی را بررسی کنید.
۱. وضعیت فعلی را ثبت کنید
sudo ufw status verbose
sudo ss -lntp
cat /etc/default/ufw
اگر UFW نصب نیست، روی اوبونتو با sudo apt install ufw آن را نصب کنید. وجود فایروال دیگری مثل firewalld یا قواعد سفارشی را بررسی کنید؛ چند مدیر فایروال را بدون طراحی همزمان فعال نکنید. مقدار IPv6 و آدرسهای فعال را ببینید؛ IPv6 را صرفاً برای سادهشدن کار حذف نکنید.
۲. اول دسترسی SSH را اجازه دهید
فقط اگر SSH واقعاً روی TCP پورت 22 است:
sudo ufw allow 22/tcp comment "SSH access"
اگر پورت متفاوت است، همان شماره را جایگزین کنید. پروفایل OpenSSH معمولاً پورت پیشفرض را توصیف میکند؛ برای پورت سفارشی به آن اتکا نکنید. این قاعده اجازهٔ اتصال به پورت میدهد، اما جای احراز هویت امن را نمیگیرد.
۳. پورتهای برنامه را اضافه کنید
برای وبسروری که قرار است HTTP و HTTPS عمومی ارائه دهد:
sudo ufw allow 80/tcp comment "HTTP"
sudo ufw allow 443/tcp comment "HTTPS"
اگر وبسرور ندارید، این پورتها را صرفاً به خاطر مثال باز نکنید. پایگاه داده را بیدلیل روی اینترنت عمومی نگذارید. TCP و UDP یکسان نیستند و باید پروتکل موردنیاز برنامه را بشناسید.
۴. سیاست پیشفرض و فعالسازی
برای سرور سادهای که سرویس ورودی دیگری ندارد، پس از ثبت همهٔ اجازههای لازم:
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw enable
sudo ufw status verbose
پیام تأیید را بخوانید. یک اتصال SSH تازه از دستگاه خود باز کنید؛ زندهماندن اتصال قبلی بهتنهایی کافی نیست. وبسایت یا سرویسهای مجاز را از بیرون هم آزمایش کنید. در سرور مسیریاب یا VPN، سیاست forwarded traffic نیازمند طراحی جداست.
۵. محدودکردن SSH به IP مدیر
اگر IP ثابت معتبر دارید، میتوانید یک اجازهٔ محدود اضافه کنید. 203.0.113.10 در مثال زیر آدرس مستنداتی است و باید با IP عمومی واقعی مدیر جایگزین شود:
sudo ufw allow from 203.0.113.10 to any port 22 proto tcp comment "Admin SSH"
sudo ufw status numbered
تا وقتی اجازهٔ عمومی پورت 22 باقی است، این قاعده محدودسازی کامل ایجاد نمیکند. ابتدا قاعدهٔ محدود و مسیر کنسول را بررسی کنید، سپس قاعدهٔ عمومی را با شمارهٔ جاری آن حذف و فوراً اتصال جدید را آزمایش کنید. برای اینترنت با IP متغیر، این محدودسازی ممکن است خودتان را بیرون نگه دارد.
۶. حذف قاعده و بازیابی اشتباه
با sudo ufw status numbered شمارهٔ فعلی را بخوانید و سپس sudo ufw delete NUMBER را با شمارهٔ واقعی اجرا کنید. بعد از هر حذف، شمارهها را دوباره بخوانید. از ufw reset برای اصلاح یک قانون استفاده نکنید، چون کل قواعد را پاک میکند.
اگر دسترسی قطع شد، از کنسول وارد شوید و اجازهٔ پورت واقعی SSH را اصلاح کنید. خاموشکردن دائمی فایروال راهحل نهایی نیست. فایروال پنل دیتاسنتر هم مستقل است و ممکن است اتصال را مسدود کند.
۷. Docker و IPv6 را فراموش نکنید
طبق مستند Docker، انتشار پورت کانتینر میتواند از قواعد معمول UFW عبور کند. امنیت پورتهای کانتینر را با قواعد مناسب Docker و تست بیرونی بررسی کنید. در آموزش Docker Compose مثال را روی localhost قرار دادهایم. قواعد IPv6 و رکورد AAAA سایت نیز باید با سیاست دسترسی هماهنگ باشند.
برای تکمیل حفاظت ورود، امنسازی SSH را بخوانید. بازبودن فقط پورت لازم، جای رمز یا کلید امن و بهروزرسانی سیستم را نمیگیرد.
منابع و ادامهٔ یادگیری
مبنای مثالهای سرور، اوبونتو ۲۴٫۰۴ LTS است؛ نام سرویسها و روش نصب در توزیعهای دیگر ممکن است متفاوت باشد. تصویر مقاله مفهومی است. این دستورها هنگام تهیهٔ مقاله روی سرویس واقعی مشتری اجرا نشدهاند.
منابع رسمی: فایروال اوبونتو، Docker و فایروال
برای انتخاب زیرساخت، سرورهای لینوکس و چکلیست خرید VPS را ببینید. آموزشهای مکمل در مرکز آموزش پرشین کلود در دسترساند.


