تنظیم فایروال ufw برای سرور وب

ufw ساده‌ترین راه مدیریت فایروال در اوبونتو است. اصل کار: همه‌چیز بسته و فقط پورت‌های لازم باز باشد. مهم‌ترین نکته این است که قبل از فعال‌سازی، دسترسی SSH را مجاز کنید.

امنیت و فایروالمقدماتی6 دقیقه

۱سیاست پیش‌فرض

ورودی را ببندید و خروجی را آزاد بگذارید.

bash
sudo ufw default deny incoming
sudo ufw default allow outgoing

۲اجازهٔ SSH پیش از فعال‌سازی

این مرحله را هرگز فراموش نکنید.

bash
sudo ufw allow OpenSSH
# یا اگر پورت SSH را عوض کرده‌اید
sudo ufw allow 2222/tcp

فعال کردن ufw بدون مجاز کردن SSH دسترسی شما به سرور را قطع می‌کند.

۳باز کردن پورت‌های وب

برای nginx یا Apache:

bash
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
# یا با پروفایل آماده
sudo ufw allow 'Nginx Full'

۴فعال‌سازی و بررسی

بعد از فعال‌سازی، وضعیت را ببینید.

bash
sudo ufw enable
sudo ufw status verbose
sudo ufw status numbered

۵دسترسی محدود: دیتابیس فقط از یک IP

پورت دیتابیس را هرگز برای همه باز نکنید. فقط سرور برنامه اجازهٔ اتصال دارد.

bash
sudo ufw allow from 203.0.113.10 to any port 3306 proto tcp
sudo ufw allow from 10.0.0.0/24 to any port 5432 proto tcp

۶محدود کردن تلاش‌های SSH (limit)

اگر یک IP در ۳۰ ثانیه بیش از ۶ اتصال بزند موقتاً مسدود می‌شود.

bash
sudo ufw limit OpenSSH

۷مسدود کردن یک IP و حذف قوانین

قوانین را با شماره یا با همان متن اولیه حذف کنید.

bash
sudo ufw deny from 198.51.100.7
sudo ufw status numbered
sudo ufw delete 3
sudo ufw delete allow 80/tcp

۸لاگ و بازنشانی

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

bash
sudo ufw logging on
sudo tail -f /var/log/ufw.log

# ریست کامل (فایروال غیرفعال می‌شود)
sudo ufw reset

پس از ufw reset دوباره SSH را مجاز کنید و ufw را فعال کنید.

پرسش‌های پرتکرار دربارهٔ تنظیم فایروال ufw برای سرور وب

چرا با ufw پورت داکر باز می‌ماند؟

Docker مستقیماً قوانین iptables را تغییر می‌دهد و ufw آن‌ها را نمی‌بیند. پورت‌ها را با -p 127.0.0.1:پورت:پورت منتشر کنید یا از زنجیرهٔ DOCKER-USER استفاده کنید.