FIREWALL-CMD(1) دستورات عمومی کاربر FIREWALL-CMD(1)

firewall-cmd - کلاینت خط فرمان سرویس firewalld

firewall-cmd [گزینه‌ها...]

دستور firewall-cmd کلاینت خط فرمان دیمن firewalld است. این دستور رابطی برای مدیریت پیکربندی‌های زمان اجرا (runtime) و ماندگار (permanent) فراهم می‌کند.

پیکربندی زمان اجرا در firewalld از پیکربندی ماندگار جدا است. این بدان معناست که تغییرات می‌توانند در پیکربندی زمان اجرا یا ماندگار اعمال شوند.

گزینه‌های ترتیبی (Sequence options) گزینه‌هایی هستند که می‌توانند چندین بار مشخص شوند؛ اگر حداقل یکی از موارد با موفقیت انجام شود، کد خروج ۰ خواهد بود. خطاهای ALREADY_ENABLED (11)، NOT_ENABLED (12) و همچنین ZONE_ALREADY_SET (16) به‌عنوان موفقیت‌آمیز در نظر گرفته می‌شوند. اگر در حین تحلیل و پردازش موارد خطاهایی رخ دهد، این خطاها به‌صورت هشدار تلقی شده و تا زمانی که حداقل یک مورد با موفقیت انجام شود، تاثیری بر نتیجه نهایی نخواهند داشت. بدون وجود حتی یک مورد موفق، کد خروج به کدهای خطا بستگی خواهد داشت. اگر دقیقاً یک کد خطا وجود داشته باشد، همان کد استفاده می‌شود. اگر بیش از یک مورد خطا رخ داده باشد، کد UNKNOWN_ERROR (254) استفاده خواهد شد.

گزینه‌های زیر پشتیبانی می‌شوند:

-h, --help

نمایش متن راهنمای کوتاه و خروج.

-V, --version

نمایش رشته نسخه firewalld. این گزینه با سایر گزینه‌ها قابل ترکیب نیست.

-q, --quiet

عدم چاپ پیام‌های وضعیت (حالت بی‌صدا).

--state

بررسی اینکه آیا دیمن firewalld فعال (در حال اجرا) است یا خیر. در صورت فعال بودن کد خروج ۰، در صورت وقوع خطا در زمان راه‌اندازی کد RUNNING_BUT_FAILED و در غیر این صورت کد NOT_RUNNING را برمی‌گرداند. بخش “کدهای خروج (EXIT CODES)” را ببینید. این گزینه همچنین وضعیت را در STDOUT چاپ می‌کند.

--reload

بازخوانی مجدد قواعد فایروال با حفظ اطلاعات وضعیت کانکشن‌ها (state). پیکربندی ماندگار فعلی به پیکربندی زمان اجرای جدید تبدیل می‌شود؛ یعنی تمام تغییراتی که تنها در زمان اجرا انجام شده باشند و در پیکربندی ماندگار ذخیره نشده باشند، با بازخوانی از بین می‌روند.

نکته: اگر مقدار FlushAllOnReload=no باشد، تغییرات زمان اجرا که از طریق رابط مستقیم (direct interface) اعمال شده‌اند دست‌نخورده باقی می‌مانند تا زمانی که دیمن firewalld به‌طور کامل بازنشانی (restart) شود. برای FlushAllOnReload به firewalld.conf(5) مراجعه کنید.

--complete-reload

بازخوانی کامل فایروال، حتی ماژول‌های هسته netfilter. این کار احتمالاً اتصالات فعال را قطع خواهد کرد، زیرا اطلاعات وضعیت (state) از بین می‌رود. این گزینه فقط باید در صورت بروز مشکلات شدید در فایروال استفاده شود. برای مثال، اگر در اطلاعات وضعیت خطاهایی وجود داشته باشد که مانع از برقراری اتصالات بر اساس قواعد درست فایروال شود.

نکته: اگر مقدار FlushAllOnReload=no باشد، تغییرات زمان اجرا که از طریق رابط مستقیم (direct interface) اعمال شده‌اند دست‌نخورده باقی می‌مانند تا زمانی که دیمن firewalld به‌طور کامل بازنشانی (restart) شود. برای FlushAllOnReload به firewalld.conf(5) مراجعه کنید.

--runtime-to-permanent

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

--check-config

اجرای بررسی‌های صحت‌سنجی روی پیکربندی ماندگار. این بررسی شامل اعتبارسنجی نحوی XML و اعتبارسنجی معنایی است.

--reset-to-defaults

بازنشانی کامل پیکربندی به تنظیمات پیش‌فرض firewalld.

--get-log-denied

نمایش تنظیمات مربوط به ثبت وقایع (log) بسته‌های ردشده.

--set-log-denied=value

افزودن قواعد لاگ‌گیری درست پیش از قواعد reject و drop در زنجیره‌های INPUT، FORWARD و OUTPUT برای قواعد پیش‌فرض و همچنین پیش از قواعد نهایی reject و drop در ناحیه‌ها برای نوع بسته لایه پیوند پیکربندی‌شده. مقادیر ممکن عبارتند از: all، unicast، broadcast، multicast و off. مقدار پیش‌فرض off است که ثبت وقایع را غیرفعال می‌کند.

این یک تغییر در زمان اجرا و ماندگار است و فایروال را برای افزودن قواعد لاگ‌گیری بازخوانی (reload) می‌کند.

--permanent

گزینه ماندگار --permanent می‌تواند برای ماندگار کردن گزینه‌ها استفاده شود. این تغییرات فوراً اعمال نمی‌شوند و تنها پس از راه‌اندازی مجدد یا بارگذاری مجدد سرویس، یا راه‌اندازی مجدد سیستم اثرگذار خواهند شد. بدون گزینه --permanent، تغییرات تنها بخشی از پیکربندی زمان اجرا خواهند بود.

اگر می‌خواهید تغییری را هم در زمان اجرا و هم در پیکربندی ماندگار اعمال کنید، دستور یکسان را یک‌بار با گزینه --permanent و یک‌بار بدون آن اجرا کنید.

گزینه --permanent می‌تواند به تمام گزینه‌هایی که در ادامه مشخص شده‌اند و از آن پشتیبانی می‌کنند اضافه شود.

--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

چاپ انواع پیام icmptype از پیش تعریف‌شده به‌صورت فهرستی جداشده با فاصله.

[--permanent] --get-zone-of-interface=interface

چاپ نام ناحیه‌ای که interface به آن متصل است یا no zone.

[--permanent] --get-zone-of-source=source[/mask]|MAC|ipset:ipset

چاپ نام ناحیه‌ای که مبدا به آن متصل است یا no zone.

[--permanent] --info-zone=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

بارگذاری تنظیمات پیش‌فرض ناحیه یا گزارش خطای NO_DEFAULTS.

--permanent --path-zone=zone

چاپ مسیر فایل پیکربندی ناحیه.

[--permanent] --get-policies

چاپ شیوه‌نامه‌های از پیش تعریف‌شده به‌صورت فهرستی جداشده با فاصله.

[--permanent] --info-policy=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

بارگذاری پیش‌فرض‌های عرضه‌شده برای یک شیوه‌نامه. این گزینه تنها برای شیوه‌نامه‌های ارائه‌شده همراه با firewalld کاربرد دارد و برای شیوه‌نامه‌های تعریف‌شده توسط کاربر اعمال نمی‌شود.

گزینه‌های این بخش تنها بر یک ناحیه یا شیوه‌نامه خاص اثر می‌گذارند. در صورت استفاده همراه با گزینه --zone=zone یا --policy=policy، بر ناحیه یا شیوه‌نامه مشخص‌شده اثر می‌گذارند. در صورت حذف هر دو گزینه، بر ناحیه پیش‌فرض اثر می‌گذارند (گزینه --get-default-zone را ببینید).

[--permanent] [--zone=zone] [--policy=policy] --list-all

فهرست کردن تمام موارد اضافه‌شده یا فعال‌شده.

--permanent [--zone=zone] [--policy=policy] --get-target

دریافت هدف (target).

--permanent [--zone=zone] [--policy=policy] --set-target=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]

افزودن یک سرویس. این گزینه می‌تواند چندین بار مشخص شود. اگر مقدار وقفه زمانی (timeout) مشخص شود، قاعده برای مدت‌زمان تعیین‌شده فعال خواهد بود و پس از آن به‌طور خودکار حذف می‌شود. timeval یک عدد (برحسب ثانیه) یا یک عدد به همراه یکی از نویسه‌های s (ثانیه)، m (دقیقه)، h (ساعت) است؛ برای مثال 20m یا 1h.

سرویس باید یکی از سرویس‌های ارائه‌شده توسط 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

بررسی اینکه آیا service اضافه شده است یا خیر. در صورت وجود 0 و در غیر این صورت 1 را برمی‌گرداند.

[--permanent] [--zone=zone] [--policy=policy] --list-ports

فهرست کردن پورت‌های اضافه‌شده به‌صورت فهرستی جداشده با فاصله. ساختار یک پورت به‌صورت portid[-portid]/protocol است؛ می‌تواند یک جفت پورت و پروتکل یا یک بازه پورت همراه با پروتکل باشد.

[--permanent] [--zone=zone] [--policy=policy] --add-port=portid[-portid]/protocol [--timeout=timeval]

افزودن پورت. این گزینه می‌تواند چندین بار مشخص شود. اگر مقدار وقفه زمانی (timeout) مشخص شود، قاعده برای مدت‌زمان تعیین‌شده فعال خواهد بود و پس از آن به‌طور خودکار حذف می‌شود. timeval یک عدد (برحسب ثانیه) یا یک عدد به همراه یکی از نویسه‌های s (ثانیه)، m (دقیقه)، h (ساعت) است؛ برای مثال 20m یا 1h.

پورت می‌تواند یک شماره پورت منفرد یا یک بازه پورت 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

بررسی اینکه آیا پورت اضافه شده است یا خیر. در صورت وجود 0 و در غیر این صورت 1 را برمی‌گرداند.

[--permanent] [--zone=zone] [--policy=policy] --list-protocols

فهرست کردن پروتکل‌های اضافه‌شده به‌صورت فهرستی جداشده با فاصله.

[--permanent] [--zone=zone] [--policy=policy] --add-protocol=protocol [--timeout=timeval]

افزودن پروتکل. این گزینه می‌تواند چندین بار مشخص شود. اگر مقدار وقفه زمانی (timeout) مشخص شود، قاعده برای مدت‌زمان تعیین‌شده فعال خواهد بود و پس از آن به‌طور خودکار حذف می‌شود. timeval یک عدد (برحسب ثانیه) یا یک عدد به همراه یکی از نویسه‌های s (ثانیه)، m (دقیقه)، h (ساعت) است؛ برای مثال 20m یا 1h.

پروتکل می‌تواند هر پروتکلی باشد که توسط سیستم پشتیبانی می‌شود. لطفاً برای پروتکل‌های پشتیبانی‌شده به فایل /etc/protocols مراجعه فرمایید.

گزینه --timeout با گزینه --permanent قابل ترکیب نیست.

[--permanent] [--zone=zone] [--policy=policy] --remove-protocol=protocol

حذف پروتکل. این گزینه می‌تواند چندین بار مشخص شود.

[--permanent] [--zone=zone] [--policy=policy] --query-protocol=protocol

بررسی اینکه آیا پروتکل اضافه شده است یا خیر. در صورت وجود 0 و در غیر این صورت 1 را برمی‌گرداند.

[--permanent] [--zone=zone] [--policy=policy] --list-source-ports

فهرست کردن پورت‌های مبدا اضافه‌شده به‌صورت فهرستی جداشده با فاصله. یک پورت به‌صورت portid[-portid]/protocol است.

[--permanent] [--zone=zone] [--policy=policy] --add-source-port=portid[-portid]/protocol [--timeout=timeval]

افزودن پورت مبدا. این گزینه می‌تواند چندین بار مشخص شود. اگر مقدار وقفه زمانی (timeout) مشخص شود، قاعده برای مدت‌زمان تعیین‌شده فعال خواهد بود و پس از آن به‌طور خودکار حذف می‌شود. timeval یک عدد (برحسب ثانیه) یا یک عدد به همراه یکی از نویسه‌های s (ثانیه)، m (دقیقه)، h (ساعت) است؛ برای مثال 20m یا 1h.

پورت می‌تواند یک شماره پورت منفرد یا یک بازه پورت 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

بررسی اینکه آیا پورت مبدا اضافه شده است یا خیر. در صورت وجود 0 و در غیر این صورت 1 را برمی‌گرداند.

[--permanent] [--zone=zone] [--policy=policy] --list-icmp-blocks

فهرست کردن مسدودسازی‌های پروتکل کنترل پیام اینترنت (ICMP) اضافه‌شده به‌صورت فهرستی جداشده با فاصله.

[--permanent] [--zone=zone] [--policy=policy] --add-icmp-block=icmptype [--timeout=timeval]

افزودن یک مسدودسازی ICMP برای icmptype. این گزینه می‌تواند چندین بار مشخص شود. اگر مقدار وقفه زمانی (timeout) مشخص شود، قاعده برای مدت‌زمان تعیین‌شده فعال خواهد بود و پس از آن به‌طور خودکار حذف می‌شود. timeval یک عدد (برحسب ثانیه) یا یک عدد به همراه یکی از نویسه‌های s (ثانیه)، m (دقیقه)، h (ساعت) است؛ برای مثال 20m یا 1h.

مقدار icmptype یکی از انواع پیام‌های ICMP است که توسط firewalld پشتیبانی می‌شود. برای دریافت فهرست انواع پیام‌های ICMP پشتیبانی‌شده: firewall-cmd --get-icmptypes

گزینه --timeout با گزینه --permanent قابل ترکیب نیست.

[--permanent] [--zone=zone] [--policy=policy] --remove-icmp-block=icmptype

حذف مسدودسازی ICMP برای icmptype. این گزینه می‌تواند چندین بار مشخص شود.

[--permanent] [--zone=zone] [--policy=policy] --query-icmp-block=icmptype

بررسی اینکه آیا مسدودسازی ICMP برای icmptype اضافه شده است یا خیر. در صورت وجود 0 و در غیر این صورت 1 را برمی‌گرداند.

[--permanent] [--zone=zone] [--policy=policy] --list-forward-ports

فهرست کردن پورت‌های فوروارد IPv4 اضافه‌شده به‌صورت فهرستی جداشده با فاصله.

برای پورت‌های فوروارد IPv6 لطفاً از زبان غنی (rich language) استفاده کنید.

[--permanent] [--zone=zone] [--policy=policy] --add-forward-port=port=portid[-portid]:proto=protocol[:toport=portid[-portid]][:toaddr=address[/mask]] [--timeout=timeval]

افزودن پورت فوروارد IPv4. این گزینه می‌تواند چندین بار مشخص شود. اگر مقدار وقفه زمانی (timeout) مشخص شود، قاعده برای مدت‌زمان تعیین‌شده فعال خواهد بود و پس از آن به‌طور خودکار حذف می‌شود. timeval یک عدد (برحسب ثانیه) یا یک عدد به همراه یکی از نویسه‌های s (ثانیه)، m (دقیقه)، h (ساعت) است؛ برای مثال 20m یا 1h.

پورت می‌تواند یک شماره پورت منفرد 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]]

حذف پورت فوروارد IPv4. این گزینه می‌تواند چندین بار مشخص شود.

برای پورت‌های فوروارد IPv6 لطفاً از زبان غنی (rich language) استفاده کنید.

[--permanent] [--zone=zone] [--policy=policy] --query-forward-port=port=portid[-portid]:proto=protocol[:toport=portid[-portid]][:toaddr=address[/mask]]

بررسی اینکه آیا پورت فوروارد IPv4 اضافه شده است یا خیر. در صورت وجود 0 و در غیر این صورت 1 را برمی‌گرداند.

برای پورت‌های فوروارد IPv6 لطفاً از زبان غنی (rich language) استفاده کنید.

[--permanent] [--zone=zone] [--policy=policy] --add-masquerade [--timeout=timeval]

فعال‌سازی ماسکرادینگ (تغییر نشانی) IPv4. اگر وقفه زمانی مشخص شود، ماسکرادینگ برای مدت زمان تعیین‌شده فعال خواهد بود. timeval یک عدد (برحسب ثانیه) یا یک عدد به همراه یکی از نویسه‌های s (ثانیه)، m (دقیقه)، h (ساعت) است؛ برای مثال 20m یا 1h. ماسکرادینگ زمانی مفید است که ماشین یک روتر باشد و ماشین‌های متصل از طریق رابط در یک ناحیه دیگر بتوانند از این اتصال استفاده کنند.

گزینه --timeout با گزینه --permanent قابل ترکیب نیست.

برای ماسکرادینگ IPv6 لطفاً از زبان غنی (rich language) استفاده کنید.

نکته: فوروارد IP به‌طور ضمنی فعال خواهد شد.

نکته (لینوکس کمتر از ۵.۵): برای بستر iptables، اگر یک ناحیه ورودی دارای رابط‌های اختصاص‌یافته باشد، یک شیوه‌نامه ممکن است نتواند ماسکرادینگ را فعال کند. این محدودیت برای بستر nftables وجود ندارد، اما برای عملکرد صحیح به لینوکس نسخه 5.5+ نیاز دارد؛ در غیر این صورت بدون اعلام خطا با شکست مواجه می‌شود.

[--permanent] [--zone=zone] [--policy=policy] --remove-masquerade

غیرفعال‌سازی ماسکرادینگ IPv4. اگر ماسکرادینگ با وقفه زمانی فعال شده باشد، آن نیز غیرفعال خواهد شد.

برای ماسکرادینگ IPv6 لطفاً از زبان غنی (rich language) استفاده کنید.

[--permanent] [--zone=zone] [--policy=policy] --query-masquerade

بررسی اینکه آیا ماسکرادینگ IPv4 فعال شده است یا خیر. در صورت فعال بودن 0 و در غیر این صورت 1 را برمی‌گرداند.

برای ماسکرادینگ IPv6 لطفاً از زبان غنی (rich language) استفاده کنید.

[--permanent] [--zone=zone] [--policy=policy] --list-rich-rules

فهرست کردن قواعد زبان غنی اضافه‌شده به‌صورت فهرستی جداشده با خط جدید.

[--permanent] [--zone=zone] [--policy=policy] --add-rich-rule='rule' [--timeout=timeval]

افزودن قاعده زبان غنی 'rule'. این گزینه می‌تواند چندین بار مشخص شود. اگر مقدار وقفه زمانی (timeout) مشخص شود، rule برای مدت‌زمان تعیین‌شده فعال خواهد بود و پس از آن به‌طور خودکار حذف می‌شود. timeval یک عدد (برحسب ثانیه) یا یک عدد به همراه یکی از نویسه‌های s (ثانیه)، m (دقیقه)، h (ساعت) است؛ برای مثال 20m یا 1h.

برای مشاهده ساختار قواعد زبان غنی، لطفاً به firewalld.richlanguage(5) مراجعه فرمایید.

گزینه --timeout با گزینه --permanent قابل ترکیب نیست.

[--permanent] [--zone=zone] [--policy=policy] --remove-rich-rule='rule'

حذف قاعده زبان غنی 'rule'. این گزینه می‌تواند چندین بار مشخص شود.

برای مشاهده ساختار قواعد زبان غنی، لطفاً به firewalld.richlanguage(5) مراجعه فرمایید.

[--permanent] [--zone=zone] [--policy=policy] --query-rich-rule='rule'

بررسی اینکه آیا قاعده زبان غنی 'rule' اضافه شده است یا خیر. در صورت وجود 0 و در غیر این صورت 1 را برمی‌گرداند.

برای مشاهده ساختار قواعد زبان غنی، لطفاً به firewalld.richlanguage(5) مراجعه فرمایید.

گزینه‌های این بخش تنها بر یک ناحیه خاص اثر می‌گذارند. در صورت استفاده همراه با گزینه --zone=zone، بر ناحیه مشخص‌شده اثر می‌گذارند. در صورت حذف این گزینه، بر ناحیه پیش‌فرض اثر می‌گذارند (گزینه --get-default-zone را ببینید).

[--permanent] [--zone=zone] --add-icmp-block-inversion

فعال‌سازی معکوس‌سازی مسدودیت‌های ICMP.

[--permanent] [--zone=zone] --remove-icmp-block-inversion

غیرفعال‌سازی معکوس‌سازی مسدودیت‌های ICMP.

[--permanent] [--zone=zone] --query-icmp-block-inversion

بررسی اینکه آیا معکوس‌سازی مسدودیت‌های ICMP فعال است یا خیر. در صورت فعال بودن 0 و در غیر این صورت 1 را برمی‌گرداند.

[--permanent] [--zone=zone] --add-forward

فعال‌سازی فوروارد درون‌ناحیه‌ای (intra zone forwarding).

[--permanent] [--zone=zone] --remove-forward

غیرفعال‌سازی فوروارد درون‌ناحیه‌ای.

[--permanent] [--zone=zone] --query-forward

بررسی اینکه آیا فوروارد درون‌ناحیه‌ای فعال است یا خیر. در صورت فعال بودن 0 و در غیر این صورت 1 را برمی‌گرداند.

--permanent [--zone=zone] --get-priority

دریافت اولویت ناحیه.

--permanent [--zone=zone] --set-priority

تنظیم اولویت ناحیه برای رده‌بندی بسته‌ها. این کار هم اولویت ورودی (ingress) و هم اولویت خروجی (egress) را تنظیم می‌کند.

--permanent [--zone=zone] --get-ingress-priority

دریافت اولویت ورودی (ingress) ناحیه.

--permanent [--zone=zone] --set-ingress-priority

تنظیم اولویت ورودی (ingress) ناحیه برای رده‌بندی بسته‌ها.

--permanent [--zone=zone] --get-egress-priority

دریافت اولویت خروجی (egress) ناحیه.

--permanent [--zone=zone] --set-egress-priority

تنظیم اولویت خروجی (egress) ناحیه برای رده‌بندی بسته‌ها.

گزینه‌های این بخش تنها بر یک شیوه‌نامه خاص اثر می‌گذارند. مشخص کردن گزینه --policy=policy همراه با این گزینه‌ها الزامی است.

--permanent --policy=policy --get-priority

دریافت اولویت.

--permanent --policy=policy --set-priority=priority

تنظیم اولویت. اولویت، ترتیب نسبی شیوه‌نامه‌ها را مشخص می‌کند. این یک مقدار عددی صحیح بین -32768 و 32767 است که مقدار -1 مقدار پیش‌فرض برای شیوه‌نامه‌های جدید بوده و مقدار 0 برای استفاده داخلی رزرو شده است.

اگر مقدار اولویت کمتر از صفر باشد (< 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

بررسی اینکه آیا zone اضافه شده است یا خیر. در صورت وجود 0 و در غیر این صورت 1 را برمی‌گرداند.

[--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

بررسی اینکه آیا zone اضافه شده است یا خیر. در صورت وجود 0 و در غیر این صورت 1 را برمی‌گرداند.

[--permanent] --policy=policy|--policy-set=policy-set --add-disable

غیرفعال‌سازی مدیریتی یک شیوه‌نامه. یک شیوه‌نامه غیرفعال‌شده فعال نخواهد شد.

[--permanent] --policy=policy|--policy-set=policy-set --remove-disable

حذف غیرفعال‌سازی مدیریتی از یک شیوه‌نامه؛ به شیوه‌نامه امکان فعال شدن می‌دهد.

[--permanent] --policy=policy --query-disable

بررسی اینکه آیا شیوه‌نامه به‌صورت مدیریتی غیرفعال شده است یا خیر.

متصل کردن یک رابط به یک ناحیه به این معنی است که تنظیمات آن ناحیه برای محدود کردن ترافیک از طریق آن رابط استفاده می‌شوند.

گزینه‌های این بخش تنها بر یک ناحیه خاص اثر می‌گذارند. در صورت استفاده همراه با گزینه --zone=zone، بر ناحیه zone اثر می‌گذارند. در صورت حذف این گزینه، بر ناحیه پیش‌فرض اثر می‌گذارند (گزینه --get-default-zone را ببینید).

برای دریافت فهرست ناحیه‌های از پیش تعریف‌شده از دستور زیر استفاده کنید: firewall-cmd --get-zones.

نام یک رابط رشته‌ای حداکثر تا ۱۶ نویسه است که نباید شامل ' '، '/'، '!' و '*' باشد.

[--permanent] [--zone=zone] --list-interfaces

فهرست کردن رابط‌هایی که به ناحیه zone متصل هستند به‌صورت فهرستی جداشده با فاصله. در صورت حذف ناحیه، از ناحیه پیش‌فرض استفاده خواهد شد.

[--permanent] [--zone=zone] --add-interface=interface

اتصال رابط interface به ناحیه zone. در صورت حذف ناحیه، از ناحیه پیش‌فرض استفاده خواهد شد.

اگر رابط تحت کنترل 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

اگر رابط تحت کنترل NetworkManager باشد، ابتدا متصل می‌شود تا ناحیه را برای اتصالی که از این رابط استفاده می‌کند تغییر دهد. اگر این کار شکست بخورد، اتصال ناحیه در firewalld ایجاد شده و محدودیت‌های زیر اعمال خواهند شد. برای رابط‌هایی که تحت کنترل NetworkManager نیستند، firewalld در صورت وجود فایل ifcfg مربوط به رابط، تلاش می‌کند تنظیم ZONE را در آن تغییر دهد.

تغییر ناحیه‌ای که رابط interface به آن متصل است به ناحیه zone. این گزینه اساساً معادل اجرای --remove-interface و سپس اجرای --add-interface است. اگر رابط پیش از این به ناحیه‌ای متصل نشده باشد، مانند --add-interface رفتار می‌کند. در صورت حذف ناحیه، از ناحیه پیش‌فرض استفاده خواهد شد.

[--permanent] [--zone=zone] --query-interface=interface

بررسی اینکه آیا رابط interface به ناحیه zone متصل است یا خیر. در صورت وجود 0 و در غیر این صورت 1 را برمی‌گرداند.

[--permanent] --remove-interface=interface

اگر رابط تحت کنترل NetworkManager باشد، ابتدا متصل می‌شود تا ناحیه را برای اتصالی که از این رابط استفاده می‌کند تغییر دهد. اگر این کار با شکست مواجه شود، اتصال ناحیه در firewalld ایجاد شده و محدودیت‌های زیر اعمال می‌شوند.

برای افزودن یا تغییر رابط‌هایی که تحت کنترل NetworkManager نیستند: در صورتی که یک فایل ifcfg برای رابط وجود داشته باشد، firewalld تلاش می‌کند تنظیم ZONE را در آن فایل تغییر دهد.

تنها برای حذف رابط‌هایی که تحت کنترل NetworkManager نیستند: سرویس firewalld تلاشی برای تغییر تنظیم ZONE در فایل ifcfg نمی‌کند. این موضوع برای اطمینان از این است که خاموش شدن رابط (ifdown) منجر به بازنشانی تنظیم ناحیه به ناحیه پیش‌فرض نگردد. در این حالت تنها اتصال ناحیه در firewalld حذف می‌شود.

حذف اتصال رابط interface از ناحیه‌ای که پیش‌تر به آن اضافه شده بود.

متصل کردن یک مبدا به یک ناحیه به این معنی است که تنظیمات آن ناحیه برای محدود کردن ترافیک از این مبدا استفاده خواهند شد.

یک نشانی یا بازه نشانی مبدا می‌تواند یک نشانی 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

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

[--permanent] [--zone=zone] --add-source=source[/mask]|MAC|ipset:ipset

اتصال مبدا به ناحیه zone. در صورت حذف ناحیه، از ناحیه پیش‌فرض استفاده خواهد شد.

[--zone=zone] --change-source=source[/mask]|MAC|ipset:ipset

تغییر ناحیه‌ای که مبدا به آن متصل است به ناحیه zone. این گزینه اساساً معادل اجرای --remove-source و سپس اجرای --add-source است. اگر مبدا پیش از این به ناحیه‌ای متصل نبوده باشد، مانند --add-source رفتار می‌کند. در صورت حذف ناحیه، از ناحیه پیش‌فرض استفاده خواهد شد.

[--permanent] [--zone=zone] --query-source=source[/mask]|MAC|ipset:ipset

بررسی اینکه آیا مبدا به ناحیه zone متصل است یا خیر. در صورت وجود 0 و در غیر این صورت 1 را برمی‌گرداند.

[--permanent] --remove-source=source[/mask]|MAC|ipset:ipset

حذف اتصال مبدا از ناحیه‌ای که پیش‌تر به آن اضافه شده بود.

--get-ipset-types

چاپ انواع پشتیبانی‌شده برای ipset.

--permanent --new-ipset=ipset --type=type [--family=inet|inet6] [--option=key[=value]]

افزودن یک ipset ماندگار و خالی جدید با تعیین نوع (type) و به‌صورت اختیاری خانواده (family) و گزینه‌هایی مانند timeout، hashsize و maxelem. برای اطلاعات بیشتر لطفاً به صفحه راهنمای ipset(8) مراجعه فرمایید.

نام‌های ipset باید الفبایی-عددی باشند و علاوه بر آن می‌توانند شامل نویسه‌های: '_' و '-' باشند.

--permanent --new-ipset-from-file=filename [--name=ipset]

افزودن یک ipset ماندگار جدید از روی یک فایل ipset آماده‌شده همراه با بازنویسی اختیاری نام.

--permanent --delete-ipset=ipset

حذف یک ipset ماندگار موجود.

--permanent --load-ipset-defaults=ipset

بارگذاری تنظیمات پیش‌فرض ipset یا گزارش خطای NO_DEFAULTS.

[--permanent] --info-ipset=ipset

چاپ اطلاعات درباره ipset ipset. قالب خروجی به این صورت است:
ipset
  type: type
  options: option1[=value1] ..
  entries: entry1 ..

[--permanent] --get-ipsets

چاپ ipsetهای از پیش تعریف‌شده به‌صورت فهرستی جداشده با فاصله.

--permanent --ipset=ipset --set-description=description

تنظیم توضیحات جدید برای ipset.

--permanent --ipset=ipset --get-description

چاپ توضیحات برای ipset.

--permanent --ipset=ipset --set-short=description

تنظیم توضیحات کوتاه برای ipset.

--permanent --ipset=ipset --get-short

چاپ توضیحات کوتاه برای ipset.

[--permanent] --ipset=ipset --add-entry=entry

افزودن یک مدخل جدید به ipset.

افزودن یک مدخل به ipset همراه با گزینه timeout مجاز است، اما این مدخل‌ها توسط firewalld ردیابی نمی‌شوند.

[--permanent] --ipset=ipset --remove-entry=entry

حذف یک مدخل از ipset.

[--permanent] --ipset=ipset --query-entry=entry

بررسی اینکه آیا مدخل به ipset اضافه شده است یا خیر. در صورت وجود 0 و در غیر این صورت 1 را برمی‌گرداند.

استعلام یک ipset دارای وقفه زمانی (timeout) منجر به خطا خواهد شد. مدخل‌های ipsetهای دارای وقفه زمانی ردیابی نمی‌شوند.

[--permanent] --ipset=ipset --get-entries

فهرست کردن تمام مدخل‌های ipset.

[--permanent] --ipset=ipset --add-entries-from-file=filename

افزودن مدخل‌های جدید به ipset از روی فایل. برای تمام مدخل‌هایی که در فایل فهرست شده‌اند اما از قبل در ipset وجود دارند، یک هشدار چاپ خواهد شد.

فایل باید شامل یک مدخل در هر خط باشد. خطوطی که با علامت شماره (#) یا نقطه‌ویرگول (;) شروع می‌شوند نادیده گرفته می‌شوند؛ همچنین خطوط خالی.

[--permanent] --ipset=ipset --remove-entries-from-file=filename

حذف مدخل‌های موجود از ipset از روی فایل. برای تمام مدخل‌هایی که در فایل فهرست شده‌اند اما در ipset وجود ندارند، یک هشدار چاپ خواهد شد.

فایل باید شامل یک مدخل در هر خط باشد. خطوطی که با علامت شماره (#) یا نقطه‌ویرگول (;) شروع می‌شوند نادیده گرفته می‌شوند؛ همچنین خطوط خالی.

--permanent --path-ipset=ipset

چاپ مسیر فایل پیکربندی ipset.

گزینه‌های این بخش تنها بر یک سرویس خاص اثر می‌گذارند.

[--permanent] --info-service=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

بارگذاری تنظیمات پیش‌فرض سرویس یا گزارش خطای NO_DEFAULTS.

--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

افزودن یک دستیار (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]

تنظیم مقصد برای ipv به address[/mask] در سرویس ماندگار.

--permanent --service=service --remove-destination=ipv

حذف مقصد برای ipv از سرویس ماندگار.

--permanent --service=service --query-destination=ipv:address[/mask]

بررسی اینکه آیا مقصد ipv به address[/mask] در سرویس ماندگار تنظیم شده است یا خیر.

--permanent --service=service --get-destinations

فهرست کردن مقصدهای اضافه‌شده به سرویس ماندگار.

--permanent --service=service --add-include=service

افزودن یک شمولیت (include) جدید به سرویس ماندگار.

--permanent --service=service --remove-include=service

حذف یک شمولیت از سرویس ماندگار.

--permanent --service=service --query-include=service

بررسی اینکه آیا شمولیت به سرویس ماندگار اضافه شده است یا خیر.

--permanent --service=service --get-includes

فهرست کردن شمولیت‌های اضافه‌شده به سرویس ماندگار.

گزینه‌های این بخش تنها بر یک دستیار (helper) خاص اثر می‌گذارند.

[--permanent] --info-helper=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

بارگذاری تنظیمات پیش‌فرض دستیار یا گزارش خطای NO_DEFAULTS.

--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

چاپ توضیحات خانواده دستیار.

گزینه‌های این بخش تنها بر یک icmptype خاص اثر می‌گذارند.

[--permanent] --info-icmptype=icmptype

چاپ اطلاعات درباره نوع پیام icmptype. قالب خروجی به این صورت است:
icmptype
  destination: ipv1 ..

گزینه‌های زیر تنها در پیکربندی ماندگار قابل استفاده هستند.

--permanent --new-icmptype=icmptype

افزودن یک نوع پیام icmptype ماندگار و خالی جدید.

نام‌های نوع پیام ICMP باید الفبایی-عددی باشند و علاوه بر آن می‌توانند شامل نویسه‌های: '_' و '-' باشند.

--permanent --new-icmptype-from-file=filename [--name=icmptype]

افزودن یک نوع پیام icmptype ماندگار جدید از روی یک فایل آماده‌شده همراه با بازنویسی اختیاری نام.

--permanent --delete-icmptype=icmptype

حذف یک نوع پیام icmptype ماندگار موجود.

--permanent --load-icmptype-defaults=icmptype

بارگذاری تنظیمات پیش‌فرض icmptype یا گزارش خطای NO_DEFAULTS.

--permanent --icmptype=icmptype --set-description=description

تنظیم توضیحات جدید برای icmptype.

--permanent --icmptype=icmptype --get-description

چاپ توضیحات برای icmptype.

--permanent --icmptype=icmptype --set-short=description

تنظیم توضیحات کوتاه برای icmptype.

--permanent --icmptype=icmptype --get-short

چاپ توضیحات کوتاه برای icmptype.

--permanent --icmptype=icmptype --add-destination=ipv

فعال‌سازی مقصد برای ipv در نوع پیام icmptype ماندگار. مقدار ipv یکی از موارد ipv4 یا ipv6 است.

--permanent --icmptype=icmptype --remove-destination=ipv

غیرفعال‌سازی مقصد برای ipv در نوع پیام icmptype ماندگار. مقدار ipv یکی از موارد ipv4 یا ipv6 است.

--permanent --icmptype=icmptype --query-destination=ipv

بررسی اینکه آیا مقصد برای ipv در نوع پیام icmptype ماندگار فعال است یا خیر. مقدار ipv یکی از موارد ipv4 یا ipv6 است.

--permanent --icmptype=icmptype --get-destinations

فهرست کردن مقصدهای موجود در نوع پیام icmptype ماندگار.

--permanent --path-icmptype=icmptype

چاپ مسیر فایل پیکربندی icmptype.

منسوخ شده (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

دریافت تمامی زنجیره‌های اضافه‌شده به تمامی جدول‌ها. این گزینه تنها مربوط به زنجیره‌هایی است که پیش‌تر با --direct --add-chain اضافه شده باشند.

[--permanent] --direct --get-chains { ipv4 | ipv6 | eb } table

دریافت تمامی زنجیره‌های اضافه‌شده به جدول table به‌صورت فهرستی جداشده با فاصله. این گزینه تنها مربوط به زنجیره‌هایی است که پیش‌تر با --direct --add-chain اضافه شده باشند.

[--permanent] --direct --add-chain { ipv4 | ipv6 | eb } table chain

افزودن یک زنجیره جدید با نام chain به جدول table. اطمینان حاصل کنید که زنجیره دیگری با این نام از قبل وجود نداشته باشد.

زنجیره‌های پایه‌ای از قبل برای استفاده با گزینه‌های مستقیم وجود دارند؛ برای مثال زنجیره INPUT_direct (برای دیدن همه آن‌ها خروجی iptables-save | grep direct را بررسی کنید). پیش از زنجیره‌های مربوط به ناحیه‌ها به این زنجیره‌ها پرش صورت می‌گیرد؛ یعنی هر قاعده‌ای که در INPUT_direct قرار گیرد پیش از قواعد موجود در ناحیه‌ها بررسی خواهد شد.

[--permanent] --direct --remove-chain { ipv4 | ipv6 | eb } table chain

حذف زنجیره با نام chain از جدول table. تنها زنجیره‌هایی که قبلاً با --direct --add-chain اضافه شده باشند را می‌توان از این طریق حذف کرد.

[--permanent] --direct --query-chain { ipv4 | ipv6 | eb } table chain

بررسی اینکه آیا زنجیره‌ای با نام chain در جدول table وجود دارد یا خیر. در صورت وجود 0 و در غیر این صورت 1 را برمی‌گرداند. این گزینه تنها مربوط به زنجیره‌هایی است که قبلاً با --direct --add-chain اضافه شده باشند.

[--permanent] --direct --get-all-rules

دریافت تمامی قواعد اضافه‌شده به تمام زنجیره‌ها در تمام جدول‌ها به‌صورت فهرستی جداشده با خط جدید از اولویت و آرگومان‌ها. این گزینه تنها مربوط به قواعدی است که قبلاً با --direct --add-rule اضافه شده باشند.

[--permanent] --direct --get-rules { ipv4 | ipv6 | eb } table chain

دریافت تمامی قواعد اضافه‌شده به زنجیره chain در جدول table به‌صورت فهرستی جداشده با خط جدید از اولویت و آرگومان‌ها. این گزینه تنها مربوط به قواعدی است که قبلاً با --direct --add-rule اضافه شده باشند.

[--permanent] --direct --add-rule { ipv4 | ipv6 | eb } table chain priority args

افزودن یک قاعده با آرگومان‌های args به زنجیره chain در جدول table با اولویت priority.

مقدار priority برای مرتب‌سازی قواعد استفاده می‌شود. اولویت ۰ به معنای افزودن قاعده در ابتدای زنجیره است؛ با اولویت بالاتر قاعده در مکان‌های پایین‌تر اضافه خواهد شد. قواعد با اولویت یکسان در یک سطح قرار دارند و ترتیب این قواعد ثابت نبوده و ممکن است تغییر کند. اگر می‌خواهید مطمئن شوید که قاعده‌ای حتماً پس از قاعده دیگری اضافه می‌شود، از اولویت کمتر برای اولی و اولویت بیشتر برای موارد بعدی استفاده کنید.

[--permanent] --direct --remove-rule { ipv4 | ipv6 | eb } table chain priority args

حذف یک قاعده با اولویت priority و آرگومان‌های args از زنجیره chain در جدول table. تنها قواعدی که قبلاً با --direct --add-rule اضافه شده باشند را می‌توان به این روش حذف کرد.

[--permanent] --direct --remove-rules { ipv4 | ipv6 | eb } table chain

حذف تمام قواعد در زنجیره با نام chain موجود در جدول table. این گزینه تنها مربوط به قواعدی است که قبلاً با --direct --add-rule در این زنجیره اضافه شده باشند.

[--permanent] --direct --query-rule { ipv4 | ipv6 | eb } table chain priority args

بررسی اینکه آیا قاعده‌ای با اولویت priority و آرگومان‌های args در زنجیره chain در جدول table وجود دارد یا خیر. در صورت وجود 0 و در غیر این صورت 1 را برمی‌گرداند. این گزینه تنها مربوط به قواعدی است که قبلاً با --direct --add-rule اضافه شده باشند.

--direct --passthrough { ipv4 | ipv6 | eb } args

عبور دادن مستقیم یک دستور به فایروال. args می‌تواند شامل تمامی آرگومان‌های خط فرمان iptables، ip6tables و ebtables باشد. این دستور ردیابی نمی‌شود؛ بدین معنی که firewalld قادر به ارائه اطلاعات درباره این دستور در ادامه نخواهد بود و فهرستی از دستورات عبورداده‌شده ردیابی‌نشده نیز ارائه نمی‌دهد.

[--permanent] --direct --get-all-passthroughs

دریافت تمامی قواعد عبوری (passthrough) به‌صورت فهرستی جداشده با خط جدید از مقدار ipv و آرگومان‌ها.

[--permanent] --direct --get-passthroughs { ipv4 | ipv6 | eb }

دریافت تمامی قواعد عبوری برای مقدار ipv به‌صورت فهرستی جداشده با خط جدید از اولویت و آرگومان‌ها.

[--permanent] --direct --add-passthrough { ipv4 | ipv6 | eb } args

افزودن یک قاعده عبوری با آرگومان‌های args برای مقدار ipv.

[--permanent] --direct --remove-passthrough { ipv4 | ipv6 | eb } args

حذف یک قاعده عبوری با آرگومان‌های args برای مقدار ipv.

[--permanent] --direct --query-passthrough { ipv4 | ipv6 | eb } args

بررسی اینکه آیا یک قاعده عبوری با آرگومان‌های args برای مقدار ipv وجود دارد یا خیر. در صورت وجود 0 و در غیر این صورت 1 را برمی‌گرداند.

--panic-on

فعال‌سازی حالت اضطراری (panic mode). تمامی بسته‌های ورودی و خروجی دور ریخته می‌شوند (drop) و اتصالات فعال منقضی خواهند شد. این گزینه را تنها در صورتی فعال کنید که مشکلات امنیتی شدیدی در محیط شبکه شما رخ داده باشد؛ برای مثال اگر به ماشین نفوذ شده باشد (هک شدن سیستم).

این یک تغییر تنها در زمان اجرا است.

--panic-off

غیرفعال‌سازی حالت اضطراری. پس از غیرفعال‌سازی حالت اضطراری، اگر این حالت برای مدت کوتاهی فعال بوده باشد، اتصالات برقرارشده ممکن است مجدداً به کار خود ادامه دهند.

این یک تغییر تنها در زمان اجرا است.

--query-panic

در صورت فعال بودن حالت اضطراری 0 و در غیر این صورت 1 را برمی‌گرداند.

فعال‌سازی سرویس http در ناحیه پیش‌فرض. این یک تغییر تنها در زمان اجرا است؛ یعنی تا زمان راه‌اندازی مجدد موثر خواهد بود.

firewall-cmd --add-service=http

فعال‌سازی پورت 443/tcp به‌صورت فوری و ماندگار در ناحیه پیش‌فرض. برای اینکه تغییر فوراً و همچنین پس از راه‌اندازی مجدد اعمال شود، به دو دستور نیاز داریم. دستور اول تغییر را در پیکربندی زمان اجرا اعمال می‌کند؛ یعنی فوراً تا زمان راه‌اندازی مجدد موثر می‌شود. دستور دوم تغییر را در پیکربندی ماندگار اعمال می‌کند؛ یعنی پس از راه‌اندازی مجدد موثر خواهد بود.

firewall-cmd --add-port=443/tcp
firewall-cmd --permanent --add-port=443/tcp

در صورت موفقیت مقدار 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 را برمی‌گردانند، مگر اینکه خطایی رخ داده باشد که در این صورت جدول بالا اعمال خواهد شد.

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)

صفحه وب firewalld:

Thomas Woerner <twoerner@redhat.com>

توسعه‌دهنده

Jiri Popelka <jpopelka@redhat.com>

توسعه‌دهنده

Eric Garver <eric@garver.life>

توسعه‌دهنده
firewalld 2.5.1