badvpn-server(8) System Manager's Manual badvpn-server(8)

badvpn-server - سرور peer-to-peer شبکه مجازی BadVPN

badvpn-server

[--help]
[--version]
[--logger <stdout/syslog>]
(logger=syslog?

[--syslog-facility <string>]
[--syslog-ident <string>]
)
[--loglevel <0-5/none/error/warning/notice/info/debug>]
[--channel-loglevel <channel-name> <0-5/none/error/warning/notice/info/debug>] ...
[--listen-addr <addr>] ...
[--ssl --nssdb <string> --server-cert-name <string>]
[--comm-predicate <string>]
[--relay-predicate <string>]
[--client-socket-sndbuf <bytes / 0>]

این صفحه مستندات سرور BadVPN را ارائه می‌دهد، که در یک شبکهٔ VPN مربوط به BadVPN توسط همتایان (peers) برای گفتگو با یکدیگر به منظور برقراری اتصالات داده استفاده می‌شود. برای توضیحات کلی دربارهٔ BadVPN، ببینید badvpn(7).

سرور BadVPN یک سرور گفتگو است که توسط گره‌ها در شبکهٔ VPN برای ارتباط با یکدیگر به منظور برقراری اتصالات داده به کار می‌رود. پس از مقداردهی اولیه، سرور تنها در صورتی که سیگنالی دریافت کند خاتمه می‌یابد.

سرور BadVPN به طور کامل از طریق خط فرمان پیکربندی می‌شود.

چاپ نسخه و نحو خط فرمان و خروج.
چاپ نسخه و خروج.
انتخاب محل ثبت وقایع پیام‌ها. پیش‌فرض stdout است. Syslog در ویندوز در دسترس نیست.
هنگام ثبت وقایع در syslog، تعیین بخش ثبت وقایع (facility). نام بخش باید با حروف کوچک باشد.
هنگام ثبت وقایع در syslog، تعیین شناسه (ident).
تعیین سطح پیش‌فرض ثبت وقایع.
تعیین سطح ثبت وقایع برای یک کانال خاص ثبت وقایع.
افزودن یک نشانی برای گوش دادن سرور. برای قالب نشانی به بخش زیر مراجعه کنید.
استفاده از TLS. نیازمند --nssdb و --server-cert-name است.
هنگام استفاده از TLS، پایگاه‌دادهٔ NSS مورد استفاده. احتمالاً چیزی شبیه به sql:/some/folder.
هنگام استفاده از TLS، نام گواهی مورد استفاده. گواهی باید به سادگی در دسترس باشد.
تعیین گزاره برای مشخص کردن اینکه کدام جفت از کلاینت‌ها اجازهٔ برقراری ارتباط دارند. گزاره یک عبارت منطقی است؛ برای جزئیات به بخش زیر مراجعه کنید. توابع موجود:
p1name(string) - در صورتی که نام معمول (TLS common name) همتای ۱ برابر با رشتهٔ داده‌شده باشد، true است. در صورت عدم استفاده از TLS، نام معمول یک رشتهٔ خالی در نظر گرفته می‌شود.
p1addr(string) - در صورتی که نشانی IP همتای ۱ برابر با رشتهٔ داده‌شده باشد، true است. رشته نباید یک نام باشد.
p2name(string) - در صورتی که نام معمول TLS همتای ۲ برابر با رشتهٔ داده‌شده باشد، true است. در صورت عدم استفاده از TLS، نام معمول یک رشتهٔ خالی در نظر گرفته می‌شود.
p2addr(string) - در صورتی که نشانی IP همتای ۲ برابر با رشتهٔ داده‌شده باشد، true است. رشته نباید یک نام باشد.
هیچ قانونی مبنی بر اینکه کدام همتا ۱ و کدام همتا ۲ است وجود ندارد. هنگامی که سرور نیاز به تعیین مجاز بودن ارتباط دو همتا دارد، گزاره را یک بار و بدون ترتیب خاصی ارزیابی می‌کند.
تعیین گزاره برای مشخص کردن نحوهٔ بازپخش داده توسط همتایان از طریق همتایان دیگر. گزاره یک عبارت منطقی است؛ برای جزئیات به بخش زیر مراجعه کنید. اگر گزاره به true ارزیابی شود، همتای P می‌تواند داده‌ها را از طریق همتای R بازپخش کند. توابع موجود:
pname(string) - در صورتی که نام معمول TLS همتای P برابر با رشتهٔ داده‌شده باشد، true است. در صورت عدم استفاده از TLS، نام معمول یک رشتهٔ خالی در نظر گرفته می‌شود.
paddr(string) - در صورتی که نشانی IP همتای P برابر با رشتهٔ داده‌شده باشد، true است. رشته نباید یک نام باشد.
rname(string) - در صورتی که نام معمول TLS همتای R برابر با رشتهٔ داده‌شده باشد، true است. در صورت عدم استفاده از TLS، نام معمول یک رشتهٔ خالی در نظر گرفته می‌شود.
raddr(string) - در صورتی که نشانی IP همتای R برابر با رشتهٔ داده‌شده باشد، true است. رشته نباید یک نام باشد.
تنظیم مقدار گزینهٔ سوکت SO_SNDBUF برای سوکت‌های TCP کلاینت (صفر برای تنظیم نکردن). مقادیر کمتر، انصاف را در شرایطی که داده از چندین همتا به یک همتای معین ارسال می‌شود بهبود می‌بخشد، اما در صورتی که حاصل‌ضرب پهنای باند در تأخیر شبکه بیش از حد بزرگ باشد، ممکن است منجر به پهنای باند کمتری شود.

اگر مقداردهی اولیه با شکست مواجه شود، با کد ۱ خارج می‌شود. در غیر این صورت تا زمان درخواست خاتمه اجرا می‌شود و با کد ۱ خارج می‌شود.

نشانی‌ها به شکل ipaddr:port هستند، که در آن ipaddr یا یک نشانی IPv4 (نام یا عددی) است، یا یک نشانی IPv6 که درون براکت‌های [] محصور شده است (مجدداً نام یا عددی).

سرور BadVPN شامل یک زبان گزارهٔ کوچک است که برای تعیین سیاست‌های خاص استفاده می‌شود. نحو و معناشناسی این زبان در اینجا توضیح داده شده است.

ثابت منطقی درست (true). به ۱ ارزیابی می‌شود.
ثابت منطقی نادرست (false). به ۰ ارزیابی می‌شود.
نقیض منطقی. اگر عبارت به خطا ارزیابی شود، نقیض نیز به خطا ارزیابی می‌شود.
expression OR expression
فصل منطقی (یا). عبارت دوم تنها در صورتی ارزیابی می‌شود که عبارت اول به false ارزیابی شود. اگر یک زیرعبارت به خطا ارزیابی شود، فصل منطقی به خطا ارزیابی می‌شود.
expression AND expression
عطف منطقی (و). عبارت دوم تنها در صورتی ارزیابی می‌شود که عبارت اول به true ارزیابی شود. اگر یک زیرعبارت به خطا ارزیابی شود، عطف منطقی به خطا ارزیابی می‌شود.
function(arg, ..., arg)
ارزیابی یک تابع تعریف‌شده توسط کاربر (function نام تابع است، [a-zA-Z0-9_]+). اگر تابعی با نام داده‌شده وجود نداشته باشد، به خطا ارزیابی می‌شود. آرگومان‌ها از چپ به راست ارزیابی می‌شوند. هر آرگومان می‌تواند یک عبارت منطقی یا یک رشته باشد (نویسه‌های محصور در نقل‌قول دوگانه، بدون هیچ نقل‌قول دوگانه درون آن). اگر به آرگومانی برخورد شود، اما همهٔ آرگومان‌های مورد نیاز قبلاً ارزیابی شده باشند، تابع به خطا ارزیابی می‌شود. اگر نوع یک آرگومان اشتباه باشد، ارزیابی نمی‌شود و تابع به خطا ارزیابی می‌شود. اگر یک آرگومان به خطا ارزیابی شود، تابع به خطا ارزیابی می‌شود. اگر پس از ارزیابی همهٔ آرگومان‌ها، تابع به آرگومان‌های بیشتری نیاز داشته باشد، به خطا ارزیابی می‌شود. سپس تابع گرداننده (handler) فراخوانی می‌شود. اگر مقداری غیر از ۱ و ۰ برگرداند، تابع به خطا ارزیابی می‌شود. در غیر این صورت به مقدار بازگردانده‌شده توسط تابع گرداننده ارزیابی می‌شود.

برای مثال‌های استفاده از BadVPN، ببینید badvpn(7).

badvpn-client(8), badvpn(7)

Ambroz Bizjak <ambrop7@gmail.com>

21 June 2011