سلام دوستان . در قسمت قبلی در مورد رابط گرافیکی این فایروال صحبت کردیم . همان طور که گفته شده بود کم کم جلو میریم و تمامی حالات و … را بررسی می کنیم . در قسمت قبل در مورد دو آیتم incoming و outgoing صحبت کردیم و یک درک نسبی ای از آن ها نیز پیدا کردیم پس از توضیح دوباره در این قسمت خودداری میکنیم .
راه اندازی :
برای کار را رابط متنی این فایروال حتما باید سطح دسترسی روت داشت . این کار به 2 صورت امکان پذیر است :
1. استفاده ی مسیقیم از یوزر روت . به شکل زیر :
su root
2. استفاده از sudo در یوزر های عضو گروه sudo . به شکل زیر :
sudo whoami
اولین اقدام برای کار با محیط متنی این فایروال دیدن خروجی help برنامه می باشد . پس کافیست به شکل زیر عمل کنیم :
ufw --help
هم چنین پیشنهاد می کنم که man page این برنامه را مطالعه نمایید . به صورت زیر :
man ufw
اگر خروجی help رو مشاهده کرده باشید , با option زیر مواجه خواهید شد :
ufw status
همان طور که از اسم این آپشن مشخص است , وضعیت کنونی فایروال برای ما گفته می شود . که به صورت پیش فرض غیر فعال را نمایش می دهد . یعنی :
Status: inactive
حالا همان طور که در خروجی help برنامه هم گفته شده , برای فعال کردن فایروال کافیست تا از آپشن enable به شکل زیر استفاده کنیم :
ufw enable
لازم به ذکر است که برای غیر فعال کردن فایروال ( به هر دلیلی ) کافیست از آپشن disable به شکل زیر استفاده کنیم :
ufw disable
فرض می کنیم که فعلا قصد استفاده از IP ورژن 6 را نداریم . پس فایل کانفیگ زیر را باز می کنیم و به دنبال عبارت IPV6 می گردیم :
vi /etc/default/ufw
حال کافیست عبارت جلوی IPV6 را از yes به no تغییر دهید .
تنظیمات مربوط به ورودی و خروجی :
اما حالا که فایروال را فعال کردیم دوباره یک status بگیرید تا از وضعیت فعلی رول ها و … با خبر بشید . پیشنهاد می شود که از این به بعد به شکل verbose از آپشن status استفاده کنید . یعنی :
ufw status verbose
همان طور که مشاهده می کنید , به صورت پیش فرض incoming را deny و outgoing را allow کرده است . برای تغییر این دو به شکل زیر عمل می کنیم :
ufw default allow incoming
و همین طور برای outgoing :
ufw default deny outgoing
پیشنهاد می شود که incoming را به حالت reject تغییر دهید و اگر پورتی مد نظرتون است , آن را دستی باز کنید . به عنوان مثال :
ufw default reject incoming ufw allow 22/tcp
توجه داشته باشید که tcp مشخصه ی پروتکل مورد استفاده است . به عنوان مثال اگر قصد سرویس دهنی DNS را داریم , باید پورت 53 برای پروتکل udp را باز کنیم . به صورت زیر :
ufw allow 53/udp
برای پاک کردن رول ها کافیست به شکل زیر عمل کنیم : به عنوان مثال من قصد پاک کردن رول پورت 53 را دارم :
ufw delete allow 53/tcp
ممکن است قصد باز کردن یک پورت هم برای پروتکل tcp و هم برای پروتکل udp را داشته باشید . پس :
sudo ufw allow 53
همچنین می توانیم از شماره ی هر رول جهت پاک کردن آن استفاده کنیم . ابتدا برای مشاهده ی شماره ی هر رول به شکل زیر عمل می کنیم :
ufw status numbered
خروجی این دستور باعث میشه که شماره ی هر رول کنارش بیوفته . حالا برای پاک کردن با استفاده از شماره به شکل زیر عمل می کنیم :
ufw delete 1
توجه داشته باشید که عدد 1 در این جا مثال است و شما مطابق خروجی خود باید عمل کنید
ممکن است بخواهیم دسترسی کامل برای یک آی پی در نظر داشته باشیم , یعنی به عنوان مثال فقط آی پی 10.20.30.40 بتواند با سیستم در ارتباط باشد . پس به شکل زیر عمل می کنیم :
ufw allow from 10.20.30.40
طبیعتا می توان به جای یک آی پی خاص , یک رنج آی پی اضافه کرد . به عنوان مثال برای قطع دسترسی کل شبکه ی 10.20.30.0/24 به شکل زیر عمل می کنیم :
ufw deny from 10.20.30.0/24
ممکن است بخواهیم این تنظیمات را فقط برای آی پی ای خاص در نظر داشته باشیم , یعنی به عنوان مثال فقط آی پی 10.20.30.40 بتواند با سیستم روی پورت 22 ارتباط برقرار کند , پس به شکل زیر عمل می کنیم :
ابتدا به سینتکس زیر توجه کنید :
ufw allow from <target> to <destination> port <port number> proto <protocol name>
به عنوان مثال , دسترسی آی پی 10.20.30.40 را برای پورت 22 و تمامی پروتکل ها بر روی فایروال باز می کنیم :
ufw allow from 10.20.30.40 to any port 22
به عنوان مثال بعدی , دسترسی آی پی 10.20.30.40 را برای پورت 22 بر روی پروتکل tcp را باز می کنیم :
ufw allow from 10.20.30.40 to any port 22 proto tcp
توجه داشته باشید که any به معنای هر آدرس آی پی ای بر روی سرور می باشد . یعنی اگر سرور ما چند آدرس آی پی داشته باشد , این رول برای تمامی آن آدرس ها اعمال می شود . در صورتی که می خواهید این تنظیمات فقط بر روی یکی از آی پی های سرور اعمل شود کافیست به جای any آدرس مربوطه را وارد کنید .
ممکن است بخواهیم از نام یک سرویس جهت بسته و یا باز کردن آن بر روی فایروال استفاده کنیم . یعنی به جای درج پورت از نام سرویس استفاده کنیم . مثلا می خواهیم سرویس https را بر روی فایروال باز و سرویس http را بر روی فایروال ببندیم :
ufw allow https
ufw deny http
برای مشاهده ی بیش تر سرویس ها همراه با پورت پیش فرضی که استفاده می کنند از فایل زیر به شکل زیر استفاده کنید :
less /etc/services
تا این جا فقط بر روی دو پروتکل tcp و udp بحث کردیم اما زمانی فرا می رسد که می خواهیم پینگ را بر روی سرور و یا سیستم خودمون ببندیم . یعنی کسی نتواند سرور و یا سیستم ما را پینگ کند .
در مرحله ی اول باید گفت که به صورت پیش فرض پینگ بر روی فایروال ufw باز است . پس برای بستن پینگ ابتدا فایل زیر را باز می کنیم :
nano /etc/ufw/before.rules
حال کافیست عبارات ACCEPT را به DROP در رول های زیر تغییر دهیم :
# ok icmp codes -A ufw-before-input -p icmp --icmp-type destination-unreachable -j ACCEPT -A ufw-before-input -p icmp --icmp-type source-quench -j ACCEPT -A ufw-before-input -p icmp --icmp-type time-exceeded -j ACCEPT -A ufw-before-input -p icmp --icmp-type parameter-problem -j ACCEPT -A ufw-before-input -p icmp --icmp-type echo-request -j ACCEPT
هم چنین می توان ابتدای هر خط از این رول ها # اضافه کرد یعنی دیگه نیازی به تغییر ACCEPT به DROP نیست .
در خصوص forward chain و nat در قسمت بعدی به طور مفصل صحبت خواهیم کرد و در واقع فقط به این موضوع خواهیم پرداخت اما لازم به ذکر است که اگر سیستم لینوکسی ما به عنوان روتر فعالیت کند , با فعال بودن این فایروال به صورت پیش فرض تمامی ارتباطات بین شبکه های مختلف قطع خواهد شد چرا که به صورت پیش فرض forward chain روی حالت drop قرار داشته و ip forwarding نیز در فایروال غیر فعال می باشد .
برای حل این مشکل ابتدا باید ip forwarding را در فایروال فعال کرد . برای این منظور فایل زیر را باز کنید :
nano /etc/ufw/sysctl.conf
سپس # را از اول خط زیر بردارید :
net/ipv4/ip_forward=1
در مرحله ی بعد فایل زیر را باز کرده :
nano /etc/default/ufw
و عبارت زیر را :
DEFAULT_FORWARD_POLICY="DROP"
به عبارت زیر تغییر دهید :
DEFAULT_FORWARD_POLICY="ACCEPT"
در واقع مقدار پیش فرض forward chain را از drop به accept تغییر می دهیم .
موفق باشید . با تشکر
منبع : او اس لرن دات آی آر | http://OSLearn.ir
نویسنده :E2MA3N