| FIREWALL-CMD(1) | دستورات عمومی کاربر | FIREWALL-CMD(1) |
نام (NAME)
firewall-cmd - کلاینت خط فرمان سرویس firewalld
خلاصه دستور (SYNOPSIS)
firewall-cmd [گزینهها...]
توضیحات (DESCRIPTION)
دستور firewall-cmd کلاینت خط فرمان دیمن firewalld است. این دستور رابطی برای مدیریت پیکربندیهای زمان اجرا (runtime) و ماندگار (permanent) فراهم میکند.
پیکربندی زمان اجرا در firewalld از پیکربندی ماندگار جدا است. این بدان معناست که تغییرات میتوانند در پیکربندی زمان اجرا یا ماندگار اعمال شوند.
گزینهها (OPTIONS)
گزینههای ترتیبی (Sequence options) گزینههایی هستند که میتوانند چندین بار مشخص شوند؛ اگر حداقل یکی از موارد با موفقیت انجام شود، کد خروج ۰ خواهد بود. خطاهای ALREADY_ENABLED (11)، NOT_ENABLED (12) و همچنین ZONE_ALREADY_SET (16) بهعنوان موفقیتآمیز در نظر گرفته میشوند. اگر در حین تحلیل و پردازش موارد خطاهایی رخ دهد، این خطاها بهصورت هشدار تلقی شده و تا زمانی که حداقل یک مورد با موفقیت انجام شود، تاثیری بر نتیجه نهایی نخواهند داشت. بدون وجود حتی یک مورد موفق، کد خروج به کدهای خطا بستگی خواهد داشت. اگر دقیقاً یک کد خطا وجود داشته باشد، همان کد استفاده میشود. اگر بیش از یک مورد خطا رخ داده باشد، کد UNKNOWN_ERROR (254) استفاده خواهد شد.
گزینههای زیر پشتیبانی میشوند:
گزینههای عمومی (General Options)
-h, --help
-V, --version
-q, --quiet
گزینههای وضعیت (Status Options)
--state
--reload
نکته: اگر مقدار FlushAllOnReload=no باشد، تغییرات زمان اجرا که از طریق رابط مستقیم (direct interface) اعمال شدهاند دستنخورده باقی میمانند تا زمانی که دیمن firewalld بهطور کامل بازنشانی (restart) شود. برای FlushAllOnReload به firewalld.conf(5) مراجعه کنید.
--complete-reload
نکته: اگر مقدار FlushAllOnReload=no باشد، تغییرات زمان اجرا که از طریق رابط مستقیم (direct interface) اعمال شدهاند دستنخورده باقی میمانند تا زمانی که دیمن firewalld بهطور کامل بازنشانی (restart) شود. برای FlushAllOnReload به firewalld.conf(5) مراجعه کنید.
--runtime-to-permanent
--check-config
--reset-to-defaults
گزینههای ثبت وقایع بستههای ردشده (Log Denied Options)
--get-log-denied
--set-log-denied=value
این یک تغییر در زمان اجرا و ماندگار است و فایروال را برای افزودن قواعد لاگگیری بازخوانی (reload) میکند.
گزینههای ماندگار (Permanent Options)
--permanent
اگر میخواهید تغییری را هم در زمان اجرا و هم در پیکربندی ماندگار اعمال کنید، دستور یکسان را یکبار با گزینه --permanent و یکبار بدون آن اجرا کنید.
گزینه --permanent میتواند به تمام گزینههایی که در ادامه مشخص شدهاند و از آن پشتیبانی میکنند اضافه شود.
گزینههای ناحیه (Zone Options)
--get-default-zone
--set-default-zone=zone
این یک تغییر در زمان اجرا و ماندگار است.
--get-active-zones
zone1 interfaces: interface1 interface2 .. sources: source1 .. zone2 interfaces: interface3 .. zone3 sources: source2 ..
اگر هیچ رابط یا مبدایی به ناحیه متصل نباشد، خط مربوطه حذف خواهد شد.
[--permanent] --get-zones
[--permanent] --get-services
[--permanent] --get-icmptypes
[--permanent] --get-zone-of-interface=interface
[--permanent] --get-zone-of-source=source[/mask]|MAC|ipset:ipset
[--permanent] --info-zone=zone
zone
interfaces: interface1 ..
sources: source1 ..
services: service1 ..
ports: port1 ..
protocols: protocol1 ..
forward-ports:
forward-port1
..
source-ports: source-port1 ..
icmp-blocks: icmp-type1 ..
rich rules:
rich-rule1
..
[--permanent] --list-all-zones
zone1
interfaces: interface1 ..
sources: source1 ..
services: service1 ..
ports: port1 ..
protocols: protocol1 ..
forward-ports:
forward-port1
..
icmp-blocks: icmp-type1 ..
rich rules:
rich-rule1
..
..
--permanent --new-zone=zone
نامهای ناحیه باید الفبایی-عددی باشند و علاوه بر آن میتوانند شامل نویسههای: '_' و '-' باشند.
--permanent --new-zone-from-file=filename [--name=zone]
--permanent --delete-zone=zone
--permanent --load-zone-defaults=zone
--permanent --path-zone=zone
گزینههای شیوهنامه (Policy Options)
[--permanent] --get-policies
[--permanent] --info-policy=policy
[--permanent] --list-all-policies
--permanent --new-policy=policy
نامهای شیوهنامه باید الفبایی-عددی باشند و علاوه بر آن میتوانند شامل نویسههای: '_' و '-' باشند.
--permanent --new-policy-from-file=filename [--name=policy]
--permanent --path-policy=policy
--permanent --delete-policy=policy
--permanent --load-policy-defaults=policy
گزینههای ویرایش و استعلام ناحیهها و شیوهنامهها (Options to Adapt and Query Zones and Policies)
گزینههای این بخش تنها بر یک ناحیه یا شیوهنامه خاص اثر میگذارند. در صورت استفاده همراه با گزینه --zone=zone یا --policy=policy، بر ناحیه یا شیوهنامه مشخصشده اثر میگذارند. در صورت حذف هر دو گزینه، بر ناحیه پیشفرض اثر میگذارند (گزینه --get-default-zone را ببینید).
[--permanent] [--zone=zone] [--policy=policy] --list-all
--permanent [--zone=zone] [--policy=policy] --get-target
--permanent [--zone=zone] [--policy=policy] --set-target=target
برای ناحیهها target یکی از موارد زیر است: default، ACCEPT، DROP، REJECT
برای شیوهنامهها target یکی از موارد زیر است: CONTINUE، ACCEPT، DROP، REJECT
مقدار default مشابه REJECT است، اما بهطور ضمنی به بستههای ICMP اجازه عبور میدهد.
مقدار ACCEPT به ترافیک اجازه میدهد از ناحیه فوروارد شود؛ چه به همان ناحیه و چه به سایر ناحیهها.
--permanent [--zone=zone] [--policy=policy] --set-description=description
--permanent [--zone=zone] [--policy=policy] --get-description
--permanent [--zone=zone] [--policy=policy] --set-short=description
--permanent [--zone=zone] [--policy=policy] --get-short
[--permanent] [--zone=zone] [--policy=policy] --list-services
[--permanent] [--zone=zone] [--policy=policy] --add-service=service [--timeout=timeval]
سرویس باید یکی از سرویسهای ارائهشده توسط firewalld باشد. برای دریافت فهرست سرویسهای پشتیبانیشده از دستور زیر استفاده کنید: firewall-cmd --get-services.
گزینه --timeout با گزینه --permanent قابل ترکیب نیست.
نکته: برخی سرویسها دستیارهای ردیابی اتصال (connection tracking helpers) را تعریف میکنند. دستیارهایی که ممکن است در حالت کلاینت عمل کنند (مانند tftp) باید به یک شیوهنامه خروجی (outbound) اضافه شوند نه یک ناحیه تا برای کلاینتها موثر واقع شوند. در غیر این صورت دستیار به ترافیک خروجی اعمال نخواهد شد. ترافیک مرتبط، همانطور که توسط دستیار ردیابی اتصال تعریف شده است، در مسیر برگشت (ورودی/ingress) توسط قواعد فایروال مطلع از وضعیت مجاز دانسته خواهد شد.
نمونهای از یک شیوهنامه خروجی برای دستیارهای ردیابی اتصال:
# firewall-cmd --permanent --new-policy clientConntrack # firewall-cmd --permanent --policy clientConntrack --add-ingress-zone HOST # firewall-cmd --permanent --policy clientConntrack --add-egress-zone ANY # firewall-cmd --permanent --policy clientConntrack --add-service tftp
[--permanent] [--zone=zone] [--policy=policy] --remove-service=service
[--permanent] [--zone=zone] [--policy=policy] --query-service=service
[--permanent] [--zone=zone] [--policy=policy] --list-ports
[--permanent] [--zone=zone] [--policy=policy] --add-port=portid[-portid]/protocol [--timeout=timeval]
پورت میتواند یک شماره پورت منفرد یا یک بازه پورت portid-portid باشد. پروتکل میتواند یکی از موارد tcp، udp، sctp یا dccp باشد.
گزینه --timeout با گزینه --permanent قابل ترکیب نیست.
[--permanent] [--zone=zone] [--policy=policy] --remove-port=portid[-portid]/protocol
[--permanent] [--zone=zone] [--policy=policy] --query-port=portid[-portid]/protocol
[--permanent] [--zone=zone] [--policy=policy] --list-protocols
[--permanent] [--zone=zone] [--policy=policy] --add-protocol=protocol [--timeout=timeval]
پروتکل میتواند هر پروتکلی باشد که توسط سیستم پشتیبانی میشود. لطفاً برای پروتکلهای پشتیبانیشده به فایل /etc/protocols مراجعه فرمایید.
گزینه --timeout با گزینه --permanent قابل ترکیب نیست.
[--permanent] [--zone=zone] [--policy=policy] --remove-protocol=protocol
[--permanent] [--zone=zone] [--policy=policy] --query-protocol=protocol
[--permanent] [--zone=zone] [--policy=policy] --list-source-ports
[--permanent] [--zone=zone] [--policy=policy] --add-source-port=portid[-portid]/protocol [--timeout=timeval]
پورت میتواند یک شماره پورت منفرد یا یک بازه پورت portid-portid باشد. پروتکل میتواند یکی از موارد tcp، udp، sctp یا dccp باشد.
گزینه --timeout با گزینه --permanent قابل ترکیب نیست.
[--permanent] [--zone=zone] [--policy=policy] --remove-source-port=portid[-portid]/protocol
[--permanent] [--zone=zone] [--policy=policy] --query-source-port=portid[-portid]/protocol
[--permanent] [--zone=zone] [--policy=policy] --list-icmp-blocks
[--permanent] [--zone=zone] [--policy=policy] --add-icmp-block=icmptype [--timeout=timeval]
مقدار icmptype یکی از انواع پیامهای ICMP است که توسط firewalld پشتیبانی میشود. برای دریافت فهرست انواع پیامهای ICMP پشتیبانیشده: firewall-cmd --get-icmptypes
گزینه --timeout با گزینه --permanent قابل ترکیب نیست.
[--permanent] [--zone=zone] [--policy=policy] --remove-icmp-block=icmptype
[--permanent] [--zone=zone] [--policy=policy] --query-icmp-block=icmptype
[--permanent] [--zone=zone] [--policy=policy] --list-forward-ports
برای پورتهای فوروارد IPv6 لطفاً از زبان غنی (rich language) استفاده کنید.
[--permanent] [--zone=zone] [--policy=policy] --add-forward-port=port=portid[-portid]:proto=protocol[:toport=portid[-portid]][:toaddr=address[/mask]] [--timeout=timeval]
پورت میتواند یک شماره پورت منفرد portid یا یک بازه پورت portid-portid باشد. پروتکل میتواند یکی از موارد tcp، udp، sctp یا dccp باشد. نشانی مقصد یک نشانی IP ساده است.
گزینه --timeout با گزینه --permanent قابل ترکیب نیست.
برای پورتهای فوروارد IPv6 لطفاً از زبان غنی (rich language) استفاده کنید.
نکته: اگر toaddr مشخص شود، فوروارد IP بهطور ضمنی فعال خواهد شد.
[--permanent] [--zone=zone] [--policy=policy] --remove-forward-port=port=portid[-portid]:proto=protocol[:toport=portid[-portid]][:toaddr=address[/mask]]
برای پورتهای فوروارد IPv6 لطفاً از زبان غنی (rich language) استفاده کنید.
[--permanent] [--zone=zone] [--policy=policy] --query-forward-port=port=portid[-portid]:proto=protocol[:toport=portid[-portid]][:toaddr=address[/mask]]
برای پورتهای فوروارد IPv6 لطفاً از زبان غنی (rich language) استفاده کنید.
[--permanent] [--zone=zone] [--policy=policy] --add-masquerade [--timeout=timeval]
گزینه --timeout با گزینه --permanent قابل ترکیب نیست.
برای ماسکرادینگ IPv6 لطفاً از زبان غنی (rich language) استفاده کنید.
نکته: فوروارد IP بهطور ضمنی فعال خواهد شد.
نکته (لینوکس کمتر از ۵.۵): برای بستر iptables، اگر یک ناحیه ورودی دارای رابطهای اختصاصیافته باشد، یک شیوهنامه ممکن است نتواند ماسکرادینگ را فعال کند. این محدودیت برای بستر nftables وجود ندارد، اما برای عملکرد صحیح به لینوکس نسخه 5.5+ نیاز دارد؛ در غیر این صورت بدون اعلام خطا با شکست مواجه میشود.
[--permanent] [--zone=zone] [--policy=policy] --remove-masquerade
برای ماسکرادینگ IPv6 لطفاً از زبان غنی (rich language) استفاده کنید.
[--permanent] [--zone=zone] [--policy=policy] --query-masquerade
برای ماسکرادینگ IPv6 لطفاً از زبان غنی (rich language) استفاده کنید.
[--permanent] [--zone=zone] [--policy=policy] --list-rich-rules
[--permanent] [--zone=zone] [--policy=policy] --add-rich-rule='rule' [--timeout=timeval]
برای مشاهده ساختار قواعد زبان غنی، لطفاً به firewalld.richlanguage(5) مراجعه فرمایید.
گزینه --timeout با گزینه --permanent قابل ترکیب نیست.
[--permanent] [--zone=zone] [--policy=policy] --remove-rich-rule='rule'
برای مشاهده ساختار قواعد زبان غنی، لطفاً به firewalld.richlanguage(5) مراجعه فرمایید.
[--permanent] [--zone=zone] [--policy=policy] --query-rich-rule='rule'
برای مشاهده ساختار قواعد زبان غنی، لطفاً به firewalld.richlanguage(5) مراجعه فرمایید.
گزینههای ویرایش و استعلام ناحیهها (Options to Adapt and Query Zones)
گزینههای این بخش تنها بر یک ناحیه خاص اثر میگذارند. در صورت استفاده همراه با گزینه --zone=zone، بر ناحیه مشخصشده اثر میگذارند. در صورت حذف این گزینه، بر ناحیه پیشفرض اثر میگذارند (گزینه --get-default-zone را ببینید).
[--permanent] [--zone=zone] --add-icmp-block-inversion
[--permanent] [--zone=zone] --remove-icmp-block-inversion
[--permanent] [--zone=zone] --query-icmp-block-inversion
[--permanent] [--zone=zone] --add-forward
[--permanent] [--zone=zone] --remove-forward
[--permanent] [--zone=zone] --query-forward
--permanent [--zone=zone] --get-priority
--permanent [--zone=zone] --set-priority
--permanent [--zone=zone] --get-ingress-priority
--permanent [--zone=zone] --set-ingress-priority
--permanent [--zone=zone] --get-egress-priority
--permanent [--zone=zone] --set-egress-priority
گزینههای ویرایش و استعلام شیوهنامهها (Options to Adapt and Query Policies)
گزینههای این بخش تنها بر یک شیوهنامه خاص اثر میگذارند. مشخص کردن گزینه --policy=policy همراه با این گزینهها الزامی است.
--permanent --policy=policy --get-priority
--permanent --policy=policy --set-priority=priority
اگر مقدار اولویت کمتر از صفر باشد (< 0)، قواعد شیوهنامه پیش از تمامی قواعد در تمامی ناحیهها اجرا خواهند شد.
اگر مقدار اولویت بیشتر از صفر باشد (> 0)، قواعد شیوهنامه پس از تمامی قواعد در تمامی ناحیهها اجرا خواهند شد.
[--permanent] --policy=policy --list-ingress-zones
[--permanent] --policy=policy --add-ingress-zone=zone
ناحیه ورودی یکی از ناحیههای ارائهشده توسط firewalld یا یکی از شبهناحیهها است: HOST، ANY.
شبهناحیه HOST برای ترافیکی که از ماشین میزبان (یعنی میزبانی که firewalld روی آن در حال اجرا است) سرچشمه میگیرد استفاده میشود.
شبهناحیه ANY برای ترافیک سرچشمهگرفته از هر ناحیهای استفاده میشود. این را میتوان مانند یک نویسه عام (wild card) برای ناحیهها در نظر گرفت. با این حال ترافیک مبدا ماشین میزبان را شامل نمیشود - برای آن منظور از HOST استفاده کنید.
[--permanent] --policy=policy --remove-ingress-zone=zone
[--permanent] --policy=policy --query-ingress-zone=zone
[--permanent] --policy=policy --list-egress-zones
[--permanent] --policy=policy --add-egress-zone=zone
ناحیه خروجی یکی از ناحیههای ارائهشده توسط firewalld یا یکی از شبهناحیهها است: HOST، ANY.
برای دریافت توضیحات بیشتر درباره HOST و ANY به گزینه --add-ingress-zone مراجعه فرمایید.
[--permanent] --policy=policy --remove-egress-zone=zone
[--permanent] --policy=policy --query-egress-zone=zone
[--permanent] --policy=policy|--policy-set=policy-set --add-disable
[--permanent] --policy=policy|--policy-set=policy-set --remove-disable
[--permanent] --policy=policy --query-disable
گزینههای مدیریت اتصال رابطها (Options to Handle Bindings of Interfaces)
متصل کردن یک رابط به یک ناحیه به این معنی است که تنظیمات آن ناحیه برای محدود کردن ترافیک از طریق آن رابط استفاده میشوند.
گزینههای این بخش تنها بر یک ناحیه خاص اثر میگذارند. در صورت استفاده همراه با گزینه --zone=zone، بر ناحیه zone اثر میگذارند. در صورت حذف این گزینه، بر ناحیه پیشفرض اثر میگذارند (گزینه --get-default-zone را ببینید).
برای دریافت فهرست ناحیههای از پیش تعریفشده از دستور زیر استفاده کنید: firewall-cmd --get-zones.
نام یک رابط رشتهای حداکثر تا ۱۶ نویسه است که نباید شامل ' '، '/'، '!' و '*' باشد.
[--permanent] [--zone=zone] --list-interfaces
[--permanent] [--zone=zone] --add-interface=interface
اگر رابط تحت کنترل NetworkManager باشد، ابتدا متصل میشود تا ناحیه را برای اتصالی که از این رابط استفاده میکند تغییر دهد. اگر این کار با شکست مواجه شود، اتصال ناحیه در firewalld ایجاد شده و محدودیتهای زیر اعمال میشوند. برای رابطهایی که تحت کنترل NetworkManager نیستند، firewalld تلاش میکند تنظیم ZONE را در فایل ifcfg تغییر دهد، البته اگر فایل وجود داشته باشد.
بهعنوان یک کاربر نهایی در اکثر موارد به این گزینه نیازی ندارید، زیرا NetworkManager (یا سرویس شبکه سنتی) در صورتی که NM_CONTROLLED=no تنظیم نشده باشد، رابطها را بهطور خودکار (مطابق با گزینه ZONE= از فایل ifcfg-interface) به ناحیهها اضافه میکند. شما تنها در صورتی باید این کار را انجام دهید که فایل /etc/sysconfig/network-scripts/ifcfg-interface وجود نداشته باشد. اگر چنین فایلی وجود دارد و شما رابط را با این گزینه --add-interface به ناحیه اضافه میکنید، مطمئن شوید که ناحیه در هر دو حالت یکسان باشد، در غیر این صورت رفتار سیستم نامشخص خواهد بود. لطفاً همچنین به صفحه راهنمای firewalld(1) در بخش Concepts مراجعه فرمایید. برای انتساب دائمی رابط به یک ناحیه، همچنین بخش 'How to set or change a zone for a connection?' در firewalld.zones(5) را ببینید.
[--permanent] [--zone=zone] --change-interface=interface
تغییر ناحیهای که رابط interface به آن متصل است به ناحیه zone. این گزینه اساساً معادل اجرای --remove-interface و سپس اجرای --add-interface است. اگر رابط پیش از این به ناحیهای متصل نشده باشد، مانند --add-interface رفتار میکند. در صورت حذف ناحیه، از ناحیه پیشفرض استفاده خواهد شد.
[--permanent] [--zone=zone] --query-interface=interface
[--permanent] --remove-interface=interface
برای افزودن یا تغییر رابطهایی که تحت کنترل NetworkManager نیستند: در صورتی که یک فایل ifcfg برای رابط وجود داشته باشد، firewalld تلاش میکند تنظیم ZONE را در آن فایل تغییر دهد.
تنها برای حذف رابطهایی که تحت کنترل NetworkManager نیستند: سرویس firewalld تلاشی برای تغییر تنظیم ZONE در فایل ifcfg نمیکند. این موضوع برای اطمینان از این است که خاموش شدن رابط (ifdown) منجر به بازنشانی تنظیم ناحیه به ناحیه پیشفرض نگردد. در این حالت تنها اتصال ناحیه در firewalld حذف میشود.
حذف اتصال رابط interface از ناحیهای که پیشتر به آن اضافه شده بود.
گزینههای مدیریت اتصال مبداها (Options to Handle Bindings of Sources)
متصل کردن یک مبدا به یک ناحیه به این معنی است که تنظیمات آن ناحیه برای محدود کردن ترافیک از این مبدا استفاده خواهند شد.
یک نشانی یا بازه نشانی مبدا میتواند یک نشانی IP، یا یک نشانی IP شبکه همراه با یک ماسک برای IPv4 یا IPv6، یا یک نشانی MAC، یا یک ipset با پیشوند ipset: باشد. برای IPv4، ماسک میتواند یک ماسک شبکه یا یک عدد ساده باشد. برای IPv6 ماسک یک عدد ساده است. استفاده از نامهای میزبان پشتیبانی نمیشود.
گزینههای این بخش تنها بر یک ناحیه خاص اثر میگذارند. در صورت استفاده همراه با گزینه --zone=zone، بر ناحیه zone اثر میگذارند. در صورت حذف این گزینه، بر ناحیه پیشفرض اثر میگذارند (گزینه --get-default-zone را ببینید).
برای دریافت فهرست ناحیههای از پیش تعریفشده از دستور زیر استفاده کنید: firewall-cmd [--permanent] --get-zones.
[--permanent] [--zone=zone] --list-sources
[--permanent] [--zone=zone] --add-source=source[/mask]|MAC|ipset:ipset
[--zone=zone] --change-source=source[/mask]|MAC|ipset:ipset
[--permanent] [--zone=zone] --query-source=source[/mask]|MAC|ipset:ipset
[--permanent] --remove-source=source[/mask]|MAC|ipset:ipset
گزینههای IPSet (IPSet Options)
--get-ipset-types
--permanent --new-ipset=ipset --type=type [--family=inet|inet6] [--option=key[=value]]
نامهای ipset باید الفبایی-عددی باشند و علاوه بر آن میتوانند شامل نویسههای: '_' و '-' باشند.
--permanent --new-ipset-from-file=filename [--name=ipset]
--permanent --delete-ipset=ipset
--permanent --load-ipset-defaults=ipset
[--permanent] --info-ipset=ipset
ipset type: type options: option1[=value1] .. entries: entry1 ..
[--permanent] --get-ipsets
--permanent --ipset=ipset --set-description=description
--permanent --ipset=ipset --get-description
--permanent --ipset=ipset --set-short=description
--permanent --ipset=ipset --get-short
[--permanent] --ipset=ipset --add-entry=entry
افزودن یک مدخل به ipset همراه با گزینه timeout مجاز است، اما این مدخلها توسط firewalld ردیابی نمیشوند.
[--permanent] --ipset=ipset --remove-entry=entry
[--permanent] --ipset=ipset --query-entry=entry
استعلام یک ipset دارای وقفه زمانی (timeout) منجر به خطا خواهد شد. مدخلهای ipsetهای دارای وقفه زمانی ردیابی نمیشوند.
[--permanent] --ipset=ipset --get-entries
[--permanent] --ipset=ipset --add-entries-from-file=filename
فایل باید شامل یک مدخل در هر خط باشد. خطوطی که با علامت شماره (#) یا نقطهویرگول (;) شروع میشوند نادیده گرفته میشوند؛ همچنین خطوط خالی.
[--permanent] --ipset=ipset --remove-entries-from-file=filename
فایل باید شامل یک مدخل در هر خط باشد. خطوطی که با علامت شماره (#) یا نقطهویرگول (;) شروع میشوند نادیده گرفته میشوند؛ همچنین خطوط خالی.
--permanent --path-ipset=ipset
گزینههای سرویس (Service Options)
گزینههای این بخش تنها بر یک سرویس خاص اثر میگذارند.
[--permanent] --info-service=service
service ports: port1 .. protocols: protocol1 .. source-ports: source-port1 .. helpers: helper1 .. destination: ipv1:address1 ..
گزینههای زیر تنها در پیکربندی ماندگار قابل استفاده هستند.
--permanent --new-service=service
نامهای سرویس باید الفبایی-عددی باشند و علاوه بر آن میتوانند شامل نویسههای: '_' و '-' باشند.
--permanent --new-service-from-file=filename [--name=service]
--permanent --delete-service=service
--permanent --load-service-defaults=service
--permanent --path-service=service
--permanent --service=service --set-description=description
--permanent --service=service --get-description
--permanent --service=service --set-short=description
--permanent --service=service --get-short
--permanent --service=service --add-port=portid[-portid]/protocol
--permanent --service=service --remove-port=portid[-portid]/protocol
--permanent --service=service --query-port=portid[-portid]/protocol
--permanent --service=service --get-ports
--permanent --service=service --add-protocol=protocol
--permanent --service=service --remove-protocol=protocol
--permanent --service=service --query-protocol=protocol
--permanent --service=service --get-protocols
--permanent --service=service --add-source-port=portid[-portid]/protocol
--permanent --service=service --remove-source-port=portid[-portid]/protocol
--permanent --service=service --query-source-port=portid[-portid]/protocol
--permanent --service=service --get-source-ports
--permanent --service=service --add-helper=helper
--permanent --service=service --remove-helper=helper
--permanent --service=service --query-helper=helper
--permanent --service=service --get-service-helpers
--permanent --service=service --set-destination=ipv:address[/mask]
--permanent --service=service --remove-destination=ipv
--permanent --service=service --query-destination=ipv:address[/mask]
--permanent --service=service --get-destinations
--permanent --service=service --add-include=service
--permanent --service=service --remove-include=service
--permanent --service=service --query-include=service
--permanent --service=service --get-includes
گزینههای کمکی (Helper Options)
گزینههای این بخش تنها بر یک دستیار (helper) خاص اثر میگذارند.
[--permanent] --info-helper=helper
helper family: family module: module ports: port1 ..
گزینههای زیر تنها در پیکربندی ماندگار قابل استفاده هستند.
--permanent --new-helper=helper --module=nf_conntrack_module [--family=ipv4|ipv6]
نامهای دستیار باید الفبایی-عددی باشند و علاوه بر آن میتوانند شامل نویسههای: '-' باشند.
--permanent --new-helper-from-file=filename [--name=helper]
--permanent --delete-helper=helper
--permanent --load-helper-defaults=helper
--permanent --path-helper=helper
[--permanent] --get-helpers
--permanent --helper=helper --set-description=description
--permanent --helper=helper --get-description
--permanent --helper=helper --set-short=description
--permanent --helper=helper --get-short
--permanent --helper=helper --add-port=portid[-portid]/protocol
--permanent --helper=helper --remove-port=portid[-portid]/protocol
--permanent --helper=helper --query-port=portid[-portid]/protocol
--permanent --helper=helper --get-ports
--permanent --helper=helper --set-module=description
--permanent --helper=helper --get-module
--permanent --helper=helper --set-family=description
--permanent --helper=helper --get-family
گزینههای پروتکل کنترل پیام اینترنت (ICMP) (Internet Control Message Protocol (ICMP) type Options)
گزینههای این بخش تنها بر یک icmptype خاص اثر میگذارند.
[--permanent] --info-icmptype=icmptype
icmptype destination: ipv1 ..
گزینههای زیر تنها در پیکربندی ماندگار قابل استفاده هستند.
--permanent --new-icmptype=icmptype
نامهای نوع پیام ICMP باید الفبایی-عددی باشند و علاوه بر آن میتوانند شامل نویسههای: '_' و '-' باشند.
--permanent --new-icmptype-from-file=filename [--name=icmptype]
--permanent --delete-icmptype=icmptype
--permanent --load-icmptype-defaults=icmptype
--permanent --icmptype=icmptype --set-description=description
--permanent --icmptype=icmptype --get-description
--permanent --icmptype=icmptype --set-short=description
--permanent --icmptype=icmptype --get-short
--permanent --icmptype=icmptype --add-destination=ipv
--permanent --icmptype=icmptype --remove-destination=ipv
--permanent --icmptype=icmptype --query-destination=ipv
--permanent --icmptype=icmptype --get-destinations
--permanent --path-icmptype=icmptype
گزینههای مستقیم (Direct Options)
منسوخ
شده (DEPRECATED)
رابط مستقیم منسوخ شده است. این رابط در نسخههای آینده حذف خواهد شد. شیوهنامهها جایگزین آن شدهاند؛ به firewalld.policies(5) مراجعه فرمایید.
گزینههای مستقیم دسترسی مستقیمتری را به فایروال فراهم میکنند. این گزینهها مستلزم آن هستند که کاربر با مفاهیم پایهای iptables آشنا باشد؛ یعنی table (مانند filter/mangle/nat/...)، chain (مانند INPUT/OUTPUT/FORWARD/...)، commands (مانند -A/-D/-I/...)، parameters (مانند -p/-s/-d/-j/...) و targets (مانند ACCEPT/DROP/REJECT/...).
گزینههای مستقیم تنها باید بهعنوان آخرین راهکار استفاده شوند، زمانی که امکان استفاده از گزینههایی مانند --add-service=service یا --add-rich-rule='rule' وجود نداشته باشد.
هشدار: رفتار قواعد مستقیم بسته به مقدار FirewallBackend متفاوت است. بخش CAVEATS در firewalld.direct(5) را ببینید.
اولین آرگومان هر گزینه باید ipv4 یا ipv6 یا eb باشد. با ipv4 برای IPv4 (iptables(8))، با ipv6 برای IPv6 (ip6tables(8)) و با eb برای پلهای اترنت (ebtables(8)) اعمال خواهد شد.
[--permanent] --direct --get-all-chains
[--permanent] --direct --get-chains { ipv4 | ipv6 | eb } table
[--permanent] --direct --add-chain { ipv4 | ipv6 | eb } table chain
زنجیرههای پایهای از قبل برای استفاده با گزینههای مستقیم وجود دارند؛ برای مثال زنجیره INPUT_direct (برای دیدن همه آنها خروجی iptables-save | grep direct را بررسی کنید). پیش از زنجیرههای مربوط به ناحیهها به این زنجیرهها پرش صورت میگیرد؛ یعنی هر قاعدهای که در INPUT_direct قرار گیرد پیش از قواعد موجود در ناحیهها بررسی خواهد شد.
[--permanent] --direct --remove-chain { ipv4 | ipv6 | eb } table chain
[--permanent] --direct --query-chain { ipv4 | ipv6 | eb } table chain
[--permanent] --direct --get-all-rules
[--permanent] --direct --get-rules { ipv4 | ipv6 | eb } table chain
[--permanent] --direct --add-rule { ipv4 | ipv6 | eb } table chain priority args
مقدار priority برای مرتبسازی قواعد استفاده میشود. اولویت ۰ به معنای افزودن قاعده در ابتدای زنجیره است؛ با اولویت بالاتر قاعده در مکانهای پایینتر اضافه خواهد شد. قواعد با اولویت یکسان در یک سطح قرار دارند و ترتیب این قواعد ثابت نبوده و ممکن است تغییر کند. اگر میخواهید مطمئن شوید که قاعدهای حتماً پس از قاعده دیگری اضافه میشود، از اولویت کمتر برای اولی و اولویت بیشتر برای موارد بعدی استفاده کنید.
[--permanent] --direct --remove-rule { ipv4 | ipv6 | eb } table chain priority args
[--permanent] --direct --remove-rules { ipv4 | ipv6 | eb } table chain
[--permanent] --direct --query-rule { ipv4 | ipv6 | eb } table chain priority args
--direct --passthrough { ipv4 | ipv6 | eb } args
[--permanent] --direct --get-all-passthroughs
[--permanent] --direct --get-passthroughs { ipv4 | ipv6 | eb }
[--permanent] --direct --add-passthrough { ipv4 | ipv6 | eb } args
[--permanent] --direct --remove-passthrough { ipv4 | ipv6 | eb } args
[--permanent] --direct --query-passthrough { ipv4 | ipv6 | eb } args
گزینههای اضطراری (Panic Options)
--panic-on
این یک تغییر تنها در زمان اجرا است.
--panic-off
این یک تغییر تنها در زمان اجرا است.
--query-panic
مثالها (EXAMPLES)
مثال ۱ (Example 1)
فعالسازی سرویس http در ناحیه پیشفرض. این یک تغییر تنها در زمان اجرا است؛ یعنی تا زمان راهاندازی مجدد موثر خواهد بود.
firewall-cmd --add-service=http
مثال ۲ (Example 2)
فعالسازی پورت 443/tcp بهصورت فوری و ماندگار در ناحیه پیشفرض. برای اینکه تغییر فوراً و همچنین پس از راهاندازی مجدد اعمال شود، به دو دستور نیاز داریم. دستور اول تغییر را در پیکربندی زمان اجرا اعمال میکند؛ یعنی فوراً تا زمان راهاندازی مجدد موثر میشود. دستور دوم تغییر را در پیکربندی ماندگار اعمال میکند؛ یعنی پس از راهاندازی مجدد موثر خواهد بود.
firewall-cmd --add-port=443/tcp firewall-cmd --permanent --add-port=443/tcp
کدهای خروج (EXIT CODES)
در صورت موفقیت مقدار 0 بازگردانده میشود. در صورت شکست، خروجی به رنگ قرمز بوده و کد خروج در صورت استفاده نادرست از گزینههای خط فرمان عدد 2، یا در سایر موارد یکی از کدهای خطای زیر خواهد بود:
| شناسه | کد |
| ALREADY_ENABLED | 11 |
| NOT_ENABLED | 12 |
| COMMAND_FAILED | 13 |
| NO_IPV6_NAT | 14 |
| PANIC_MODE | 15 |
| ZONE_ALREADY_SET | 16 |
| UNKNOWN_INTERFACE | 17 |
| ZONE_CONFLICT | 18 |
| BUILTIN_CHAIN | 19 |
| EBTABLES_NO_REJECT | 20 |
| NOT_OVERLOADABLE | 21 |
| NO_DEFAULTS | 22 |
| BUILTIN_ZONE | 23 |
| BUILTIN_SERVICE | 24 |
| BUILTIN_ICMPTYPE | 25 |
| NAME_CONFLICT | 26 |
| NAME_MISMATCH | 27 |
| PARSE_ERROR | 28 |
| ACCESS_DENIED | 29 |
| UNKNOWN_SOURCE | 30 |
| RT_TO_PERM_FAILED | 31 |
| IPSET_WITH_TIMEOUT | 32 |
| BUILTIN_IPSET | 33 |
| ALREADY_SET | 34 |
| MISSING_IMPORT | 35 |
| DBUS_ERROR | 36 |
| BUILTIN_HELPER | 37 |
| NOT_APPLIED | 38 |
| INVALID_ACTION | 100 |
| INVALID_SERVICE | 101 |
| INVALID_PORT | 102 |
| INVALID_PROTOCOL | 103 |
| INVALID_INTERFACE | 104 |
| INVALID_ADDR | 105 |
| INVALID_FORWARD | 106 |
| INVALID_ICMPTYPE | 107 |
| INVALID_TABLE | 108 |
| INVALID_CHAIN | 109 |
| INVALID_TARGET | 110 |
| INVALID_IPV | 111 |
| INVALID_ZONE | 112 |
| INVALID_PROPERTY | 113 |
| INVALID_VALUE | 114 |
| INVALID_OBJECT | 115 |
| INVALID_NAME | 116 |
| INVALID_FILENAME | 117 |
| INVALID_DIRECTORY | 118 |
| INVALID_TYPE | 119 |
| INVALID_SETTING | 120 |
| INVALID_DESTINATION | 121 |
| INVALID_RULE | 122 |
| INVALID_LIMIT | 123 |
| INVALID_FAMILY | 124 |
| INVALID_LOG_LEVEL | 125 |
| INVALID_AUDIT_TYPE | 126 |
| INVALID_MARK | 127 |
| INVALID_CONTEXT | 128 |
| INVALID_COMMAND | 129 |
| INVALID_USER | 130 |
| INVALID_UID | 131 |
| INVALID_MODULE | 132 |
| INVALID_PASSTHROUGH | 133 |
| INVALID_MAC | 134 |
| INVALID_IPSET | 135 |
| INVALID_ENTRY | 136 |
| INVALID_OPTION | 137 |
| INVALID_HELPER | 138 |
| INVALID_PRIORITY | 139 |
| INVALID_POLICY | 140 |
| INVALID_LOG_PREFIX | 141 |
| INVALID_NFLOG_GROUP | 142 |
| INVALID_NFLOG_QUEUE | 143 |
| INVALID_SOURCE | 144 |
| MISSING_TABLE | 200 |
| MISSING_CHAIN | 201 |
| MISSING_PORT | 202 |
| MISSING_PROTOCOL | 203 |
| MISSING_ADDR | 204 |
| MISSING_NAME | 205 |
| MISSING_SETTING | 206 |
| MISSING_FAMILY | 207 |
| RUNNING_BUT_FAILED | 251 |
| NOT_RUNNING | 252 |
| NOT_AUTHORIZED | 253 |
| UNKNOWN_ERROR | 254 |
توجه داشته باشید که کدهای بازگشتی گزینههای --query-* خاص هستند: استعلامهای موفقیتآمیز 0 و استعلامهای ناموفق 1 را برمیگردانند، مگر اینکه خطایی رخ داده باشد که در این صورت جدول بالا اعمال خواهد شد.
همچنین ببینید (SEE ALSO)
firewall-applet(1), firewalld(1), firewall-cmd(1), firewall-config(1), firewalld.conf(5), firewalld.direct(5), firewalld.dbus(5), firewalld.icmptype(5), firewall-offline-cmd(1), firewalld.richlanguage(5), firewalld.service(5), firewalld.zone(5), firewalld.zones(5), firewalld.policy(5), firewalld.policies(5), firewalld.ipset(5), firewalld.helper(5)
یادداشتها (NOTES)
صفحه وب firewalld:
نویسندگان (AUTHORS)
Thomas Woerner <twoerner@redhat.com>
Jiri Popelka <jpopelka@redhat.com>
Eric Garver <eric@garver.life>
| firewalld 2.5.1 |