| CONNTRACK(8) | دستورات مدیریت سیستم | CONNTRACK(8) |
نام (NAME)
conntrack - رابط خط فرمان برای سامانه ردیابی اتصالات netfilter
خلاصه دستور (SYNOPSIS)
conntrack -L [table] [options] [-z]
conntrack -G [table] parameters
conntrack -D [table] parameters
conntrack -I [table] parameters
conntrack -A [table] parameters
conntrack -U [table] parameters
conntrack -E [table] [options]
conntrack -F [table]
conntrack -C [table]
conntrack -S
conntrack -R file
توضیحات (DESCRIPTION)
ابزار conntrack یک رابط کاربری کامل در فضای کاربری (userspace) برای سامانه ردیابی اتصالات Netfilter ارائه میدهد که هدف آن جایگزینی رابط قدیمی /proc/net/ip_conntrack است. از این ابزار میتوان برای جستجو، فهرستبندی، بازرسی و نگهداری زیرسیستم ردیابی اتصالات در هسته لینوکس استفاده کرد.
با استفاده از conntrack میتوانید فهرستی از تمامی اتصالات تحت ردیابی فعلی (یا مجموعهای فیلترشده از آنها) را استخراج کنید، اتصالاتی را از جدول وضعیت حذف کنید و حتی اتصالات جدیدی بیفزایید.
علاوه بر این، میتوانید رویدادهای ردیابی اتصالات را نیز پایش کنید، به عنوان مثال نمایش یک پیام رویداد (تکخطی) به ازای هر اتصال تازه ایجادشده.
جداول (TABLES)
زیرسیستم ردیابی اتصالات چندین جدول داخلی را نگهداری میکند:
- conntrack:
- این جدول پیشفرض است. شامل فهرستی از تمام اتصالات جاری است که توسط سیستم ردیابی میشوند. اگر از معافیتهای ردیابی اتصالات (هدف NOTRACK در iptables) استفاده نکنید، این شامل تمامی اتصالاتی است که از سیستم عبور میکنند.
- expect:
- این جدول انتظارات (expectations) است. انتظارات ردیابی اتصالات سازوکاری است که برای «پیشبینی و انتظار» اتصالات مرتبط (RELATED) با اتصالات موجود استفاده میشود. انتظارات معمولاً توسط «کمککنندههای ردیابی اتصال» (گاهی درگاههای سطح برنامه یا ALG نامیده میشوند) برای پروتکلهای پیچیدهتر مانند FTP، SIP یا H.323 استفاده میشوند.
- dying:
-
این جدول ورودیهای conntrack را نشان میدهد که منقضی شدهاند و توسط خود سامانه ردیابی اتصالات یا از طریق ابزار conntrack از بین رفتهاند. - unconfirmed:
- این جدول ورودیهای جدیدی را نشان میدهد که هنوز در جدول conntrack درج نشدهاند. این ورودیها به بستههایی متصل هستند که در حال پیمایش پشته شبکه هستند، اما هنوز به نقطه تایید در قلاب postrouting نرسیدهاند.
جداول "dying" و "unconfirmed" اساساً تنها برای اهداف اشکالزدایی مفید هستند. در شرایط عادی عملیاتی، مشاهده ورودیها در هر یک از آنها دشوار است. موارد خاصی وجود دارد که دیدن ورودیها در جدول unconfirmed مجاز و معتبر است، مانند بستههایی که از طریق nfqueue در صف قرار گرفتهاند؛ همچنین در جدول dying، به عنوان مثال زمانی که conntrackd(8) در حالت رویداد مطمئن (event reliable mode) اجرا میشود.
گزینهها (OPTIONS)
گزینههای شناساییشده توسط conntrack را میتوان به چندین گروه مختلف تقسیم کرد.
دستورات (COMMANDS)
این گزینهها عملیات خاصی را که باید انجام شود مشخص میکنند. در هر زمان تنها یکی از آنها میتواند مشخص شود.
- -L --dump
- فهرست کردن جدول ردیابی اتصالات یا جدول انتظارات.
- -G, --get
- جستجو و نمایش یک ورودی خاص (منطبق) در جدول دادهشده.
- -D, --delete
- حذف یک ورودی از جدول دادهشده.
- -I, --create
- ایجاد یک ورودی جدید در جدول دادهشده؛ در صورتی که ورودی از قبل وجود داشته باشد ناموفق خواهد بود.
- -A, --add
- افزودن یک ورودی جدید به جدول دادهشده.
- -U, --update
- بهروزرسانی یک ورودی در جدول دادهشده.
- -E, --event
- نمایش گزارش رویدادها به صورت بلادرنگ (real-time).
- -F, --flush
- تخلیه کامل جدول دادهشده.
- -C, --count
- نمایش شمارنده جدول.
- -S, --stats
- نمایش آمارهای سامانه ردیابی اتصالات درون هسته.
- -R, --load-file
- بارگذاری ورودیها از یک فایل مشخص. برای خواندن از ورودی استاندارد (stdin)، باید "-" مشخص شود.
پارامترها (PARAMETERS)
- -z, --zero
- صفر کردن اتمیک شمارندهها پس از خواندن آنها. این گزینه فقط در ترکیب با گزینههای دستوری "-L, --dump" معتبر است.
- -o, --output [extended,xml,save,timestamp,id,ktimestamp,labels]
- نمایش خروجی در یک قالب مشخص. با گزینه خروجی extended، این ابزار اطلاعات لایه ۳ را نمایش میدهد. با ktimestamp، برچسب زمانی درون هسته را که از نسخه 2.6.38 در دسترس است نشان میدهد (میتوانید آن را از طریق کلید sysctl(8) با نام net.netfilter.nf_conntrack_timestamp فعال کنید). گزینه خروجی labels به conntrack میگوید که نام برچسبهای ردیابی اتصال را که ممکن است وجود داشته باشند نمایش دهد. گزینه خروجی userspace مشخص میکند که آیا رویداد توسط یک فرآیند ایجاد شده است یا خیر.
- -e, --event-mask [ALL|NEW|UPDATES|DESTROY][,...]
- تنظیم ماسک بیتی رویدادهایی که قرار است توسط کد رویداد ctnetlink درون هسته تولید شوند. با استفاده از این پارامتر، میتوانید پیامهای رویداد تولیدشده توسط هسته را به انواعی که واقعاً به آنها نیاز دارید کاهش دهید. این گزینه فقط در ترکیب با "-E, --event" قابل استفاده است.
- -b, --buffer-size value
- تنظیم اندازه بافر سوکت Netlink بر حسب بایت. این گزینه زمانی مفید است که ابزار خط فرمان خطاهای ENOBUFS را گزارش کند. اگر این گزینه را ارسال نکنید، مقدار پیشفرض موجود در کلید sysctl(8) با نام net.core.rmem_default استفاده میشود. اگر فرآیند شما برای مدیریت تمام پیامهای رویداد بیش از حد کند باشد، یا به عبارت دیگر، حجم رویدادها به اندازهای زیاد باشد که باعث سرریز شدن بافر سوکت شود، ابزار این مشکل را گزارش میدهد. توجه داشته باشید که استفاده از یک بافر بزرگ احتمال برخورد با ENOBUFS را کاهش میدهد، اما منجر به مصرف بیشتر حافظه خواهد شد. این گزینه فقط در ترکیب با "-E, --event" قابل استفاده است.
پارامترهای فیلتر (FILTER PARAMETERS)
- -s, --src, --orig-src IP_ADDRESS
- فقط تطبیق با ورودیهایی که آدرس مبدأ آنها در جهت اولیه برابر با مقدار مشخصشده به عنوان آرگومان باشد. در صورت استفاده از نشانهگذاری CIDR، به طور ضمنی شامل "--mask-src" میشود.
- -d, --dst, --orig-dst IP_ADDRESS
- فقط تطبیق با ورودیهایی که آدرس مقصد آنها در جهت اولیه برابر با مقدار مشخصشده به عنوان آرگومان باشد. در صورت استفاده از نشانهگذاری CIDR، به طور ضمنی شامل "--mask-dst" میشود.
- -r, --reply-src IP_ADDRESS
- فقط تطبیق با ورودیهایی که آدرس مبدأ آنها در جهت پاسخ برابر با مقدار مشخصشده به عنوان آرگومان باشد.
- -q, --reply-dst IP_ADDRESS
- فقط تطبیق با ورودیهایی که آدرس مقصد آنها در جهت پاسخ برابر با مقدار مشخصشده به عنوان آرگومان باشد.
- -p, --proto PROTO
- مشخص کردن پروتکل لایه چهار (TCP، UDP و...).
- -f, --family PROTO
- مشخص کردن پروتکل لایه سه (ipv4، ipv6). این گزینه فقط در ترکیب با "-L, --dump" لازم است. اگر این گزینه مشخص نشود، پروتکل پیشفرض لایه ۳ برابر با IPv4 خواهد بود.
- -t, --timeout TIMEOUT
- مشخص کردن مهلت زمانی (timeout).
- -m, --mark MARK[/MASK]
- مشخص کردن علامت (mark) در conntrack. به صورت اختیاری، میتوان مقدار ماسک را نیز تعیین کرد. در حالت "--update"، این ماسک بیتهایی را مشخص میکند که باید پیش از اعمال عملگر XOR روی مقدار MARK در ctmark صفر شوند. در غیر این صورت، ماسک پیش از مقایسه به صورت منطقی با علامت موجود AND میشود. در حالت "--create"، ماسک نادیده گرفته میشود.
- -l, --label LABEL
- مشخص کردن یک برچسب (label) در conntrack. این گزینه فقط در ترکیب با "-L, --dump"، "-E, --event"، "-U --update" یا "-D --delete" در دسترس است. تطبیق با ورودیهایی که برچسبهای آنها شامل موارد مشخصشده به عنوان آرگومان باشد. برای تعیین چندین برچسب که باید تنظیم شوند، از چندین گزینه -l استفاده کنید.
- --labelmap PATH
- مشخص کردن مسیر یک فایل connlabel.conf برای بارگذاری به جای فایل پیشفرض. این گزینه فقط در ترکیب با "-L, --dump"، "-E, --event"، "-U --update" یا "-D --delete" در دسترس است.
- --label-add LABEL
- مشخص کردن برچسب conntrack جهت افزودن به اتصالات انتخابشده. این گزینه فقط در ترکیب با "-I, --create"، "-A, --add" یا "-U, --update" در دسترس است.
به عنوان یک قاعده کلی، باید از تطبیق 'connlabel' در مجموعه قوانین iptables خود یا از گزاره 'ct label' در مجموعه قوانین nftables خود استفاده کنید؛ این کار پشتیبانی از ct label را در هسته فعال میکند و به شما اجازه میدهد برچسبها را از طریق "-U, --update" بهروزرسانی کنید، در غیر این صورت بهروزرسانیهای برچسب نادیده گرفته میشوند.
- --label-del [LABEL]
- مشخص کردن برچسب conntrack جهت حذف از اتصالات انتخابشده. اگر هیچ برچسبی داده نشود، تمام برچسبها حذف میشوند. این گزینه فقط در ترکیب با "-U, --update" در دسترس است.
- -c, --secmark SECMARK
- مشخص کردن علامت امنیتی selinux در conntrack.
- -u, --status [ASSURED|SEEN_REPLY|FIXED_TIMEOUT|EXPECTED|OFFLOAD|UNSET][,...]
- مشخص کردن وضعیت conntrack.
- -n, --src-nat
- فیلتر کردن اتصالات NAT مبدأ (Source NAT).
- -g, --dst-nat
- فیلتر کردن اتصالات NAT مقصد (Destination NAT).
- -j, --any-nat
- فیلتر کردن هرگونه اتصالات NAT.
- -w, --zone
- فیلتر کردن بر اساس ناحیه (zone) در conntrack. برای اطلاعات بیشتر هدف CT در iptables را ببینید.
- --orig-zone
- فیلتر کردن بر اساس ناحیه conntrack در جهت اولیه (مبدأ). برای اطلاعات بیشتر هدف CT در iptables را ببینید.
- فیلتر کردن بر اساس ناحیه conntrack در جهت پاسخ (reply). برای اطلاعات بیشتر هدف CT در iptables را ببینید.
- --tuple-src IP_ADDRESS
- مشخص کردن آدرس مبدأ چندتایی (tuple) یک انتظار. در صورت استفاده از نشانهگذاری CIDR، به طور ضمنی شامل "--mask-src" میشود.
- --tuple-dst IP_ADDRESS
- مشخص کردن آدرس مقصد چندتایی (tuple) یک انتظار. در صورت استفاده از نشانهگذاری CIDR، به طور ضمنی شامل "--mask-dst" میشود.
- --mask-src IP_ADDRESS
- مشخص کردن ماسک آدرس مبدأ. برای اتصالات conntrack این گزینه فقط در ترکیب با "-L, --dump"، "-E, --event"، "-U --update" یا "-D --delete" در دسترس است. برای انتظارات (expectations) این گزینه فقط در ترکیب با "-I, --create" در دسترس است.
- --mask-dst IP_ADDRESS
- مشخص کردن ماسک آدرس مقصد. همان محدودیتهای ذکرشده برای "--mask-src".
پارامترهای فیلتر پروتکل (PROTOCOL FILTER PARAMETERS)
- فیلدهای ویژه TCP:
- --sport, --orig-port-src PORT
- درگاه مبدأ در جهت اولیه
- --dport, --orig-port-dst PORT
- درگاه مقصد در جهت اولیه
- درگاه مبدأ در جهت پاسخ
- درگاه مقصد در جهت پاسخ
- --state state
- وضعیت TCP؛ یکی از مقادیر NONE، SYN_SENT، SYN_RECV، ESTABLISHED، FIN_WAIT، CLOSE_WAIT، LAST_ACK، TIME_WAIT، CLOSE یا LISTEN.
- فیلدهای ویژه UDP:
- --sport, --orig-port-src PORT
- درگاه مبدأ در جهت اولیه
- --dport, --orig-port-dst PORT
- درگاه مقصد در جهت اولیه
- درگاه مبدأ در جهت پاسخ
- درگاه مقصد در جهت پاسخ
- فیلدهای ویژه ICMP:
- --icmp-type TYPE
- نوع ICMP. باید به صورت عددی مشخص شود.
- --icmp-code CODE
- کد ICMP. باید به صورت عددی مشخص شود.
- --icmp-id ID
- شناسه ICMP. باید به صورت عددی مشخص شود (اختیاری).
- فیلدهای ویژه UDPlite:
- --sport, --orig-port-src PORT
- درگاه مبدأ در جهت اولیه
- --dport, --orig-port-dst PORT
- درگاه مقصد در جهت اولیه
- درگاه مبدأ در جهت پاسخ
- درگاه مقصد در جهت پاسخ
- فیلدهای ویژه SCTP:
- --sport, --orig-port-src PORT
- درگاه مبدأ در جهت اولیه
- --dport, --orig-port-dst PORT
- درگاه مقصد در جهت اولیه
- درگاه مبدأ در جهت پاسخ
- درگاه مقصد در جهت پاسخ
- --state state
- وضعیت SCTP؛ یکی از مقادیر NONE، CLOSED، COOKIE_WAIT، COOKIE_ECHOED، ESTABLISHED، SHUTDOWN_SENT، SHUTDOWN_RECD یا SHUTDOWN_ACK_SENT.
- --orig-vtag value
- برچسب اعتبارسنجی (مقدار ۳۲ بیتی) در جهت اولیه
- برچسب اعتبارسنجی (مقدار ۳۲ بیتی) در جهت پاسخ
- فیلدهای ویژه DCCP (نیازمند لینوکس >= 2.6.30):
- --sport, --orig-port-src PORT
- درگاه مبدأ در جهت اولیه
- --dport, --orig-port-dst PORT
- درگاه مقصد در جهت اولیه
- درگاه مبدأ در جهت پاسخ
- درگاه مقصد در جهت پاسخ
- --state state
- وضعیت DCCP؛ یکی از مقادیر NONE، REQUEST، RESPOND، PARTOPEN، OPEN، CLOSEREQ، CLOSING یا TIMEWAIT.
- --role [client|server]
- نقشی که چندتایی (tuple) اولیه conntrack در حال ردیابی آن است
- فیلدهای ویژه GRE:
- --srckey, --orig-key-src KEY
- کلید مبدأ در جهت اولیه (به مبنای ۱۶ یا ۱۰)
- --dstkey, --orig-key-dst KEY
- کلید مقصد در جهت اولیه (به مبنای ۱۶ یا ۱۰)
- کلید مبدأ در جهت پاسخ (به مبنای ۱۶ یا ۱۰)
- کلید مقصد در جهت پاسخ (به مبنای ۱۶ یا ۱۰)
کدهای خروجی و عیبیابی (DIAGNOSTICS)
کد خروج در صورت عملکرد صحیح 0 است. خطاهایی که ناشی از پارامترهای نامعتبر خط فرمان باشند باعث کد خروج 2 میشوند. هرگونه خطای دیگر منجر به کد خروج 1 خواهد شد.
مثالها (EXAMPLES)
- conntrack -L
- نمایش جدول ردیابی اتصالات در قالب /proc/net/ip_conntrack
- conntrack -L -o extended
- نمایش جدول ردیابی اتصالات در قالب /proc/net/nf_conntrack همراه با اطلاعات تکمیلی.
- conntrack -L -o xml
- نمایش جدول ردیابی اتصالات در قالب XML
- conntrack -L -o save
- نمایش جدول ردیابی اتصالات در قالب ساختار نحوی conntrack
- conntrack -L -f ipv6 -o extended
- فقط استخراج اتصالات IPv6 در قالب /proc/net/nf_conntrack همراه با اطلاعات تکمیلی.
- conntrack -L --src-nat
- نمایش اتصالات NAT مبدأ
- conntrack -E -o timestamp
- نمایش رویدادهای اتصال به همراه برچسب زمانی
- conntrack -D -s 1.2.3.4
- حذف تمامی جریانهایی که آدرس مبدأ آنها 1.2.3.4 است
- conntrack -U -s 1.2.3.4 -m 1
- تنظیم مقدار connmark برابر با 1 برای تمام جریانهایی که آدرس مبدأ آنها 1.2.3.4 است
- conntrack -L -w 11 -o save | sed s/-w 11/-w 12/g | conntrack --load-file -
- کپی کردن تمام ورودیها از ناحیه 11 به ناحیه 12 در ct
اشکالات (BUGS)
لطفاً اشکالات را به netfilter-devel@vger.kernel.org گزارش دهید یا در سامانهی باگزیلای Netfilter ثبت کنید (https://bugzilla.netfilter.org).
همچنین ببینید (SEE ALSO)
nftables(8), iptables(8), conntrackd(8)
مشاهده
وبگاه رسمی:
http://conntrack-tools.netfilter.org
نویسندگان (AUTHORS)
جی شولیست (Jay Schulist)، پاتریک مکهاردی (Patrick McHardy)، هارالد ولته (Harald Welte) و پابلو نیرا آیوسو (Pablo Neira Ayuso) رابط سطح هسته "ctnetlink" را نوشتند که توسط ابزار conntrack استفاده میشود.
پابلو نیرا آیوسو ابزار conntrack را نوشت و نگهداری میکند، و هارالد ولته پشتیبانی از شمارندههای محاسباتی مبتنی بر conntrack را اضافه کرد.
صفحه راهنما توسط هارالد ولته <laforge@netfilter.org> و پابلو نیرا آیوسو <pablo@netfilter.org> نوشته شده است.
| 2019-08-09 |