اطلاعیه

بستن
هنوز اطلاعیه ای در دست نیست.

Rule های مفید Firewalld برای کانفیگ و مدیریت Firewall در Linux

بستن
X
 
  • فیلتر کردن
  • زمان
  • نمایش
Clear All
پست های جدید

    Rule های مفید Firewalld برای کانفیگ و مدیریت Firewall در Linux

    FirewallD یک راه برای کانفیگ رولهای دینامیک فایروال فرآهم می کند، که به صورت آنی و بدون نیاز به restart فایروال اعمال می شود، و همچنین از D_BUS و مفهوم zone پشتیبانی می کند که باعث تسهیل در کانفیگ می شود. Firewalld جایگزین مکانیزم قدیمی فایروال فدورا (فدورا 18) می باشد، RHEL/CentOS 7 و توزیع های جدید از این مکانیزم جدید پشتیبانی می کنند. یکی از بزرگترین دلایل معرفی سیستم جدید فایروال، نیاز فایروال قدیمی برای restart در هر تغییر می باشد، که باعث قطع تمامی ارتباطات فعال می باشد. همان طور که در بالا گفته شد، firewalld جدید از zone های دینامیک پشتیبانی می کند که در کانفیگ مجموعه ای متفاوت از zone ها و رولها برای شبکه خانه یا محل کارتان به روش گرافیکی یا کامند لاینی بسیار مفید می باشد.
    دستورات مفید فایروال در لینوکس




    در ابتدا، کانفیگ firewalld مشکل به نظر می رسد، اما ترکیب سرویس ها و zone ها آن را آسان می کنند که هر دو در این مقاله بحث می شود.

    در مقاله قبلی، نحوه کار با firewalld و zone های آن را بحث کردیم، در این مقاله چند رول مفید firewalld را برای کانفیگ سیستم لینوکسی با استفاده از کامند لاین بررسی خواهیم کرد.


    همچنین توصیه میشود مقالات زیر را مطالعه کنید :

    تنظیمات FirewallD در لینوکس RHEL/CentOS 7 و Fedora 21

    نحوه اضافه کردن یک Service یا Port به FirewallD

    ترفندها و دستورات iptables

    آموزش تنظیمات فایروال لینوکس (iptable)



    تمام مثال ها در این مقاله بر روی CentOS 7 به صورت عملی تست شده اند و بر روی توزیع های RHEL و فدورا هم کار می کند.

    قبل از اجرای رول های firewalld، ابتدا مطمئن شوید که آیا سرویس firewalld فعال و در حال اجرا باشد.
    کد:
    # systemctl status firewalld
    بررسی وضعیت فایروال در لینوکس





    عکس بالا نشان می دهد که firewalld فعال و در حال اجرا ست. اکنون زمان آن است که تمام zone ها و سرویس های فعال را چک کنیم.
    کد:
    # firewall-cmd --get-active-zones
    # firewall-cmd --get-services
    نحوه چک کردن zone ها در فایروال لینوکس




    اگر با کامند لاین آشنا نیستید، می توانید از GUI برای مدیریت firewalld استفاده کنید، برای این منظور باید پکیج GUI بر روی سیستم نصب باشد، اگر نصب نیست از کامند زیر استفاده کنید.
    کد:
    # yum install firewalld firewall-config
    همان طور که در بالا گفته شد، این مقاله برای دوستداران کامند لاین نوشته شده است و تمام مثال ها به صورت کامند لاین نوشته می شوند نه به صورت GUI ... با عرض پوزش..

    قبل از هر کاری، ابتدا مطمین شوید که روی کدام public zone قرار است فایروال لینوکس را کانفیگ کنید و تمام سرویس های فعال، پورت ها، رولها برای public zone را با کامند زیر لیست کنید.
    کد:
    # firewall-cmd --zone=public --list-all
    تنظیمات firewalld در لینوکس





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



    1. حذف و اضافه کردن پورت ها در Firewalld

    برای باز کردن هر پورتی برای public zone از کامند زیر استفاده کنید. به عنوان مثال، کامند زیر پورت 80 را برای public zone باز خواهد کرد.
    کد:
    # firewall-cmd --permanent --zone=public --add-port=80/tcp
    مشابه به بالا برای حذف پورت اضافه شده، تنها از دستور firewalld به همراه آپشن --remove همانند زیر استفاده کنید.
    کد:
    # firewall-cmd --zone=public --remove-port=80/tcp
    بعد از حذف و اضافه کردن پورت های خاص، با استفاده از آپشن –list-ports مطمئن شوید که آیا پورت اضافه و یا حذف شده است.
    کد:
    # firewall-cmd --zone=public --list-ports
    اضافه کردن پورت به فایروال لینوکس





    2. حذف و اضافه کردن سرویس ها در Firewalld

    به صورت پیش فرض firewalld با سرویس های از پیش تعریف شده ای همراه است، اگر شما می خواهید لیستی از سرویس های خاص را اضافه کنید، باید یک فایل جدید xml را بسازید که شامل تمام سرویس ها باشد یا با استفاده از دستورات زیر هر یک از سرویس ها را به صورت دستی حذف یا تعریف کنید.

    برای مثال، دستورات زیر به شما کمک خواهد کرد تا سرویس های خاص را اضافه و با حذف کنیم همانطور که اینجا در این مثال برای ftp انجام دادیم.
    کد:
    # firewall-cmd --zone=public --add-service=ftp
    # firewall-cmd --zone=public --remove-service=ftp
    # firewall-cmd --zone=public --list-services
    نحوه اضافه کردن یک سرویس در firewalld






    3. بلاک کردن پکت های ورودی و خروجی (Panic Mode)

    اگر می خواهید ارتباطات ورودی یا خروجی را بلاک کنید، باید از مد panic-on برای بلاک اینچنین درخواست هایی استفاده کنید. برای مثال، رول زیر هر ارتباط establishe شده موجود بر روی سیستم را drop میکند.
    کد:
    # firewall-cmd --panic-on
    بعد از فعال کردن مد panic، هر دامین را که می خواهید ping کنید (برای مثال google.com ) و با استفاده از آپشن –query-panic چک کنید که آیا مد panic، در وضعیت on هست یا نه.
    کد:
    # ping google.com -c 1
    # firewall-cmd --query-panic
    بلاک کردن پکت ها در firewalld




    در شکل بالا می بینیم که query جواب panic Unknown host google.com را برمیگرداند. حالا مد panic را غیر فعال کنید و دوباره عمل ping را انجام داده و چک کنید.
    کد:
    # firewall-cmd --query-panic
    # firewall-cmd --panic-off
    # ping google.com -c 1
    تنظیمات firewalld در لینوکس




    حالا یک درخواست ping به google.com می فرستیم.



    4. Masquerade کردن IP Address

    Masquerade به نام NATیا(Network Address Translation ) هم شناخته می شود، که اساسا یک روش ساده است که به یک کامپیوتر اجازه می دهد تا به اینترنت متصل شود، و در واقع به نوعی کارش وساطت است.

    حالا خواهیم دید که چگونه یک پورت را به بیرون از شبکه فوروارد کنیم. برای مثال، اگر من بخواهم از هر جایی به ماشین مجازی ام در خانه ssh کنم، باید پورت 22 ssh ام را به یک پورت متفاوتی فوروارد کنم (به طور مثال 2222 ).

    قبل از انجام پورت فورواردینگ، ابتدا مطمئن شوید که آیا masquerade برای external zone فعال است یا نه، چون می خواهیم به کامپیوتر از بیرون شبکه دسترسی پیدا کنیم.
    کد:
    # firewall-cmd --zone=external --query-masquerade
    اگر فعال نیست، می توانید با کامند زیر فعال کنید.
    کد:
    # firewall-cmd --zone=external --add-masquerade
    اکنون تمام ارتباطات به پورت 22 ssh را به پورت 2222 و ip 192.168.0.132 فوروارد می کنیم.
    کد:
    # firewall-cmd --zone=external --add-forward-port=port=22:proto=tcp:toport=2222:toaddr=192.168.0.132
    # firewall-cmd --zone=external --list-all
    دستورات firewalld در لینوکس






    5. چگونه ICMP را بلاک و فعال کنیم

    اول، نوع icmp را که داریم استفاده می کنید را با دستور زیر چک کنید.
    کد:
    # firewall-cmd --get-icmptypes
    با دستور زیر می توانید icmp block را به هر zone ای اضافه کنید. در این مثال من icmp block را روی external zone اضافه خواهم کرد، قبل از بلاک کردن، یک icmp پینگ برای چک وضعیت icmp block انجام می دهیم.
    کد:
    # firewall-cmd --zone=public --query-icmp-block=echo-reply
    اگر شما جواب no گرفتید، به این معنی است که هیچ icmp block ای اعمال نشده است، پس باید icmp block را فعال کنیم.
    کد:
    # firewall-cmd --zone=public --add-icmp-block=echo-reply
    بستن پینگ در سرور لینوکس






    6. اضافه و حذف Chain با استفاده از Direct اینترفیس

    برای اضافه کردن یک رول اینترفیس direct، می توانیم از آپشن –direct در هر chain ی (Public, Work, Internal, External ) استفاده کنیم در این مثال ما یک رول در public zone اضافه خواهیم کرد.

    قبل از اضافه کردن هر رولی، اول تمام رولهای موجود در public zone را با استفاده از آپشن –get-rules لیست کنید.
    کد:
    # irewall-cmd --direct --get-rules ipv4 filter IN_public_allow
    برای اضافه کردن رول از آپشن –add-rules استفاده کنید.
    کد:
    # firewall-cmd --direct --add-rule ipv4 filter IN_public_allow 0 -m tcp -p tcp --dport 25 -j ACCEPT
    برای حذف رول ها به جای –add-rules از –remove-rule استفاده کنید.
    کد:
    # firewall-cmd --direct --remove-rule ipv4 filter IN_public_allow 0 -m tcp -p tcp --dport 25 -j ACCEPT
    حذف کردن رول های فایروال در لینوکس






    7. رول های Firewalld Lockdown

    با هر برنامه لوکال که مجوز روت داشته باشد، می توانیم رولهای firewalld را تغییر دهیم. برای جلوگیری از تغییرات بر روی رولهای firewalld، باید بر روی فایل firewalld.conf، یک lock-down قرار دهیم. این باعث می شود که firewalld از تغییرات نا خواسته توسط برنامه ها در امان باشد.
    کد:
    # vim /etc/firewalld/firewalld.conf
    no را به yes تغییر دهید.
    کد:
    Lockdown=yes
    تنظیمات فایروال در لینوکس




    برای این که تغییر بالا دائمی شود از آپشن –reload استفاده کنید.
    کد:
    # firewall-cmd --reload
    بعد از اعمال تغییرات بالا، از lockdown بودن firewalld اطمینان حاصل کنید.
    کد:
    # firewall-cmd --query-lockdown
    برای On/Off کردن مد lockdown ازهر دو کامند زیر استفاده کنید.
    کد:
    # firewall-cmd --lockdown-on
    # firewall-cmd --lockdown-off
    دستورات firewalld در لینوکس






    8. فعال کردن Fail2ban-Firewalld

    برای فعال کردن fail2ban در firewalld، باید پکیج fail2ban-firewalld را نصب کنیم و مخزن epel را در سیستم RHEL/CentOS فعال کنیم. Fail2ban چندین رول امنیتی اضافی برای SSH, SSH-DDOS, MariaDB, Apache فرآهم می کند.

    بعد از فعال کردن epel، پکیج fail2ban-firewalld را با کامند زیر نصب کنید.
    کد:
    # yum install fail2ban-firewalld -y
    فعال کردن fail2ban در فایروال




    بعد از نصب پکیج، سرویس fail2ban را استارت و فعال کنید.
    کد:
    # systemctl start fail2ban
    # systemctl enable fail2ban
    firewalld in linux






    9. اضافه و بلاک کردن آدرس های IP

    برای اضافه کردن ادرس ip خاص (192.168.0.254) به public zone قابل اعتماد از کامند زیر استفاده کنید.
    کد:
    # firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.0.254" accept'
    بعد از اضافه کردن رول بالا، تمام رولهای public zone قابل اعتماد را لیست کنید.
    کد:
    # firewall-cmd --zone=public --list-all
    برای حذف هر رولی عبارت –add-rich-rule را با –remove-rich-rule جایگزین کنید.
    کد:
    # firewall-cmd --zone=public --remove-rich-rule='rule family="ipv4" source address="192.168.0.254" accept'
    دستورات فایروال در لینوکس




    برای reject یا drop کردن یک آدرس ip از zone های قابل اعتماد، عبارت accept را با reject جایگزین کنید.
    کد:
    # firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.0.250" reject'
    # firewall-cmd --zone=public --list-all
    تنظیمات فایروال لینوکس





    همچنین توصیه میشود مقالات زیر را مطالعه کنید :

    نحوه بستن/مسدود کردن ping در فایروال لینوکس

    نحوه ی نصب و راه اندازی فایروال CSF در RHEL/CentOs و Fedora

    آموزش نصب و کانفیگ pfsense 2.3.2 firewall/router


    نتیجه گیری :

    ما در اینجا با نحوه کانفیگ چند رول و سرویس های پیش فرض در firewalld آشنا شدیم. اگر سوالی داشتید، در همین پست مطرح کنید.
    آخرین ویرایش توسط Habili; در تاریخ/ساعت 02-07-2021, 10:18 AM.
    اینستاگرام انجمن لینوکس ایران : https://www.instagram.com/iranlinuxforum

درباره انجمن منطقه لینوکسی ها

انجمن منطقه لینوکسی ها با هدف ارتقاء سطح علمی کاربران در سطح جهانی و همچنین کمک به بالا بردن سطح علمی عمومی در زمینه های تخصصی فوق پایه گذاری شده است. انجمن منطقه لینوکسی ها از طریق کارشناسان و متخصصان پاسخگوی سوالات گوناگون کاربران مبتدی یا پیشرفته میباشد تا حد امکان تلاش شده که محیطی متنوع و کاربر پسند و به دور از هرگونه حاشیه جهت فعالیت کاربران در این انجمن ایجاد شود. لذا ما به صورت مستمر برای پیشرفت کمی و کیفی محتوی و اطلاعات انجمنمان میکوشیم که این برای ما ارزشمند و حائز اهمیت است. کلیه حقوق،اطلاعات و مقالات در این انجمن متعلق به سایت منطقه لینوکسی ها میباشد، و هرگونه نسخه برداری بدون ذکر منبع مورد پیگرد قانونی خواهد شد.

شبکه های اجتماعی
در حال انجام ...
X