ابزار کاربر

ابزار سایت


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

تفاوت‌ها

تفاوت دو نسخهٔ متفاوت از صفحه را مشاهده می‌کنید.

پیوند به صفحه‌ی تفاوت‌ها

نگارش قبل در دو طرفنگارش قبل
نگارش بعد
نگارش قبل
terminal:u:how-to-configure-a-firewall-with-ufw [2019/09/30 17:11] phoenixterminal:u:how-to-configure-a-firewall-with-ufw [2020/01/20 19:36] (فعلی) – [طریقه کانفیگ فایروال با ufw] phoenix
خط 1: خط 1:
 ====== طریقه کانفیگ فایروال با ufw ====== ====== طریقه کانفیگ فایروال با ufw ======
-UFW  ، رابط کاربری با iptables است که به سمت ساده کردن روند پیکربندی فایروال هدایت می شود. در حالی که iptables ابزاری محکم و انعطاف پذیر است ، یادگیری نحوه استفاده از آن برای پیکربندی صحیح فایروال ، برای مبتدیان دشوار است. اگر به دنبال شروع به کار در تأمین امنیت شبکه خود هستید و مطمئن نیستید از کدام ابزاری استفاده کنید ، UFW ممکن است انتخاب مناسبی برای شما باشد.+[[software:security:firewall:gufw|ufw]] ، یک چیزی شبیه فایروال **iptables** است که روند پیکربندی فایروال را بسیار ساده کرده. در حالی که **iptables** ابزاری محکم و انعطاف پذیر است ، یادگیری نحوه استفاده از آن برای پیکربندی صحیح فایروال ، برای مبتدیان دشوار است. اگر به دنبال شروع به کار در تأمین امنیت شبکه خود هستید و مطمئن نیستید از کدام ابزاری استفاده کنید ، [[software:security:firewall:gufw|ufw]] ممکن است انتخاب مناسبی برای شما باشد. 
 + 
 +<WRAP center round tip 60%> 
 +در صورت هرگونه سوال یا مشکل حتما در [[https://linuxfedora.ir/forum/viewtopic.php?f=9&t=46|انجمن]] مطرح نمایید تا در اسرع وقت پاسخگو باشیم 
 +[[https://linuxfedora.ir/forum/viewtopic.php?f=9&t=46|انجمن]] 
 +</WRAP> 
 +===== مرحله 1 - استفاده از IPv6 با UFW (اختیاری) ===== 
 + 
 +این آموزش با **IPv4** نوشته شده است ، اما میتوانید برای وژن ۶ هم آنرا فعال کنید ، و بدون مشکل در **IPv6** نیز کار خواهد کرد.اگر **IPv6** برای شما فعال هست ، اطمینان حاصل کنید که [[software:security:firewall:gufw|ufw]] برای پشتیبانی از **IPv6** تنظیم شده است تا بتواند علاوه بر **IPv4** ، قوانین فایروال را برای **IPv6** نیز مدیریت کند. برای این کار ، پیکربندی [[software:security:firewall:gufw|ufw]] را با [[terminal:v:linux_vi_and_vim_editor|vim]] یا هر ویرایشگر مورد علاقه خود باز کنید. 
 +<code;bash;> 
 +sudo vim /etc/default/ufw 
 +</code>  
 +خطی که عبارت ''IPV6'' را پیدا کرده و جلوی آن کلمه ''yes'' را بنویسید. همانند شکل زیر 
 +<code;bash;> 
 +... 
 +IPV6=yes 
 +... 
 +</code> 
 +ذخیره کنید و فایل را ببندید. حال ، هنگامی که UFW فعال است ، تمام قوانین IPv4 و IPv6 را اعمال میکند. 
 +===== مرحله 2 - تنظیم سیاست های پیش فرض ===== 
 + 
 +اگر تازه با دیوار آتش شروع کرده اید ، اولین قوانینی که باید تعریف کنید خط مشی های پیش فرض شما هستند. این قوانین نحوه کنترل ترافیک را که صریحاً با سایر قوانین مطابقت ندارد ، کنترل می کنند. به طور پیش فرض ، [[software:security:firewall:gufw|ufw]] قرار است تمام اتصالات ورودی را انکار کند و به همه اتصالات خروجی اجازه می دهد. این بدان معناست هیچ کسی از خارج به سیستم شما دسترسی ندارد ، در حالی که هر برنامه ای در سیستم شما قادر به دستیابی به دنیای خارج خواهد بود. 
 + 
 +بیایید قوانین [[software:security:firewall:gufw|ufw]] شما را به حالت پیش فرض برگردانیم. برای تنظیم پیش فرض های استفاده شده توسط [[software:security:firewall:gufw|ufw]] ، از این دستورات استفاده کنید: 
 +<code;bash;> 
 +sudo ufw default deny incoming 
 +sudo ufw default allow outgoing 
 +</code> 
 +===== مرحله 3 - مجاز کردن اتصالات SSH (اختیاری)===== 
 + 
 + 
 +اگر اکنون دیوار آتش [[software:security:firewall:gufw|ufw]] را فعال کنیم ، تمام اتصالات ورودی را انکار می کند. این بدان معناست که اگر بخواهیم این دیوارآتش را بر روی سرور فعال بکنیم ، باید قوانینی را ایجاد کنیم که صریحاً اجازه ورود به سیستمهای ورودی قانونی کند - برای مثال اتصالات ''SSH'' یا ''HTTP''. اگر از سرور ابری استفاده می کنید ، احتمالاً می خواهید به اتصالات **SSH** اجازه ورود دهید تا بتوانید به سرور خود وصل و مدیریت کنید. 
 + 
 +برای پیکربندی سرور خود برای وصل شدن به **SSH** ، می توانید از این دستور استفاده کنید: 
 +<code;bash;> 
 +sudo ufw allow ssh 
 +</code> 
 +این قوانین به کلیه اتصالات در پورت **22** اجازه وصل شدن را میدهد. [[software:security:firewall:gufw|ufw]] می داند **SSH** و تعدادی دیگر از اسامی سرویس به چه معناست زیرا در پرونده ''/ etc / service'' به عنوان سرویس ذکر شده اند. 
 + 
 +با این وجود ، ما در واقع می توانیم با مشخص کردن پورت به جای نام سرویس ، قانون معادل آن را بنویسیم. به عنوان مثال ، این دستور مانند دستور فوق کار می کند: 
 +<code;bash;> 
 +sudo ufw allow 22 
 +</code> 
 +اگر **SSH** خود را برای استفاده از درگاه دیگری پیکربندی کرده اید ، باید پورت مناسب را مشخص کنید. به عنوان مثال ، اگر سرور **SSH** شما درگاه **2222** را گوش می دهد ، می توانید از این دستور برای اتصال به آن درگاه استفاده کنید: 
 +<code;bash;> 
 +sudo ufw allow 2222 
 +</code> 
 +اکنون فایروال شما پیکربندی شده است تا بتواند اتصالات **SSH** ورودی داشته باشد. 
 +===== مرحله 4 - فعال کردن UFW ===== 
 + 
 +برای فعال کردن [[software:security:firewall:gufw|ufw]] ، از این دستور استفاده کنید: 
 +<code;bash;> 
 +sudo ufw enable 
 +</code> 
 +شما یک اخطار دریافت خواهید کرد که می گوید این فرمان ممکن است اتصالات **SSH** موجود را مختل کند. ما قبلاً یک قانون فایروال تنظیم کرده ایم که اتصالات **SSH** را امکان پذیر می سازد ،پس با <key>y</key> پاسخ دهید. 
 + 
 +فایروال اکنون فعال است. برای دیدن دستورالعمل های تنظیم شده ، می توانید دستور زیر را استفاده کنید: 
 +<code;bash;> 
 +sudo ufw status verbose 
 +</code> 
 +===== مرحله 5 - اجازه به سایر اتصالات (اختیاری) ===== 
 + 
 +در این مرحله ، شما باید به سایر اتصالات مورد نیاز  خود برای پاسخگویی اجازه دهید. ارتباطاتی که شما باید به آنها اجازه دهید بستگی به نیازهای خاص شما دارد. خوشبختانه ، شما می دانید چگونه می توانید قوانینی را بنویسید که اتصالات را بر اساس نام یا پورت سرویس امکان پذیر می سازد. ما قبلاً این کار را برای **SSH** در پورت **22** انجام دادیم. 
 + بقیه این آموزش نحوه استفاده از [[software:security:firewall:gufw|ufw]] را با جزئیات بیشتر ، مانند اجازه یا انکار انواع مختلف اتصالات ، ارائه می دهد. 
 +  * HTTP در پورت 80 ، همان چیزی است که در سرورهای وب رمز نشده استفاده می شود 
 +<code;bash;> 
 +sudo ufw allow http 
 +یا 
 +sudo ufw allow 80 
 +</code> 
 +  * HTTPS در پورت 443 ، همان چیزی است که در سرورهای وب رمزگذاری شده استفاده می شود 
 +<code;bash;> 
 +sudo ufw allow https 
 +یا 
 +sudo ufw allow 443 
 +</code> 
 +  * FTP در پورت 21 ، که برای انتقال پرونده های رمز نشده استفاده می شود (که بهتر است از آن استفاده نکنید) 
 +<code;bash;> 
 +sudo ufw allow ftp 
 +یا 
 +sudo ufw allow 21/tcp 
 +</code> 
 +به غیر از مشخص کردن درگاه یا سرویس شناخته شده ، راه های دیگری برای اجازه سایر اتصالات وجود دارد. 
 +==== محدوده پورت خاص ==== 
 + 
 + 
 +شما می توانید محدوده پورت را برای [[software:security:firewall:gufw|ufw]] مشخص کنید. برخی از برنامه ها به جای یک پورت واحد از پورت های مختلف استفاده می کنند. 
 + 
 +به عنوان مثال ، برای اجازه دادن به اتصالات **X11** ، که از پورت های ''6000-6007'' استفاده می کنند ، از این دستورات استفاده کنید: 
 +<code;bash;> 
 +sudo ufw allow 6000:6007/tcp 
 +sudo ufw allow 6000:6007/udp 
 +</code> 
 +هنگام مشخص کردن محدوده پورت برای [[software:security:firewall:gufw|ufw]] ، باید پروتکل (**tcp** یا **udp**) را مشخص کنید که قوانین باید روی آن اعمال شود. ما قبلاً به این موضوع اشاره نکرده ایم زیرا مشخص نکردن پروتکل به هر دو پروتکل اجازه دسترسی می دهد بصورت پیش فرض 
 +==== آدرس های IP خاص ==== 
 + 
 + 
 +هنگام کار با [[software:security:firewall:gufw|ufw]] ، می توانید آدرس IP را نیز مشخص کنید. به عنوان مثال ، اگر می خواهید از یک آدرس IP خاص مانند آدرس IP محل کار یا خانه با شماره ''15.15.15.51'' اجازه دسترسی دهید ، باید آدرس IP را مشخص کنید: 
 +<code;bash;> 
 +sudo ufw allow from 15.15.15.51 
 +</code> 
 +همچنین می توانید پورت خاصی را تعیین کنید که آدرس IP مجاز به آن باشد. به عنوان مثال ، اگر می خواهید به ''15.15.15.51'' اجازه اتصال به پورت **22** **(SSH)** را بدهید ، از این دستور استفاده کنید: 
 +<code;bash;> 
 +sudo ufw allow from 15.15.15.51 to any port 22 
 +</code> 
 +==== زیرمجموعه ها(Subnets) ==== 
 +اگر می خواهید به یک زیر شبکه از آدرس های IP اجازه دهید ، می توانید با استفاده از نماد **/** برای مشخص کردن یک **netmask** این کار را انجام دهید. به عنوان مثال ، اگر می خواهید تمام آدرس های IP از ''15.15.15.1'' تا ''15.15.15.254'' را مجاز کنید ، می توانید از این دستور استفاده کنید: 
 +<code;bash;> 
 +sudo ufw allow from 15.15.15.0/24 
 +</code> 
 +به همین ترتیب ، شما همچنین می توانید پورت مقصد را نیز تعیین کنید که زیر شبکه **15.15.15.0/24** اجازه اتصال به آن را داشته باشد. باز هم ، ما از پورت **22 (SSH)** به عنوان نمونه استفاده خواهیم کرد: 
 +<code;bash;> 
 +sudo ufw allow from 15.15.15.0/24 to any port 22 
 +</code> 
 +نمونه هایی از استفاده از این قوانین  رو مینونید در لینکهای زیر ببینید 
 + 
 +[[tutorials:network:how_do_you_network_2_linux_computers|طریقه شبکه کردن ۲ کامپیوتر گنو/لینوکسی]] 
 + 
 +[[tutorials:network:how-to-share-printers-linux-pcs-on-a-network|طریقه اشتراک گذاری پرینتر در شبکه در لینوکس]] 
 + 
 +==== اتصال به یک کارت شبکه خاص ==== 
 + 
 + 
 +اگر می خواهید یک قانون فایروال ایجاد کنید که فقط مربوط به یک کارت شبکه خاص مرتبط باشد ، می توانید با مشخص کردن **"allow in on"** و نام کارت شبکه این کار را انجام دهید. 
 + 
 +ممکن است بخواهید قبل از ادامه کار ، رابط های شبکه خود را جستجو کنید. برای انجام این کار ، از این دستور استفاده کنید: 
 +<code;bash;> 
 +ip addr 
 +</code> 
 +خروجی دستور بالا 
 +<code;bash;> 
 +... 
 +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  
 +... 
 +</code> 
 +خروجی بالا نشانگر نام های کارت شبکه است. به طور معمول چیزی شبیه زیر نامیده میشود ''eth0'' یا ''eth1'' 
 +بنابراین ، اگر سیستم شما یک کارت شبکه عمومی به نام **eth0** دارد ، می توانید با این دستور ترافیک **HTTP (پورت 80)** را به آن متصل کنید: 
 +<code;bash;> 
 +sudo ufw allow in on eth0 to any port 80 
 +</code> 
 +با انجام این کار به سیستم شما امکان می دهد درخواستهای **HTTP** را از طریق **eth0** دریافت کند. 
 + 
 +یا اگر می خواهید سرور پایگاه داده **MySQL (پورت 3306)** شما را به عنوان مثال در کارت شبکه خصوصی **eth1** گوش دهد ، می توانید از این دستور استفاده کنید: 
 +<code;bash;> 
 +sudo ufw allow in on eth1 to any port 3306 
 +</code> 
 +این به سرورهای دیگر در شبکه خصوصی شما اجازه می دهد تا به پایگاه داده **MySQL** شما متصل شوند. 
 +===== مرحله 6 - انکار اتصالات ===== 
 +اگر خط مشی پیش فرض اتصال های ورودی را تغییر نداده اید ، [[software:security:firewall:gufw|ufw]] پیکربندی شده است تا تمام اتصالات ورودی را انکار کند.  
 +با این وجود ، گاهی اوقات شما می خواهید ارتباطات خاص را بر اساس آدرس IP منکر کنید ، شاید به این دلیل که می دانید سرور شما از آنجا مورد حمله قرار می گیرد. همچنین ، اگر می خواهید خط مشی ورودی پیش فرض خود را تغییر دهید<wrap hi>(که اصلا توصیه نمیشود)</wrap> ، لازم است که قوانین را برای هرگونه خدمات یا آدرسهای IP که نمی خواهید مجوزهای مربوطه آنها را ایجاد کنید. 
 + 
 +برای نوشتن قوانین انکار ، می توانید از دستورات گفته شده در بالا استفاده کنید. 
 +به عنوان مثال ، برای انکار اتصالات **HTTP** ، می توانید از این دستور استفاده کنید:  
 +<code;bash;> 
 +sudo ufw deny http 
 +</code> 
 +یا اگر می خواهید تمام اتصالات را از **15.15.15.51** رد کنید ، می توانید از این دستور استفاده کنید: 
 + 
 +<code;bash;> 
 +sudo ufw deny from 15.15.15.51 
 +</code> 
 +===== مرحله 7 - حذف قوانین ===== 
 + 
 +دانستن چگونگی حذف قوانین فایروال به همان اندازه مهم است که بدانید چگونه می توانید آنها را ایجاد کنید. دو روش مختلف وجود دارد:  
 +  - بر اساس شماره قانون 
 +  - قانون واقعی (شبیه به نحوه تعیین قوانین هنگام ایجاد)  
 + اگر با [[software:security:firewall:gufw|ufw]] تازه وارد هستید ، با روش حذف با شماره قانون شروع خواهیم کرد زیرا ساده تر از نوشتن قوانین واقعی برای حذف است. 
 +==== توسط شماره قانون ==== 
 + 
 +اگر از شماره قانون برای حذف قوانین فایروال استفاده می کنید ، اولین کاری که می خواهید انجام دهید این است که لیستی از قوانین فایروال خود را تهیه کنید. دستور وضعیت [[software:security:firewall:gufw|ufw]] گزینه ای برای نمایش شماره ها در کنار هر قانون است ، همانطور که در اینجا نشان داده شده است: 
 +<code;bash;> 
 +sudo ufw status numbered 
 +</code> 
 +خروجی دستور بالا 
 +<code;bash;> 
 +Status: active 
 + 
 +     To                         Action      From 
 +     --                         ------      ---- 
 +[ 1] 22                         ALLOW IN    15.15.15.0/24 
 +[ 2] 80                         ALLOW IN    Anywhere 
 +</code> 
 +اگر تصمیم بگیریم که قانون 2 را حذف کنیم ،  که امکان دسترسی به پورت ''80 (HTTP)'' را فراهم می کند ، می توانیم آن را در یک فرمان حذف [[software:security:firewall:gufw|ufw]] مانند این موارد مشخص کنیم: 
 +<code;bash;> 
 +sudo ufw delete 2 
 +</code> 
 +از شما تاییدیه دریافت و سپس قانون 2 را حذف میکند 
 +==== طبق قانون ==== 
 + 
 +گزینه جایگزین برای [[terminal:u:how-to-configure-a-firewall-with-ufw#توسط شماره قانون|شماره ها]] ، تعیین قانون واقعی برای حذف است. به عنوان مثال ، اگر می خواهید قانون **http** را حذف کنید ، می توانید آن را به صورت زیر بنویسید: 
 +<code;bash;> 
 +sudo ufw delete allow http 
 +</code> 
 +شما همچنین می توانید به جای نام خدمات ، قانون را با شماره** پورت 80** مشخص کنید: 
 +<code;bash;> 
 +sudo ufw delete allow 80 
 +</code> 
 +در صورت استفاده از **IPv4** و **IPv6** قانون برای هر دو حذف می شود. 
 +===== مرحله 8 - بررسی وضعیت و قوانین UFW ===== 
 + 
 +در هر زمان ، می توانید وضعیت [[software:security:firewall:gufw|ufw]] را با این دستور بررسی کنید: 
 +<code;bash;> 
 +sudo ufw status verbose 
 +</code> 
 +اگر [[software:security:firewall:gufw|ufw]] غیرفعال باشد ، که به طور پیش فرض است ، چنین چیزی را مشاهده خواهید کرد: 
 +<code;bash;> 
 +Output 
 +Status: inactive 
 +</code> 
 +اگر [[software:security:firewall:gufw|ufw]] فعال باشد ، که در [[terminal:u:how-to-configure-a-firewall-with-ufw#مرحله 4 - فعال کردن UFW|مرحله ۴ آنرا بررسی کردیم]] ، خروجی می گوید که فعال است و قوانینی را که تنظیم شده است لیست می کند. به عنوان مثال ، اگر فایروال تنظیم شود تا اتصالات **SSH (پورت 22)** را از هر مکانی امکان پذیر کند ، ممکن است خروجی چیزی شبیه به این باشد: 
 +<code;bash;> 
 +Output 
 +Status: active 
 +Logging: on (low) 
 +Default: deny (incoming), allow (outgoing), disabled (routed) 
 +New profiles: skip 
 + 
 +To                         Action      From 
 +--                         ------      ---- 
 +22/tcp                     ALLOW IN    Anywhere 
 +</code> 
 +===== مرحله 9 - غیرفعال کردن یا تنظیم مجدد UFW (اختیاری) ===== 
 + 
 +اگر تصمیم دارید یا نمی خواهید از [[software:security:firewall:gufw|ufw]] استفاده کنید ، می توانید با این دستور آن را غیرفعال کنید: 
 +<code;bash;> 
 +sudo ufw disable 
 +</code> 
 +هر قانونی که با [[software:security:firewall:gufw|ufw]] ایجاد کرده باشید دیگر فعال نخواهد بود. اگر لازم است بعداً آن را فعال کنید ، همیشه می توانید [[terminal:u:how-to-configure-a-firewall-with-ufw#مرحله 4 - فعال کردن UFW|مرحله ۴ را انجام دهید]] 
 + 
 +اگر قبلاً قوانین [[software:security:firewall:gufw|ufw]] را پیکربندی کرده اید اما تصمیم دارید تنظیمات را دوباره انجام دهید می توانید از دستور تنظیم مجدد استفاده کنید: 
 +<code;bash;> 
 +sudo ufw reset 
 +</code> 
 +با این کار [[software:security:firewall:gufw|ufw]] غیرفعال می شود و قوانینی را که قبلاً تعریف شده بودند حذف می کند. 
 + --- //[[phoenix@linuxfedora.ir|phoenix]] 2019/09/30 20:22//
terminal/u/how-to-configure-a-firewall-with-ufw.1569850901.txt.gz · آخرین ویرایش: 2019/09/30 17:11 توسط phoenix

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki