تغییر و اضافه کردن قوانین
قوانین زنجیر را با استفاده از دستورات iptables ، اضافه و اصلاح می کنید. یک دستور iptables ، شامل لغت کلیدی iptables است که با یک آرگومان دنبال می شود و دستور مورد اجرا را مشخص می نماید. به عنوان مثال، iptables -A دستوری برای اضافه کردن یک قانون جدید است ، در حالی که iptables -D ، دستوری برای خذف یک قانون می باشد ، دستورات iptables در جدول 4 لیست شده اند. دستور زیر به سادگی زنجیر ها را به همراه قوانین فعلی آنها که برای سیستم شما تعریف شده اند لیست می کند. خروجی ، مقادیر پیش فرض ایجاد شده توسط دستورات iptables را نشان می دهد.
iptables -L -n
Chain iput (policy ACCEPT);
Chain forward (policy ACCEPT);
Chain output (policy ACCEPT);
جدول 4 : دستورات iptables
|
زنجیر |
عملکرد |
|
-A chain |
یک قانون را به یک زنجیر می افزاید. |
|
-D chain [rulenum] |
قانون مورد تطابق را از یک زنجیر حذف می کند. قانون rulenum ( 1-اولی ) را از chain حذف می نماید. |
|
-I chain [rulenum] |
قوانین مربوط به بسته های انتقالی |
|
-R chain rulenum |
قوانین مربوط به تغییر مسیر یا اصلاح بسته های دریافتی ( تنها جدول NAT ) |
|
RETURN |
قوانین مربوط به تغییر مسیر یا اصلاح بسته های ارسالی ( تنها جدول NAT ) |
|
-L [chain] |
قوانین موجود در chain یا تمام رنجیر ها را لیست می کند. |
|
-E [chain] |
یک زنجیر را تغییر نام می دهد. |
|
-F [chain] |
تمام قوانین موجود در chain یا تمام زنجیر ها را حذف ( خالی ) می کند. |
|
-R chain |
یک قانون را جایگزین می کند. قانونها از 1 شماره گذاری می گردند. |
|
-Z [chain] |
شمارنده ها را در chain یا تمام زنجیر ها صفر می کند. |
|
-N chain |
یک زنجیر توسط کاربر تعریف شده جدید ایجاد می کند. |
|
-X chain |
یک زنجیر تعریف شده توسط کاربر را حذف می کند. |
|
-P chain target |
خط مشی روی chain را به target تغییر می دهد. |
برای اضافه کردن یک قانون جدید به یک زنجیر ، از -A استفاده می کنید. از -D برای حذف آن و -R برای جایگزین نمودن آن استفاده نمایید. در زیر دستور ، زنجیری را لیست کنید که قوانین به آن اعمال می شود. مثلا زنجیر INPUT ، OUTPUT یا FORWARD ویا یک زنجیر تعریف شده توسط کاربر. سپس ، سوئیچ های مختلفی لیست می کنید که عملیاتی که می خواهید انجام شود را مشخص می کند ( اکثر آنها همانند آنچه برای ipchains استفاده می شود است ، بجز چند استثناء ). سوئیچ -s آدرس مبدأ الحاقی به بسته ، -d آدرس مقصد و -j هدف را مشخص می کند. هدف ACCEPT به یک بسته اجازه می دهد تا عبور کند. سوئیچ -i اکنون دستگاه ورودی را نشان می دهد و فقط می تواند با زنجیر های INPUT و FORWARD استفاده شود. سوئیچ -o دستگاه خروجی را بیان می کند و تنها برای زنجیر های OUTPUT و FORWARD به کار می رود. جدول 5 ، چند سوئیچ اصلی را لیست کرده است.
جدول 5 : سوئیچ های iptables
|
سوئیچ |
عملکرد |
|
-p [!] proto |
یک پروتکل مثل TCP ، UDP ، ICMP یا ALL را مشخص می کند. |
|
-s [!] address[imask] [!] [port[:port]] |
آدرس مبدأ برای تطابق. با آرگومان port می توانید درگاه را مشخص کنید. |
|
--sport [!] [porto:port] |
مشخصه درگاه مبدأ. می توانید محدوده ای از درگاه ها را با استفاده از دو نقطه مشخص کنید (port:port). |
|
-d [!] address[imask] [!] [port[:port]] |
آدرس مقصد برای تطابق. با آرگومان port می توانید در گاه را مشخص کنید.
|
|
--dport [!] [port[:port]] |
مشخصة درگاه مقصد. |
|
-icmp-type [!] typename |
نوع ICMP را مشخص می کند. |
|
-l [!] name[+] |
یک رابط شبکه ای ورودی با استفاده از نامش مشخص می کند ( مثلا eth0 ). علامت + ، مثل یک کاراکتز عمومی عمل می کند. علامت + چسبیده به انتهای نام ، تمام رابطها با آن پیشوند را مورد اشاره قرار می دهد ( eth+ به تمام رابط ها اشاره می کند ) تنها می تواند با زنجیر INPUT استفاده می شود. |
|
-i target [port] |
هدف یک قانون را مشخص می کند ( [port] را برای هدف REDIRECT مشخص کنید). |
|
--to-source <ipaddr> [-<ipaddr>] [:port-port] |
با هدف SNAT استفاده می شود ، بسته ها را با آدرس IP جدید مبدأ ، مجددأ می نویسد. |
|
--to-destination <ipaddr> [-<ipaddr>] [:port-port] |
با هدف dNAT استفاده می شود ، بسته ها را با آدرس IP جدید مقصد ، مجددأ می نویسد. |
|
-n |
خروجی عددی آدرس ها و درگاهها که با -L استفاده می شود. |
|
-o [!] name[+] |
یک رابط شبکه ای خروجی ، با استفاده از نامش مشخص می کند ( مثلا eth0 ) تنها می تواند با زنجیر های FORWARD و OUTPUT استفاده شود. |
|
-t table |
یک جدول برای استفاده ( مثل -t nat برای جدول NAT ) مشخص می کند. |
|
-v |
حالت مفصل ، جزئیات قانون را نشان می دهد ، با -L استفاده می شود. |
|
-x |
اعداد را گسترش می دهد (مقادیر دقیق را نمایش می دهد)، با -L استفاده می شود. |
|
[!] -f |
دومین تطابق را در قطعه های آخر یک بستة قطعه قطعه شده ، مورد تطابق قرار می دهد. |
|
[!] -v |
نگارش بسته را چاپ می کند. |
|
! |
یک سوئیچ یا آدرس را منفی می کند. |
|
-m |
یک ماژول جهت استفاده را مشخص می کند. مثلا state. |
|
--state |
سوئیچ هایی مثل NEW ، INVALID ، RELATED و ESTABLISHED را برای ماژول state مشخص می کند. برای تعیین وضیعت بسته استفاده می شود. NEW ، بسته های SYN را مورد اشاره قرار می دهد ( تماسهای جدید ). |
|
--syn |
بسته های SYN ، تماس های جدید. |
|
--tcp-flags |
پرچمهای TCP : PS, URG, RST, FIN, ACK, SYN و ALL را برای تمام پرچمها. |
|
--limit |
سوئیچی برای ماژول limit ( -m limit ). برای کنترل نرخ تطابقها استفاده می شود. تعداد مشخصی در هر ثانیه ، عمل تطابق را انجام می دهد. |
|
-limit-burst |
سوئیچی برای ماژول limit ( -m limit )، حداکثر ترتیب را مشخص می کند قبل از اینکه حد به پایان برسد. برای کنترل حملات denial-of-service استفاده می شود. |