XTABLES-NFT(8) iptables 1.8.11 XTABLES-NFT(8)

xtables-nft - ابزارهای مبتنی بر چارچوب nftables در iptables

ابزارهای xtables-nft نسخه‌هایی از iptables هستند که از API مربوط به nftables استفاده می‌کنند. این مجموعه ابزارها برای کمک به مدیر سیستم جهت مهاجرت مجموعه قوانین از iptables(8)، ip6tables(8)، arptables(8) و ebtables(8) به nftables(8) طراحی شده است.

مجموعه xtables-nft از چند دستور تشکیل شده است:

•
iptables-nft
•
iptables-nft-save
•
iptables-nft-restore
•
ip6tables-nft
•
ip6tables-nft-save
•
ip6tables-nft-restore
•
arptables-nft
•
ebtables-nft

این ابزارها از افزونه‌های چارچوب libxtables استفاده کرده و با بهره‌گیری از ماژول nft_compat به زیرسیستم هسته nf_tables متصل می‌شوند.

ابزارهای xtables-nft به شما امکان می‌دهند تا با استفاده از نحو بومی و اصلی iptables(8)، ip6tables(8)، arptables(8) و ebtables(8)، بک‌اند nf_tables را مدیریت کنید.

شما باید از ابزارهای xtables-nft دقیقاً به همان شکلی استفاده کنید که از ابزارهای متناظر و اصلی آن‌ها استفاده می‌کردید.

افزودن یک قاعده منجر به افزوده شدن آن قاعده به زیرسیستم هسته nf_tables می‌شود. فهرست کردن مجموعه قوانین نیز به همین ترتیب از بک‌اند nf_tables استفاده خواهد کرد.

هنگام طراحی این ابزارها، ایده اصلی این بود که هر فایل اجرایی سنتی (legacy) با یک پیوند نمادین (symlink) به برنامه xtables-nft جایگزین شود؛ برای نمونه:

/sbin/iptables -> /usr/sbin/iptables-nft-multi
/sbin/ip6tables -> /usr/sbin/ip6tables-nft-multi
/sbin/arptables -> /usr/sbin/arptables-nft-multi
/sbin/ebtables -> /usr/sbin/ebtables-nft-multi

رشته نسخه iptables نشان می‌دهد که آیا API سنتی (get/setsockopt) استفاده شده است یا API جدید nf_tables:

iptables -V
iptables v1.7 (nf_tables)

به دلیل اینکه ابزارهای xtables-nft از API هسته nf_tables استفاده می‌کنند، عملیات افزودن و حذف قوانین همواره اتمیک (یکپارچه و تجزیه‌ناپذیر) است. برخلاف iptables-legacy، در iptables-nft -A .. نیازی به دریافت مجموعه قوانین فعلی از هسته، تغییر آن، و بارگذاری مجدد مجموعه قوانین تغییریافته نخواهد بود. در عوض، iptables-nft به هسته اعلام می‌کند تا یک قاعده را اضافه کند. به همین دلیل، گزینه --wait مربوط به iptables-legacy در iptables-nft هیچ اثری ندارد (no-op است).

استفاده از ابزارهای xtables-nft امکان نظارت بر تغییرات مجموعه قوانین را با استفاده از دستور xtables-monitor(8) فراهم می‌سازد.

هنگام استفاده از -j TRACE برای اشکال‌زدایی پیمایش بسته در مجموعه قوانین، توجه داشته باشید که برای به دست آوردن رویدادهای ردیابی نظارتی، باید از xtables-monitor(8) در حالت --trace استفاده کنید.

یک مثال پایه، ایجاد ساختار اولیه مجموعه قوانین در nf_tables از طریق ابزارهای xtables-nft بر روی یک سیستم تازه است:

root@machine:~# iptables-nft -L
[...]
root@machine:~# ip6tables-nft -L
[...]
root@machine:~# arptables-nft -L
[...]
root@machine:~# ebtables-nft -L
[...]
root@machine:~# nft list ruleset
table ip filter {
	chain INPUT {
		type filter hook input priority 0; policy accept;
	}
	chain FORWARD {
		type filter hook forward priority 0; policy accept;
	}
	chain OUTPUT {
		type filter hook output priority 0; policy accept;
	}
}
table ip6 filter {
	chain INPUT {
		type filter hook input priority 0; policy accept;
	}
	chain FORWARD {
		type filter hook forward priority 0; policy accept;
	}
	chain OUTPUT {
		type filter hook output priority 0; policy accept;
	}
}
table bridge filter {
	chain INPUT {
		type filter hook input priority -200; policy accept;
	}
	chain FORWARD {
		type filter hook forward priority -200; policy accept;
	}
	chain OUTPUT {
		type filter hook output priority -200; policy accept;
	}
}
table arp filter {
	chain INPUT {
		type filter hook input priority 0; policy accept;
	}
	chain FORWARD {
		type filter hook forward priority 0; policy accept;
	}
	chain OUTPUT {
		type filter hook output priority 0; policy accept;
	}
}

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

برای مهاجرت کامل مجموعه قوانین filter، در مورد iptables(8)، می‌توانید از دستورات زیر استفاده کنید:

root@machine:~# iptables-legacy-save > myruleset # reads from x_tables
root@machine:~# iptables-nft-restore myruleset   # writes to nf_tables
یا
root@machine:~# iptables-legacy-save | iptables-translate-restore | less

تا ببینید قوانین در نحو nft(8) چگونه خواهند بود.

شما باید از Linux kernel >= 4.17 استفاده کنید.

هدف CLUSTERIP پشتیبانی نمی‌شود.

برای دریافت اطلاعات به‌روز در این رابطه، لطفاً به نشانی زیر مراجعه کنید:
https://wiki.nftables.org

nft(8), xtables-translate(8), xtables-monitor(8)

چارچوب nftables توسط پروژه Netfilter (https://www.netfilter.org) نوشته شده است.

این صفحه راهنما توسط Arturo Borrero Gonzalez <arturo@debian.org> برای پروژه دبیان نوشته شده است، اما می‌تواند توسط دیگران نیز استفاده شود.

این مستندات تحت شرایط مجوز GPLv2+ آزاد/رایگان است.

iptables 1.8.11