'\" t .\" Title: firewalld.direct .\" Author: Thomas Woerner .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: .\" Manual: firewalld.direct .\" Source: firewalld 2.5.1 .\" Language: Persian .\" .TH "FIREWALLD\&.DIRECT" "5" "" "firewalld 2.5.1" "firewalld.direct" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "نام (NAME)" firewalld.direct \- پرونده پیکربندی مستقیم firewalld .SH "خلاصه دستور (SYNOPSIS)" .PP .nf \fI/etc/firewalld/direct\&.xml\fR .fi .sp .SH "منسوخ‌شده (DEPRECATED)" .PP رابط مستقیم (direct interface) منسوخ شده است\&. این قابلیت در نسخه‌های آینده حذف خواهد شد و سیاست‌ها جایگزین آن شده‌اند؛ نگاه کنید به \fBfirewalld.policies\fR(5)\&. .SH "توضیحات (DESCRIPTION)" .PP پیکربندی مستقیم، دسترسی مستقیم‌تری به فایروال فراهم می‌کند\&. این ویژگی مستلزم آن است که کاربر با مفاهیم پایه‌ای ip(6)tables و ebtables آشنا باشد، مانند \fItable\fR (filter/mangle/nat/...\&)، \fIchain\fR (INPUT/OUTPUT/FORWARD/...\&)، \fIcommands\fR (\-A/\-D/\-I/...\&)، \fIparameters\fR (\-p/\-s/\-d/\-j/...\&) و \fItargets\fR (ACCEPT/DROP/REJECT/...\&)\&. پیکربندی مستقیم فقط باید به عنوان آخرین راهکار و زمانی که امکان استفاده از \fBfirewalld.zone\fR(5) وجود ندارد به کار گرفته شود\&. همچنین نگاه کنید به \fIDirect Options\fR در \fBfirewall-cmd\fR(1)\&. .PP یک پرونده پیکربندی مستقیم firewalld حاوی اطلاعاتی درباره زنجیره‌ها (chains)، قواعد (rules) و عبور مستقیم (passthrough) دائمی است\&. .PP ساختار پرونده پیکربندی مستقیم به صورت زیر است: .sp .if n \{\ .RS 4 .\} .nf [ ] [ args ] [ args ] .fi .if n \{\ .RE .\} .sp .SS "direct" .PP تگ‌های اجباری شروع و پایان direct، پیکربندی مستقیم را مشخص می‌کنند\&. این تگ تنها یک بار در هر پرونده پیکربندی مستقیم می‌تواند استفاده شود\&. این تگ هیچ مشخصه‌ای (attribute) ندارد\&. .SS "chain" .PP یک تگ عنصری خالی اختیاری است و می‌تواند چندین بار استفاده شود\&. از این تگ می‌توان برای تعریف نام زنجیره‌های اضافی استفاده کرد\&. هر مدخل chain دقیقاً دارای سه مشخصه است: .PP ipv="\fIipv4\fR|\fIipv6\fR|\fIeb\fR" .RS 4 خانواده پروتکل IP که زنجیره در آن ایجاد خواهد شد\&. این مقدار می‌تواند یکی از مقادیر \fIipv4\fR، \fIipv6\fR یا \fIeb\fR باشد\&. .RE .PP table="\fItable\fR" .RS 4 نام جدولی که زنجیره در آن ایجاد خواهد شد\&. این جدول می‌تواند یکی از جدول‌های قابل استفاده برای iptables، ip6tables یا ebtables باشد\&. برای مقادیر مجاز، بخش TABLES را در صفحات راهنمای iptables، ip6tables یا ebtables ببینید\&. .RE .PP chain="\fIchain\fR" .RS 4 نام زنجیره‌ای که قرار است ایجاد شود\&. لطفاً اطمینان حاصل کنید که زنجیره دیگری با همین نام از قبل وجود نداشته باشد\&. .RE .PP لطفاً به یاد داشته باشید که برای متصل کردن این زنجیره به یک زنجیره دیگر، یک قاعده یا قاعده عبور مستقیم با گزینه \fB\-\-jump\fR یا \fB\-\-goto\fR اضافه کنید\&. .SS "rule" .PP یک تگ عنصری اختیاری است و می‌تواند چندین بار استفاده شود\&. از این تگ می‌توان برای افزودن قواعد به یک زنجیره توکار (built\-in) یا زنجیره اضافه‌شده استفاده کرد\&. هر مدخل rule دقیقاً دارای چهار مشخصه است: .PP ipv="\fIipv4\fR|\fIipv6\fR|\fIeb\fR" .RS 4 خانواده پروتکل IP که قاعده به آن اضافه خواهد شد\&. این مقدار می‌تواند یکی از مقادیر \fIipv4\fR، \fIipv6\fR یا \fIeb\fR باشد\&. .RE .PP table="\fItable\fR" .RS 4 نام جدولی که قاعده به آن اضافه خواهد شد\&. این جدول می‌تواند یکی از جدول‌های قابل استفاده برای iptables، ip6tables یا ebtables باشد\&. برای مقادیر مجاز، بخش TABLES را در صفحات راهنمای iptables، ip6tables یا ebtables ببینید\&. .RE .PP chain="\fIchain\fR" .RS 4 نام زنجیره‌ای که قاعده به آن اضافه خواهد شد\&. این زنجیره می‌تواند یک زنجیره توکار یا زنجیره‌ای باشد که با تگ chain ایجاد شده است\&. اگر نام زنجیره، یک زنجیره توکار باشد، قاعده به \fIchain\fR_direct اضافه می‌شود، در غیر این صورت از همان نام زنجیره ارائه‌شده استفاده می‌گردد\&. \fIchain\fR_direct به صورت داخلی برای تمامی زنجیره‌های توکار ایجاد می‌شود تا تضمین کند قواعد اضافه‌شده با قواعد ایجادشده توسط firewalld تداخل پیدا نمی‌کنند\&. .RE .PP priority="\fIpriority\fR" .RS 4 اولویت برای ترتیب‌بندی قواعد به کار می‌رود\&. اولویت ۰ به معنای افزودن قاعده در بالای زنجیره است و با افزایش مقدار اولویت، قاعده در رده‌های پایین‌تر قرار می‌گیرد\&. قواعدی که اولویت یکسانی دارند در یک سطح قرار می‌گیرند و ترتیب آن‌ها ثابت نیست و ممکن است تغییر کند\&. اگر می‌خواهید مطمئن شوید که یک قاعده بعد از قاعده دیگری اعمال می‌شود، برای اولی اولویت پایین‌تر و برای بعدی اولویت بالاتر تعیین کنید\&. .RE .PP مؤلفه \fIargs\fR می‌تواند هر آرگومانی از iptables یا ip6tables باشد که با مشخصه‌های table یا chain تعارض نداشته باشد\&. .SS "passthrough" .PP یک تگ عنصری اختیاری است و می‌تواند چندین بار استفاده شود\&. از این تگ می‌توان برای افزودن قواعد به یک زنجیره توکار یا اضافه‌شده استفاده کرد\&. هر مدخل passthrough دقیقاً دارای یک مشخصه است: .PP ipv="\fIipv4\fR|\fIipv6\fR|\fIeb\fR" .RS 4 خانواده پروتکل IP که قاعده عبور مستقیم به آن اضافه خواهد شد\&. این مقدار می‌تواند یکی از مقادیر \fIipv4\fR، \fIipv6\fR یا \fIeb\fR باشد\&. .RE .PP مؤلفه \fIargs\fR می‌تواند هر آرگومانی از iptables یا ip6tables باشد\&. .PP قاعده عبور مستقیم (passthrough) مستقیماً به زنجیره اضافه می‌شود\&. هیچ سازوکاری مشابه \fBrule\fR مستقیم در بالا برای آن وجود ندارد\&. کاربر قاعده عبور مستقیم باید خود اطمینان حاصل کند که هیچ تداخلی با قواعد ایجادشده توسط firewalld رخ نخواهد داد\&. .SH "هشدارها (CAVEATS)" .PP بسته به مقدار \fIFirewallBackend\fR (نگاه کنید به \fBfirewalld.conf\fR(5)) قواعد مستقیم در برخی سناریوها رفتار متفاوتی خواهند داشت\&. .SS "اولویت پذیرش/دور انداختن بسته (Packet accept/drop precedence)" .PP به دلیل جزئیات پیاده‌سازی netfilter در داخل کرنل، اگر \fIFirewallBackend=nftables\fR استفاده شود، قواعد مستقیمی که بسته‌ها را \fIACCEPT\fR می‌کنند، در واقع باعث پذیرش فوری بسته‌ها توسط سیستم نمی‌شوند\&. این بسته‌ها همچنان مشمول مجموعه قواعد nftables فایروال firewalld هستند\&. این امر اساساً به این معناست که دو فایروال مستقل وجود دارد و بسته‌ها باید توسط هر دو (iptables و nftables) پذیرفته شوند\&. علاوه بر این، این سناریو در داخل خود nftables نیز (باز هم به دلیل netfilter) رخ می‌دهد اگر چندین زنجیره به یک هوک متصل شده باشند \- ماجرا صرفاً به سادگی تقابل iptables و nftables نیست\&. .PP چندین راهکار برای حل مشکل \fIACCEPT\fR وجود دارد: .sp .RS 4 .ie n \{\ \h'-04' 1.\h'+01'\c .\} .el \{\ .sp -1 .IP " 1." 4.2 .\} قواعد غنی (Rich Rules) .sp اگر بتوان از یک قاعده غنی استفاده کرد، همواره باید بر قواعد مستقیم ترجیح داده شوند\&. قواعد غنی به \fIFirewallBackend\fR فعال تبدیل خواهند شد\&. نگاه کنید به \fBfirewalld.richlanguage\fR(5)\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 2.\h'+01'\c .\} .el \{\ .sp -1 .IP " 2." 4.2 .\} پذیرش کلی (Blanket Accept) .sp کاربران می‌توانند یک قاعده پذیرش صریح به مجموعه قواعد nftables اضافه کنند\&. این کار می‌تواند با افزودن رابط شبکه یا مبدأ به ناحیه \fItrusted\fR انجام شود\&. .sp این راهبرد اغلب توسط ابزارهایی که فیلترسازی اختصاصی خود را انجام می‌دهند (مانند libvirt، podman، docker) به کار گرفته می‌شود\&. .sp \fBهشدار\fR: این کار به این معناست که firewalld هیچ فیلترسازی روی این بسته‌ها انجام نخواهد داد\&. تمامی این عملیات باید از طریق قواعد مستقیم یا قواعد iptables خارج از چارچوب انجام شود\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 3.\h'+01'\c .\} .el \{\ .sp -1 .IP " 3." 4.2 .\} پذیرش انتخابی (Selective Accept) .sp همچنین می‌توانید فقط سرویس، درگاه، آدرس یا موارد مرتبط را در ناحیه مناسب فعال کنید\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 4.\h'+01'\c .\} .el \{\ .sp -1 .IP " 4." 4.2 .\} بازگشت به بک‌اند iptables (Revert to the iptables backend) .sp آخرین راهکار، بازگشت به بک‌اند iptables با تنظیم \fIFirewallBackend=iptables\fR است\&. کاربران باید توجه داشته باشند که توسعه firewalld بر روی بک‌اند nftables متمرکز است\&. .RE .PP برای قواعد مستقیمی که بسته‌ها را \fIDROP\fR (دور می‌اندازند)، بسته‌ها بدون توجه به مقدار \fIFirewallBackend\fR بلافاصله دور انداخته می‌شوند\&. از این رو، هیچ ملاحظه خاصی در این مورد نیاز نیست\&. .PP فایروال firewalld رفتار ACCEPT/DROP بالا را با ثبت هوک‌های nftables با تقدم پایین‌تر نسبت به هوک‌های iptables تضمین می‌کند\&. .SS "اولویت واسط مستقیم (Direct interface precedence)" .PP در حالت \fIFirewallBackend=iptables\fR قواعد داخلی سطح بالای firewalld قبل از اجرای قواعد مستقیم اعمال می‌شوند\&. این شامل قواعد مربوط به پذیرش اتصالات موجود نیز می‌شود\&. در گذشته این مسئله موجب شگفتی کاربران می‌شد\&. به عنوان مثال، اگر کاربری یک قاعده مستقیم برای مسدودسازی ترافیک روی درگاه مقصد ۲۲ اضافه می‌کرد، نشست‌های SSH موجود به کار خود ادامه می‌دادند، اما اتصال‌های جدید رد می‌شدند\&. .PP در حالت \fIFirewallBackend=nftables\fR به قواعد مستقیم عمداً اولویت بالاتری نسبت به تمامی قواعد دیگر firewalld داده شده است\&. این شامل قواعد پذیرش اتصالات موجود نیز می‌گردد\&. .SH "مثال‌ها (EXAMPLES)" .PP قرار دادن شبکه‌های 192\&.168\&.1\&.0/24 و 192\&.168\&.5\&.0/24 در فهرست مسدودسازی (denylist) همراه با ثبت گزارش و دور انداختن زودهنگام بسته‌ها در جدول raw: .sp .if n \{\ .RS 4 .\} .nf \-s 192\&.168\&.1\&.0/24 \-j denylist \-s 192\&.168\&.5\&.0/24 \-j denylist \-m limit \-\-limit 1/min \-j LOG \-\-log\-prefix "denylisted: " \-j DROP .fi .if n \{\ .RE .\} .sp .SH "همچنین ببینید (SEE ALSO)" \fBfirewall-applet\fR(1), \fBfirewalld\fR(1), \fBfirewall-cmd\fR(1), \fBfirewall-config\fR(1), \fBfirewalld.conf\fR(5), \fBfirewalld.direct\fR(5), \fBfirewalld.dbus\fR(5), \fBfirewalld.icmptype\fR(5), \fBfirewall-offline-cmd\fR(1), \fBfirewalld.richlanguage\fR(5), \fBfirewalld.service\fR(5), \fBfirewalld.zone\fR(5), \fBfirewalld.zones\fR(5), \fBfirewalld.policy\fR(5), \fBfirewalld.policies\fR(5), \fBfirewalld.ipset\fR(5), \fBfirewalld.helper\fR(5) .SH "نکات (NOTES)" .PP تارنمای اصلی firewalld: .RS 4 \m[blue]\fB\%http://firewalld.org\fR\m[] .RE .SH "نویسندگان (AUTHORS)" .PP \fBThomas Woerner\fR <\&twoerner@redhat\&.com\&> .RS 4 توسعه‌دهنده .RE .PP \fBJiri Popelka\fR <\&jpopelka@redhat\&.com\&> .RS 4 توسعه‌دهنده .RE .PP \fBEric Garver\fR <\&eric@garver\&.life\&> .RS 4 توسعه‌دهنده .RE