.\" Generated by scdoc 1.11.5 .\" Complete documentation for this program is not available as a GNU info page .ie \n(.g .ds Aq \(aq .el .ds Aq ' .nh .ad l .\" Begin generated content: .TH "SYD\-TOR" "1" "2026\-09\-01" .PP .SH "نام (NAME)" syd-tor \- اجرای برنامه‌ها درون شبکه امن و ناشناس Tor با جعبه‌شنی syd .PP .SH "خلاصه دستور (SYNOPSIS)" .PP \fBsyd\-tor\fR \fI[\-dh]\fR \fI\-i \fR \fI[\-o addr:port]\fR \fI[\-u unix\-sock]\fR .PP .SH "توضیحات (DESCRIPTION)" .PP سوکت شنیداری را از توصیف‌کننده فایل (fd) دریافت کرده و ترافیک را به addr:port یا سوکت دامین UNIX هدایت می‌کند.\& .PP آدرس خارجی باید یک آدرس IPv4 یا IPv6، یا مسیری به یک سوکت دامین UNIX باشد؛ مقدار پیش‌فرض آن \fB127.\&0.\&0.\&1:9050\fR است.\& .PP .SH "گزینه‌ها (OPTIONS)" .PP .TS l lx l lx l lx l lx l lx l lx l lx l lx l lx. T{ \fB\-h\fR T} T{ نمایش راهنما.\& T} T{ \fB\-d\fR T} T{ اجرا در حالت اشکال‌زدایی (debug) بدون محدودسازی (confinement).\& T} T{ T} T{ این حالت تنها در صورتی مجاز است که Syd با ویژگی بار Cargo به نام \fBtrusted\fR ساخته شده باشد.\& T} T{ \fB\-i\fR \fBsocket\-fd\fR T} T{ توصیف‌کننده فایل سوکت برای دریافت سوکت شنیداری از آن.\& T} T{ \fB\-o\fR \fBext\-addr\fR T} T{ تعیین آدرس خارجی برای هدایت ترافیک به آن.\& T} T{ T} T{ آدرس می‌تواند یک آدرس IPv4/IPv6 در قالب "addr:port" باشد.\& T} T{ T} T{ مقدار پیش‌فرض "127.\&0.\&0.\&1:9050" است.\& T} T{ \fB\-u\fR \fBunix\-sock\fR T} T{ تعیین سوکت دامین UNIX برای هدایت ترافیک به آن.\& T} T{ T} T{ این گزینه بر \fB\-o\fR اولویت دارد.\& T} .TE .sp 1 .SH "نحوه استفاده (USAGE)" .PP ابزار \fIsyd\-tor\fR(1) برای استفاده به عنوان یک ابزار مستقل در نظر گرفته نشده است.\& زمانی که جعبه‌شنی پراکسی با "sandbox/proxy:on" فعال باشد، Syd در هنگام راه‌اندازی \fIsyd\-tor\fR(1) را فراخوانی می‌کند.\& برای اطلاعات بیشتر، بخش PROXY SANDBOXING را در صفحه راهنمای \fIsyd\fR(7) ببینید.\& اگر قصد دارید از \fIsyd\-tor\fR(1) در پروژه شخصی خود استفاده کنید، یک جفت‌سوکت UNIX (socket-pair) ایجاد کنید، وارد یک فضای نام شبکه (network namespace) شوید، دستگاه loopback را فعال کنید، یک سوکت را با \fIbind\fR(2) به پورتی روی آن مقید کنید و سپس این توصیف‌کننده فایل سوکت را از طریق انتهای نوشتن جفت‌سوکت با گزینه \fBSCM_RIGHTS\fR در \fIsendmsg\fR(2) ارسال نمایید.\& در پایان، انتهای خواندن جفت‌سوکت را با آرگومان "\-i " به \fIsyd\-tor\fR(1) پاس دهید.\& .PP .SH "پیاده‌سازی (IMPLEMENTATION)" .PP ابزار \fIsyd\-tor\fR(1) برای کارایی، امنیت و حریم خصوصی طراحی شده است و از \fIepoll\fR(7) حساس به لبه (edge-triggered) برای اعلان رویدادها و عملیات کاملاً ناهمگام (asynchronous) برای مدیریت هم‌زمان چندین اتصال بدون مسدودسازی (blocking) بهره می‌برد.\& این ابزار داده‌ها را با استفاده از انتقال بدون کپی (zero-copy) \fIsplice\fR(2) منتقل می‌کند و بایت‌ها را مستقیماً میان توصیف‌کننده‌های فایل در فضای هسته جابه‌جا می‌سازد، بدون اینکه متن آشکار (plaintext) در فضای کاربری افشا شود.\& دو جفت لوله (pipe) ترافیک دوطرفه میان کلاینت و آدرس خارجی را انتقال می‌دهند.\& محیط اجرا با استفاده از \fIseccomp\fR(2) و \fIlandlock\fR(7) محدود (confinement) شده است تا فراخوان‌های سیستمی و دسترسی به فایل‌ها را به حداقل میزان لازم کاهش دهد.\& در مقایسه با socksns که از زمان اجرای Tokio برای I/O ناهمگام استفاده می‌کند، \fIsyd\-tor\fR(1) برای کارایی و محدودسازی بر ابزارهای بنیادین در سطح هسته تکیه دارد.\& .PP .SH "امنیت (SECURITY)" .PP ابزار \fIsyd\-tor\fR(1) چندین لایه محدودسازی را برای کاهش خطرات ناشی از اجرا در خارج از جعبه‌شنی Syd به کار می‌گیرد و از حملات احتمالی مرد میانی (MITM) علیه کانتینرها جلوگیری می‌کند.\& قابلیت‌های لینوکس (\fIcapabilities\fR(7)) در مراحل آغازین سلب می‌شوند و ویژگی no-new-privs تنظیم می‌گردد تا هیچ قابلیت ناخواسته‌ای به درون فرایند نشت نکند.\& محدودیت‌های منابع \fBRLIMIT_CORE\fR، \fBRLIMIT_FSIZE\fR، \fBRLIMIT_NPROC\fR، \fBRLIMIT_LOCKS\fR، \fBRLIMIT_MEMLOCK\fR و \fBRLIMIT_MSGQUEUE\fR روی صفر تنظیم می‌شوند تا از تولید core dump و ایجاد فایل، فرایند، قفل یا صف پیام (msgqueue) درون حلقه اصلی جلوگیری به عمل آید.\& فیلترهای \fIseccomp\fR(2) طوری پیکربندی شده‌اند که فقط به فراخوان‌های سیستمی مورد نیاز اجازه اجرا دهند.\& فراخوان سیستمی \fIsocket\fR(2) به یک دامنه، نوع و پروتکل منفرد محدود شده است، در حالی که \fIconnect\fR(2) به یک نشانی حافظه منفرد محدود می‌شود و بدین ترتیب از اتصالات شبکه غیرمجاز جلوگیری می‌گردد.\& فراخوان‌های سیستمی \fIsigaction\fR(2) و \fIrt_sigaction\fR(2) اجازه نصب گرداننده‌های سیگنال جدید را ندارند و فراخوان \fIrt_sigreturn\fR(2) نیز مجاز نیست.\& فراخوان‌های سیستمی \fIpipe2\fR(2)، \fIsocket\fR(2)، \fIconnect\fR(2)، \fIaccept4\fR(2) و \fIshutdown\fR(2) با کوکی‌های آرگومان فراخوان سیستمی محافظت می‌شوند که در زمان راه‌اندازی با استفاده از \fIgetrandom\fR(2) به صورت تصادفی تعیین می‌گردند.\& برای اطلاعات بیشتر در مورد کوکی‌های آرگومان، به بخش \fBSyscall Argument Cookies\fR در صفحه راهنمای \fIsyd\fR(7) مراجعه فرمایید.\& این محدودیت‌ها نیازمند فراخوان‌های سیستمی مستقیم سوکت هستند.\& این فراخوان‌ها بدون محدودیت در معماری‌های x86، m68k، mips، mipsel، ppc، ppc64، ppc64le، s390، s390x، sheb و sh که سوکت‌ها را از طریق \fIsocketcall\fR(2) چندپخشی (multiplex) می‌کنند، مجاز هستند.\& در لینوکس ۶۴ بیتی نسخه 6.10 و بالاتر، ناحیه حافظه حاوی آدرس شبکه خارجی با استفاده از \fImseal\fR(2) مهر و موم (seal) شده و حافظه پیرامون آن با صفحات محافظ (guard pages) محافظت می‌شود تا از سرریز یا خرابی داده‌های مجاور جلوگیری شود.\& حافظه قابل اجرا نیز غیرمجاز است تا از حملات تزریق کد جلوگیری به عمل آید.\& در صورت در دسترس بودن، \fIlandlock\fR(7) و \fInamespaces\fR(7) با غیرمجاز کردن تمام دسترسی‌ها به سیستم‌فایل، محدودیت‌های بیشتری اعمال نموده و در نتیجه یک لایه امنیتی اضافی فراهم می‌سازند.\& دایرکتوری ریشه با استفاده از \fIpivot_root\fR(2) به \fI/proc/self/fdinfo\fR (یا در صورتی که آدرس خارجی یک سوکت UNIX باشد به \fI/proc/self/fd\fR) منتقل شده و ریشه قدیمی با \fBMNT_DETACH\fR جدا می‌شود، به گونه‌ای که هیچ مسیری به سیستم‌فایل میزبان در فضای نام mount باقی نمی‌ماند.\& مجموع این روش‌ها تضمین می‌کنند که حتی در صورت نفوذ به \fIsyd\-tor\fR(1)، دامنه اقدامات مخرب به طور چشمگیری محدود بوده و یکپارچگی و امنیت کلی سیستم حفظ خواهد شد.\& .PP .SH "محیط (ENVIRONMENT)" .PP .TS l lx l lx. T{ \fBSYD_TOR_DEBUG\fR T} T{ اجرا در حالت اشکال‌زدایی بدون محدودسازی، معادل با گزینه "\-d".\& T} T{ T} T{ این متغیر نادیده گرفته می‌شود مگر اینکه Syd با ویژگی کارگو \fBtrusted\fR ساخته شده باشد.\& T} .TE .sp 1 .SH "هشدارها (CAVEATS)" .PP فرایند \fIsyd\-tor\fR(1) به عنوان یک تک‌فرایند اجرا می‌شود و به دلیل تعداد توصیف‌کننده‌های فایل (FD) که به ازای هر اتصال باز می‌کند، ممکن است به حد مجاز توصیف‌کننده‌های فایل برسد.\& هر اتصال کلاینت شامل شش FD است: یکی برای سوکت کلاینت، یکی برای سوکت خارجی، و چهار عدد برای لوله‌های مورد استفاده در انتقال دوطرفه داده‌ها (دو لوله که هر کدام دارای یک FD ورودی و خروجی هستند).\& برای کاهش این مشکل، \fIsyd\-tor\fR(1) با بازنویسی حد نرم (soft limit) در هنگام راه‌اندازی، محدودیت file-max را روی حد سخت (hard limit) تنظیم می‌کند.\& با این حال، در برخی موارد ممکن است این اقدام کافی نباشد و تنظیم دستی محدودیت‌های FD لازم باشد.\& .PP .SH "همچنین ببینید (SEE ALSO)" .PP \fIsyd\fR(1), \fIsyd\fR(2), \fIsyd\fR(7) .PP صفحه خانگی \fBsyd\fR: https://sydbox.\&exherbo.\&org .PP .SH "نویسندگان (AUTHORS)" .PP نگه‌داری شده توسط Ali Polatel.\& سورس‌های به‌روز را می‌توان در https://gitlab.\&exherbo.\&org/sydbox/sydbox.\&git و روی Radicle در rad:z38HCnbmcDegA2BMxuPaPRPMdp6wF یافت.\& اشکالات/وصله‌ها را می‌توان به https://gitlab.\&exherbo.\&org/groups/sydbox/\-/issues ارسال کرد.\& گفتگو در #sydbox در Libera Chat یا در #sydbox:mailstation.\&de در Matrix.\&