IP-XFRM(8) Linux IP-XFRM(8)

ip-xfrm - مدیریت پیکربندی IPsec و چارچوب امنیتی XFRM


ip [ OPTIONS ] xfrm { COMMAND | help }

ip xfrm XFRM-OBJECT { COMMAND | help }

XFRM-OBJECT := state | policy | monitor

ip xfrm state { add | update } ID [ ALGO-LIST ] [ mode MODE ] [ mark MARK [ mask MASK ] ] [ reqid REQID ] [ dir SA-DIR ] [ seq SEQ ] [ replay-window SIZE ] [ replay-seq SEQ ] [ replay-oseq SEQ ] [ replay-seq-hi SEQ ] [ replay-oseq-hi SEQ ] [ flag FLAG-LIST ] [ sel SELECTOR ] [ LIMIT-LIST ] [ encap ENCAP ] [ coa ADDR[/PLEN] ] [ ctx CTX ] [ extra-flag EXTRA-FLAG-LIST ] [ output-mark OUTPUT-MARK [ mask MASK ] ] [ if_id IF-ID ] [ offload [ crypto|packet ] dev DEV dir DIR ] [ tfcpad LENGTH ]

ip xfrm state allocspi ID [ mode MODE ] [ mark MARK [ mask MASK ] ] [ reqid REQID ] [ seq SEQ ] [ min SPI max SPI ]

ip xfrm state { delete | get } ID [ mark MARK [ mask MASK ] ]

ip [ -4 | -6 ] xfrm state deleteall [ ID ] [ mode MODE ] [ reqid REQID ] [ flag FLAG-LIST ]

ip [ -4 | -6 ] xfrm state list [ ID ] [ nokeys ] [ mode MODE ] [ reqid REQID ] [ flag FLAG-LIST ]

ip xfrm state flush [ proto XFRM-PROTO ]

ip xfrm state count

ID := [ src ADDR ] [ dst ADDR ] [ proto XFRM-PROTO ] [ spi SPI ]

XFRM-PROTO := esp | ah | comp | route2 | hao

ALGO-LIST := [ ALGO-LIST ] ALGO

ALGO := { enc | auth } ALGO-NAME ALGO-KEYMAT |
auth-trunc ALGO-NAME ALGO-KEYMAT ALGO-TRUNC-LEN |
aead ALGO-NAME ALGO-KEYMAT ALGO-ICV-LEN |
comp ALGO-NAME

MODE := transport | tunnel | beet | ro | in_trigger

SA-DIR := in | out

FLAG-LIST := [ FLAG-LIST ] FLAG

FLAG := noecn | decap-dscp | nopmtudisc | wildrecv | icmp | af-unspec | align4 | esn

SELECTOR := [ src ADDR[/PLEN] ] [ dst ADDR[/PLEN] ] [ dev DEV ]
[ UPSPEC ]

UPSPEC := proto { PROTO |
{ tcp | udp | sctp | dccp } [ sport PORT ] [ dport PORT ] |
{ icmp | ipv6-icmp | mobility-header } [ type NUMBER ] [ code NUMBER ] |
gre [ key { DOTTED-QUAD | NUMBER } ] }

LIMIT-LIST := [ LIMIT-LIST ] limit LIMIT

LIMIT := { time-soft | time-hard | time-use-soft | time-use-hard } SECONDS |
{ byte-soft | byte-hard } SIZE |
{ packet-soft | packet-hard } COUNT

ENCAP := { espinudp | espinudp-nonike | espintcp } SPORT DPORT OADDR

EXTRA-FLAG-LIST := [ EXTRA-FLAG-LIST ] EXTRA-FLAG

EXTRA-FLAG := dont-encap-dscp | oseq-may-wrap

ip xfrm policy { add | update } SELECTOR dir DIR [ ctx CTX ] [ mark MARK [ mask MASK ] ] [ index INDEX ] [ ptype PTYPE ] [ action ACTION ] [ priority PRIORITY ] [ flag FLAG-LIST ] [ if_id IF-ID ] [ offload packet dev DEV ] [ LIMIT-LIST ] [ TMPL-LIST ]

ip xfrm policy { delete | get } { SELECTOR | index INDEX } dir DIR [ ctx CTX ] [ mark MARK [ mask MASK ] ] [ ptype PTYPE ] [ if_id IF-ID ]

ip [ -4 | -6 ] xfrm policy { deleteall | list } [ nosock ] [ SELECTOR ] [ dir DIR ] [ index INDEX ] [ ptype PTYPE ] [ action ACTION ] [ priority PRIORITY ] [ flag FLAG-LIST]

ip xfrm policy flush [ ptype PTYPE ]

ip xfrm policy count

ip xfrm policy set [ hthresh4 LBITS RBITS ] [ hthresh6 LBITS RBITS ]

ip xfrm policy setdefault DIR ACTION [ DIR ACTION ] [ DIR ACTION ]

ip xfrm policy getdefault

SELECTOR := [ src ADDR[/PLEN] ] [ dst ADDR[/PLEN] ] [ dev DEV ] [ UPSPEC ]

UPSPEC := proto { PROTO |
{ tcp | udp | sctp | dccp } [ sport PORT ] [ dport PORT ] |
{ icmp | ipv6-icmp | mobility-header } [ type NUMBER ] [ code NUMBER ] |
gre [ key { DOTTED-QUAD | NUMBER } ] }

DIR := in | out | fwd

PTYPE := main | sub

ACTION := allow | block

FLAG-LIST := [ FLAG-LIST ] FLAG

FLAG := localok | icmp

LIMIT-LIST := [ LIMIT-LIST ] limit LIMIT

LIMIT := { time-soft | time-hard | time-use-soft | time-use-hard } SECONDS |
{ byte-soft | byte-hard } SIZE |
{ packet-soft | packet-hard } COUNT

TMPL-LIST := [ TMPL-LIST ] tmpl TMPL

TMPL := ID [ mode MODE ] [ reqid REQID ] [ level LEVEL ]

ID := [ src ADDR ] [ dst ADDR ] [ proto XFRM-PROTO ] [ spi SPI ]

XFRM-PROTO := esp | ah | comp | route2 | hao

MODE := transport | tunnel | beet | ro | in_trigger

LEVEL := required | use

ip xfrm monitor [ all-nsid ] [ nokeys ] [ all
| LISTofXFRM-OBJECTS ]

LISTofXFRM-OBJECTS := [ LISTofXFRM-OBJECTS ] XFRM-OBJECT

XFRM-OBJECT := acquire | expire | SA | policy | aevent | report


چارچوب xfrm یک چارچوب IP برای تبدیل بسته‌ها (مانند رمزگذاری بار داده یا محتوای مفید آن‌ها) است. این چارچوب برای پیاده‌سازی مجموعه پروتکل IPsec به کار می‌رود (به گونه‌ای که شیء state روی پایگاه‌داده ارتباط امنیتی یا SAD (Security Association Database) عمل می‌کند و شیء policy روی پایگاه‌داده سیاست امنیتی یا SPD (Security Policy Database) فعالیت می‌نماید). این چارچوب همچنین برای پروتکل فشرده‌سازی بار داده IP (IP Payload Compression Protocol) و قابلیت‌های Mobile IPv6 مورد استفاده قرار می‌گیرد.

ip xfrm state add افزودن وضعیت جدید به xfrm
ip xfrm state update به‌روزرسانی وضعیت موجود در xfrm
ip xfrm state allocspi تخصیص یک مقدار SPI
ip xfrm state delete حذف وضعیت موجود در xfrm
ip xfrm state get دریافت وضعیت موجود در xfrm
ip xfrm state deleteall حذف تمام وضعیت‌های موجود در xfrm
ip xfrm state list چاپ فهرست وضعیت‌های موجود در xfrm
ip xfrm state flush تخلیه تمام وضعیت‌ها در xfrm
ip xfrm state count شمارش تمام وضعیت‌های موجود در xfrm
توسط یک آدرس مبدأ، آدرس مقصد، پروتکل تبدیل XFRM-PROTO و/یا شاخص پارامتر امنیتی SPI مشخص می‌شود. (برای فشرده‌سازی بار داده IP، به جای SPI از شاخص پارامتر فشرده‌سازی یا CPI استفاده می‌شود.)
یک پروتکل تبدیل را مشخص می‌کند: بار امنیتی کپسوله‌شده IPsec (esp)، سرآیند احراز اصالت IPsec (ah)، فشرده‌سازی بار داده IP (comp)، سرآیند مسیریابی نوع ۲ در Mobile IPv6 (route2)، یا گزینه آدرس خانگی در Mobile IPv6 (hao).
شامل یک یا چند الگوریتم برای استفاده است. هر الگوریتم ALGO با موارد زیر مشخص می‌شود:
•
نوع الگوریتم: رمزنگاری (enc)، احراز اصالت (auth یا auth-trunc)، رمزنگاری احراز اصالت‌شده با داده‌های مرتبط (aead)، یا فشرده‌سازی (comp)
•
نام الگوریتم ALGO-NAME (در زیر را ببینید)
•
(برای همه به جز comp) ماده کلید ALGO-KEYMAT که ممکن است شامل یک کلید و یک مقدار salt یا nonce باشد؛ به RFC مربوطه مراجعه کنید
•
(فقط برای auth-trunc) طول برش ALGO-TRUNC-LEN به بیت
•
(فقط برای aead) طول مقدار بررسی یکپارچگی (ICV) ALGO-ICV-LEN به بیت
الگوریتم‌های رمزنگاری شامل موارد زیر هستند: ecb(cipher_null)، cbc(des)، cbc(des3_ede)، cbc(cast5)، cbc(blowfish)، cbc(aes)، cbc(serpent)، cbc(camellia)، cbc(twofish) و rfc3686(ctr(aes)).

الگوریتم‌های احراز اصالت شامل موارد زیر هستند: digest_null، hmac(md5)، hmac(sha1)، hmac(sha256)، hmac(sha384)، hmac(sha512)، hmac(rmd160) و xcbc(aes).

الگوریتم‌های رمزنگاری احراز اصالت‌شده با داده‌های مرتبط (AEAD) شامل موارد زیر هستند: rfc4106(gcm(aes))، rfc4309(ccm(aes)) و rfc4543(gcm(aes)).

الگوریتم‌های فشرده‌سازی شامل موارد زیر هستند: deflate، lzs و lzjh.

حالت عملیاتی را برای پروتکل تبدیل مشخص می‌کند. حالت‌های IPsec و فشرده‌سازی بار داده IP عبارتند از transport، tunnel، و (تنها برای IPsec ESP) تونل انتها-به-انتهای محدود (beet). حالت‌های Mobile IPv6 عبارتند از بهینه‌سازی مسیر (ro) و راه‌انداز ورودی (in_trigger).
شامل یک یا چند مورد از فلگ‌های اختیاری زیر است: noecn، decap-dscp، nopmtudisc، wildrecv، icmp، af-unspec، align4 یا esn.
ترافیکی را که توسط سیاست کنترل خواهد شد بر اساس آدرس مبدأ، آدرس مقصد، دستگاه شبکه و/یا UPSPEC انتخاب می‌کند.
ترافیک را بر اساس پروتکل انتخاب می‌کند. برای پروتکل‌های tcp، udp، sctp یا dccp پورت مبدأ و مقصد را می‌توان به صورت اختیاری مشخص کرد. برای پروتکل‌های icmp، ipv6-icmp یا mobility-header شماره‌های نوع و کد را می‌توان به صورت اختیاری مشخص نمود. برای پروتکل gre کلید را می‌توان به صورت اختیاری به صورت یک عدد یا dotted-quad مشخص نمود. سایر پروتکل‌ها را می‌توان با نام یا شماره پروتکل PROTO انتخاب کرد.
محدودیت‌ها را بر حسب ثانیه، بایت یا تعداد بسته‌ها تعیین می‌کند.
بسته‌ها را با پروتکل espinudp، espinudp-nonike یا espintcp کپسوله‌سازی می‌کند، با استفاده از پورت مبدأ SPORT، پورت مقصد DPORT و آدرس اصلی OADDR.
برای تطبیق سیاست‌ها و وضعیت‌های xfrm به کار می‌رود.
برای تنظیم نشانگر خروجی جهت تأثیرگذاری بر مسیریابی بسته‌های ارسال‌شده توسط این وضعیت به کار می‌رود.
شناسه رابط xfrm که در هر دو مورد سیاست‌ها و وضعیت‌های xfrm به کار می‌رود.
نام رابط شبکه که برای برون‌سپاری سخت‌افزاری (offload) سیاست‌ها و وضعیت‌ها به کار می‌رود.
ip xfrm policy add افزودن یک سیاست جدید
ip xfrm policy update به‌روزرسانی یک سیاست موجود
ip xfrm policy delete حذف یک سیاست موجود
ip xfrm policy get دریافت یک سیاست موجود
ip xfrm policy deleteall حذف تمام سیاست‌های موجود xfrm
ip xfrm policy list چاپ فهرست سیاست‌های xfrm
ip xfrm policy flush تخلیه سیاست‌ها
فیلتر کردن (حذف) تمام سیاست‌های سوکت از خروجی.
ترافیکی را که توسط این سیاست کنترل خواهد شد بر اساس آدرس مبدأ، آدرس مقصد، دستگاه شبکه و/یا UPSPEC انتخاب می‌کند.
ترافیک را بر اساس پروتکل انتخاب می‌کند. برای پروتکل‌های tcp، udp، sctp یا dccp پورت مبدأ و مقصد را می‌توان به صورت اختیاری تعیین کرد. برای پروتکل‌های icmp، ipv6-icmp یا mobility-header شماره‌های نوع و کد را می‌توان به صورت اختیاری مشخص نمود. برای پروتکل gre کلید را می‌توان به صورت اختیاری به صورت dotted-quad یا عدد مشخص کرد. سایر پروتکل‌ها را می‌توان با نام یا شماره پروتکل PROTO انتخاب کرد.
جهت سیاست را به عنوان in، out یا fwd انتخاب می‌کند.
زمینه امنیتی (security context) را تنظیم می‌کند.
می‌تواند main (پیش‌فرض) یا sub باشد.
می‌تواند allow (پیش‌فرض) یا block باشد.
عددی است که مقدار پیش‌فرض آن صفر می‌باشد.
شامل یک یا هر دو مورد از فلگ‌های اختیاری زیر است: local یا icmp.
محدودیت‌ها را بر حسب ثانیه، بایت یا تعداد بسته‌ها تعیین می‌کند.
یک فهرست الگو است که با استفاده از ID، MODE، REQID و/یا LEVEL مشخص می‌شود.
توسط یک آدرس مبدأ، آدرس مقصد، پروتکل تبدیل XFRM-PROTO و/یا شاخص پارامتر امنیتی SPI مشخص می‌شود. (برای فشرده‌سازی بار داده IP، به جای SPI از شاخص پارامتر فشرده‌سازی یا CPI استفاده می‌شود.)
یک پروتکل تبدیل را مشخص می‌کند: بار امنیتی کپسوله‌شده IPsec (esp)، سرآیند احراز اصالت IPsec (ah)، فشرده‌سازی بار داده IP (comp)، سرآیند مسیریابی نوع ۲ در Mobile IPv6 (route2)، یا گزینه آدرس خانگی در Mobile IPv6 (hao).
حالت عملیاتی را برای پروتکل تبدیل مشخص می‌کند. حالت‌های IPsec و فشرده‌سازی بار داده IP عبارتند از transport، tunnel، و (تنها برای IPsec ESP) تونل انتها-به-انتهای محدود (beet). حالت‌های Mobile IPv6 عبارتند از بهینه‌سازی مسیر (ro) و راه‌انداز ورودی (in_trigger).
می‌تواند required (پیش‌فرض) یا use باشد.
ip xfrm policy count شمارش سیاست‌های موجود

برای نمایش جزئیات بیشتر، از جمله اطلاعات جدول درهم‌سازی (هش) سیاست‌ها، از یک یا چند گزینه -s استفاده کنید.

ip xfrm policy set پیکربندی جدول هش سیاست‌ها

سیاست‌های امنیتی که طول پیشوند آدرس آن‌ها بزرگ‌تر یا مساوی آستانه‌های جدول هش سیاست باشد، هش می‌شوند. سایر سیاست‌ها در لیست زنجیره‌ای policy_inexact ذخیره می‌گردند.

حداقل طول پیشوند آدرس محلی سیاست‌هایی را که در جدول هش پایگاه‌داده سیاست‌های امنیتی ذخیره می‌شوند، مشخص می‌کند.
حداقل طول پیشوند آدرس دوردست (remote) سیاست‌هایی را که در جدول هش پایگاه‌داده سیاست‌های امنیتی ذخیره می‌شوند، مشخص می‌کند.
ip xfrm monitor پایش وضعیت برای اشیاء xfrm

اشیاء xfrm برای پایش را می‌توان به صورت اختیاری تعیین کرد.

چنانچه گزینه all-nsid تنظیم شده باشد، برنامه به تمام فضاهای نام شبکه‌ای که دارای یک nsid اختصاص‌یافته در فضای نام شبکه محل اجرای برنامه هستند گوش می‌دهد. پیشوندی برای نمایش فضای نام شبکه‌ای که پیام از آن سرچشمه گرفته است نمایش داده می‌شود. برای نمونه:


[nsid 1]Flushed state proto 0

صفحه راهنما بازبینی‌شده توسط David Ward <david.ward@ll.mit.edu>
صفحه راهنما بازبینی‌شده توسط Christophe Gouault <christophe.gouault@6wind.com>
صفحه راهنما بازبینی‌شده توسط Nicolas Dichtel <nicolas.dichtel@6wind.com>

20 Dec 2011 iproute2