آموزش iptables فایروال لینوکس + دستورات کاربردی و تنظیمات

آموزش iptables فایروال لینوکس + دستورات کاربردی و تنظیمات : فایروال ها نقش مهمی در تامین امنیت سیستم ها و شبکه های لینوکسی ایفا می­کنند. آنها با کنترل و مدیریت ترافیک شبکه های ورودی و خروجی بر اساس مجموعه ای از قوانین مانند یک محافظ امنیتی بین شبکه داخلی و خارجی عمل می­کنند. مجموعه ای از قوانین فایروال تنها اجازه می دهد تا اتصالات و درخواست های مجاز از فایروال عبور کرده و آنهایی که تعریف نشده اند یا غیرمجاز تعریف شده اند مسدود می­ شوند . ده ها فایروال متن باز در دسترس مدیران شبکه­ ها و سیستم­ های لینوکسی قرار دارد که از آن جمله می توان به Iptables , IpCop Shorewall , UFW , Vuurmuur , pfSense , IPFire , SmoothWall , Endian و CSF اشاره کرد که در این مجال به بررسیiptables می ­پردازیم.

 Iptables  چیست؟

Iptables  یا Netfilter محبوب ترین و پر استفاده ترین فایروال لینوکسی مبتنی بر خط فرمان است. iptables  خط اول دفاعی سرورهای لینوکس است و بسیاری از مدیران سرورها از آن برای کانفیگ و ایجاد تنظیمات در سرورهای لینوکس استفاده می­کنند. iptables بسته ها را درون پشته شبکه در داخل هسته لینوکس فیلتر می­کند. iptables  معمولا header  هر بسته را بررسی می کند و به محتوای بسته اهمیتی نمی دهد بنابراین از سرعت بسیار زیادی برخوردار است و معمولا تاثیر چندانی در کاهش سرعت پاسخگویی سیستم ندارد، iptables همچنین قادر است یک رشته را درون بسته ها جستجو کند، البته این کار تاحدودی باعث کاهش سرعت سیستم خواهد شد.

iptables  امکانات زیادی در اختیار یک مدیر سرور می دهد ، بوسیله iptables می­توان پکت ها را بر اساس پروتکل مورد استفاده در ارتباط ، شماره ip  گیرنده و فرستنده ، شماره پورت مورد در ارتباط ، مک آدرس و آدرس فیزیکی سیستم ها ، دامنه ای از آدرس های ip ، زمان برقراری ارتباط ، بخش های مختلفی از بسته ها و تنظیمات IPSec ، طول بسته ها ، انتخاب تصادفی بسته ها ، انتخاب n امین بسته ، کاربر یا گروه ارسال کننده بسته ، پردازش ارسال کننده بسته ، بخش های TOS  و TTL  هدر ip   و تعداد ارتباطات در یک بازه زمانی را کنترل و فیلتر کرد.

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

قوانین iptable بسته به نوع کاربرد در جداول filter table ،  nat tableوmangling table و در زنجیر(chain)هایی از دستورات دسته بندی می شوند. وظیفه filter table سیاست گذاری و دادن مجوز برای ورود و خروج بسته های TCP/IP به سیستم است. این جدول شامل سه زنجیر INPUT برای ترافیک ورودی به سیستم ، OUTPUT برای ترافیک خروجی از سیستم و FORWARD برای ترافیک فوروارد شده از سیستم است.

آموزش iptables فایروال لینوکس

آموزش iptables فایروال لینوکس

وظیفه nat table سیاست گذاری و دادن مجوز عملیات routing است و قوانین مربوط به تغییر آدرس IP و یا پورت در جدول   nat قرار می گیرند.  این جدول شامل سه زنجیر PREROUTING برای شبکه مقصد در ترافیک ورودی به سیستم ، POSTROUTING  برای شبکه مبدا ترافیک خروجی از سیستم و OUTPUT است.

از جدول mangle  می توان برای مارک دار کردن بسته ها و عملیات بررسی بسته ها قبل از ورود به جداول بالاتر استفاده کرد . کلیه اعمال پیشرفته مربوط به دستکاری فیلدهای header در بسته های ارسالی در شبکه توسط قوانین موجود در این جدول صورت می گیرد.

سوئیچ ها و دستورات iptable

  • A- برای افزودن دستور به انتهای یک زنجیره از جدول قوانین استفاده می شود.
  • I- برای افزودن به مکان خاصی از زنجیره جدول قوانین استفاده می شود.
  • D- برای حذف دستور از مکان خاصی از زنجیره جدول قوانین استفاده می شود.
  • R- برای جایگزین کردن دستور جاری یا یک دستور در مکان خاصی از زنجیره جدول قوانین استفاده می شود.
  • p- برای مشخص کردن نوع پروتکل مورد استفاده قرار می­گیرد.
  • t- برای مشخص کردن جدول مورد استفاده قرار می­گیرد.
  • s- یا source– برای مشخص کردن شماره ip  مبدا مورد استفاده قرار می­گیرد.
  • d- یا destination– برای مشخص کردن شماره ip  مقصد مورد استفاده قرار می­گیرد.
  • i- یا in-interface– برای مشخص کردن کارت شبکه ورودی مورد استفاده قرار می­گیرد.
  • o- یا out-interface– برای مشخص کردن کارت شبکه خروجی مورد استفاده قرار می­گیرد.
  • sport– برای مشخص کردن شماره پورت مبدا مورد استفاده قرار می­گیرد.
  • dport– برای مشحص کردن شماره پورت مقصد مورد استفاده قرار می­گیرد.
  • L- برای لیست کردن قوانین موجود در یک زنجیر مورد استفاده قرار می­گیرد.
  • N- برای ایجاد زنجیر جدید مورد استفاده قرار می­گیرد.
  • X- برای حذف یک زنجیر مورد استفاده قرار می­گیرد.
  • F- برای پاک کردن قوانین مورد استفاده قرار می­گیرد.
  • j- مشخص کردن نحوه برخورد با بسته مورد استفاده قرار می­گیرد. این سویچ به معنی jump  بوده و به موارد DROP ، LOG ، ACCEPT  و REJECT اشاره می کند. در اینجا تفاوتی که بین DROP و REJECT وجود دارد و آ ن این است که در DROP برای فرستنده پیامی مبنی بر حذف بسته  ارسال نمی­کند ولی در REJECT به فرستنده یک بسته عدم پذیرش ترافیک ارسال خواهد شد.
  • iptables-save > /etc/iptables.rules برای پشتیبان گیری تنظیمات مورد استفاده قرار می­گیرد.
  • post-down iptables-save > /etc/iptables.rules برای پشتیبان گیری تنظیمات قبل از هر خاموش شدن سیستم مورد استفاده قرار می­گیرد.
  • iptables-restore < /etc/iptables.rules برای بازیابی تنظیمات مورد استفاده قرار می­گیرد.
  • m- برای مشخص کردن ماژول مورد استفاده قرار می گیرد.
  • m mac –mac-source- برای مشخص کردن مک آدرس مبدا مورد استفاده قرار می گیرد.

بطور مثال دستور زیر پورت 22  را باز می کند:

iptables -A OUTPUT -o eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT

 

مهم ترین و پرکاربردترین دستورات و تنظیمات iptables

  • پاک کردن تمام تنظیمات جاری
iptables -F

ایجاد تنظیمات عمومی و مسدود کردن همه دسترسی ها

iptables -P INPUT DROP

iptables -P FORWARD DROP
iptables -P OUTPUT DROP

 

  • مسدود کردن یک ip خاص
iptables -A INPUT -s xxx.xxx.xxx.xxx -j DROP

 

  • باز کردن پورت SSH برای تمامی ارتباطات ورودی
iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT

 

  • باز کردن پورت ssh برای یک ip  یا رنج ip خاص
iptables -A INPUT -i eth0 -p tcp -s xxx.xxx.xxx.xxx/24 --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth0 -p tcp -s xxx.xxx.xxx.xxx --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT

 

  • باز کردن پورت http
iptables -A INPUT -i eth0 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT

 

  • باز کردن پورت https
iptables -A INPUT -i eth0 -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 443 -m state --state ESTABLISHED -j ACCEPT

 

  • باز کردن چند پورت بصورت یکجا
iptables -A INPUT -i eth0 -p tcp -m multiport --dports 22,80,443 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp -m multiport --sports 22,80,443 -m state --state ESTABLISHED -j ACCEPT

 

  • باز کردن پورت برای ارتباط خروجی ssh
iptables -A OUTPUT -o eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT

 

  • باز کردن پورت خروجی ssh تنها برای یک شبکه خاص
iptables -A OUTPUT -o eth0 -p tcp -d 192.168.101.0/24 --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT

 

  • باز کردن پورت https برای ارتباطات خروجی
iptables -A OUTPUT -o eth0 -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --sport 443 -m state --state ESTABLISHED -j ACCEPT

 

  • ایجاد امکانping از داخل به خارج
iptables -A OUTPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT

 

  • ایجاد امکانping از خارج به داخل
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT

 

  • ایجاد امکان دسترسی loopback
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
  • ایجاد امکان دسترسی به شبکه خارجیeth1 از شبکه داخلی eth0
iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT

 

  • باز کردن دسترسی خروجی پورت dns
iptables -A OUTPUT -p udp -o eth0 --dport 53 -j ACCEPT
iptables -A INPUT -p udp -i eth0 --sport 53 -j ACCEPT

 

  • ذخیره تغییرات iptables
service iptables save

آموزش iptables فایروال لینوکس + دستورات کاربردی و تنظیمات

1 پاسخ
  1. امیر
    امیر says:

    این نکته رو بگم که کسی که تاحالا با سرور و آیپی تیبل کار نکرده,بهتره زیاد با این سرویس بازی نکنه.
    چون یعو دسترسی رو از بین میبره و فقط کنسول نیاز داره
    عذر خواهی میکنم از اینکه نظر دادم.
    چون دیدم کسانی که برای بار اول از این مقالات مشابه استفاده کردند و سرورشون از بین رفته
    من کمتر داخل وب سایت ها میرم.اما خوشحال میشم اگر نظری داشتید به ایمیلم بفرستید.چون کمر به سایت ها میام.
    موفق باشید.

قوانین و تبلیغات

پاسخ دهید

می خواهید به بحث بپیوندید ؟

دیدگاهتان را بنویسید