terminal:u:how-to-configure-a-firewall-with-ufw
تفاوتها
تفاوت دو نسخهٔ متفاوت از صفحه را مشاهده میکنید.
نگارش قبل در دو طرفنگارش قبلنگارش بعد | نگارش قبل | ||
terminal:u:how-to-configure-a-firewall-with-ufw [2019/09/30 17:24] – phoenix | terminal:u:how-to-configure-a-firewall-with-ufw [2020/01/20 19:36] (فعلی) – [طریقه کانفیگ فایروال با ufw] phoenix | ||
---|---|---|---|
خط 1: | خط 1: | ||
====== طریقه کانفیگ فایروال با ufw ====== | ====== طریقه کانفیگ فایروال با ufw ====== | ||
[[software: | [[software: | ||
+ | |||
+ | <WRAP center round tip 60%> | ||
+ | در صورت هرگونه سوال یا مشکل حتما در [[https:// | ||
+ | [[https:// | ||
+ | </ | ||
===== مرحله 1 - استفاده از IPv6 با UFW (اختیاری) ===== | ===== مرحله 1 - استفاده از IPv6 با UFW (اختیاری) ===== | ||
- | این آموزش با **IPv4** نوشته شده است ، اما میتوانید برای وژن ۶ هم آنرا فعال کنید ، و بدون مشکل در **IPv6** نیز کار خواهد کرد.اگر **IPv6** برای شما فعال هست ، اطمینان حاصل کنید که [[software: | + | این آموزش با **IPv4** نوشته شده است ، اما میتوانید برای وژن ۶ هم آنرا فعال کنید ، و بدون مشکل در **IPv6** نیز کار خواهد کرد.اگر **IPv6** برای شما فعال هست ، اطمینان حاصل کنید که [[software: |
+ | < | ||
+ | sudo vim / | ||
+ | </ | ||
+ | خطی که عبارت '' | ||
+ | < | ||
+ | ... | ||
+ | IPV6=yes | ||
+ | ... | ||
+ | </ | ||
+ | ذخیره کنید و فایل را ببندید. حال ، هنگامی که UFW فعال است ، تمام قوانین IPv4 و IPv6 را اعمال میکند. | ||
+ | ===== مرحله 2 - تنظیم سیاست های پیش فرض ===== | ||
+ | |||
+ | اگر تازه با دیوار آتش شروع کرده اید ، اولین قوانینی که باید تعریف کنید خط مشی های پیش فرض شما هستند. این قوانین نحوه کنترل ترافیک را که صریحاً با سایر قوانین مطابقت ندارد ، کنترل می کنند. به طور پیش فرض ، [[software: | ||
+ | |||
+ | بیایید قوانین [[software: | ||
+ | < | ||
+ | sudo ufw default deny incoming | ||
+ | sudo ufw default allow outgoing | ||
+ | </ | ||
+ | ===== مرحله 3 - مجاز کردن اتصالات SSH (اختیاری)===== | ||
+ | |||
+ | |||
+ | اگر اکنون دیوار آتش [[software: | ||
+ | |||
+ | برای پیکربندی سرور خود برای وصل شدن به **SSH** ، می توانید از این دستور استفاده کنید: | ||
+ | < | ||
+ | sudo ufw allow ssh | ||
+ | </ | ||
+ | این قوانین به کلیه اتصالات در پورت **22** اجازه وصل شدن را میدهد. [[software: | ||
+ | |||
+ | با این وجود ، ما در واقع می توانیم با مشخص کردن پورت به جای نام سرویس ، قانون معادل آن را بنویسیم. به عنوان مثال ، این دستور مانند دستور فوق کار می کند: | ||
+ | < | ||
+ | sudo ufw allow 22 | ||
+ | </ | ||
+ | اگر **SSH** خود را برای استفاده از درگاه دیگری پیکربندی کرده اید ، باید پورت مناسب را مشخص کنید. به عنوان مثال ، اگر سرور **SSH** شما درگاه **2222** را گوش می دهد ، می توانید از این دستور برای اتصال به آن درگاه استفاده کنید: | ||
+ | < | ||
+ | sudo ufw allow 2222 | ||
+ | </ | ||
+ | اکنون فایروال شما پیکربندی شده است تا بتواند اتصالات **SSH** ورودی داشته باشد. | ||
+ | ===== مرحله 4 - فعال کردن UFW ===== | ||
+ | |||
+ | برای فعال کردن [[software: | ||
+ | < | ||
+ | sudo ufw enable | ||
+ | </ | ||
+ | شما یک اخطار دریافت خواهید کرد که می گوید این فرمان ممکن است اتصالات **SSH** موجود را مختل کند. ما قبلاً یک قانون فایروال تنظیم کرده ایم که اتصالات **SSH** را امکان پذیر می سازد ،پس با < | ||
+ | |||
+ | فایروال اکنون فعال است. برای دیدن دستورالعمل های تنظیم شده ، می توانید دستور زیر را استفاده کنید: | ||
+ | < | ||
+ | sudo ufw status verbose | ||
+ | </ | ||
+ | ===== مرحله 5 - اجازه به سایر اتصالات (اختیاری) ===== | ||
+ | |||
+ | در این مرحله ، شما باید به سایر اتصالات مورد نیاز | ||
+ | | ||
+ | * 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 | ||
+ | </ | ||
+ | به غیر از مشخص کردن درگاه یا سرویس شناخته شده ، راه های دیگری برای اجازه سایر اتصالات وجود دارد. | ||
+ | ==== محدوده پورت خاص ==== | ||
+ | |||
+ | |||
+ | شما می توانید محدوده پورت را برای [[software: | ||
+ | |||
+ | به عنوان مثال ، برای اجازه دادن به اتصالات **X11** ، که از پورت های '' | ||
+ | < | ||
+ | sudo ufw allow 6000: | ||
+ | sudo ufw allow 6000: | ||
+ | </ | ||
+ | هنگام مشخص کردن محدوده پورت برای [[software: | ||
+ | ==== آدرس های IP خاص ==== | ||
+ | |||
+ | |||
+ | هنگام کار با [[software: | ||
+ | < | ||
+ | sudo ufw allow from 15.15.15.51 | ||
+ | </ | ||
+ | همچنین می توانید پورت خاصی را تعیین کنید که آدرس IP مجاز به آن باشد. به عنوان مثال ، اگر می خواهید به '' | ||
+ | < | ||
+ | sudo ufw allow from 15.15.15.51 to any port 22 | ||
+ | </ | ||
+ | ==== زیرمجموعه ها(Subnets) ==== | ||
+ | اگر می خواهید به یک زیر شبکه از آدرس های IP اجازه دهید ، می توانید با استفاده از نماد **/** برای مشخص کردن یک **netmask** این کار را انجام دهید. به عنوان مثال ، اگر می خواهید تمام آدرس های IP از '' | ||
+ | < | ||
+ | sudo ufw allow from 15.15.15.0/ | ||
+ | </ | ||
+ | به همین ترتیب ، شما همچنین می توانید پورت مقصد را نیز تعیین کنید که زیر شبکه **15.15.15.0/ | ||
+ | < | ||
+ | sudo ufw allow from 15.15.15.0/ | ||
+ | </ | ||
+ | نمونه هایی از استفاده از این قوانین | ||
+ | |||
+ | [[tutorials: | ||
+ | |||
+ | [[tutorials: | ||
+ | |||
+ | ==== اتصال به یک کارت شبکه خاص ==== | ||
+ | |||
+ | |||
+ | اگر می خواهید یک قانون فایروال ایجاد کنید که فقط مربوط به یک کارت شبکه خاص مرتبط باشد ، می توانید با مشخص کردن **" | ||
+ | |||
+ | ممکن است بخواهید قبل از ادامه کار ، رابط های شبکه خود را جستجو کنید. برای انجام این کار ، از این دستور استفاده کنید: | ||
+ | < | ||
+ | ip addr | ||
+ | </ | ||
+ | خروجی دستور بالا | ||
+ | < | ||
+ | ... | ||
+ | 2: eth0: < | ||
+ | ... | ||
+ | 3: 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 - انکار اتصالات ===== | ||
+ | اگر خط مشی پیش فرض اتصال های ورودی را تغییر نداده اید ، [[software: | ||
+ | با این وجود ، گاهی اوقات شما می خواهید ارتباطات خاص را بر اساس آدرس IP منکر کنید ، شاید به این دلیل که می دانید سرور شما از آنجا مورد حمله قرار می گیرد. همچنین ، اگر می خواهید خط مشی ورودی پیش فرض خود را تغییر دهید< | ||
+ | |||
+ | برای نوشتن قوانین انکار ، می توانید از دستورات گفته شده در بالا استفاده کنید. | ||
+ | به عنوان مثال ، برای انکار اتصالات **HTTP** ، می توانید از این دستور استفاده کنید: | ||
+ | < | ||
+ | sudo ufw deny http | ||
+ | </ | ||
+ | یا اگر می خواهید تمام اتصالات را از **15.15.15.51** رد کنید ، می توانید از این دستور استفاده کنید: | ||
+ | |||
+ | < | ||
+ | sudo ufw deny from 15.15.15.51 | ||
+ | </ | ||
+ | ===== مرحله 7 - حذف قوانین ===== | ||
+ | |||
+ | دانستن چگونگی حذف قوانین فایروال به همان اندازه مهم است که بدانید چگونه می توانید آنها را ایجاد کنید. دو روش مختلف وجود دارد: | ||
+ | - بر اساس شماره قانون | ||
+ | - قانون واقعی (شبیه به نحوه تعیین قوانین هنگام ایجاد) | ||
+ | | ||
+ | ==== توسط شماره قانون ==== | ||
+ | |||
+ | اگر از شماره قانون برای حذف قوانین فایروال استفاده می کنید ، اولین کاری که می خواهید انجام دهید این است که لیستی از قوانین فایروال خود را تهیه کنید. دستور وضعیت [[software: | ||
+ | < | ||
+ | sudo ufw status numbered | ||
+ | </ | ||
+ | خروجی دستور بالا | ||
+ | < | ||
+ | Status: active | ||
+ | |||
+ | | ||
+ | | ||
+ | [ 1] 22 ALLOW IN 15.15.15.0/ | ||
+ | [ 2] 80 ALLOW IN Anywhere | ||
+ | </ | ||
+ | اگر تصمیم بگیریم که قانون 2 را حذف کنیم ، که امکان دسترسی به پورت '' | ||
+ | < | ||
+ | sudo ufw delete 2 | ||
+ | </ | ||
+ | از شما تاییدیه دریافت و سپس قانون 2 را حذف میکند | ||
+ | ==== طبق قانون ==== | ||
+ | |||
+ | گزینه جایگزین برای [[terminal: | ||
+ | < | ||
+ | sudo ufw delete allow http | ||
+ | </ | ||
+ | شما همچنین می توانید به جای نام خدمات ، قانون را با شماره** پورت 80** مشخص کنید: | ||
+ | < | ||
+ | sudo ufw delete allow 80 | ||
+ | </ | ||
+ | در صورت استفاده از **IPv4** و **IPv6** قانون برای هر دو حذف می شود. | ||
+ | ===== مرحله 8 - بررسی وضعیت و قوانین UFW ===== | ||
+ | |||
+ | در هر زمان ، می توانید وضعیت [[software: | ||
+ | < | ||
+ | sudo ufw status verbose | ||
+ | </ | ||
+ | اگر [[software: | ||
+ | < | ||
+ | Output | ||
+ | Status: inactive | ||
+ | </ | ||
+ | اگر [[software: | ||
+ | < | ||
+ | Output | ||
+ | Status: active | ||
+ | Logging: on (low) | ||
+ | Default: deny (incoming), allow (outgoing), disabled (routed) | ||
+ | New profiles: skip | ||
+ | |||
+ | To | ||
+ | -- | ||
+ | 22/ | ||
+ | </ | ||
+ | ===== مرحله 9 - غیرفعال کردن یا تنظیم مجدد UFW (اختیاری) ===== | ||
+ | |||
+ | اگر تصمیم دارید یا نمی خواهید از [[software: | ||
+ | < | ||
+ | sudo ufw disable | ||
+ | </ | ||
+ | هر قانونی که با [[software: | ||
+ | |||
+ | اگر قبلاً قوانین [[software: | ||
+ | < | ||
+ | sudo ufw reset | ||
+ | </ | ||
+ | با این کار [[software: | ||
+ | --- // |
terminal/u/how-to-configure-a-firewall-with-ufw.txt · آخرین ویرایش: 2020/01/20 19:36 توسط phoenix