FIREWALLD.POLICY(5) firewalld.policy FIREWALLD.POLICY(5)

firewalld.policy - پرونده‌های پیکربندی سیاست firewalld

/etc/firewalld/policies/policy.xml

/usr/lib/firewalld/policies/policy.xml

یک پرونده پیکربندی سیاست firewalld شامل اطلاعات مربوط به یک سیاست (policy) است. این موارد شامل توضیحات سیاست، سرویس‌ها، درگاه‌ها، پروتکل‌ها، icmp-blockها، مبدل‌سازی نشانی (masquerade)، فوروارد درگاه‌ها (forward-ports) و قواعد زبان پیشرفته (rich language rules) در قالب یک پرونده XML است. نام پرونده باید policy_name.xml باشد که در آن طول policy_name در حال حاضر به ۱۷ نویسه محدود شده است.

ساختار یک پرونده پیکربندی سیاست به شرح زیر است:

<?xml version="1.0" encoding="utf-8"?>
<policy [version="versionstring"] [target="CONTINUE|ACCEPT|REJECT|DROP"] [priority="priority"]>
    [ <disable/> ]
    [ <ingress-zone name="zone"/> ]
    [ <egress-zone name="zone"/> ]
    [ <short>short description</short> ]
    [ <description>description</description> ]
    [ <service name="string"/> ]
    [ <port port="portid[-portid]" protocol="tcp|udp|sctp|dccp"/> ]
    [ <protocol value="protocol"/> ]
    [ <icmp-block name="string"/> ]
    [ <masquerade/> ]
    [ <forward-port port="portid[-portid]" protocol="tcp|udp|sctp|dccp" [to-port="portid[-portid]"] [to-addr="IP address"]/> ]
    [ <source-port port="portid[-portid]" protocol="tcp|udp|sctp|dccp"/> ]
    [
        <rule [family="ipv4|ipv6"] [priority="priority"]>
            [ <source address="address[/mask]"|mac="MAC"|ipset="ipset" [invert="True"]/> ]
            [ <destination address="address[/mask]"|ipset="ipset" [invert="True"]/> ]
            [
                <service name="string"/> |
                <port port="portid[-portid]" protocol="tcp|udp|sctp|dccp"/> |
                <protocol value="protocol"/> |
                <icmp-block name="icmptype"/> |
                <icmp-type name="icmptype"/> |
                <masquerade/> |
                <forward-port port="portid[-portid]" protocol="tcp|udp|sctp|dccp" [to-port="portid[-portid]"] [to-addr="address"]/>
            ]
            [
                <log [prefix="prefix text"] [level="emerg|alert|crit|err|warn|notice|info|debug"]> [<limit value="rate/duration"/>] </log> |
                <nflog [group="group id"] [prefix="prefix text"] [queue-size="threshold"]> [<limit value="rate/duration"/>] </nflog>
            ]
            [ <audit> [<limit value="rate/duration"/>] </audit> ]
            [
                <accept> [<limit value="rate/duration"/>] </accept> |
                <reject [type="rejecttype"]> [<limit value="rate/duration"/>] </reject> |
                <drop> [<limit value="rate/duration"/>] </drop> |
                <mark set="mark[/mask]"> [<limit value="rate/duration"/>] </mark>
            ]
        </rule>
    ]
</policy>

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

برچسب آغازین و پایانی اجباری policy سیاست را تعریف می‌کند. این برچسب تنها یک‌بار می‌تواند در یک پرونده پیکربندی سیاست استفاده شود. ویژگی‌های اختیاری برای policy عبارتند از:

version="string"

برای تعیین نگارش سیاست.

target="CONTINUE|ACCEPT|REJECT|DROP"

می‌تواند برای پذیرش (accept)، رد کردن (reject) یا انداختن (drop) هر بسته‌ای که با هیچ قاعده‌ای (درگاه، سرویس و غیره) تطابق ندارد استفاده شود. مقدار CONTINUE پیش‌فرض است و برای سیاست‌هایی که پایانه‌دار نیستند (non-terminal) استفاده می‌شود.

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

یک عنصر اختیاری که می‌تواند چندین بار استفاده شود. این عنصر می‌تواند نام یک ناحیه (zone) در firewalld یا یکی از نواحی نمادین HOST یا ANY باشد. برای اطلاعات بیشتر در مورد نواحی نمادین، firewalld.policies(5) را ببینید.

یک عنصر اختیاری که می‌تواند چندین بار استفاده شود. این عنصر می‌تواند نام یک ناحیه (zone) در firewalld یا یکی از نواحی نمادین HOST یا ANY باشد. برای اطلاعات بیشتر در مورد نواحی نمادین، firewalld.policies(5) را ببینید.

یک برچسب اختیاری آغازین و پایانی است و برای ارائه یک نام خواناتر به کار می‌رود.

یک برچسب اختیاری آغازین و پایانی است و برای درج توضیحات به کار می‌رود.

یک برچسب عنصر خالی اختیاری است و می‌تواند چندین بار برای فعال‌سازی بیش از یک مدخل سرویس استفاده شود. یک مدخل سرویس دقیقاً یک ویژگی دارد:

name="string"

نام سرویسی که باید فعال شود. برای دریافت فهرستی از نام‌های معتبر سرویس‌ها می‌توان از دستور firewall-cmd --get-services استفاده کرد.

یک برچسب عنصر خالی اختیاری است و می‌تواند چندین بار برای داشتن بیش از یک مدخل درگاه استفاده شود. تمام ویژگی‌های یک مدخل درگاه اجباری هستند:

port="portid[-portid]"

درگاه می‌تواند یک شماره درگاه تکی portid یا یک محدوده درگاه portid-portid باشد.

protocol="tcp|udp|sctp|dccp"

پروتکل می‌تواند یکی از موارد tcp، udp، sctp یا dccp باشد.

یک برچسب عنصر خالی اختیاری است و می‌تواند چندین بار برای داشتن بیش از یک مدخل پروتکل استفاده شود. هر پروتکل دقیقاً یک ویژگی دارد:

value="string"

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

یک برچسب عنصر خالی اختیاری است و می‌تواند چندین بار برای داشتن بیش از یک مدخل icmp-block استفاده شود. هر برچسب icmp-block دقیقاً یک ویژگی اجباری دارد:

name="string"

نام نوع پروتکل پیام کنترل اینترنت (ICMP) که باید مسدود شود. برای دریافت فهرستی از انواع معتبر ICMP می‌توان از دستور firewall-cmd --get-icmptypes استفاده کرد.

یک برچسب عنصر خالی اختیاری است. این برچسب تنها یک‌بار می‌تواند استفاده شود. در صورت وجود، مبدل‌سازی نشانی (masquerading) فعال می‌شود.

یک برچسب عنصر خالی اختیاری است و می‌تواند چندین بار برای داشتن بیش از یک مدخل بازوجایابی (فوروارد) درگاه یا بسته استفاده شود. ویژگی‌های اجباری و همچنین اختیاری برای forward-port وجود دارند:

ویژگی‌های اجباری:

درگاه و پروتکل محلی که باید فوروارد شوند.

port="portid[-portid]"

درگاه می‌تواند یک شماره درگاه تکی portid یا یک محدوده درگاه portid-portid باشد.

protocol="tcp|udp|sctp|dccp"

پروتکل می‌تواند یکی از موارد tcp، udp، sctp یا dccp باشد.

ویژگی‌های اختیاری:

مقصد فوروارد. برای فوروارد محلی تنها to-port را اضافه کنید. برای فوروارد از راه دور to-addr را اضافه کرده و در صورتی که درگاه مقصد در رایانه مقصد متفاوت باشد، به صورت اختیاری از to-port استفاده کنید.

to-port="portid[-portid]"

درگاه مقصد یا محدوده درگاه مقصد برای فوروارد به آن. در صورت حذف، مقدار ویژگی port= به همراه ویژگی to-addr استفاده خواهد شد.

to-addr="address"

نشانی IP مقصد برای IPv4 یا IPv6.

یک برچسب عنصر خالی اختیاری است و می‌تواند چندین بار برای داشتن بیش از یک مدخل درگاه مبدا استفاده شود. تمام ویژگی‌های یک مدخل درگاه مبدا اجباری هستند:

port="portid[-portid]"

درگاه می‌تواند یک شماره درگاه تکی portid یا یک محدوده درگاه portid-portid باشد.

protocol="tcp|udp|sctp|dccp"

پروتکل می‌تواند یکی از موارد tcp، udp، sctp یا dccp باشد.

یک برچسب عنصر اختیاری است و می‌تواند چندین بار برای داشتن بیش از یک مدخل قاعده زبان پیشرفته (rich language) استفاده شود.

ساختار کلی قاعده:

<rule [family="ipv4|ipv6"] [priority="priority"]>
    [ <source address="address[/mask]"|mac="MAC"|ipset="ipset" [invert="True"]/> ]
    [ <destination address="address[/mask]"|ipset="ipset" [invert="True"]/> ]
    [
        <service name="string"/> |
        <port port="portid[-portid]" protocol="tcp|udp|sctp|dccp"/> |
        <protocol value="protocol"/> |
        <icmp-block name="icmptype"/> |
        <icmp-type name="icmptype"/> |
        <masquerade/> |
        <forward-port port="portid[-portid]" protocol="tcp|udp|sctp|dccp" [to-port="portid[-portid]"] [to-addr="address"]/> |
        <source-port port="portid[-portid]" protocol="tcp|udp|sctp|dccp"/> |
    ]
    [
        <log [prefix="prefix text"] [level="emerg|alert|crit|err|warn|notice|info|debug"]> [<limit value="rate/duration"/>] </log> |
        <nflog [group="group id"] [prefix="prefix text"] [queue-size="threshold"]> [<limit value="rate/duration"/>] </nflog>
    ]
    [ <audit> [<limit value="rate/duration"/>] </audit> ]
    [
        <accept> [<limit value="rate/duration"/>] </accept> |
        <reject [type="rejecttype"]> [<limit value="rate/duration"/>] </reject> |
        <drop> [<limit value="rate/duration"/>] </drop> |
        <mark set="mark[/mask]"> [<limit value="rate/duration"/>] </mark>
    ]
</rule>

ساختار قاعده برای فهرست سیاه یا سفید مبدا:

<rule [family="ipv4|ipv6"] [priority="priority"]>
    <source address="address[/mask]"|mac="MAC"|ipset="ipset" [invert="True"]/>
    [
        <log [prefix="prefix text"] [level="emerg|alert|crit|err|warn|notice|info|debug"]> [<limit value="rate/duration"/>] </log> |
        <nflog [group="group id"] [prefix="prefix text"] [queue-size="threshold"]> [<limit value="rate/duration"/>] </nflog>
    ]
    [ <audit> [<limit value="rate/duration"/>] </audit> ]
    <accept> [<limit value="rate/duration"/>] </accept> |
    <reject [type="rejecttype"]> [<limit value="rate/duration"/>] </reject> |
    <drop> [<limit value="rate/duration"/>] </drop>
</rule>

برای توضیحات کامل درباره قواعد زبان پیشرفته، لطفاً به firewalld.richlanguage(5) مراجعه کنید.

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