پیکربندی iptables در CentOS 7

تمام سیستم عامل های مبتنی بر هسته لینوکس دارای یک فایروال داخلی است که ترافیک ورودی و خروجی را براساس قوانین تعیین شده توسط کاربر یا پلتفرم نظارت و فیلتر می کند. در توزیع CentOS 7 به طور پیش فرض، این تابع با استفاده از ابزار iptables انجام می شود، در ارتباط با فایروال ساخته شده در netfilter. گاهی اوقات یک مدیر سیستم یا مدیر شبکه باید عملیات این مولفه را با نوشتن قوانین مناسب سفارشی کند. در مقاله امروز ما می خواهیم درباره اصول اولیه پیکربندی iptables در سیستم عامل فوق صحبت کنیم.

ما iptables را در CentOS 7 پیکربندی میکنیم

ابزار خود را بلافاصله پس از تکمیل نصب CentOS 7 در دسترس است، اما علاوه بر این شما نیاز به نصب برخی از خدمات، که ما در مورد بعد از آن بحث خواهیم کرد. در این پلت فرم، یک ابزار ساخته شده دیگر وجود دارد که عملکرد فایروال نامیده می شود FirewallD. برای جلوگیری از تعارضات در طول کار بیشتر، توصیه می شود این جزء را غیرفعال کنید. برای دستورالعمل های دقیق در این موضوع، مطالب دیگر ما را در لینک زیر مشاهده کنید.

جزئیات بیشتر: فایروال را در CentOS 7 غیرفعال کنید

همانطور که می دانید، سیستم می تواند IPv4 و IPv6 را استفاده کند. امروز ما بر روی مثال IPv4 تمرکز میکنیم، اما اگر میخواهید پروتکل دیگری را پیکربندی کنید، باید از ip6tables به جای دستور iptables در کنسول استفاده کنید.

نصب خدمات iptables

اول از همه، اضافه کردن اجزای اضافی از ابزار مورد نظر امروز به سیستم. آنها در تنظیم قوانین و پارامترهای دیگر کمک خواهند کرد. بارگیری از مخزن رسمی انجام می شود، بنابراین زمان زیادی را صرف نمی کند.

  1. تمام اقدامات بعدی در کنسول کلاسیک انجام می شود، بنابراین آن را با هر روش مناسب اجرا کنید.
  2. راه اندازی یک ترمینال برای پیکربندی ابزار iptables در CentOS 7

  3. دستور sudo yum install iptables-services مسئول نصب sudo yum install iptables-services . آن را وارد کنید و Enter را فشار دهید.
  4. نصب سرویس برای اجرای ابزار iptables در CentOS 7

  5. حساب کاربری فوق العاده را با یک رمز عبور تأیید کنید. توجه داشته باشید که هنگام جستجو برای sudo، کاراکترهای وارد شده در رشته هرگز نمایش داده نمی شوند.
  6. ورود به گذرواژه برای نصب سرویس iptables در CentOS 7 از طریق ترمینال

  7. از شما خواسته می شود یک بسته را به سیستم اضافه کنید، این گزینه را با انتخاب گزینه y تایید کنید.
  8. تأیید اضافه کردن سرویس های جدید iptables به CentOS 7

  9. پس از اتمام نصب، نسخه فعلی ابزار را بررسی کنید: sudo iptables --version .
  10. چک کردن نسخه ابزار iptables در CentOS 7 از طریق ترمینال

  11. نتیجه در خط جدید ظاهر می شود.
  12. نمایش نسخه فعلی ابزار iptables در CentOS 7 از طریق ترمینال

در حال حاضر سیستم عامل به طور کامل برای پیکربندی بیشتر فایروال از طریق ابزار iptables آماده است. ما پیشنهاد می کنیم با پیکربندی اقلام آشنا شوید، با شروع مدیریت خدمات.

توقف و شروع خدمات iptables

مدیریت حالت iptables عملیات مورد نیاز است در مواردی که شما نیاز به بررسی اثر قوانین خاص و یا به سادگی مجددا مجدد جزء. این کار با استفاده از دستورات ساخته شده انجام می شود.

  1. sudo service iptables stop و دکمه Enter را فشار دهید تا خدمات را متوقف کند.
  2. خدمات iptables را در CentOS 7 از طریق ترمینال متوقف کنید

  3. برای تأیید این روش، رمز عبور فوق کاربر را وارد کنید.
  4. ورود به یک رمز عبور برای متوقف کردن خدمات ابزار iptables در CentOS 7

  5. اگر روند موفقیت آمیز باشد، یک خط جدید ظاهر خواهد شد، که نشان دهنده تغییرات در پرونده پیکربندی است.
  6. هشدار درباره توقف خدمات iptables در CentOS 7

  7. شروع خدمات تقریبا به همان شیوه انجام می شود، فقط خط ظاهر sudo service iptables start .
  8. خدمات ابزار iptables را در CentOS 7 در ترمینال راه اندازی کنید

چنین راه اندازی مجدد، شروع یا متوقف کردن ابزار در هر زمانی در دسترس است، به یاد داشته باشید که تنها زمانی که تقاضا است، مقدار بازگشتی را نشان می دهد.

مشاهده و حذف قوانین

همانطور که قبلا ذکر شد، فایروال توسط دستی یا به طور خودکار قوانین را مدیریت می کند. به عنوان مثال، برخی از برنامه های اضافی ممکن است با تغییر برخی از خط مشی ها به ابزار دسترسی پیدا کنند. با این حال، اکثر این اقدامات هنوز به صورت دستی انجام می شود. لیستی از تمام قوانین جاری در دستور sudo iptables -L در دسترس است.

نمایش لیستی از قوانین ابزار iptables فعلی در CentOS 7

در نتیجه نمایش داده می شود اطلاعات در سه زنجیره: "INPUT" ، "خروجی" و "FORWARD" - به ترتیب، ورودی، خروجی و رو به جلو.

مشاهده تمام قوانین ابزار iptables در CentOS 7

با تایپ sudo iptables -S می توانید وضعیت تمام زنجیرها را تعیین کنید.

نمایش لیست زنجیره های ابزار iptables در CentOS 7

اگر قواعدی را که می بینید به شما تعلق ندارند، آنها به سادگی حذف می شوند. کل لیست پاک شده است مانند: sudo iptables -F . پس از فعال سازی، قوانین کاملا برای همه سه مدار حذف خواهند شد.

پاک کردن لیست تمام قوانین ابزار iptables در CentOS 7

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

sudo iptables -F INPUT
sudo iptables -F OUTPUT
sudo iptables -F FORWARD

پاک کردن لیست قوانین برای یک زنجیره iptables خاص در CentOS 7

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

دریافت و رها کردن ترافیک در زنجیره

هر مدار به طور جداگانه برای دریافت یا مسدود کردن ترافیک پیکربندی شده است. با تنظیم یک مقدار خاص، می توانید اطمینان حاصل کنید که، برای مثال، تمام ترافیک ورودی مسدود خواهد شد. برای این کار، دستور باید sudo iptables --policy INPUT DROP ، در صورتی که INPUT نام مدار است، و DROP مقدار بازنشانی است.

درخواست های ورودی را در ابزار iptables در CentOS 7 تنظیم مجدد کنید

دقیقا برای پارامترهای دیگر برای مدارهای دیگر تنظیم شده است، مثلا sudo iptables --policy OUTPUT DROP . اگر لازم است برای تعیین مقدار برای دریافت ترافیک، DROP sudo iptables --policy INPUT ACCEPT تغییر یافته است و sudo iptables --policy INPUT ACCEPT .

اجازه دادن و مسدود کردن پورت ها

همانطور که می دانید، تمام برنامه ها و پروتکل های شبکه از طریق یک پورت خاص کار می کنند. با مسدود کردن یا اجازه دادن به آدرس های خاص، می توانید دسترسی به تمام اهداف شبکه را کنترل کنید. بیایید با استفاده از مثال 80، حمل و نقل بندر را تحلیل کنیم. در "ترمینال" کافی است که دستور sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT را وارد کنید sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT ، where -A علاوه بر یک قانون جدید، INPUT یک نشان مدار است، -P یک تعریف پروتکل است، در این مورد TCP و -portport port destination است.

قانون باز کردن پورت 80 در ابزار iptables در CentOS 7

دستور دقیق مشابه برای پورت 22 ، که توسط سرویس SSH استفاده می شود، به کار می رود: sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT .

قانون باز کردن پورت 22 در ابزار iptables در CentOS 7

برای متوقف کردن پورت مشخص شده، یک رشته از دقیقا همان نوع استفاده می شود، فقط در پایان ACCEPT به DROP تغییر می کند. نتیجه، به عنوان مثال، sudo iptables -A INPUT -p tcp --dport 2450 -j DROP .

قانون ممنوعیت پورت در ابزار iptables در CentOS 7

همه این قوانین در فایل پیکربندی ذخیره می شوند و شما می توانید آنها را در هر زمان مشاهده کنید. به خاطر داشته باشید، این کار از طریق sudo iptables -L . اگر آدرس IP شبکه باید با پورت حل شود، خط کمی اصلاح می شود - پس از TPC ، -s و آدرس خود اضافه می شوند. sudo iptables -A INPUT -p tcp -s 12.12.12.12/32 --dport 22 -j ACCEPT ، جایی که 12.12.12.12/32 آدرس IP مورد نیاز است.

قاعده برای پذیرش آدرس IP و پورت iptables در CentOS 7

مسدود کردن بر اساس یک اصل اتفاق می افتد، در پایان مقدار ACCEPT به DROP تغییر می کند . سپس معلوم می شود، برای مثال sudo iptables -A INPUT -p tcp -s 12.12.12.0/24 --dport 22 -j DROP .

قانون برای جلوگیری از آدرس IP و پورت iptables در CentOS 7

مسدود کردن ICMP

ICMP (پروتکل کنترل پیام اینترنت) یک پروتکل است که بخشی از TCP / IP است و برای ارسال پیام های خطا و شرایط اضطراری هنگام کار با ترافیک استفاده می شود. به عنوان مثال، زمانی که سرور درخواست شده در دسترس نیست، این ابزار عملکردهای سرویس را انجام می دهد. ابزار iptables به شما این امکان را می دهد که از طریق یک فایروال آن را مسدود کنید و می توانید این کار را با دستور sudo iptables -A OUTPUT -p icmp --icmp-type 8 -j DROP . این درخواست ها از سوی شما و سرور شما را مسدود خواهد کرد.

اولین قاعده برای مسدود کردن iptables در CentOS 7

درخواست های ورودی کمی متفاوت است مسدود شده است. سپس شما باید sudo iptables -I INPUT -p icmp --icmp-type 8 -j DROP را وارد کنید sudo iptables -I INPUT -p icmp --icmp-type 8 -j DROP . پس از فعال شدن این قوانین، سرور به درخواست های ping پاسخ نخواهد داد.

قانون دوم برای جلوگیری از پینگ کردن در iptables در CentOS 7

جلوگیری از اقدامات غیر مجاز در سرور

گاهی اوقات سرورها به حملات DDoS یا دیگر اقدامات غیرمجاز توسط مزاحمان مربوط می شوند. پیکربندی مناسب فایروال به شما این امکان را می دهد که از این نوع هک ها محافظت کنید. برای شروع، توصیه می کنیم تنظیمات زیر را انجام دهید:

  1. ثبت نام در console iptables -A INPUT -p tcp --dport 80 -m limit --limit 20/minute --limit-burst 100 -j ACCEPT ، where --limit 20 / minute محدودیت فرکانس نتایج مثبت است. شما می توانید واحد اندازه گیری خود را به عنوان مثال، /second, /minute, /hour, /day . - Limit -burst number - محدودیت تعداد بسته هایی که باید منتقل شوند. تمام مقادیر به صورت جداگانه بر اساس تنظیمات مدیر تنظیم می شوند.
  2. قانون امنیت از DDoS در iptables در CentOS 7

  3. سپس شما می توانید اسکن کردن پورت های باز را غیر فعال کنید تا یکی از علل احتمالی هک را حذف کنید. اولین sudo iptables -N block-scan وارد کنید.
  4. اولین قانون برای ممنوعیت پورت اسکن iptables در CentOS 7

  5. سپس sudo iptables -A block-scan -p tcp —tcp-flags SYN,ACK,FIN,RST -m limit —limit 1/s -j RETURN مشخص کنید sudo iptables -A block-scan -p tcp —tcp-flags SYN,ACK,FIN,RST -m limit —limit 1/s -j RETURN .
  6. دومین قانون برای ممنوعیت پورت اسکن iptables در CentOS 7

  7. آخرین دستور سوم: sudo iptables -A block-scan -j DROP . عبارت block-scan در این موارد نام مدار مورد استفاده است.
  8. قانون سوم برای جلوگیری از پورت iptables در CentOS 7

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