FIREWALLD.POLICIES(5) firewalld.policies FIREWALLD.POLICIES(5)

firewalld.policies - سیاست‌های firewalld

یک سیاست، مجموعه‌ای از قواعد را بر ترافیک جاری میان منطقه‌ها اعمال می‌کند (نگاه کنید به firewalld.zones(5)). سیاست بر ترافیک به صورت حالت‌مند (stateful) و یک‌طرفه (unidirectional) اثر می‌گذارد، برای مثال از zoneA به zoneB. این قابلیت امکان ایجاد سیاست‌های فیلترسازی نامتقارن را فراهم می‌کند.

ارتباط یک سیاست با منطقه‌ها از طریق تعیین مجموعه‌ای از منطقه‌های ورودی (ingress zones) و مجموعه‌ای از منطقه‌های خروجی (egress zones) مشخص می‌شود. برای نمونه، اگر مجموعه منطقه‌های ورودی شامل "internal" و مجموعه منطقه‌های خروجی شامل "external" باشد، سیاست بر تمام ترافیکی که از منطقه "internal" به سوی منطقه "external" جریان دارد اعمال خواهد شد. با این حال، از آنجا که سیاست‌ها یک‌طرفه هستند، بر ترافیک از "external" به "internal" اعمال نمی‌شود. مجموعه‌های ورودی و خروجی می‌توانند شامل چندین منطقه باشند.

در ادامه، نمایش بصری سیاست foobar و سپس دستورات CLI برای ایجاد آن آورده شده است. این سیاست بر ترافیکی که از منطقه internal به منطقه external جریان دارد اعمال می‌شود. در ابتدا، هدف (target) روی ACCEPT تنظیم می‌شود تا تمام ترافیک مجاز باشد. این کار در صورتی که شبکه داخلی مورد اعتماد باشد رایج است.

+----------+           +----------+
|          |  policy   |          |
| internal | --------> | external |
|   zone   |  foobar   |   zone   |
|          |           |          |
+----------+           +----------+
# firewall-cmd --permanent --new-policy foobar
# firewall-cmd --permanent --policy foobar --add-ingress-zone internal
# firewall-cmd --permanent --policy foobar --add-egress-zone external
# firewall-cmd --permanent --policy foobar --set-target ACCEPT
# firewall-cmd --reload

شاید منطقی باشد که محدودیت بیشتری اعمال شود. این مثال foobar را به گونه‌ای تغییر می‌دهد که تنها ترافیک dns، http و https را مجاز می‌داند. سایر ترافیک‌ها مسدود می‌شوند. به این ترتیب کلاینت‌ها تنها مجاز به مرور وب خواهند بود.

# firewall-cmd --permanent --policy foobar --set-target REJECT
# firewall-cmd --permanent --policy foobar --add-service dns
# firewall-cmd --permanent --policy foobar --add-service http
# firewall-cmd --permanent --policy foobar --add-service https
# firewall-cmd --reload

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

•سیاست غیرفعال نشده باشد.
•فهرست منطقه‌های ورودی حداقل شامل یک منطقه عادی یا یک منطقه نمادین منفرد باشد.
•فهرست منطقه‌های خروجی حداقل شامل یک منطقه عادی یا یک منطقه نمادین منفرد باشد.
•برای منطقه‌های غیر نمادین، منطقه باید فعال باشد؛ یعنی باید رابط‌ها یا مبداهایی به آن اختصاص داده شده باشد.

اگر سیاست فعال نباشد، هیچ اثری نخواهد داشت.

منطقه‌های عادی برای بیان همه شکل‌های فیلترسازی بسته‌ها کافی نیستند. برای نمونه هیچ منطقه‌ای برای نمایش ترافیک ورودی به میزبانی که firewalld را اجرا می‌کند یا خروجی از آن وجود ندارد. از این رو، برخی منطقه‌های نمادین برای پر کردن این خلاءها در نظر گرفته شده‌اند. با این حال، منطقه‌های نمادین از این نظر خاص هستند که تنها منطقه مجاز در مجموعه‌های منطقه‌های ورودی یا خروجی به شمار می‌روند. برای مثال، نمی‌توان هم‌زمان از "public" و "HOST" در منطقه‌های ورودی استفاده کرد.

منطقه‌های نمادین:

1.HOST

این منطقه نمادین برای ترافیک ورودی به میزبان اجراکننده firewalld یا خروجی از آن است. این مورد متناظر با زنجیره‌های INPUT و OUTPUT در netfilter (iptables/nftables) است.

•اگر در فهرست منطقه‌های خروجی استفاده شود، بر ترافیک زنجیره INPUT اعمال خواهد شد.
•اگر در فهرست منطقه‌های ورودی استفاده شود، بر ترافیک زنجیره OUTPUT اعمال خواهد شد.
2.ANY

این منطقه نمادین مانند یک نویسه عام (wildcard) برای منطقه‌های ورودی و خروجی عمل می‌کند، با این استثنا که شامل "HOST" نمی‌شود. زمانی که بخواهید یک سیاست بر همه منطقه‌ها اعمال شود بسیار کاربردی است.

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

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

•allow-host-ipv6

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

تفاوت اصلی میان سیاست‌ها و منطقه‌ها این است که سیاست‌ها امکان فیلترسازی در تمام جهات را فراهم می‌آورند: ورودی (input)، خروجی (output) و هدایت (forwarding). منطقه‌ها به جز چند مورد استثنا فقط فیلترسازی ورودی را مجاز می‌دانند که برای دیوار آتش یک ایستگاه پایانی کافی است. اما برای فیلترسازی در سطح شبکه یا فیلترسازی به نمایندگی از ماشین‌های مجازی و کانتینرها، به ابزاری منعطف‌تر، یعنی سیاست‌ها، نیاز است.

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