\." Automatically generated from the sudo_logsrvd.mdoc.in file. Do not edit. \." \." SPDX-License-Identifier: ISC \." \." Copyright (c) 2019-2024 Todd C. Miller \." \." Permission to use, copy, modify, and distribute this software for any \." purpose with or without fee is hereby granted, provided that the above \." copyright notice and this permission notice appear in all copies. \." \." THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES \." WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF \." MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR \." ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES \." WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN \." ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF \." OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. \." .Dd July 14, 2024 .Dt SUDO_LOGSRVD 8 .Os Sudo 1.9.17p2 .Sh "نام (NAME)" sudo_logsrvd \- دیمن سرور لاگ رویدادها و نشستهای sudo .Sh "خلاصه دستور (SYNOPSIS)" .Nm sudo_logsrvd .Op Fl hnV .Op Fl f Ar file .Op Fl R Ar percentage .Sh "توضیحات (DESCRIPTION)" .Nm یک سرور لاگ با کارایی بالا است که لاگ‌های رویداد و ورودی/خروجی (I/O) را از .Nm sudo می‌پذیرد. می‌توان از آن برای پیاده‌سازی ثبت متمرکز لاگ‌های .Nm sudo استفاده کرد. این سرور دو حالت عملیاتی دارد: محلی (local) و بازفرست (relay). به‌طور پیش‌فرض، .Nm لاگ‌ها را به صورت محلی ذخیره می‌کند، اما همچنین می‌تواند به‌گونه‌ای پیکربندی شود که آن‌ها را به سرور دیگری که از پروتکل .Xr sudo_logsrv.proto 5 پشتیبانی می‌کند، بازفرستد. .Pp در صورت عدم بازفرست، ورودی‌های لاگ رویداد می‌توانند از طریق .Xr syslog 3 یا در یک فایل محلی ثبت شوند. لاگ‌های ورودی/خروجی که به صورت محلی توسط .Nm ذخیره شده‌اند را می‌توان از طریق ابزار .Xr sudoreplay 8 به همان روشی که لاگ‌های تولیدشده مستقیم توسط پلاگین .Nm sudoers پخش می‌شوند، بازپخش کرد. .Pp این سرور همچنین از شروع مجدد انتقال‌های قطع‌شدهٔ لاگ پشتیبانی می‌کند. برای تشخیص لاگ‌های ورودی/خروجی کامل از موارد ناقص، فایل زمان‌بندی (timing) لاگ ورودی/خروجی پس از تکمیل لاگ، به صورت فقط‌خواندنی تنظیم می‌شود. .Pp پارامترهای پیکربندی برای .Nm می‌توانند در فایل .Xr sudo_logsrvd.conf 5 یا فایلی که از طریق گزینهٔ .Fl f مشخص شده است، تعیین شوند. .Pp .Nm هنگام دریافت سیگنال SIGHUP فایل پیکربندی خود را دوباره می‌خواند و در زمان دریافت سیگنال SIGUSR1 وضعیت سرور را در فایل اشکال‌زدایی (در صورت پیکربندی شدن) می‌نویسد. .Sh "گزینهها (OPTIONS)" گزینه‌ها به شرح زیر هستند: .Bl -tag -width Ds .It Fl f Ar file , Fl -file Ns = Ns Ar file خواندن پیکربندی از .Ar file به جای فایل پیش‌فرض، .Pa /etc/sudo_logsrvd.conf . .It Fl h , -help نمایش یک پیام راهنمای کوتاه در خروجی استاندارد و خروج. .It Fl n , -no-fork اجرای .Nm در پیش‌زمینه، به جای جدا شدن از ترمینال و تبدیل شدن به یک دیمن. .It Fl R Ar percentage , Fl -random-drop Ns = Ns Ar percentage برای هر پیام، به احتمال .Ar percentage درصد، سرور اتصال را قطع خواهد کرد. این گزینه فقط برای اشکال‌زدایی از قابلیت کلاینت در شروع مجدد اتصال در نظر گرفته شده است. .It Fl V , -version چاپ نسخهٔ .Nm و خروج. .El .Sh "امن‌سازی اتصالات سرور" داده‌های لاگ ورودی/خروجی ارسال‌شده به .Nm ممکن است حاوی اطلاعات حساسی مانند گذرواژه‌ها باشند و باید با استفاده از امنیت لایهٔ انتقال (TLS) ایمن شوند. انجام این کار مستلزم داشتن یک گواهی امضاشده روی سرور است و اگر .Em tls_checkpeer در .Xr sudo_logsrvd.conf 5 فعال باشد، وجود یک گواهی امضاشده روی کلاینت نیز الزامی خواهد بود. .Pp گواهی‌ها می‌توانند توسط یک مرجع صدور گواهی (CA) شناخته‌شده امضا شوند، یا می‌توان از یک CA خصوصی استفاده کرد. دستورالعمل‌های ایجاد یک CA خصوصی در زیر در بخش .Sx "مثالها (EXAMPLES)" آمده است. .Sh "اشکال‌زدایی sudo_logsrvd" .Nm از یک چارچوب اشکال‌زدایی انعطاف‌پذیر پشتیبانی می‌کند که از طریق خطوط .Em Debug در فایل .Xr sudo.conf 5 پیکربندی می‌شود. .Pp برای اطلاعات بیشتر در مورد پیکربندی .Xr sudo.conf 5 ، به راهنمای آن مراجعه کنید. .Sh "فایلها (FILES)" .Bl -tag -width 24n .It Pa /etc/sudo.conf پیکربندی پیشانهٔ Sudo .It Pa /etc/sudo_logsrvd.conf فایل پیکربندی سرور لاگ Sudo .It Pa /var/log/sudo_logsrvd/incoming دایرکتوری محل ذخیرهٔ ژورنال‌های جدید هنگامی که تنظیم .Em store_first relay فعال است. .It Pa /var/log/sudo_logsrvd/outgoing دایرکتوری محل ذخیرهٔ ژورنال‌های تکمیل‌شده هنگامی که تنظیم .Em store_first relay فعال است. .It Pa /var/log/sudo-io محل پیش‌فرض فایل‌های لاگ ورودی/خروجی .It Pa /run/sudo/sudo_logsrvd.pid فایل شناسهٔ فرآیند (PID) برای .Nm .El .Sh "مثالها (EXAMPLES)" .Ss "ایجاد گواهی‌های خودامضاشده" مگر اینکه از گواهی‌های امضاشده توسط یک مرجع صدور گواهی (CA) معتبر (یا یک CA سازمانی محلی) استفاده کنید، باید CA اختصاصی خود را بسازید تا بتواند گواهی‌های مورد استفادهٔ .Nm sudo_logsrvd , .Nm sudo_sendlog و پلاگین .Nm sudoers را امضا کند. مراحل زیر از دستور .Xr openssl 1 برای ایجاد کلیدها و گواهی‌ها استفاده می‌کنند. .Ss "راه‌اندازی اولیه" ابتدا باید ساختار دایرکتوری مناسب برای ذخیرهٔ فایل‌های CA ایجاد کنیم. بدین منظور یک سلسله‌مراتب دایرکتوری جدید در .Pa /etc/ssl/sudo ایجاد خواهیم کرد. .Bd -literal -offset 4n # mkdir /etc/ssl/sudo # cd /etc/ssl/sudo # mkdir certs csr newcerts private # chmod 700 private # touch index.txt # echo 1000 > serial .Ed .Pp فایل‌های serial و index.txt برای پیگیری گواهی‌های امضاشده استفاده می‌شوند. .Pp سپس باید یک رونوشت از فایل openssl.cnf تهیه کرده و آن را برای CA جدید خود سفارشی‌سازی کنیم. مسیر openssl.cnf وابسته به سیستم است، اما .Pa /etc/ssl/openssl.cnf رایج‌ترین مکان آن است. اگر این فایل در سیستم شما مسیر متفاوتی دارد، باید مثال زیر را تنظیم کنید. .Bd -literal -offset 4n # cp /etc/ssl/openssl.cnf . .Ed .Pp اکنون فایل .Pa openssl.cnf موجود در دایرکتوری فعلی را ویرایش کرده و اطمینان حاصل کنید که شامل بخش‌های .Dq ca ، .Dq CA_default ، .Dq v3_ca و .Dq usr_cert باشد. این بخش‌ها باید دست‌کم تنظیمات زیر را در بر داشته باشند: .Bd -literal -offset 4n [ ca ] default_ca = CA_default [ CA_default ] dir = /etc/ssl/sudo certs = /certs database = /index.txt certificate = /cacert.pem serial = /serial [ v3_ca ] subjectKeyIdentifier = hash authorityKeyIdentifier = keyid:always,issuer basicConstraints = critical,CA:true keyUsage = cRLSign, keyCertSign [ usr_cert ] basicConstraints = CA:FALSE keyUsage = nonRepudiation, digitalSignature, \e keyEncipherment subjectKeyIdentifier = hash authorityKeyIdentifier = keyid,issuer .Ed .Pp اگر فایل .Pa openssl.cnf شما از قبل دارای بخش .Dq CA_default است، ممکن است فقط نیاز به تغییر تنظیم .Dq dir و فعال‌سازی تنظیمات .Dq keyUsage (در صورتی که کامنت شده باشند) داشته باشید. .Ss "ایجاد کلید و گواهی CA" به منظور ایجاد و امضای گواهی‌های اختصاصی خود، باید یک کلید خصوصی و یک گواهی برای ریشهٔ CA بسازیم. ابتدا کلید خصوصی را ایجاد کرده و با یک عبارت عبور (passphrase) از آن محافظت می‌کنیم: .Bd -literal -offset 4n # openssl genrsa -aes256 -out private/cakey.pem 4096 # chmod 400 private/cakey.pem .Ed .Pp سپس گواهی ریشه را با مقادیر مناسب برای فیلدهای خاص سایت تولید می‌کنیم: .Bd -literal -offset 4n # openssl req -config openssl.cnf -key private/cakey.pem \e -new -x509 -days 7300 -sha256 -extensions v3_ca \e -out cacert.pem Enter pass phrase for private/cakey.pem: You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank. For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [AU]:US State or Province Name (full name) [Some-State]:Colorado Locality Name (eg, city) []: Organization Name (eg, company) [Internet Widgets Pty Ltd]:sudo Organizational Unit Name (eg, section) []:sudo Certificate Authority Common Name (e.g., server FQDN or YOUR name) []:sudo Root CA Email Address []: # chmod 444 cacert.pem .Ed .Pp در نهایت، گواهی ریشه را بررسی و تأیید می‌کنیم: .Bd -literal -offset 4n # openssl x509 -noout -text -in cacert.pem .Ed .Ss "ایجاد و امضای گواهی‌ها" گواهی‌های سرور و کلاینت توسط CA ریشه‌ای که پیش‌تر ایجاد شد، امضا خواهند شد. معمولاً از CA ریشه برای امضای مستقیم گواهی‌های سرور/کلاینت استفاده نمی‌شود. در عوض، گواهی‌های میانی (intermediate) ایجاد شده و با CA ریشه امضا می‌شوند، و از این گواهی‌های میانی برای امضای درخواست‌های امضای گواهی (CSR) استفاده می‌گردد. در این مثال برای سادگی از این بخش صرف‌نظر کرده و CSRها را مستقیماً با CA ریشه امضا می‌کنیم. .Pp ابتدا کلید خصوصی را بدون عبارت عبور تولید می‌کنیم. .Bd -literal -offset 4n # openssl genrsa -out private/logsrvd_key.pem 2048 # chmod 400 private/logsrvd_key.pem .Ed .Pp سپس یک درخواست امضای گواهی (CSR) برای گواهی سرور ایجاد می‌کنیم. نام سازمان (organization name) باید دقیقاً با نام ذکرشده در گواهی ریشه یکسان باشد. نام مشترک (common name) باید یا نشانی IP سرور باشد یا یک نام دامنهٔ کاملاً واجد شرایط (FQDN). .Bd -literal -offset 4n # openssl req -config openssl.cnf -key private/logsrvd_key.pem -new \e -sha256 -out csr/logsrvd_csr.pem Enter pass phrase for private/logsrvd_key.pem: You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank. For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [AU]:US State or Province Name (full name) [Some-State]:Colorado Locality Name (eg, city) []: Organization Name (eg, company) [Internet Widgets Pty Ltd]:sudo Organizational Unit Name (eg, section) []:sudo log server Common Name (e.g., server FQDN or YOUR name) []:logserver.example.com Email Address []: Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []: .Ed .Pp اکنون CSR ایجادشده را امضا می‌کنیم: .Bd -literal -offset 4n # openssl ca -config openssl.cnf -days 375 -notext -md sha256 \e -in csr/logsrvd_csr.pem -out certs/logsrvd_cert.pem Using configuration from openssl.cnf Enter pass phrase for ./private/cakey.pem: Check that the request matches the signature Signature ok Certificate Details: Serial Number: 4096 (0x1000) Validity Not Before: Nov 11 14:05:05 2019 GMT Not After : Nov 20 14:05:05 2020 GMT Subject: countryName = US stateOrProvinceName = Colorado organizationName = sudo organizationalUnitName = sudo log server commonName = logserve.example.com X509v3 extensions: X509v3 Basic Constraints: CA:FALSE X509v3 Key Usage: Digital Signature, Non Repudiation, Key Encipherment X509v3 Subject Key Identifier: 4C:50:F9:D0:BE:1A:4C:B2:AC:90:76:56:C7:9E:16:AE:E6:9E:E5:B5 X509v3 Authority Key Identifier: keyid:D7:91:24:16:B1:03:06:65:1A:7A:6E:CF:51:E9:5C:CB:7A:95:3E:0C Certificate is to be certified until Nov 20 14:05:05 2020 GMT (375 days) Sign the certificate? [y/n]:y 1 out of 1 certificate requests certified, commit? [y/n]y Write out database with 1 new entries Data Base Updated .Ed .Pp در نهایت، گواهی جدید را بررسی و تأیید می‌کنیم: .Bd -literal -offset 4n # openssl verify -CAfile cacert.pem certs/logsrvd_cert.pem certs/logsrvd_cert.pem: OK .Ed .Pp دایرکتوری .Pa /etc/ssl/sudo/certs اکنون شامل یک گواهی امضاشده و تأییدشده برای استفاده با .Nm sudo_logsrvd است. .Pp برای تولید گواهی کلاینت، فرآیند بالا را با نام فایلی متفاوت تکرار کنید. .Ss "پیکربندی sudo_logsrvd برای استفاده از TLS" جهت استفاده از TLS برای ارتباط کلاینت/سرور، هم .Nm و هم پلاگین .Nm sudoers باید برای استفاده از TLS پیکربندی شوند. با فرض استفاده از همان مسیرهای نام‌برده‌شده در مراحل قبل، پیکربندی .Nm برای TLS نیازمند تنظیمات زیر است: .Bd -literal -offset 4n # Listen on port 30344 for TLS connections to any address. listen_address = *:30344(tls) # Path to the certificate authority bundle file in PEM format. tls_cacert = /etc/ssl/sudo/cacert.pem # Path to the server's certificate file in PEM format. tls_cert = /etc/ssl/sudo/certs/logsrvd_cert.pem # Path to the server's private key file in PEM format. tls_key = /etc/ssl/sudo/private/logsrvd_key.pem .Ed .Pp گواهی CA ریشه .Pq Pa cacert.pem باید روی سیستمی که .Nm را اجرا می‌کند نصب شده باشد. اگر احراز هویت همتا (peer authentication) در کلاینت فعال باشد، یک نسخه از .Pa cacert.pem باید در سیستم کلاینت نیز موجود باشد. .Sh "همچنین ببینید (SEE ALSO)" .Xr sudo.conf 5 , .Xr sudo_logsrv.proto 5 , .Xr sudo_logsrvd.conf 5 , .Xr sudoers 5 , .Xr sudo 8 , .Xr sudo_sendlog 8 , .Xr sudoreplay 8 .Sh "نویسندگان (AUTHORS)" افراد بسیاری در طول سال‌ها روی .Nm sudo کار کرده‌اند؛ این نگارش عمدتاً از کدهای نوشته‌شده توسط شخص زیر تشکیل شده است: .Bd -ragged -offset indent .An Todd C. Miller .Ed .Pp برای مشاهدهٔ فهرست کامل افرادی که در .Nm sudo مشارکت داشته‌اند، فایل CONTRIBUTORS.md را در توزیع .Nm sudo (https://www.sudo.ws/about/contributors) ببینید. .Sh "گزارش باگ‌ها (BUGS)" اگر فکر می‌کنید باگی در .Nm یافته‌اید، می‌توانید گزارش باگ را در پایگاه دادهٔ باگ sudo در https://bugzilla.sudo.ws ثبت کنید یا یک issue در https://github.com/sudo-project/sudo/issues باز نمایید. اگر ترجیح می‌دهید از ایمیل استفاده کنید، پیام‌ها می‌توانند به لیست پستی sudo-workers در https://www.sudo.ws/mailman/listinfo/sudo-workers (عمومی) یا (خصوصی) ارسال شوند. .Pp لطفاً آسیب‌پذیری‌های امنیتی را از طریق issueهای عمومی گیت‌هاب، Bugzilla یا لیست‌های پستی گزارش ندهید. در عوض، آن‌ها را از طریق ایمیل به ارسال نمایید. در صورت تمایل می‌توانید پیام خود را با استفاده از کلید PGP موجود در https://www.sudo.ws/dist/PGPKEYS رمزگذاری کنید. .Sh "پشتیبانی (SUPPORT)" پشتیبانی رایگان محدود از طریق لیست پستی کاربران sudo در دسترس است؛ برای عضویت یا جستجو در آرشیو نشانی https://www.sudo.ws/mailman/listinfo/sudo-users را ببینید. .Sh "سلب مسئولیت (DISCLAIMER)" .Nm sudo_logsrvd به‌صورت .Dq همان‌گونه که هست (AS IS) ارائه می‌شود و هرگونه ضمانت صریح یا ضمنی، شامل و نه محدود به ضمانت‌های ضمنی خریدوفروش و تناسب برای یک هدف خاص، سلب می‌شود. برای جزئیات کامل، فایل LICENSE.md توزیع‌شده با .Nm sudo یا نشانی https://www.sudo.ws/about/license را ملاحظه فرمایید.