تنظیم فایروال ufw برای سرور وب
ufw سادهترین راه مدیریت فایروال در اوبونتو است. اصل کار: همهچیز بسته و فقط پورتهای لازم باز باشد. مهمترین نکته این است که قبل از فعالسازی، دسترسی SSH را مجاز کنید.
۱سیاست پیشفرض
ورودی را ببندید و خروجی را آزاد بگذارید.
sudo ufw default deny incoming
sudo ufw default allow outgoing۲اجازهٔ SSH پیش از فعالسازی
این مرحله را هرگز فراموش نکنید.
sudo ufw allow OpenSSH
# یا اگر پورت SSH را عوض کردهاید
sudo ufw allow 2222/tcpفعال کردن ufw بدون مجاز کردن SSH دسترسی شما به سرور را قطع میکند.
۳باز کردن پورتهای وب
برای nginx یا Apache:
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
# یا با پروفایل آماده
sudo ufw allow 'Nginx Full'۴فعالسازی و بررسی
بعد از فعالسازی، وضعیت را ببینید.
sudo ufw enable
sudo ufw status verbose
sudo ufw status numbered۵دسترسی محدود: دیتابیس فقط از یک IP
پورت دیتابیس را هرگز برای همه باز نکنید. فقط سرور برنامه اجازهٔ اتصال دارد.
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 در ۳۰ ثانیه بیش از ۶ اتصال بزند موقتاً مسدود میشود.
sudo ufw limit OpenSSH۷مسدود کردن یک IP و حذف قوانین
قوانین را با شماره یا با همان متن اولیه حذف کنید.
sudo ufw deny from 198.51.100.7
sudo ufw status numbered
sudo ufw delete 3
sudo ufw delete allow 80/tcp۸لاگ و بازنشانی
برای دیدن ترافیک رد شده لاگ را روشن کنید. در صورت نیاز همهچیز را ریست کنید.
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 استفاده کنید.