اطلاعیه

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

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

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

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

    iptables چیست ؟ iptables یک برنامه لینوکسی میباشد که برای config فیلترینگ packet و مجموعه قوانین برای linux 2.4.x و ورژن های بعدی میباشد و ابزاری بسیار مفید برای ادمین های شبکه است. پکیج iptables شامل ip6tables هم است که برای کانفیگ فیلترینگ پکت ipv6 مورد استفاده قرار میگیرد.
    تنظیمات فایروال در لینوکس



    این مقاله به شما کمک میکند که بفهمید firewall در سیستم عامل linux چگونه کار میکند و اینکه iptables در linux چیست؟ فایروال سرنوشت پکت های ورودی و خروجی در سیستم را تعین میکند. iptables در حقیقت یک فایروال rule based میباشد و به صورت پیش فرض روی اکثر سیستم عامل ها نصب است و به صورت پیش فرض بدون هیچ قانونی راه اندازی شده است.


    iptables در kernel 2.4 موجود بوده است و قبلا ipchains یا ipfwadm نامیده میشده است. iptables در حقیقت یکی از نخستین ابزاریست برای صحبت با kernel و تصمیم گیری در filter پکت ها. این مقاله به شما کمک میکند تا کامندهای اساسی iptables را یادبگیرید و همچنین قصد داریم قانون های عملی iptables را شرح دهیم که ممکن است شما هم به آنها نیاز داشته باشید.

    سرویس های متفاوت برای پروتکل های متفاوت استفاده میشوند. مانند :
    iptables مورد استفاده برای IPv4.
    ip6tables مورد استفاده برای IPv6.
    arptables مورد استفاده برای ARP.
    ebtables مورد استفاده برای Ethernet frames..



    پیش نیازها :

    iptables نیازمند یک kernel هست که قابلیت filter کردن پکت (ip_tables) را داشته باشد. تمامی release های کرنل 2.4 به بالا شامل آن هستند.



    قابلیت های اصلی :
    • لیست کردن محتوای مجموعه قوانین فیلتر کردن پکت ها
    • اضافه حذف و تغییر رول ها در مجموعه قوانین فیلتر پکت ها



    فایل های اصلی iptables :

    /etc/init.d/iptables
    اسکریپت init برای start/stop/restart و ذخیره مجموعه قوانین.

    /etc/sysconfig/iptables
    مکانی که مجموعه قوانین ذخیره میشوند.

    /sbin/iptables
    باینری


    سه جدول زیر در iptables موجود هستند :
    • Filter
    • NAT
    • Mangle



    در حال حاضر 4 عدد chain کلی وجود دارد :
    INPUT :
    chain پیش فرض برای ورود به سیستم

    OUTPUT :
    chain پیش فرض برای خروج از سیستم

    FORWARD :
    chain پیش فروض که پکت ها از طریق آن به اینترفیس دیگر ارسال میشوند

    RH-Firewal-1-INPUT :
    chain coustom که توسط کاربر تعریف میشود


    توجه : فایل های اصلی بالا ممکن است در لینوکس ubuntu کمی متفاوت باشند.


    طریقه start,stop,restart کردن فایروال iptables :
    کد PHP:
    # /etc/init.d/iptables start
    # /etc/init.d/iptables stop
    # /etc/init.d/iptables restart 
    برای استارت کردن iptables به هنگام Boot سیستم دستور زیر را اجرا کنید :
    کد PHP:
    #chkconfig --level 345 iptables on 
    ذخیره مجموعه قوانین iptables با دستور زیر انجام میشود. زمانی که سیستم reboot یا restart شود سرویس iptables قوانین موجود را لغو یا ریست میکند. دستور زیر مجموعه قوانین iptables را به صورت پیش فرض در فایل /etc/sysconfig/iptables/ ذخیره میکند و قوانین اجرا شده یا restor میشود در مواردی که iptables قوانین را لغو یا به اصلاح (flus) کند :
    کد PHP:
    #service iptables save 
    با دستور زیر وضعیت iptables را چک میکنیم :

    L- :
    مجموعه قوانین را list میکند.

    v- :
    verbose میکند.

    n- :
    به فرمت numeric نمایش میدهد.

    کد PHP:
    [root@linux-zone ~]# iptables -L -n -v

    Chain INPUT (policy ACCEPT 0 packets0 bytes)
     
    pkts bytes target     prot opt in     out     source               destination
        6   396 ACCEPT     all  
    --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
        0     0 ACCEPT     icmp 
    --  *      *       0.0.0.0/0            0.0.0.0/0
        0     0 ACCEPT     all  
    --  lo     *       0.0.0.0/0            0.0.0.0/0
        0     0 ACCEPT     tcp  
    --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22
        0     0 REJECT     all  
    --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

    Chain FORWARD 
    (policy ACCEPT 0 packets0 bytes)
     
    pkts bytes target     prot opt in     out     source               destination
        0     0 REJECT     all  
    --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

    Chain OUTPUT 
    (policy ACCEPT 5 packets588 bytes)
     
    pkts bytes target     prot opt in     out     source               destination 
    دستور زیر قوانین iptables را به همراه شمارنده خط نمایش میدهد. با کمک گزینه line-numbers-- شما میتوانید قوانین را حذف یا اضافه کنید :
    کد PHP:
    [root@linux-zone ~]# iptables -n -L -v --line-numbers

    Chain INPUT (policy ACCEPT 0 packets0 bytes)
    num   pkts bytes target     prot opt in     out     source               destination
    1       51  4080 ACCEPT     all  
    --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
    2        0     0 ACCEPT     icmp 
    --  *      *       0.0.0.0/0            0.0.0.0/0
    3        0     0 ACCEPT     all  
    --  lo     *       0.0.0.0/0            0.0.0.0/0
    4        0     0 ACCEPT     tcp  
    --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22
    5        0     0 REJECT     all  
    --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

    Chain FORWARD 
    (policy ACCEPT 0 packets0 bytes)
    num   pkts bytes target     prot opt in     out     source               destination
    1        0     0 REJECT     all  
    --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

    Chain OUTPUT 
    (policy ACCEPT 45 packets5384 bytes)
    num   pkts bytes target     prot opt in     out     source               destination 

    flushing یا حذف قوانین iptables با دستور زیر انجام میشود :
    کد PHP:
    [root@linux-zone ~]# iptables -F 
    در حقیقت این دستور تمامی قوانین را از جداول پاک میکند. قبل از اجرا کردن این کامند از مجموعه قوانین تان backup بگیرید. برای حذف یا اضافه کردن قوانین ابتدا نگاهی به قوانین موجود در chain ها می اندازیم. دستور زیر باید مجموعه قوانین را در chain های input و output به همراه شمارنده خطوط نمایش دهد که کمک خواهد کرد بتوانیم قوانین را حذف یا اضافه کنیم :
    کد PHP:
    [root@linux-zone ~]# iptables -L INPUT -n --line-numbers

    Chain INPUT (policy ACCEPT)
    num  target     prot opt source               destination
    1    ACCEPT     all  
    --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
    2    ACCEPT     icmp 
    --  0.0.0.0/0            0.0.0.0/0
    3    ACCEPT     all  
    --  0.0.0.0/0            0.0.0.0/0
    4    ACCEPT     tcp  
    --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22
    5    REJECT     all  
    --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 
    کد PHP:
    [root@linux-zone ~]# iptables -L OUTPUT -n --line-numbers
    Chain OUTPUT (policy ACCEPT)
    num  target     prot opt source               destination 
    اگر بخواهیم قانون شماره 5 را از chain input حذف کنیم دستور زیر را باید اجرا کنیم :
    کد PHP:
    [root@linux-zone ~]# iptables -D INPUT 5 
    برای وارد کردن یا اضافه کردن قانون به chain input بین rule شماره 4 و 5 دستور زیر را اجرا میکنیم :
    کد PHP:
    [root@linux-zone ~]# iptables -I INPUT 5 -s ipaddress -j DROP 
    در این مقاله هدف ما آموزش کاربرد و استفاده پایه از iptables برای مبتدیان بود. شما ممکن است قوانین پیچیده ای را بعد از درک خوبی از iptables و tcp/ip ایجاد کنید و چقدر خوبه که شما هم تجربیات تون را برای ما به اشتراک بگذارید.


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

    دستورات مفید Firewalld برای تنظیم و مدیریت فایروال در لینوکس

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

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

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

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

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

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



    استفاده از آموزش های منطقه لینوکسی ها با کمی تغییر در عنوان و متن نوشته در سایت های مشابه به هیچ وجه مورد قبول منطقه لینوکسی ها نمی باشد.

    موفق باشید
    محمد هابیلی


    ادامه دارد ....
    آخرین ویرایش توسط Habili; در تاریخ/ساعت 02-07-2021, 10:35 AM.

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

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

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