پیش از پرداختن به مبحث اصلی مقاله (تنظیمات فایروال در Centos ) لازم است تا مختصری از Centos بگوییم.
یکی از پلتفرمهای پرطرفدار ساخته شده بر مبنای هسته لینوکس، Centos است. تا پیش از سال ۲۰۱۲ این پلتفرم بیشترین سهم از هستههای لینوکس را داشت، اما در سال ۲۰۱۲ با سقوطی یک درصدی پس از Debian در رتبه دوم قرار گرفت.
چیزی که باعث موفقیت بالای Centos میشود، داشتن دو فاکتور مهم و اساسی پایداری و سرعت است. این پلتفرم در مقایسه با سایر پلتفرمها، با هسته لینوکس پایداری بیشتری داشته و این یعنی نگرانی کمتری در مورد Crash شدن دارید.
در مورد سرعت هم اگر تجربه کار با آن را داشته باشید، متوجه تفاوت چشمگیر آن نسبت به سایر رقبا خواهید شد. تمام این موضوعات نشاندهنده آن هستند که تا چه حد اشراف به نحوه عملکرد این سیستم، مهم و کاربردی است.
با ما همراه باشید تا در یکی دیگر از مجموعه آموزشهای کاربردی سراغ آموزش تنظیمات فایروال در Centos برویم. اجازه دهید پیش از آغاز، بررسی کوتاهی در مورد خود Firewall داشته باشیم.
Firewall چه کارکردی در یک پلتفرم دارد؟
Firewall یا همان دیوار آتشین، نوعی حائل بین فضای سیستم شما و جهان خارج است. مقصود از جهان خارج جهان فیزیکی نیست، بلکه جهان داده و اطلاعات مد نظر است.
وظیفه یک فایروال این است تا تمام دادههای وارد شده یا خارج شده به سیستم را کنترل کند. اگر به درستی متوجه عملکرد آن شده باشید، حتماً میدانید که کل امنیت سیستم شما مدیون Firewall است.
پلتفرم Centos نیز از این قاعده مستثنی نیست و امنیت داده در بستر آن، در گرو تنظیمات Firewall در Centos است. از همین روی ما بر آن شدیم تا در یک یادداشت، آموزش تنظیمات Firewall در Centos را زیر ذرهبین برده و به شکل گام به گام بررسی کنیم.
شما می توانید جهت آشنایی بیشتر با دیوارهای آتش به مقاله ” فایروال چیست ” مراجعه نمایید.
آموزش گام به گام تنظیمات فایروال در Centos
در ادامه مقاله با ۶ گام ساده میتوانید تنظیمات Firewall روی CentOS را انجام دهید. با ما همراه باشید. ما پیش از این تنظیمات ویندوز فایروال را توضیح داده ایم که در صورت تمایل میتوانید آنرا نیز مطالعه نمایید
گام اول؛ سیستم Firewall را استارت بزنید
به بخش Command در سیستم عامل Centos بروید و با دستور زیر سیستم Firewall را اجرا کنید.
[systemctl start firwalld.service]
در هجی دقیق دستور، دقت داشته باشید تا به درستی Firewall اجرا شود.
گام دوم؛ Zone های مختلف را درک کرده و بشناسید
در Centos 7 سرویس Firewall با کد در سیستم شناختی میشود و بر همین مبنا چندین Zone برای آن تعریف شده است. هر Zone در بخش Firewall اساساً مجموعهای از قواعد و قوانین برای عملکرد این بخش از پلتفرم است. برای این که متوجه شوید که سیستم Firewall شما چند Zone دارد و توانایی پشتیبانی از چند حالت را دارد، کافیست تا دستور زیر را اجرا کنید.
[firewall-cmd –get-zones]
پس از این باید از دستور زیر استفاده کنید تا متوجه شوید که کدام یک از Zone ها، به عنوان بخش پیشفرض در استارتآپ شما در حال اجراست. دقت داشتهباشید که دستور قبلی تمام Zone های موجود را معرفی خواهد کرد اما این دستور Zone پیشفرض را تصویر خواهد کرد.
[firewall-cmd –get-default-zone]
اما هر کدام از Zone های پیشفرض سیستم چه معنی و مفهومی دارند؟ ما در ادامه لیستی از این Zone ها را با عملکرد مشخص آنها معرفی خواهیم کرد.
drop: کمترین سطح اطمینان در بخش امنیت.
در این حالت تمام کانکشنهای ورودی بیپاسخ رها شده ولی کانکشنهای خروجی برقرار هستند.
block: مشابه با بخش قبلی، اما با این تفاوت که کانکشنها به سادگی انسداد پیدا کنند، درخواستهای صادر شده با یک پیام icmp-host-prohibited یا icmp6-adm-prohibited رد میشوند.
public: نشاندهنده استفاده از شبکههای عمومی و غیرقابل اعتماد است. شما به تمام رایانههای مرتبط اطمینان ندارید اما اتصالات ورودی به صورت موردی، مجاز میشوند.
external: شبکههای خارجی به شرط این که از Firewall شما به عنوان دروازه ارتباط استفاده کنند، مجاز به کار هستند. این مورد از تنظیمات برای NAT مناسبسازی شده تا شبکه داخلی پرایوت بماند، اما در عین حال در دسترس باشد.
internal: نقطه مقابل آپشن قبلی است و برای بخش داخلی به عنوان دروازه ارتباط استفاده میشود. رایانهها در این حالت کاملاً قابل اعتماد هستند و برخی سرویسهای اضافی در دسترس هستند.
dmz: تنظیم شده برای رایانههایی که در DMZ مستقر هستند؛ اما DMZ چیست ؟ منظور رایانههای ایزولهای است که در دسترس سایر رایانههای شبکه نیستند. فقط برخی کانکشنهای ورودی خاص، قابل پذیرش هستند.
work: این بخش برای ماشینهای تولید، مورد استفاده هستند. به اکثر رایانههای موجود در شبکه اعتماد شده و چند سرویس دیگر ممکن است مجاز باشند.
home: این یک فضای خانگی است. در این حالت شما به اکثر رایانههای دیگر اعتماد دارید و برخی سرویسها، در دسترس هستند.
trusted: اعتماد به تمام رایانههای موجود در شبکه.
گام سوم؛ ساخت Zone های شخصیسازی شده
برای اجتناب از اشتباهات جزئی که ممکن است در Zone های پیشفرض وجود داشته باشد. شما میتوانید Zone مد نظر خود را ایجاد کنید. با این دستور آغاز کنید:
[firewall-cmd –permanent–new-zone=sshweb]
این دستور یک Zone با نام sshweb را ایجاد میکند. پس از این باید خروجی سیستم عبارت “success” باشد تا بتوان مطمئن شد که کار درست، انجام شده است. اما پس از این متوجه خواهید شد که برخلاف آنچه که فکرش را میکنید، دیدن این Zone آزمایشی در لیست ممکن نیست. برای این کار کافیست تا Firewall را دوباره لود کنید. برای لود مجدد Firewall نیاز است تا دستور زیر را وارد کنید.
[sudo firewall-cmd –reload]
پس از وارد کردن این دستور Firewall شما مجدد راهاندازی خواهد شد. حال اگر دستور زیر را امتحان کنید حتماً با نام Zone آزمایشی خود روبرو خواهید شد.
[firewall-cmd–get-zones]
گام چهارم؛ Zone خود را کانفیگ کنید
Zone آزمایشی که ما آن را با نام “sshweb” ثبت کردیم به صورت پیشفرض مجاز به استفاده از پروتکلهای SSH و HTTP است. اما ما میتوانیم پروتکلهای دیگری نیز با روش زیر به این Zone در Firewall خود، اضافه کنیم.
[firewall-cmd –zone=sshweb –add-service=https]
همانطور که از دستور مشخص است، شما کافیست تا پروتکل مد نظر را به بخش انتهایی دستور اضافه کنید تا دستور به درستی اجرا شود. در نهایت شما میتوانید لیست پروتکلهای موجود در یک Zone خاص را، با دستور زیر کامل لیست کرده و مشاهده کنید.
[firewall-cmd –zone=sshweb –list-all]
گام پنجم؛ کانفیگ کردن پورتها در Zone
برای این که به یک پورت خاص اجازه دسترسی در Zone شخصی خود را بدهید، از دستورات زیر استفاده کنید.
[firewall-cmd –zone=sshweb –permanent –add-port=80/tcp]
همانطور که از مثال بالا پیداست، شما در بخش میانه دستور به جای sshweb که یک مثال است باید نام Zone خود را وارد و در بخش انتهایی هم به جای عدد ۸۰ که یک مثال است، پورت مد نظر خود را وارد کنید. این دستور، پورت معرفی شده را به لیست انتظار Zone شما وارد خواهد کرد. برای شناسایی پورت لازم است تا Zone را مجدد، راهاندازی کنید. پس دستورات زیر را به ترتیب وارد کنید.
[sudo firewall-cmd –reload]
[firewall-cmd –zone=sshweb –list-all]
حال در خروجی این دستور دقت کنید که در خط “Port” آیا پورتی که شما وارد کردید، موجود است یا خیر. البته با این دستور اطلاعات دیگری نیز در اختیار شما قرار میگیرد که مربوط به Zone است که در حال حاضر در Firewall شما، فعال است. حال فایروال را ریاستارت کرده و سرویسهای در دسترس را چک کنید. برای این کار باید دستور زیر را اجرا کنید.
[systemctl restart firewalld.service]
گام ششم؛ رابط Zone را تنظیم کنید
خب تا به اینجا ۵ مرحله تا تنظیم Firewall در CentOS را طی کرده ای. گام نهایی در استفاده از یک Zone شخصیسازی شده، افزودن رابط به آن است. برای این کار دستور زیر را اجرا کنید.
[firewall-cmd –zone=sshweb –change-interface=eth0]
دقت داشته باشید که رابط eth0 در دستور مذکور فرضی است. پس از این میتوانید موفقیت انجام کار را با دستور زیر بررسی کنید.
[firewall-cmd –zone=sshweb –list-all]
برای ارتباط کامل، رابط با Zone شخصیسازی شده به فایل کانفیگ شبکه دسترسی پیدا کرده و خط “ZONE=sshweb” را اضافه کنید. آدرس فایل بدین شرح است:
[vi /etc/sysconfig/network-scripts/ifcfg-eth0]
حال پس از این کافیست تا شبکه و Firewall را با دستور زیر ریاستارت کنید.
[systemctl restart network.service]
[systemctl restart firewalld.service]
در نهایت برای اطمینان از اتمام کار، کافیست تا Zone فعال را چک کنید و از استفاده خط تعریف شده (eth0) اطمینان حاصل کنید.
[firewall-cmd –get-active-zones]
در انتها به شما توصیه می کنیم مقاله ” تنظیمات اولیه CentOs 8 ” را مطالعه بفرمایید.