جدول محتوایی
آموزش نصب و پیکربندی firewalld در سرور اوبونتو
firewalld اوبونتو یک ابزار مدیریت فایروال مبتنی بر میزبان عالی برای سیستم عامل لینوکس است. firewalld اوبونتو روی فدورا توسعه یافته است اما اکنون تقریباً برای تمام توزیع های لینوکس در دسترس است.
بنابراین، فایروال را می توان در سرور اوبونتو نصب کرد، اگرچه سرور اوبونتو دارای UFW به عنوان سیستم فایروال پیش فرض است. فکر می کنم فایروال از UFW قوی تر و نگهداری آسان تر است. ما در این مقاله، در مورد نحوه نصب و پیکربندی firewalld اوبونتو در سرور اوبونتو می پردازیم.
پیش از ادامه ی مقاله ، در صورت نیاز به هاست وردپرس به سایت ایرانیکاسرور مراجعه کرده و از پلن های فوق العاده با قیمت های عالی دیدن کنید.
نصب firewalld در سرور اوبونتو
به طور پیش فرض سرور اوبونتو با برنامه فایروال UFW ارائه می شود. بنابراین، ابتدا باید برنامه UFW را قبل از نصب فایروالد غیرفعال کنیم. دستور زیر را برای غیرفعال کردن برنامه فایروال UFW صادر کنید:
$ sudo ufw disable
اکنون با دستور زیر فایروالد را در سرور اوبونتو نصب می کنیم:
$ sudo apt install firewalld
فایروال اکنون شروع به نصب می کند و ظرف چند بار به طور کامل نصب می شود.
پس از نصب، دیمون باید راه اندازی شود و برای شروع خودکار فعال شود. بنابراین، دستور زیر را برای راه اندازی firewalld اوبونتوصادر کرده و آن را فعال کنید:
$ sudo systemctl start firewalld $ sudo systemctl enable firewalld
گاهی اوقات ممکن است نیاز داشته باشیم که وضعیت دیمون فایروالد را ببینیم. برای مشاهده وضعیت فایروالد دستور زیر را وارد کنید:
$ sudo systemctl status firewalld
اکنون متوجه خواهید شد که فایروالد فعال و در حال اجرا است. همچنین امکان توقف و راه اندازی مجدد دیمون Firewalld با دستورات زیر وجود دارد:
$ sudo systemctl stop firewalld $ sudo systemctl restart firewalld
مباحث اولیه در firewalld
Firewalld Daemon یک برنامه فایروال مبتنی بر منطقه است. «region» نهادی است که قوانینی را برای اجازه یا رد ترافیک اینترنت تعریف می کند. رابط های شبکه به یک منطقه اختصاص داده می شوند تا رفتاری را که فایروال باید اجازه دهد، دیکته کند.
دیمون فایروالد دارای 9 ناحیه از پیش تعریف شده زیر بر اساس سطح اعتماد است:
- drop: پایین ترین سطح اعتماد است که در آن هیچ اتصال ورودی مجاز نیست. بنابراین، تمام اتصالات ورودی بدون پاسخ قطع می شوند و فقط اتصالات خروجی از داخل امکان پذیر است.
- Block: شبیه به drop zone است، اما به جای حذف اتصالات، درخواست های دریافتی با یک پیام ممنوع رد می شود.
- public: نشان دهنده شبکه های نامعتبر است که اکثر سرویس ها در آنها غیرفعال هستند. شما باید هر سرویس یا پورت مورد نیاز را به صورت دستی فعال کنید.
- External: شبکه های خارجی در صورتی که از فایروال به عنوان دروازه خود استفاده می کنید. برای پنهان کردن NAT پیکربندی شده است تا شبکه داخلی شما خصوصی بماند اما قابل دسترسی باشد.
- Internal (داخلی): طرف دیگر منطقه خارجی که برای بخش داخلی یک دروازه استفاده می شود. رایانه ها نسبتاً قابل اعتماد هستند و برخی خدمات اضافی در دسترس هستند.
- dmz: برای رایانه های واقع در DMZ (رایانه های ایزوله ای که به بقیه شبکه شما دسترسی نخواهند داشت) استفاده می شود. فقط برخی از اتصالات ورودی در منطقه DMZ مجاز هستند.
- work: برای ماشین های کار استفاده می شود. به اکثر رایانه های موجود در شبکه اعتماد کنید. ممکن است چند سرویس دیگر مجاز باشد.
- Home: محیط خانه. به طور کلی به این معنی است که شما به اکثر رایانه های دیگر اعتماد دارید و چند سرویس دیگر نیز پذیرفته می شوند.
- Trusted (اعتماد): به همه ماشینهای موجود در شبکه اعتماد کنید. بازترین گزینه در دسترس است و باید در حد کم استفاده شود.
برای استفاده از فایروال firewalld ، میتوانیم قوانین دسترسی یا رد کردن را ایجاد کنیم و ویژگیهای هر منطقه را تغییر دهیم و سپس هر رابط شبکه را به هر منطقه که مناسبترین است اختصاص دهیم.
دریافت اطلاعات منطقه پیش فرض firewalld
Firewalld Daemon ابزار خط فرمان فایروال-cmd را برای مدیریت قوانین فایروال فراهم می کند. بنابراین، ما میتوانیم هر عملیاتی را روی Firewalld با ابزار firewall-cmd انجام دهیم.
ابتدا اطلاعات پیش فرض مناطق موجود در فایروالد را به دست می اوریم. بنابراین، دستور زیر را برای لیست کردن تمام مناطق پیش فرض موجود در فایروالد صادر کنید:
$ sudo firewall-cmd –list-all-zones
با دستور بالا تمام مناطق پیش فرض موجود در فایروالد و همچنین سرویس های آنها را خواهید یافت. برای مثال، اگر منطقه عمومی را ببینیم، مانند اطلاعات زیر خواهد بود:
public target: default icmp-block-inversion: no interfaces: sources: services: dhcpv6-client ssh ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:
از اطلاعات بالا می توان دریافت که فقط سرویس های SSH و dhcpv6-client در منطقه عمومی در دسترس هستند.
دستور بالا تمام مناطق با سرویس های موجود را نشان می دهد. اما اگر بخواهیم فقط نام منطقه موجود را بدانیم دستور زیر را صادر کنید:
$ sudo firewall-cmd –get-zones
از دستور بالا، میتوانیم تمام مناطق موجود در firewalld اوبونتو را ببینیم، اما در بین آنها یک منطقه پیشفرض وجود دارد که قوانین بهطور پیشفرض اعمال خواهند شد. برای یادگیری منطقه پیش فرض در فایروالد دستور زیر را صادر کنید:
$ sudo firewall-cmd –get-default-zone
امکان تغییر ناحیه پیش فرض با دستور firewall-cmd هم وجود دارد. برای تغییر منطقه پیش فرض دستور زیر را صادر کنید:
$ sudo firewall-cmd –set-default-zone=home
اکنون منطقه اصلی منطقه پیش فرض خواهد بود و قوانین آن به طور پیش فرض اعمال می شود.
کاوش در منطقه فعال (Active Zone)
از قسمت بالا، میتوانیم مناطق موجود و منطقه پیشفرض را ببینیم، اما هیچ منطقهای فعال نخواهد بود تا زمانی که یک رابط شبکه با هر منطقه مرتبط شود.
بنابراین، اگر دستور زیر را برای شناخت مناطق فعال صادر کنیم، هیچ خروجی ظاهر نمی شود:
$ sudo firewall-cmd –get-active-zones
بنابراین، برای فعال کردن یک منطقه، باید یک رابط به یک منطقه اضافه کنیم. اما قبل از افزودن یک رابط، باید نام آن رابط را بدانیم. برای دانستن نام رابط، میتوانیم دستور ip link را صادر کنیم:
$ ip link
خروجی:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000 link/ether 00:50:56:9d:d9:fe brd ff:ff:ff:ff:ff:ff 3: ens192: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000 link/ether 00:50:56:9d:05:a3 brd ff:ff:ff:ff:ff:ff
از خروجی می بینیم که دو رابط در سرور اوبونتو ما به نام های ens160 و ens192 وجود دارد. ممکن است در توزیع شما متفاوت باشد اما به نامی که از دستور ip link نشان داده می شود توجه کنید.
حال می خواهیم ens160 را به home zone و ens192 را به public اضافه کنیم زیرا این دو زون بیشتر موارد استفاده می شوند.
برای افزودن اینترفیس ens160 به home zone دستور زیر را صادر کنید:
$ sudo firewall-cmd –zone=home –add-interface=ens160
اکنون منطقه اصلی فعال است و قوانین منطقه اصلی برای تمام ترافیک های ورودی که از طریق رابط ens160 وارد می شوند اعمال می شود. اگر اکنون دستور firewall-cmd را با گزینه get-active-zones اجرا کنیم، متوجه میشویم که home zone اکنون در لیست منطقه فعال است.
دستور بالا باعث فعال شدن موقت هوم زون (home zone) می شود و اگر firewalld اوبونتو را با دستور زیر بارگذاری مجدد کنیم یا فایروالد را دوباره راه اندازی کنیم، ناحیه فعال پاک می شود:
$ sudo firewall-cmd –reload
بنابراین، برای دائمی شدن قانون فوق، باید همان دستور را با گزینه –permanent اجرا کنیم:
$ sudo firewall-cmd –zone=home –add-interface=ens160 –permanent
اکنون قانون فوق دائمی است و نه بارگذاری مجدد فایروالد و نه راه اندازی مجدد آن حذف نخواهد شد.
به همین ترتیب، میتوانیم با دستور زیر رابط ens192 را به منطقه عمومی (Public zone) اضافه کنیم و منطقه عمومی را فعال کنیم:
$ sudo firewall-cmd –get-active-zones
خروجی:
home interfaces: ens160 public interfaces: ens192
مدیریت خدمات در مناطق فایروالد (fire walld)
Firewalld Daemon خدمات زیادی را ارائه می دهد که می توان آنها را با قوانین فایروال مجاز یا مسدود کرد. برای فهرست کردن خدمات موجود توسط فایروالد، دستور زیر را صادر کنید:
$ sudo firewall-cmd –get-services
خدمات لیست شده را می توان با فایروالد مجاز یا مسدود کرد. برای کاوش خدمات اختصاص داده شده به یک منطقه (به عنوان مثال: منطقه اصلی)، دستور زیر را صادر کنید:
$ sudo firewall-cmd –zone=home –list-all
دستور بالا هر چیزی را که در منطقه اصلی اعمال می شود نشان می دهد. برای لیست کردن فقط خدمات اعمال شده در منطقه اصلی، دستور زیر را صادر کنید:
$ sudo firewall-cmd –zone=home –list-services
خروجی:
dhcpv6-client mdns samba-client ssh
از خروجی، می توانیم ببینیم که چهار سرویس مجاز در منطقه اصلی وجود دارد. اکنون می خواهیم یک سرویس، به عنوان مثال http، در منطقه اصلی اضافه کنیم. برای این کار دستورات زیر را صادر کنید:
$ sudo firewall-cmd –zone=home –add-service=http $ sudo firewall-cmd –zone=home –add-service=http –permanent
به طور مشابه، می توانید هر سرویسی را در هر منطقه فایروال دلخواه خود با پیروی از دستور بالا اضافه کنید.
علاوه بر افزودن سرویسها، میتوانیم هر سرویسی را از هر ناحیه فایروال با ابزار firewall-cmd حذف کنیم. برای حذف هر سرویس، به عنوان مثال samba-client، از منطقه اصلی (home zone) ، دستور زیر را صادر کنید:
$ sudo firewall-cmd –zone=home –remove-service=samba-client $ sudo firewall-cmd –zone=home –remove-service=samba-client –permanent
حال اگر پس از اجرای دستور بالا سرویس ها را در home zone لیست کنیم، خروجی زیر را دریافت می کنیم:
$ sudo firewall-cmd –zone=home –list-services
خروجی:
dhcpv6-client http mdns ssh
مدیریت پورت ها در مناطق فایروالد
سرویسهای محبوبی که پورت خاصی را نشان میدهند در دیمون فایروالد در دسترس هستند. به عنوان مثال، سرویس http نشان دهنده پورت 80 و https نشان دهنده پورت 443 است.
بنابراین، می توانیم این سرویس ها را با نام آن سرویس مجاز یا مسدود کنیم. اما گاهی اوقات ممکن است لازم باشد برخی از پورتهای خاصی را که در لیست سرویسهای شبح فایروالد نیستند، مجاز یا مسدود کنیم. برای این منظور، فایروالد دستورات –add-port و –remove-port را برای افزودن یا حذف هر پورت از هر ناحیه به ترتیب ارائه می دهد.
بنابراین، برای افزودن هر پورتی در منطقه اصلی، به عنوان مثال پورت UDP 1812، دستورات زیر را وارد کنید:
$ sudo firewall-cmd –zone=home –add-port=1812/udp $ sudo firewall-cmd –zone=home –add-port=1812/udp –permanent
حال اگر پورت مجاز را در home zone لیست کنیم، خروجی زیر را می بینیم:
$ sudo firewall-cmd –zone=home –list-ports
خروجی :
1812/udp
به همین ترتیب می توانیم هر پورتی را از هر ناحیه ای با دستورات زیر حذف کنیم:
$ sudo firewall-cmd –zone=home –remove-port=1812/udp $ sudo firewall-cmd –zone=home –remove-port=1812/udp –permanent
اگر بخواهیم پورت هر سرویسی مثلا http را بدانیم، باید دستور زیر را از خط فرمان وارد کنیم:
$ grep http /etc/services
خروجی:
http 80/tcp www # WorldWideWeb HTTP
جمع بندی
در این مقاله ، نحوه نصب و پیکربندی دیمون فایروالد در سرور اوبونتو را بررسی کردیم.
نحوه مدیریت سرویس ها و پورت های firewalld اوبونتو نیز در اینجا مورد بحث قرار گرفته است. بنابراین، امیدوارم اکنون بتوانید بدون هیچ تردیدی دیمون فایروالد را در سرور اوبونتو مدیریت کنید. با این حال، اگر با هر گونه سردرگمی مواجه شدید، در نظرات صحبت کنید یا از صفحه تماس با ما ارتباط برقرار کنید و تیم ما در اولین فرصت ممکن پاسخگوی شما خواهند بود.