ابزار کاربر

ابزار سایت


terminal:u:how-to-configure-a-firewall-with-ufw

طریقه کانفیگ فایروال با ufw

ufw ، یک چیزی شبیه فایروال iptables است که روند پیکربندی فایروال را بسیار ساده کرده. در حالی که iptables ابزاری محکم و انعطاف پذیر است ، یادگیری نحوه استفاده از آن برای پیکربندی صحیح فایروال ، برای مبتدیان دشوار است. اگر به دنبال شروع به کار در تأمین امنیت شبکه خود هستید و مطمئن نیستید از کدام ابزاری استفاده کنید ، ufw ممکن است انتخاب مناسبی برای شما باشد.

در صورت هرگونه سوال یا مشکل حتما در انجمن مطرح نمایید تا در اسرع وقت پاسخگو باشیم انجمن

مرحله 1 - استفاده از IPv6 با UFW (اختیاری)

این آموزش با IPv4 نوشته شده است ، اما میتوانید برای وژن ۶ هم آنرا فعال کنید ، و بدون مشکل در IPv6 نیز کار خواهد کرد.اگر IPv6 برای شما فعال هست ، اطمینان حاصل کنید که ufw برای پشتیبانی از IPv6 تنظیم شده است تا بتواند علاوه بر IPv4 ، قوانین فایروال را برای IPv6 نیز مدیریت کند. برای این کار ، پیکربندی ufw را با vim یا هر ویرایشگر مورد علاقه خود باز کنید.

sudo vim /etc/default/ufw

خطی که عبارت IPV6 را پیدا کرده و جلوی آن کلمه yes را بنویسید. همانند شکل زیر

...
IPV6=yes
...

ذخیره کنید و فایل را ببندید. حال ، هنگامی که UFW فعال است ، تمام قوانین IPv4 و IPv6 را اعمال میکند.

مرحله 2 - تنظیم سیاست های پیش فرض

اگر تازه با دیوار آتش شروع کرده اید ، اولین قوانینی که باید تعریف کنید خط مشی های پیش فرض شما هستند. این قوانین نحوه کنترل ترافیک را که صریحاً با سایر قوانین مطابقت ندارد ، کنترل می کنند. به طور پیش فرض ، ufw قرار است تمام اتصالات ورودی را انکار کند و به همه اتصالات خروجی اجازه می دهد. این بدان معناست هیچ کسی از خارج به سیستم شما دسترسی ندارد ، در حالی که هر برنامه ای در سیستم شما قادر به دستیابی به دنیای خارج خواهد بود.

بیایید قوانین ufw شما را به حالت پیش فرض برگردانیم. برای تنظیم پیش فرض های استفاده شده توسط ufw ، از این دستورات استفاده کنید:

sudo ufw default deny incoming
sudo ufw default allow outgoing

مرحله 3 - مجاز کردن اتصالات SSH (اختیاری)

اگر اکنون دیوار آتش ufw را فعال کنیم ، تمام اتصالات ورودی را انکار می کند. این بدان معناست که اگر بخواهیم این دیوارآتش را بر روی سرور فعال بکنیم ، باید قوانینی را ایجاد کنیم که صریحاً اجازه ورود به سیستمهای ورودی قانونی کند - برای مثال اتصالات SSH یا HTTP. اگر از سرور ابری استفاده می کنید ، احتمالاً می خواهید به اتصالات SSH اجازه ورود دهید تا بتوانید به سرور خود وصل و مدیریت کنید.

برای پیکربندی سرور خود برای وصل شدن به SSH ، می توانید از این دستور استفاده کنید:

sudo ufw allow ssh

این قوانین به کلیه اتصالات در پورت 22 اجازه وصل شدن را میدهد. ufw می داند SSH و تعدادی دیگر از اسامی سرویس به چه معناست زیرا در پرونده / etc / service به عنوان سرویس ذکر شده اند.

با این وجود ، ما در واقع می توانیم با مشخص کردن پورت به جای نام سرویس ، قانون معادل آن را بنویسیم. به عنوان مثال ، این دستور مانند دستور فوق کار می کند:

sudo ufw allow 22

اگر SSH خود را برای استفاده از درگاه دیگری پیکربندی کرده اید ، باید پورت مناسب را مشخص کنید. به عنوان مثال ، اگر سرور SSH شما درگاه 2222 را گوش می دهد ، می توانید از این دستور برای اتصال به آن درگاه استفاده کنید:

sudo ufw allow 2222

اکنون فایروال شما پیکربندی شده است تا بتواند اتصالات SSH ورودی داشته باشد.

مرحله 4 - فعال کردن UFW

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

sudo ufw enable

شما یک اخطار دریافت خواهید کرد که می گوید این فرمان ممکن است اتصالات SSH موجود را مختل کند. ما قبلاً یک قانون فایروال تنظیم کرده ایم که اتصالات SSH را امکان پذیر می سازد ،پس با Y پاسخ دهید.

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

sudo ufw status verbose

مرحله 5 - اجازه به سایر اتصالات (اختیاری)

در این مرحله ، شما باید به سایر اتصالات مورد نیاز خود برای پاسخگویی اجازه دهید. ارتباطاتی که شما باید به آنها اجازه دهید بستگی به نیازهای خاص شما دارد. خوشبختانه ، شما می دانید چگونه می توانید قوانینی را بنویسید که اتصالات را بر اساس نام یا پورت سرویس امکان پذیر می سازد. ما قبلاً این کار را برای SSH در پورت 22 انجام دادیم. بقیه این آموزش نحوه استفاده از ufw را با جزئیات بیشتر ، مانند اجازه یا انکار انواع مختلف اتصالات ، ارائه می دهد.

  • HTTP در پورت 80 ، همان چیزی است که در سرورهای وب رمز نشده استفاده می شود
sudo ufw allow http
یا
sudo ufw allow 80
  • HTTPS در پورت 443 ، همان چیزی است که در سرورهای وب رمزگذاری شده استفاده می شود
sudo ufw allow https
یا
sudo ufw allow 443
  • FTP در پورت 21 ، که برای انتقال پرونده های رمز نشده استفاده می شود (که بهتر است از آن استفاده نکنید)
sudo ufw allow ftp
یا
sudo ufw allow 21/tcp

به غیر از مشخص کردن درگاه یا سرویس شناخته شده ، راه های دیگری برای اجازه سایر اتصالات وجود دارد.

محدوده پورت خاص

شما می توانید محدوده پورت را برای ufw مشخص کنید. برخی از برنامه ها به جای یک پورت واحد از پورت های مختلف استفاده می کنند.

به عنوان مثال ، برای اجازه دادن به اتصالات X11 ، که از پورت های 6000-6007 استفاده می کنند ، از این دستورات استفاده کنید:

sudo ufw allow 6000:6007/tcp
sudo ufw allow 6000:6007/udp

هنگام مشخص کردن محدوده پورت برای ufw ، باید پروتکل (tcp یا udp) را مشخص کنید که قوانین باید روی آن اعمال شود. ما قبلاً به این موضوع اشاره نکرده ایم زیرا مشخص نکردن پروتکل به هر دو پروتکل اجازه دسترسی می دهد بصورت پیش فرض

آدرس های IP خاص

هنگام کار با ufw ، می توانید آدرس IP را نیز مشخص کنید. به عنوان مثال ، اگر می خواهید از یک آدرس IP خاص مانند آدرس IP محل کار یا خانه با شماره 15.15.15.51 اجازه دسترسی دهید ، باید آدرس IP را مشخص کنید:

sudo ufw allow from 15.15.15.51

همچنین می توانید پورت خاصی را تعیین کنید که آدرس IP مجاز به آن باشد. به عنوان مثال ، اگر می خواهید به 15.15.15.51 اجازه اتصال به پورت 22 (SSH) را بدهید ، از این دستور استفاده کنید:

sudo ufw allow from 15.15.15.51 to any port 22

زیرمجموعه ها(Subnets)

اگر می خواهید به یک زیر شبکه از آدرس های IP اجازه دهید ، می توانید با استفاده از نماد / برای مشخص کردن یک netmask این کار را انجام دهید. به عنوان مثال ، اگر می خواهید تمام آدرس های IP از 15.15.15.1 تا 15.15.15.254 را مجاز کنید ، می توانید از این دستور استفاده کنید:

sudo ufw allow from 15.15.15.0/24

به همین ترتیب ، شما همچنین می توانید پورت مقصد را نیز تعیین کنید که زیر شبکه 15.15.15.0/24 اجازه اتصال به آن را داشته باشد. باز هم ، ما از پورت 22 (SSH) به عنوان نمونه استفاده خواهیم کرد:

sudo ufw allow from 15.15.15.0/24 to any port 22

نمونه هایی از استفاده از این قوانین رو مینونید در لینکهای زیر ببینید

طریقه شبکه کردن ۲ کامپیوتر گنو/لینوکسی

طریقه اشتراک گذاری پرینتر در شبکه در لینوکس

اتصال به یک کارت شبکه خاص

اگر می خواهید یک قانون فایروال ایجاد کنید که فقط مربوط به یک کارت شبکه خاص مرتبط باشد ، می توانید با مشخص کردن «allow in on» و نام کارت شبکه این کار را انجام دهید.

ممکن است بخواهید قبل از ادامه کار ، رابط های شبکه خود را جستجو کنید. برای انجام این کار ، از این دستور استفاده کنید:

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 یا eth1 بنابراین ، اگر سیستم شما یک کارت شبکه عمومی به نام eth0 دارد ، می توانید با این دستور ترافیک HTTP (پورت 80) را به آن متصل کنید:

sudo ufw allow in on eth0 to any port 80

با انجام این کار به سیستم شما امکان می دهد درخواستهای HTTP را از طریق eth0 دریافت کند.

یا اگر می خواهید سرور پایگاه داده MySQL (پورت 3306) شما را به عنوان مثال در کارت شبکه خصوصی eth1 گوش دهد ، می توانید از این دستور استفاده کنید:

sudo ufw allow in on eth1 to any port 3306

این به سرورهای دیگر در شبکه خصوصی شما اجازه می دهد تا به پایگاه داده MySQL شما متصل شوند.

مرحله 6 - انکار اتصالات

اگر خط مشی پیش فرض اتصال های ورودی را تغییر نداده اید ، ufw پیکربندی شده است تا تمام اتصالات ورودی را انکار کند. با این وجود ، گاهی اوقات شما می خواهید ارتباطات خاص را بر اساس آدرس IP منکر کنید ، شاید به این دلیل که می دانید سرور شما از آنجا مورد حمله قرار می گیرد. همچنین ، اگر می خواهید خط مشی ورودی پیش فرض خود را تغییر دهید(که اصلا توصیه نمیشود) ، لازم است که قوانین را برای هرگونه خدمات یا آدرسهای IP که نمی خواهید مجوزهای مربوطه آنها را ایجاد کنید.

برای نوشتن قوانین انکار ، می توانید از دستورات گفته شده در بالا استفاده کنید. به عنوان مثال ، برای انکار اتصالات HTTP ، می توانید از این دستور استفاده کنید:

sudo ufw deny http

یا اگر می خواهید تمام اتصالات را از 15.15.15.51 رد کنید ، می توانید از این دستور استفاده کنید:

sudo ufw deny from 15.15.15.51

مرحله 7 - حذف قوانین

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

  1. بر اساس شماره قانون
  2. قانون واقعی (شبیه به نحوه تعیین قوانین هنگام ایجاد)

اگر با ufw تازه وارد هستید ، با روش حذف با شماره قانون شروع خواهیم کرد زیرا ساده تر از نوشتن قوانین واقعی برای حذف است.

توسط شماره قانون

اگر از شماره قانون برای حذف قوانین فایروال استفاده می کنید ، اولین کاری که می خواهید انجام دهید این است که لیستی از قوانین فایروال خود را تهیه کنید. دستور وضعیت ufw گزینه ای برای نمایش شماره ها در کنار هر قانون است ، همانطور که در اینجا نشان داده شده است:

sudo ufw status numbered

خروجی دستور بالا

Status: active
 
     To                         Action      From
     --                         ------      ----
[ 1] 22                         ALLOW IN    15.15.15.0/24
[ 2] 80                         ALLOW IN    Anywhere

اگر تصمیم بگیریم که قانون 2 را حذف کنیم ، که امکان دسترسی به پورت 80 (HTTP) را فراهم می کند ، می توانیم آن را در یک فرمان حذف ufw مانند این موارد مشخص کنیم:

sudo ufw delete 2

از شما تاییدیه دریافت و سپس قانون 2 را حذف میکند

طبق قانون

گزینه جایگزین برای شماره ها ، تعیین قانون واقعی برای حذف است. به عنوان مثال ، اگر می خواهید قانون http را حذف کنید ، می توانید آن را به صورت زیر بنویسید:

sudo ufw delete allow http

شما همچنین می توانید به جای نام خدمات ، قانون را با شماره پورت 80 مشخص کنید:

sudo ufw delete allow 80

در صورت استفاده از IPv4 و IPv6 قانون برای هر دو حذف می شود.

مرحله 8 - بررسی وضعیت و قوانین UFW

در هر زمان ، می توانید وضعیت ufw را با این دستور بررسی کنید:

sudo ufw status verbose

اگر ufw غیرفعال باشد ، که به طور پیش فرض است ، چنین چیزی را مشاهده خواهید کرد:

Output
Status: inactive

اگر ufw فعال باشد ، که در مرحله ۴ آنرا بررسی کردیم ، خروجی می گوید که فعال است و قوانینی را که تنظیم شده است لیست می کند. به عنوان مثال ، اگر فایروال تنظیم شود تا اتصالات SSH (پورت 22) را از هر مکانی امکان پذیر کند ، ممکن است خروجی چیزی شبیه به این باشد:

Output
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip
 
To                         Action      From
--                         ------      ----
22/tcp                     ALLOW IN    Anywhere

مرحله 9 - غیرفعال کردن یا تنظیم مجدد UFW (اختیاری)

اگر تصمیم دارید یا نمی خواهید از ufw استفاده کنید ، می توانید با این دستور آن را غیرفعال کنید:

sudo ufw disable

هر قانونی که با ufw ایجاد کرده باشید دیگر فعال نخواهد بود. اگر لازم است بعداً آن را فعال کنید ، همیشه می توانید مرحله ۴ را انجام دهید

اگر قبلاً قوانین ufw را پیکربندی کرده اید اما تصمیم دارید تنظیمات را دوباره انجام دهید می توانید از دستور تنظیم مجدد استفاده کنید:

sudo ufw reset

با این کار ufw غیرفعال می شود و قوانینی را که قبلاً تعریف شده بودند حذف می کند. — phoenix 2019/09/30 20:22

terminal/u/how-to-configure-a-firewall-with-ufw.txt · آخرین ویرایش: 2020/01/20 19:36 توسط phoenix

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki