آموزش کانفیگ فایروال UFW در لینوکس اوبونتو Ubuntu
UFW چیست
UFW یا Uncomplicated Firewall یک فایروال با رابط کاربری ساده شده بدون پیچیدگی های مثل iptables است برای مدیریت ساده تر است. اگر به دنبال تأمین امنیت شبکه خود هستید و مطمئن نیستید از کدام ابزار استفاده کنید، باتوجه به ساده بودن، UFW ممکن است انتخاب مناسبی برای شما باشد. در صورت خرید vps یا نصب اوبونتو، ufw بصورت پیش فرض در سیستم عامل Ubuntu نصب شده است.
آموزش کانفیگ فایروال UFW
در صورتی که اون رو حذف کردین با دستور زیر میتونین نصب کنین.
sudo apt install ufw
فعال کردن IPv6 در ufw
این آموزش بر اساس IPv4 نوشته شده ، در صورتیکه از IPv6 استفاده میکنین باید اون رو فعال کنین و بررسی کنین که علاوه بر IPv4، ویژگی IPv6 نیز فعال شده باشه و rule ها و تنظیمات فایروال در IPv6 نیز اعمال بشه، به همین خاطر فایل زیر رو باز میکنیم
sudo nano /etc/default/ufw
و مقدار زیر رو برابر با yes میکنیم
IPV6=yes
اضافه کردن rule در ufw
برای تنظیم rules های UFW بصورت پیش فرض از دستورات زیر استفاده میکنیم، این تنظیمات پیش فرض برای یک سیستم شخصی ممکن مناسب باشه، اما برای سرورها نیاز به تنظیم دقیقتر داری
sudo ufw default deny incoming sudo ufw default allow outgoing
اگه ufw فعال باشه، تمام کانکشن درخواست های ورودی رو مسدود میکنه، بخاطر همین باید rules هایی برای اجازه ورود به این درخواست ها ایجاد کنیم ، درخواست هایی مثل SSH یا HTTP، برای مثال برای اجازه ورود کانکشن با پروتکل SSH از دستور زیر استفاده میکنیم و کانکشن SSH رو اجازه دسترسی بهش میدیم. با فعالسازی این مورد، کانکشن اتصال ورود به پورت 22 SSH اجازه دسترسی پیدا میکنن چون در فایل /etc/services پورت SSH 22 تعریف شده.
sudo ufw allow ssh
همچنین میتونیم به جای تعریف کردن اسم سرویس، شماره پورت خاص رو تعریف کنیم و اجازه دسترسی به کانکشن های اون پورت رو برای ورود بدیم
sudo ufw allow 22
برای فعالسازی فایروال UFW از دستور زیر استفاده میکنیم
sudo ufw enable
همچنین در Firewall ufw میتونیم، رنج پورت خاصی رو بر اساس کانکشن های tcp یا udp تنظیم کنیم، مثلا طبق کد زیر، پورت های 6000 تا 6007 بر اساس tcp و udp بودن، امکا ورود به سیستم عامل رو دارن.
sudo ufw allow 6000:6007/tcp
sudo ufw allow 6000:6007/udp
همچنین میتونیم اجازه ورود کانکشن ها از IP خاصی رو بدیم
sudo ufw allow from 203.0.113.4
یا میتونیم اجازه ورود کانکشن ها به IP خاص و پورت خاصی رو از اون IP بدیم
sudo ufw allow from 203.0.113.4 to any port 22
یا میتونیم اجازه ورود کانکشن ها از ساب نت خاصی رو بدیم
sudo ufw allow from 203.0.113.0/24
و میتونیم اجازه ورود کانکشن ها از ساب نت و پورت خاصی رو بدیم
sudo ufw allow from 203.0.113.0/24 to any port 22
اگر چند اینترفیس شبکه دارین و میخواین rules هاتون رو برای هر شبکه بصورت جداگانه تنظیم کنین میتونین از دستورات زیر استفاده کنین، ابتدا با دستور زیر اینترفیس های شبکه رو باید پیدا میکنیم
ip addr
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state
. . .
3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default
. . .
برای مثال در اینترفیس شبکه eth0 ، اجازه ورود کانکشن های پورت 80 رو میدیم
sudo ufw allow in on eth0 to any port 80
یا در اینترفیس شبکه eth1 اجازه ورود پورت 3306 دیتابیس MySQL رو میدیم
sudo ufw allow in on eth1 to any port 3306
برای جلوگیری از ورود کانکشن ها به سرور از دستور deny استفاده میکنیم، مثلا دستور زیر کانشکن های http رو نادیده میگیره
sudo ufw deny http
یا دستور زیر کانکشن های IP تعریف شده زیر رو نادیده میگیره
sudo ufw deny from 203.0.113.4
طبق آموزش بالا نحوه ایجاد rules هارو یاد گرفتیم ولی اگه زمانی نیاز باشه که rules خاصی رو بخوایم حذف کنیم، طبق آموزش زیر انجام میدیم، 2 روش برای حذف rules های فایروال ufw وجود داره، 1. براساس شماره rules تنظیم شده در فایروال 2. بر اساس اسم و مقادیر تنظیم شده.
برای حذف از طریق شماره rules ، ابتدا شماره rule مربوطه رو پیدا میکنیم
sudo ufw status numbered
Status: active
To Action From
-- ------ ----
[ 1] 22 ALLOW IN 15.15.15.0/24
[ 2] 80 ALLOW IN Anywhere
مثلا اگه پورت 80 رو که برای http هست بخواین حذف کنین، دستورش اینجوری میشه
sudo ufw delete 2
یا میتونین اسم پورت مروبطه یا سروس رو بصورت مستقیم وارد کنین
sudo ufw delete allow http
sudo ufw delete allow 80
برای بررسی وضعیت فعال بودن فایروال UFW از دستور زیر استفاده میکنیم
sudo ufw status verbose
Status: inactive
اگه فایروال UFW فعال باشه، وضعیتش رو active میزنه و rules هایی که تنیظم شده رو نشون میده
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip
To Action From
-- ------ ----
22/tcp ALLOW IN Anywhere
برای غیرفعال سازی و reset فایروال ufw که تمام تنظیمات شما هم حذف خواهند شد از دستور زیر استفاده میکنیم
sudo ufw disable
sudo ufw reset