base_tutorial/8-ubuntu/more/1-firewall.md
2025-04-09 10:51:05 +03:30

6.1 KiB
Raw Blame History

بسم الله الرحمن الرحیم

در زیر چند نمونه از نحوه به کارگیری فایروال ufw آورده شده است:
ابتدا ufw فعال می شود. با دستور زیر از خط فرمان:

sudo ufw enable

برای باز کردن یک پورت ( مثل پورت SSH) از این دستور استفاده می شود. برای بازکردن سایر پورتها، کافیست عدد آن پورت را در دستور زیر عوض کنید. مثلا پورت 9200 برای الاستیک سرچ یا 5601 برای کیبانا:

sudo ufw allow 22

نکته: پورت 22 به عنوان پیش فرض برای SSH قرار داده شده ولی ممکن است در تنظیمات SSH این پورت تغییر یابد. باز بودن پورت SSH برای ارتباط از راه دور به سرور لازم است و نیز ارتباط با دیتابیس.

قوانین همچنین می توانند با استفاده از یک قالب شماره گذاری شده اضافه شوند: به عنوان مثال: دستور زیر قانون۱ را باز کردن پورت 80 قرار می دهد.

sudo ufw insert 1 allow 80

به طور مشابه، برای بستن یک پورت باز شده از دستور زیر استفاده می شود: پورت 22 به عنوان مثال آورده شده است.

sudo ufw deny 22

برای حذف یک قانون، از delete و به دنبال آن قانون استفاده کنید: در مثال زیر قانون همان "deny 22" است

sudo ufw delete deny 22

همچنین امکان دسترسی از هاست یا شبکه های خاص به یک پورت وجود دارد. مثال زیر اجازه دسترسی SSH را از میزبان 192.168.0.2 به هر آدرس IP در این میزبان می دهد:

sudo ufw allow proto tcp from 192.168.0.2 to any port 22

192.168.0.2 را با 192.168.0.0/24 جایگزین کنید تا امکان دسترسی SSH از کل زیر شبکه فراهم شود.

افزودن گزینه dry-run به یک دستور ufw نتیجه قوانین را نمایش می دهد، اما آنها را اعمال نمی کند. به عنوان مثال، موارد زیر در صورت باز کردن پورت HTTP اعمال می شود:

sudo ufw --dry-run allow http

*filter :ufw-user-input - [0:0] :ufw-user-output - [0:0] :ufw-user-forward - [0:0] :ufw-user-limit - [0:0] :ufw-user-limit-accept - [0:0] ### RULES ###
### tuple ### allow tcp 80 0.0.0.0/0 any 0.0.0.0/0 -A ufw-user-input -p tcp --dport 80 -j ACCEPT
### END RULES ### -A ufw-user-input -j RETURN -A ufw-user-output -j RETURN -A ufw-user-forward -j RETURN -A ufw-user-limit -m limit --limit 3/minute -j LOG --log-prefix "[UFW LIMIT]: " -A ufw-user-limit -j REJECT -A ufw-user-limit-accept -j ACCEPT COMMIT Rules updated

ufw را می توان با دستور زیر غیرفعال کرد:

sudo ufw disable

ufw را برای اعمال تغییرات غیرفعال و دوباره فعال کنید:

sudo ufw disable && sudo ufw enable

برای مشاهده وضعیت فایروال، دستور زیر ار اجرا کنید:

sudo ufw status

و برای اطلاعات دقیق تر وضعیت از دستور زیر بهره بگیرید:

sudo ufw status verbose

برای مشاهده قوانین فایروال با فرمت شماره گذاری شده دستور زیر را اجرا کنید:

sudo ufw status numbered

توجه داشته باشید
اگر پورتی که می خواهید باز یا بسته شود در /etc/services تعریف شده است، می توانید به جای شماره از نام پورت استفاده کنید. در مثال های بالا عدد 22 را با ssh جایگزین کنید.
توجه جدی داشته باشید که در صورتی که سرویسهای نصب شده قابل اجرا نبودند و شما علت را نمی دانید، در اولین مرحله ذهن شما بایستی متوجه فایروال باشد. پس قبل از هر کاری اول با دستور زیر فایروال را غیر فعال کنید و اگر مشکل حل نشد به دنبال موارد دیگر بروید. اگر هم مشکل حل شد بدانید بایستی تنظیمات فایروال را با توجه به نیاز سرویسها به روزرسانی کنید.
و نکته دیگر اینکه ممکن است فایروالهای مختلفی روی سرور شما نصب باشد ufw فقط یکی از آنهاست.
مثلا ممکن است روی سرورشما iptables نصب شده باشد iptables یک ابزار برای فایروالینگ (فایروال لینوکس است) ؛ که بروی بیشتر توزیع‌های لینوکس به صورت پیش‌فرض نصب است. و جالبست که گاهی حتی با غیرفعال کردن آن هم باز مشکل حل نمی شود. مثل موردی که فقط با دستور sudo iptables --flush مشکل حل شد. درحالی که iptables غیرفعال شده بود. پس در این موارد حتما با کارشناس مربوطه مشورت نمایید.

ufw را می توان با دستور زیر غیرفعال کرد:

sudo ufw disable

صلوات