از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
روش پیکربندی و مدیریت فایروال در CentOS 8
سرفصلهای مطلب
فایروال روشی برای نظارت و فیلتر کردن ترافیک ورودی و خروجی شبکه است. این با تعریف مجموعهای از قوانین امنیتی کار میکند که تعیین میکنند آیا ترافیک خاصی مجاز است یا مسدود میشود. یک فایروال با پیکربندی مناسب یکی از مهمترین جنبه های امنیت کلی سیستم است.
CentOS 8 کشتی با دیمون فایروال به نام فایروال
. این یک راه حل کامل با رابط D-Bus است که به شما امکان می دهد فایروال سیستم را به صورت پویا مدیریت کنید.
در این آموزش در مورد روش پیکربندی و مدیریت فایروال روی صحبت خواهیم کرد CentOS 8. همچنین مفاهیم اولیه FirewallD را توضیح خواهیم داد.
پیش نیازها
برای پیکربندی سرویس فایروال، باید به عنوان root یا کاربر با امتیازات sudo وارد شوید.
مفاهیم پایه فایروال
فایروالد از مفاهیم مناطق و سرویس ها استفاده می کند. بر اساس مناطق و سرویسهایی که پیکربندی میکنید، میتوانید کنترل کنید که چه ترافیکی به و از سیستم مجاز یا مسدود شده است.
فایروال را می توان با استفاده از آن پیکربندی و مدیریت کرد firewall-cmd
command-line سودمندی
که در CentOS 8، iptables با nftables به عنوان پشتیبان فایروال پیش فرض برای دیمون فایروال جایگزین شده است.
مناطق فایروال
مناطق مجموعهای از قوانین از پیش تعریفشده هستند که سطح اعتماد شبکههایی را که رایانه شما به آنها متصل است را مشخص میکند. می توانید رابط ها و منابع شبکه را به یک منطقه اختصاص دهید.
در زیر مناطق ارائه شده توسط FirewallD با توجه به سطح اعتماد منطقه از نامعتبر به قابل اعتماد سفارش داده شده است:
- رها کردن: تمام اتصالات ورودی بدون هیچ اطلاع رسانی قطع می شوند. فقط اتصالات خروجی مجاز است.
- مسدود کردن: تمام اتصالات ورودی با یک رد می شوند
icmp-host-prohibited
پیام برایIPv4
وicmp6-adm-prohibited
برای IPv6n فقط اتصالات خروجی مجاز است. - عمومی: برای استفاده در مکان های عمومی غیر قابل اعتماد. شما به رایانه های دیگر موجود در شبکه اعتماد ندارید، اما می توانید اتصالات ورودی انتخاب شده را مجاز کنید.
- خارجی: برای استفاده در شبکه های خارجی با پوشش NAT فعال زمانی که سیستم شما به عنوان دروازه یا روتر عمل می کند. فقط اتصالات ورودی انتخاب شده مجاز است.
- درونی؛ داخلی: برای استفاده در شبکه های داخلی زمانی که سیستم شما به عنوان دروازه یا روتر عمل می کند. سایر سیستم های موجود در شبکه به طور کلی قابل اعتماد هستند. فقط اتصالات ورودی انتخاب شده مجاز است.
- dmz: برای رایانه های واقع در منطقه غیرنظامی شما که دسترسی محدودی به بقیه شبکه شما دارند استفاده می شود. فقط اتصالات ورودی انتخاب شده مجاز است.
- کار کردن: برای ماشین های کار استفاده می شود. سایر رایانه های موجود در شبکه عموماً قابل اعتماد هستند. فقط اتصالات ورودی انتخاب شده مجاز است.
- خانه: برای ماشین های خانگی استفاده می شود. سایر رایانه های موجود در شبکه عموماً قابل اعتماد هستند. فقط اتصالات ورودی انتخاب شده مجاز است.
- قابل اعتماد: تمامی اتصالات شبکه پذیرفته می شود. به تمام رایانه های موجود در شبکه اعتماد کنید.
خدمات فایروال
سرویس های فایروال قوانین از پیش تعریف شده ای هستند که در یک منطقه اعمال می شوند و تنظیمات لازم را برای اجازه دادن به ترافیک ورودی برای یک سرویس خاص تعریف می کنند. این سرویس به شما اجازه می دهد تا به راحتی چندین کار را در یک مرحله انجام دهید.
به عنوان مثال، این سرویس می تواند شامل تعاریفی در مورد باز کردن پورت ها، حمل و نقل ترافیک و موارد دیگر باشد.
فایروالد زمان اجرا و تنظیمات دائمی
فایروال از دو مجموعه پیکربندی مجزا، زمان اجرا و پیکربندی دائمی استفاده می کند.
پیکربندی زمان اجرا، پیکربندی واقعی در حال اجرا است و در راه اندازی مجدد باقی نمی ماند. هنگامی که دیمون فایروالد شروع می شود، پیکربندی دائمی را بارگذاری می کند که به پیکربندی زمان اجرا تبدیل می شود.
به طور پیش فرض، هنگام ایجاد تغییرات در پیکربندی فایروالد با استفاده از firewall-cmd
ابزار، تغییرات در پیکربندی زمان اجرا اعمال می شود. برای دائمی کردن تغییرات، ضمیمه کنید --permanent
گزینه ای برای فرمان
برای اعمال تغییرات در هر دو مجموعه پیکربندی، می توانید از یکی از دو روش زیر استفاده کنید:
-
پیکربندی زمان اجرا را تغییر دهید و آن را دائمی کنید:
sudo firewall-cmd <options>
sudo firewall-cmd --runtime-to-permanent
-
پیکربندی دائمی را تغییر دهید و دیمون فایروالد را مجدداً بارگذاری کنید:
sudo firewall-cmd --permanent <options>
sudo firewall-cmd --reload
فعال کردن FirewallD
بر CentOS 8، فایروال به طور پیش فرض نصب و فعال است. اگر به دلایلی روی سیستم شما نصب نیست، می توانید با تایپ کردن دیمون، آن را نصب و راه اندازی کنید:
sudo dnf install firewalld
sudo systemctl enable firewalld --now
می توانید وضعیت سرویس فایروال را با موارد زیر بررسی کنید:
sudo firewall-cmd --state
اگر فایروال فعال باشد، دستور باید چاپ شود running
. در غیر این صورت خواهید دید not running
.
مناطق فایروال
اگر آن را تغییر نداده اید، منطقه پیش فرض روی تنظیم شده است public
، و تمام رابط های شبکه به این منطقه اختصاص داده شده است.
منطقه پیشفرض منطقهای است که برای هر چیزی که بهصراحت به منطقه دیگری اختصاص داده نشده است استفاده میشود.
می توانید منطقه پیش فرض را با تایپ کردن ببینید:
sudo firewall-cmd --get-default-zone
public
برای دریافت لیستی از تمام مناطق موجود، تایپ کنید:
sudo firewall-cmd --get-zones
block dmz drop external home internal public trusted work
برای مشاهده مناطق فعال و رابط های شبکه اختصاص داده شده به آنها:
sudo firewall-cmd --get-active-zones
خروجی زیر نشان می دهد که اینترفیس ها eth0
و eth1
به public
منطقه:
public
interfaces: eth0 eth1
میتوانید تنظیمات پیکربندی منطقه را با موارد زیر چاپ کنید:
sudo firewall-cmd --zone=public --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: eth0 eth1
sources:
services: ssh dhcpv6-client
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
از خروجی بالا می بینیم که منطقه عمومی فعال است و از هدف پیش فرض استفاده می کند REJECT
. خروجی همچنین نشان می دهد که منطقه توسط the استفاده می شود eth0
و eth1
اینترفیس است و به مشتری DHCP و ترافیک SSH اجازه می دهد.
اگر میخواهید تنظیمات تمام مناطق موجود را بررسی کنید، تایپ کنید:
sudo firewall-cmd --list-all-zones
دستور یک لیست بزرگ با تنظیمات تمام مناطق موجود چاپ می کند.
تغییر هدف منطقه
هدف، رفتار پیشفرض منطقه را برای ترافیک ورودی که مشخص نشده است، تعریف میکند. می توان آن را روی یکی از گزینه های زیر تنظیم کرد: default
، ACCEPT
، REJECT
، و DROP
.
برای تنظیم هدف منطقه، منطقه را با علامت مشخص کنید --zone
گزینه و هدف با --set-target
گزینه.
به عنوان مثال، برای تغییر public
هدف منطقه به DROP
شما می دوید:
sudo firewall-cmd --zone=public --set-target=DROP
اختصاص یک رابط به یک منطقه دیگر
شما می توانید مجموعه های خاصی از قوانین را برای مناطق مختلف ایجاد کنید و رابط های مختلفی را به آنها اختصاص دهید. این به ویژه زمانی مفید است که چندین رابط روی دستگاه خود دارید.
برای اختصاص یک رابط به یک منطقه دیگر، منطقه را با علامت مشخص کنید --zone
گزینه و رابط با --change-interface
گزینه.
به عنوان مثال، دستور زیر را اختصاص می دهد eth1
رابط به work
منطقه:
sudo firewall-cmd --zone=work --change-interface=eth1
تغییرات را با تایپ کردن تأیید کنید:
sudo firewall-cmd --get-active-zones
work
interfaces: eth1
public
interfaces: eth0
تغییر منطقه پیش فرض
برای تغییر منطقه پیش فرض، از --set-default-zone
گزینه ای که به دنبال آن نام منطقه ای که می خواهید پیش فرض کنید.
به عنوان مثال، برای تغییر منطقه پیش فرض به home
شما دستور زیر را اجرا می کنید:
sudo firewall-cmd --set-default-zone=home
بررسی تغییرات با:
sudo firewall-cmd --get-default-zone
home
ایجاد مناطق جدید
فایروال همچنین به شما این امکان را می دهد که مناطق خود را ایجاد کنید. وقتی می خواهید قوانین هر برنامه را ایجاد کنید، این کار مفید است.
در مثال زیر یک منطقه جدید به نام ایجاد می کنیم memcached
، پورت را باز کنید 11211
و اجازه دسترسی فقط از 192.168.100.30
آدرس آی پی:
-
ایجاد منطقه:
sudo firewall-cmd --new-zone=memcached --permanent
-
قوانین را به منطقه اضافه کنید:
sudo firewall-cmd --zone=memcached --add-port=11211/udp --permanent
sudo firewall-cmd --zone=memcached --add-port=11211/tcp --permanent
sudo firewall-cmd --zone=memcached --add-source=192.168.100.30/32 --permanent
-
برای فعال کردن تغییرات، دیمون فایروالد را دوباره بارگیری کنید:
sudo firewall-cmd --reload
خدمات فایروالد
با فایروالد می توانید ترافیک پورت ها و/یا منابع خاصی را بر اساس قوانین از پیش تعریف شده به نام سرویس ها مجاز کنید.
برای دریافت لیستی از تمام خدمات پیش فرض موجود، نوع:
sudo firewall-cmd --get-services
با باز کردن فایل xml مرتبط در داخل می توانید اطلاعات بیشتری در مورد هر سرویس بیابید /usr/lib/firewalld/services
فهرست راهنما. به عنوان مثال، سرویس HTTP به صورت زیر تعریف شده است:
<?xml version="1.0" encoding="utf-8"?>
<service>
<short>WWW (HTTP)</short>
<description>HTTP is the protocol used to serve Web pages. If you plan to make your Web server publicly available, enable this option. This option is not required for viewing pages locally or developing Web pages.</description>
<port protocol="tcp" port="80"/>
</service>
برای مجاز کردن ترافیک HTTP ورودی (پورت 80) برای رابطهای موجود در منطقه عمومی، فقط برای جلسه فعلی (پیکربندی زمان اجرا) نوع:
sudo firewall-cmd --zone=public --add-service=http
--zone
گزینه.برای تأیید اینکه سرویس با موفقیت اضافه شده است از --list-services
گزینه:
sudo firewall-cmd --zone=public --list-services
ssh dhcpv6-client http
برای باز نگه داشتن پورت 80 پس از راهاندازی مجدد، همان دستور را یک بار دیگر با --permanent
گزینه یا اجرا کنید:
sudo firewall-cmd --runtime-to-permanent
استفاده کنید --list-services
همراه با --permanent
گزینه ای برای تأیید تغییرات شما:
sudo firewall-cmd --permanent --zone=public --list-services
ssh dhcpv6-client http
نحو حذف سرویس مانند هنگام اضافه کردن یک سرویس است. فقط استفاده کن --remove-service
به جای --add-service
پرچم:
sudo firewall-cmd --zone=public --remove-service=http --permanent
دستور بالا حذف می کند http
سرویس از پیکربندی دائمی منطقه عمومی.
ایجاد یک سرویس FirewallD جدید
همانطور که قبلاً ذکر کردیم، سرویس های پیش فرض در قسمت ذخیره می شوند /usr/lib/firewalld/services
فهرست راهنما. ساده ترین راه برای ایجاد یک سرویس جدید کپی کردن یک فایل سرویس موجود در آن است /etc/firewalld/services
دایرکتوری، که محل سرویس های ایجاد شده توسط کاربر و تغییر تنظیمات فایل است.
به عنوان مثال، برای ایجاد یک تعریف سرویس برای Plex Media Server، می توانید از فایل سرویس SSH استفاده کنید:
sudo cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/plexmediaserver.xml
جدید ایجاد شده را باز کنید plexmediaserver.xml
را فایل کنید و نام کوتاه و توضیحات سرویس را در داخل تغییر دهید <short>
و <description>
برچسب ها مهمترین برچسبی که باید تغییر دهید این است port
تگ، که شماره پورت و پروتکلی را که می خواهید باز کنید را مشخص می کند.
در مثال زیر در حال باز کردن پورت ها هستیم 1900
UDP و 32400
TCP.
<?xml version="1.0" encoding="utf-8"?>
<service version="1.0">
<short>plexmediaserver</short>
<description>Plex is a streaming media server that brings all your video, music and photo collections together and stream them to your devices at anytime and from anywhere.</description>
<port protocol="udp" port="1900"/>
<port protocol="tcp" port="32400"/>
</service>
فایل را ذخیره کرده و سرویس FirewallD را مجدداً بارگیری کنید:
sudo firewall-cmd --reload
اکنون می توانید از plexmediaserver
خدمات در مناطق شما مانند هر سرویس دیگری.
باز کردن پورت ها و آی پی های منبع
فایروالد همچنین به شما اجازه می دهد تا بدون ایجاد تعریف سرویس، تمام ترافیک را از یک آدرس IP قابل اعتماد یا در یک پورت خاص به سرعت فعال کنید.
باز کردن IP منبع
برای اجازه دادن به تمام ترافیک ورودی از یک آدرس IP خاص (یا محدوده)، منطقه را با علامت مشخص کنید --zone
گزینه و آی پی منبع با --add-source
گزینه.
به عنوان مثال، برای اجازه دادن به تمام ترافیک ورودی از 192.168.1.10 در public
منطقه، اجرا:
sudo firewall-cmd --zone=public --add-source=192.168.1.10
قانون جدید را پایدار کنید:
sudo firewall-cmd --runtime-to-permanent
با استفاده از دستور زیر تغییرات را تایید کنید:
sudo firewall-cmd --zone=public --list-sources
192.168.1.10
سینتکس حذف یک IP منبع مانند هنگام اضافه کردن یک IP است. فقط استفاده کن --remove-source
به جای --add-source
گزینه:
sudo firewall-cmd --zone=public --remove-source=192.168.1.10
باز کردن پورت منبع
برای اجازه دادن به تمام ترافیک ورودی در یک پورت معین، منطقه را با علامت مشخص کنید --zone
گزینه و پورت و پروتکل با --add-port
گزینه.
مثلا برای باز کردن پورت 8080
در منطقه عمومی برای جلسه فعلی که اجرا می کنید:
sudo firewall-cmd --zone=public --add-port=8080/tcp
پروتکل می تواند هر دو باشد tcp
، udp
، sctp
، یا dccp
.
بررسی تغییرات:
sudo firewall-cmd --zone=public --list-ports
8080
برای باز نگه داشتن پورت پس از راه اندازی مجدد، با اجرای همان دستور با استفاده از دستور، قانون را به تنظیمات دائمی اضافه کنید --permanent
پرچم گذاری یا با اجرای:
sudo firewall-cmd --runtime-to-permanent
سینتکس حذف پورت مانند هنگام افزودن پورت است. فقط استفاده کن --remove-port
به جای --add-port
گزینه.
sudo firewall-cmd --zone=public --remove-port=8080/tcp
پورت های حمل و نقل
برای هدایت ترافیک از یک درگاه به پورت دیگر، ابتدا با استفاده از گزینه، تغییر ظاهر را برای منطقه مورد نظر فعال کنید --add-masquerade
گزینه. به عنوان مثال، برای فعال کردن maskarading برای external
منطقه، نوع:
sudo firewall-cmd --zone=external --add-masquerade
ترافیک را از یک پورت به پورت دیگر در آدرس IP هدایت کنید
در مثال زیر ما ترافیک را از پورت فوروارد می کنیم 80
به بندر 8080
در همان سرور:
sudo firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toport=8080
ترافیک را به آدرس IP دیگری هدایت کنید
در مثال زیر ما ترافیک را از پورت فوروارد می کنیم 80
به بندر 80
روی سرور با IP 10.10.10.2
:
sudo firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toaddr=10.10.10.2
ترافیک را به سرور دیگری در پورت دیگری هدایت کنید
در مثال زیر ما ترافیک را از پورت فوروارد می کنیم 80
به بندر 8080
روی سرور با IP 10.10.10.2
:
sudo firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toport=8080:toaddr=10.10.10.2
برای پایدار ماندن قانون رو به جلو، از موارد زیر استفاده کنید:
sudo firewall-cmd --runtime-to-permanent
نتیجه
شما یاد گرفته اید که چگونه سرویس فایروال را روی خود پیکربندی و مدیریت کنید CentOS 8 سیستم.
اطمینان حاصل کنید که به تمام اتصالات ورودی که برای عملکرد صحیح سیستم شما ضروری هستند اجازه دهید، در حالی که تمام اتصالات غیر ضروری را محدود کنید.
اگر سوالی دارید، در زیر نظر دهید.
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1402-12-27 13:02:03