| SUDO_LOGSRVD.CONF(5) | File Formats Manual | SUDO_LOGSRVD.CONF(5) |
نام (NAME)
sudo_logsrvd.conf —
پیکربندی
سرور ثبت
وقایع sudo (sudo_logsrvd)
توضیحات (DESCRIPTION)
پروندهٔ
sudo_logsrvd.conf برای
پیکربندی
سرور ثبت
وقایع
sudo_logsrvd
استفاده
میشود. این
پرونده از
قالبی به
سبک INI متشکل
از
بخشهایی
درون
براکتها و
جفتهای “key =
value” مربوط به
هر بخش در
زیر نام آن
بخش
استفاده
میکند.
بسته به
کلید،
مقادیر
ممکن است
اعداد
صحیح،
مقادیر
بولی یا
رشتهها
باشند. نام
بخشها و
کلیدها به
حروف بزرگ و
کوچک حساس
نیستند،
اما مقادیر
حساس
هستند.
علامت هش
(‘#’) برای
نشان دادن
توضیح
(کامنت)
استفاده
میشود. هم
نویسهٔ
کامنت و هم
هر متنی پس
از آن تا
پایان خط
نادیده
گرفته
میشوند.
خطوطی که با
نقطه
ویرگول
(‘;’) آغاز
میشوند
نیز نادیده
گرفته
میشوند.
خطوط
طولانی را
میتوان با
قرار دادن
یک بکاسلش
(‘\’) به
عنوان
آخرین
نویسه در خط
ادامه داد.
فاصلههای
خالی
ابتدای
خطوط حتی در
صورت
استفاده از
نویسهٔ
ادامهدهنده
حذف
میشوند.
بخش
مثالها
(EXAMPLES) شامل یک
نسخه از
پروندهٔ
پیشفرض
sudo_logsrvd.conf است.
بخشهای پیکربندی زیر شناخته میشوند:
- server
- relay
- iolog
- eventlog
- syslog
- logfile
هر بخش با جزئیات در ادامه شرح داده شده است.
server
بخش server نشانی و درگاهی را که سرور روی آن شنود خواهد کرد پیکربندی میکند. کلیدهای زیر شناخته میشوند:
- listen_address = host[:port][(tls)]
- نام میزبان
یا نشانی IP،
درگاه
اختیاری
برای شنود و
یک فلگ
اختیاری
امنیت لایه
انتقال (TLS)
درون
پرانتز.
میزبان میتواند یک نام میزبان، یک نشانی IPv4، یک نشانی IPv6 درون براکت یا مدخل نویسه عام ‘
*’ باشد. تنظیم میزبان روی ‘*’ باعث میشودsudo_logsrvdروی تمام رابطهای شبکهٔ پیکربندیشده شنود کند.در صورت وجود فلگ اختیاری tls،
sudo_logsrvdاتصال را با نسخهٔ 1.2 یا 1.3 پروتکل TLS امن خواهد کرد. نسخههای TLS پیش از 1.2 پشتیبانی نمیشوند. برای جزئیات مربوط به تولید کلیدها و گواهیهای TLS به sudo_logsrvd(8) مراجعه کنید.در صورت مشخص شدن درگاه، این مقدار میتواند یک شماره درگاه یا یک نام سرویس شناختهشده طبق پایگاه داده نام سرویسهای سیستم باشد. اگر درگاهی مشخص نشود، از درگاه 30343 برای اتصالات متنی ساده (plaintext) و از درگاه 30344 برای اتصالات TLS استفاده خواهد شد.
مقدار پیشفرض عبارت است از:
که روی تمام رابطهای شبکهٔ پیکربندیشده برای هر دو اتصال متنی ساده و TLS شنود خواهد کرد. چندین خط listen_address را میتوان برای شنود روی بیش از یک درگاه یا رابط تعیین کرد.listen_address = *:30343 listen_address = *:30344(tls)
- server_log = string
- محل ثبت
پیامهای
هشدار و
خطای سرور.
مقادیر
پشتیبانیشده
عبارتند از
none, stderr, syslog
یا یک نام
مسیر که با
نویسهٔ
‘
/’ آغاز شود. مقدار stderr تنها در صورت استفادهٔ همزمان با گزینهٔ-nمؤثر است. مقدار پیشفرض syslog است. - pid_file = path
- مسیر فایلی
که شامل
شناسه
فرایند (process ID)
برنامهٔ در
حال اجرای
sudo_logsrvdاست. اگر روی یک مقدار خالی تنظیم شود، یا اگرsudo_logsrvdبا گزینهٔ-nاجرا شود، هیچ pid_file ایجاد نخواهد شد. اگر pid_file به یک پیوند نمادین اشاره کند، نادیده گرفته خواهد شد. مقدار پیشفرض /run/sudo/sudo_logsrvd.pid است. - tcp_keepalive = boolean
- اگر روی true
تنظیم شود،
sudo_logsrvdگزینهٔ سوکت TCP keepalive را در اتصال کلاینت فعال خواهد کرد. این کار ارسال دورهای پیامهای keepalive به کلاینت را ممکن میسازد. اگر کلاینت در زمان مقرر به پیامی پاسخ ندهد، اتصال بسته خواهد شد. پیشفرض true است. - timeout = number
- مدت زمانی،
به ثانیه،
که
sudo_logsrvdمنتظر پاسخ کلاینت خواهد ماند. مقدار 0 مهلت زمانی (timeout) را غیرفعال میکند. مقدار پیشفرض 30 است. - tls_cacert = path
- مسیر فایل بسته مرجع صدور گواهی (CA bundle)، در قالب PEM، جهت استفاده به جای پایگاه داده پیشفرض مرجع صدور گواهی سیستم هنگام احراز هویت کلاینتها. حالت پیشفرض استفاده از /etc/ssl/sudo/cacert.pem در صورت وجود است، در غیر این صورت از پایگاه داده پیشفرض مرجع صدور گواهی سیستم استفاده میشود.
- tls_cert = path
- مسیر فایل گواهی سرور، در قالب PEM. مقدار پیشفرض /etc/ssl/sudo/certs/logsrvd_cert.pem است.
- tls_checkpeer = bool
- اگر روی true
تنظیم شود،
گواهیهای
کلاینت
توسط
sudo_logsrvdاعتبارسنجی خواهند شد؛ کلاینتهای بدون گواهی معتبر قادر به اتصال نخواهند بود. اگر روی false تنظیم شود، هیچ اعتبارسنجی روی گواهیهای کلاینت انجام نخواهد شد. اگر روی true باشد و گواهیهای کلاینت با استفاده از یک مرجع صدور گواهی خصوصی ایجاد شده باشند، تنظیم tls_cacert باید روی یک بسته CA حاوی گواهی CA که برای تولید گواهی کلاینت استفاده شده تنظیم گردد. مقدار پیشفرض false است. - tls_ciphers_v12 = string
- فهرستی از
مجموعههای
رمز (ciphers) برای
استفاده در
اتصالاتی
که تنها با TLS
نسخهٔ 1.2
ایمن
شدهاند،
جداشده با
دونقطه
‘
:’. برای جزئیات کامل بخش CIPHER LIST FORMAT در openssl-ciphers(1) را ببینید. مقدار پیشفرض “HIGH:!aNULL” است که متشکل از مجموعههای رمز رمزنگاری با طول کلید بزرگتر از 128 بیت و برخی مجموعههای رمز با کلیدهای 128 بیتی است. مجموعههای رمزی که احراز هویت ارائه نمیدهند مستثنی شدهاند. - tls_ciphers_v13 = string
- فهرستی از
مجموعههای
رمز برای
استفاده در
اتصالاتی
که تنها با TLS
نسخهٔ 1.3
ایمن
شدهاند،
جداشده با
دونقطه
‘
:’. مجموعههای رمز پشتیبانیشده به نگارش OpenSSL مورد استفاده بستگی دارند، اما باید شامل موارد زیر باشند:- TLS_AES_128_GCM_SHA256
- TLS_AES_256_GCM_SHA384
- TLS_CHACHA20_POLY1305_SHA256
- TLS_AES_128_CCM_SHA256
- TLS_AES_128_CCM_8_SHA256
مجموعه رمز پیشفرض “TLS_AES_256_GCM_SHA384” است.
- tls_dhparams = path
- مسیر فایلی
شامل
پارامترهای
سفارشی
دیفی-هلمن
در قالب PEM.
این فایل را
میتوان با
دستور زیر
ایجاد کرد:
openssl dhparam -out /etc/sudo_logsrvd_dhparams.pem 2048
بهطور پیشفرض،
sudo_logsrvdاز مقادیر پیشفرض OpenSSL برای تولید کلید دیفی-هلمن استفاده میکند. - tls_key = path
- مسیر فایل کلید خصوصی سرور، در قالب PEM. مقدار پیشفرض /etc/ssl/sudo/private/logsrvd_key.pem است.
- tls_verify = bool
- اگر روی true
تنظیم شود،
sudo_logsrvdگواهی خود را در زمان راهاندازی یا هنگام تغییر پیکربندی اعتبارسنجی خواهد کرد. اگر روی false تنظیم شود، هیچ راستیآزمایی روی گواهی سرور انجام نمیگیرد. هنگام استفاده از گواهیهای خودامضا بدون مرجع صدور گواهی، این تنظیم باید روی false قرار داده شود. مقدار پیشفرض true است.
relay
بخش relay میزبان و درگاه رلهٔ اختیاری logsrv را که سرور به آن متصل میشود پیکربندی میکند. کلیدهای پیکربندی TLS اختیاری هستند؛ بهطور پیشفرض کلیدهای متناظر در بخش server استفاده خواهند شد. این کلیدها تنها برای این در این بخش حضور دارند تا اتصال رله بتواند از مجموعهای متفاوت از پارامترهای TLS نسبت به سرور متصل به کلاینت استفاده نماید. کلیدهای زیر شناخته میشوند:
- connect_timeout = number
- مدت زمانی،
به ثانیه،
که
sudo_logsrvdمنتظر برقراری کامل اتصال به یک relay_host (به ادامه مراجعه کنید) خواهد ماند. پس از برقراری اتصال، تنظیم timeout مدت زمانی را کهsudo_logsrvdمنتظر پاسخ رله میماند کنترل میکند. مقدار 0 مهلت زمانی را غیرفعال میکند. مقدار پیشفرض 30 است. - relay_dir = path
- پوشهای که پیامهای لاگ قبل از ارسال به میزبان رله بهطور موقت در آن ذخیره میشوند. پیامها در قالب ارتباطی (wire format) مشخصشده توسط sudo_logsrv.proto(5) ذخیره میشوند. مقدار پیشفرض /var/log/sudo_logsrvd است.
- relay_host = host[:port][(tls)]
- نام میزبان
یا نشانی IP
رله، درگاه
اختیاری
برای اتصال
و یک فلگ
اختیاری
امنیت لایه
انتقال (TLS)
درون
پرانتز.
ساختار
نگارش
دقیقاً
مشابه listen_address
در بخش
server است
با یک
استثنا:
ساختار
نویسه عام
‘
*’ پشتیبانی نمیشود.هنگامی که این تنظیم فعال باشد، پیامهای ارسالی از کلاینت به جای ذخیرهٔ محلی، به یکی از میزبانهای رلهٔ مشخصشده فوروارد خواهند شد. میزبان host میتواند یک نمونه از
sudo_logsrvdیا سرور دیگری باشد که از پروتکل sudo_logsrv.proto(5) پشتیبانی میکند.اگر چندین خط relay_host تعیین شده باشد، از اولین میزبان رلهٔ در دسترس استفاده خواهد شد.
- retry_interval = number
- تعداد ثانیههایی که پس از بروز خطای اتصال، پیش از تلاش مجدد برای فوروارد یک پیام به یک میزبان رله باید منتظر ماند. مقدار پیشفرض 30 است.
- store_first = boolean
- اگر روی true
تنظیم شود،
sudo_logsrvdپیش از رله کردن لاگها، آنها را بهصورت محلی ذخیره میکند. پس از کامل شدن لاگ، اتصالی به میزبان رله باز شده و لاگ رله میشود. اگر اتصال شبکه پیش از انتقال کامل لاگ قطع شود، بعداً مجدداً ارسال خواهد شد. حالت پیشفرض، رله کردن همزمان و بیدرنگ (real-time) لاگها است. - tcp_keepalive = boolean
- اگر روی true
تنظیم شود،
sudo_logsrvdگزینهٔ سوکت TCP keepalive را روی اتصال رله فعال میکند. این کار ارسال دورهای پیامهای keepalive به سرور رله را فعال میسازد. اگر سرور رله در زمان مقرر به پیامی پاسخ ندهد، اتصال بسته خواهد شد. - timeout = number
- مدت زمانی،
به ثانیه،
که
sudo_logsrvdپس از برقراری موفقیتآمیز اتصال، منتظر پاسخ سرور رله خواهد ماند. مقدار 0 مهلت زمانی را غیرفعال میکند. مقدار پیشفرض 30 است. - tls_cacert = path
- مسیر فایل بسته مرجع صدور گواهی (CA bundle)، در قالب PEM، جهت استفاده به جای پایگاه داده پیشفرض مرجع صدور گواهی سیستم هنگام احراز هویت کلاینتها. حالت پیشفرض استفاده از مقدار مشخصشده در بخش server است، یا در صورت عدم تعیین، استفاده از پایگاه داده پیشفرض مرجع صدور گواهی سیستم.
- tls_cert = path
- مسیر فایل گواهی سرور، در قالب PEM. حالت پیشفرض استفاده از مقدار مشخصشده در بخش server است.
- tls_checkpeer = bool
- اگر روی true
تنظیم شود،
گواهی
میزبان رله
توسط
sudo_logsrvdاعتبارسنجی خواهد شد؛ اتصالات به یک رله بدون گواهی معتبر با شکست مواجه میشود. اگر روی false تنظیم شود، هیچ اعتبارسنجی روی گواهیهای رله انجام نمیشود. اگر روی true باشد و گواهیهای رله با استفاده از یک مرجع صدور گواهی خصوصی ایجاد شده باشند، تنظیم tls_cacert باید روی یک بسته CA حاوی گواهی CA که برای تولید گواهی رله استفاده شده تنظیم گردد. حالت پیشفرض استفاده از مقدار مشخصشده در بخش server است. - tls_ciphers_v12 = string
- فهرستی از
مجموعههای
رمز برای
استفاده در
اتصالاتی
که تنها با TLS
نسخهٔ 1.2
ایمن
شدهاند،
جداشده با
دونقطه
‘
:’. برای جزئیات کامل بخش CIPHER LIST FORMAT در openssl-ciphers(1) را ببینید. حالت پیشفرض استفاده از مقدار مشخصشده در بخش server است. - tls_ciphers_v13 = string
- فهرستی از
مجموعههای
رمز برای
استفاده در
اتصالاتی
که تنها با TLS
نسخهٔ 1.3
ایمن
شدهاند،
جداشده با
دونقطه
‘
:’. مجموعههای رمز پشتیبانیشده به نسخه OpenSSL مورد استفاده بستگی دارند؛ برای اطلاعات بیشتر بخش server را ببینید. حالت پیشفرض استفاده از مقدار مشخصشده در بخش server است. - tls_dhparams = path
- مسیر فایلی شامل پارامترهای سفارشی دیفی-هلمن در قالب PEM. حالت پیشفرض استفاده از مقدار مشخصشده در بخش server است.
- tls_key = path
- مسیر فایل کلید خصوصی سرور، در قالب PEM. حالت پیشفرض استفاده از مقدار مشخصشده در بخش server است.
- tls_verify = bool
- اگر روی true تنظیم شود، گواهی سرور مورد استفاده برای رله در زمان راهاندازی بررسی خواهد شد. اگر روی false تنظیم شود، هیچ راستیآزمایی روی گواهی سرور انجام نمیگیرد. هنگام استفاده از گواهیهای خودامضا بدون مرجع صدور گواهی، این تنظیم باید روی false قرار گیرد. حالت پیشفرض استفاده از مقدار مشخصشده در بخش server است.
iolog
بخش iolog پارامترهای لاگ ورودی/خروجی (I/O) را پیکربندی میکند. این تنظیمات مشابه پیکربندی I/O در sudoers(5) است. کلیدهای زیر شناخته میشوند:
- iolog_compress = boolean
- در صورت تنظیم، لاگهای ورودی/خروجی با استفاده از zlib فشردهسازی خواهند شد. فعال کردن فشردهسازی به دلیل بافر شدن دادهها ممکن است مشاهدهٔ همزمان لاگها را حین اجرای برنامه دشوارتر کند. مقدار پیشفرض false است.
- iolog_dir = path
- پوشه سطح
بالایی که
هنگام ساخت
نام مسیر
برای پوشه
لاگ
ورودی/خروجی
استفاده
میشود.
شماره
ترتیبی
نشست (session sequence number)،
در صورت
وجود، در
این پوشه
ذخیره
میشود.
مقدار
پیشفرض
/var/log/sudo-io است.
توالیهای گریز درصد (‘
%’) زیر پشتیبانی میشوند:- %{seq}
- به یک شماره ترتیبی در مبنای 36 که بهطور پیوسته افزایش مییابد (مانند 0100A5) باز میشود، که در آن هر دو رقم برای تشکیل یک پوشهٔ جدید به کار میروند، مانند 01/00/A5
- %{user}
- به نام کاربری فراخواننده دستور باز میشود
- %{group}
- به نام گروه واقعی (real group-ID) کاربر فراخواننده دستور باز میشود
- %{runas_user}
- به نام کاربری که دستور با هویت او اجرا میشود (مانند root) باز میشود
- %{runas_group}
- به نام گروه کاربری که دستور با هویت آن اجرا میشود (مانند wheel) باز میشود
- %{hostname}
- به نام میزبان محلی بدون نام دامنه باز میشود
- %{command}
- به نام پایهٔ دستوری که در حال اجرا است باز میشود
علاوه بر این، هرگونه توالی گریز که توسط تابع strftime(3) سیستم پشتیبانی شود بسط داده خواهد شد.
برای درج نویسهٔ واقعی ‘
%’ باید از رشتهٔ ‘%%’ استفاده شود. - iolog_file = path
- نام مسیر،
نسبت به iolog_dir
، که
لاگهای
ورودی/خروجی
در آن ذخیره
میشوند.
ممکن است
iolog_file شامل
مؤلفههای
پوشه باشد.
مقدار
پیشفرض
“%{seq}” است.
برای فهرستی از توالیهای گریز درصد (‘
%’) پشتیبانیشده، تنظیم iolog_dir در بالا را ببینید.علاوه بر توالیهای گریز، در نامهای مسیری که به شش یا تعداد بیشتری X ختم میشوند، نویسههای X با ترکیبی یکتا از ارقام و حروف، مشابه با عملکرد تابع mktemp(3) جایگزین خواهند شد.
اگر مسیر حاصل از پیوستن iolog_dir و iolog_file از قبل وجود داشته باشد، فایل لاگ ورودی/خروجی موجود کوتاه (truncate) و بازنویسی خواهد شد، مگر اینکه iolog_file به شش یا تعداد بیشتری X ختم شود.
- iolog_flush = boolean
- در صورت تنظیم، دادههای لاگ ورودی/خروجی پس از هر نوشتن به جای بافر شدن، روی دیسک تخلیه (flush) میشوند. این امکان مشاهدهٔ بیدرنگ لاگها را در حین اجرای برنامه فراهم میکند اما ممکن است اثربخشی فشردهسازی لاگ ورودی/خروجی را به میزان چشمگیری کاهش دهد. صرفنظر از این تنظیم، لاگهای ورودی/خروجی همیشه قبل از ارسال نقطهٔ تثبیت (commit point) به کلاینت تخلیه میشوند. مقدار پیشفرض true است.
- iolog_group = name
- نام گروهی که هنگام تنظیم شناسه گروه روی فایلها و پوشههای جدید لاگ ورودی/خروجی جستجو میشود. اگر iolog_group تنظیم نشده باشد، شناسه گروه اصلی کاربری که توسط iolog_user مشخص شده است استفاده میشود. اگر نه iolog_group و نه iolog_user تنظیم نشده باشند، فایلها و پوشههای لاگ ورودی/خروجی با شناسه گروه 0 ایجاد میشوند.
- iolog_mode = mode
- حالت دسترسی فایل برای ایجاد فایلهای لاگ ورودی/خروجی. بیتهای دسترسی خواندن و نوشتن برای مالک، گروه یا سایرین رعایت میشوند و سایر بیتها نادیده گرفته میشوند. مجوزهای فایل همواره شامل بیتهای خواندن و نوشتن مالک خواهند بود، حتی اگر در حالت مشخصشده وجود نداشته باشند. هنگام ایجاد پوشههای لاگ ورودی/خروجی، بیتهای پیمایش (اجرا) مطابق با بیتهای خواندن و نوشتن مشخصشده توسط iolog_mode اضافه میشوند. مقدار پیشفرض 0600 است.
- iolog_user = name
- نام کاربری که هنگام تنظیم مالک فایلها و پوشههای جدید لاگ ورودی/خروجی جستجو میشود. اگر iolog_group تنظیم شده باشد، به جای شناسه گروه اصلی کاربر استفاده خواهد شد. بهطور پیشفرض، فایلها و پوشههای لاگ ورودی/خروجی با شناسه کاربر و شناسه گروه 0 ایجاد میشوند.
- log_passwords = bool
- بیشتر
برنامههایی
که نیاز به
گذرواژهٔ
کاربر
دارند، قبل
از خواندن
گذرواژه
انعکاس (echo) را
غیرفعال
میکنند تا
از نمایش
متن آشکار
گذرواژه
روی صفحه
جلوگیری
شود. با این
وجود، اگر
ورودی
ترمینال در
حال ثبت
باشد،
گذرواژه
همچنان در
لاگ
ورودی/خروجی
وجود خواهد
داشت. اگر
log_passwords روی
false تنظیم
شود،
sudo_logsrvdتلاش خواهد کرد از ثبت گذرواژهها جلوگیری کند. این کار با استفاده از عبارتهای باقاعده در passprompt_regex برای تطبیق اعلان گذرواژه در بافر خروجی ترمینال انجام میگیرد. هنگام یافتن تطابق، نویسههای ورودی در لاگ ورودی/خروجی با ‘*’ جایگزین میشوند تا زمانی که نویسهٔ خط بعد (line feed) یا بازگشت به ابتدای خط (carriage return) در ورودی ترمینال یافت شود یا یک بافر خروجی ترمینال جدید دریافت گردد. با این حال، اگر برنامهای نویسهها را همزمان با تایپ کاربر نمایش دهد (مانندsudoهنگامی که گزینهٔ pwfeedback تنظیم شده باشد)، تنها اولین نویسهٔ گذرواژه در لاگ ورودی/خروجی جایگزین خواهد شد. مقدار پیشفرض true است. - maxseq = number
- حداکثر شماره ترتیبی که جایگزین توالی گریز “%{seq}” در فایل لاگ ورودی/خروجی میشود (برای اطلاعات بیشتر به توضیحات iolog_dir در بالا مراجعه کنید). اگرچه مقدار جایگزینشده برای “%{seq}” در مبنای 36 است، خود maxseq باید به صورت دهدهی بیان شود. مقادیر بزرگتر از 2176782336 (که متناظر با شماره ترتیبی “ZZZZZZ” در مبنای 36 است) بدون هشدار به 2176782336 محدود خواهند شد. مقدار پیشفرض 2176782336 است.
- passprompt_regex = string
- یک یا چند عبارت باقاعده گستردهٔ POSIX که برای تطبیق با اعلانهای گذرواژه در خروجی ترمینال در هنگام غیرفعال بودن log_passwords استفاده میشوند. به عنوان یک قابلیت تکمیلی، اگر عبارت باقاعده با “(?i)” آغاز شود، تطبیق به صورت غیرحساس به بزرگی و کوچکی حروف انجام خواهد شد. چندین تنظیم passprompt_regex را میتوان تعیین کرد. طول هر عبارت باقاعده حداکثر به 1024 نویسه محدود است. مقدار پیشفرض “[Pp]assword[: ]*” است.
eventlog
بخش eventlog نحوهٔ ثبت رویدادهای خطمشی امنیتی (و در صورت لزوم ثبت آنها) را پیکربندی میکند. کلیدهای زیر شناخته میشوند:
- log_type = string
- محل ثبت رویدادهای پذیرش (accept)، رد (reject) و هشدار (alert) گزارششده توسط خطمشی. مقادیر پشتیبانیشده عبارتند از syslog, logfile و none. مقدار پیشفرض syslog است.
- log_exit = boolean
- اگر روی true
تنظیم شود،
sudo_logsrvdهنگام خروج دستور یا پایان یافتن آن توسط یک سیگنال، رویدادی را ثبت خواهد کرد. پیشفرض false است. - log_format = string
- قالب ثبت
وقایع
رویداد.
قالبهای
لاگ
پشتیبانیشده
عبارتند از:
- json
- در حال
حاضر این
یک نام
مستعار
برای json_pretty
است. در
نگارش
آیندهٔ
sudo_logsrvd, مقدار json معادل json_compact خواهد بود. ورودیهای لاگ JSON شامل محتویات کامل پیامهای پذیرش، رد، خروج و هشدار هستند. - json_compact
- ثبت رویدادها در قالب JSON “فشرده” (minified). هر رویداد به صورت یک شیء JSON مجزا در یک خط بدون فاصلههای خالی اضافه نوشته میشود. به دلیل محدودیتهای پروتکل، رویدادهای JSON ارسالشده از طریق syslog ممکن است کوتاه شوند.
- json_pretty
- ثبت رویدادها در قالب JSON “خوانا” (pretty). هنگام ثبت در فایل، کل فایل به عنوان یک شیء JSON واحد متشکل از چندین رویداد تلقی میشود که هر رویداد چندین خط را در بر میگیرد. هنگام ثبت از طریق syslog, تفاوتی میان قالبهای json_pretty و json_compact وجود ندارد.
- sudo
- ثبت رویدادها در قالب سنتی به سبک sudo. برای جزئیات بیشتر بخش EVENT LOGGING در sudoers(5) را ببینید.
مقدار پیشفرض sudo است.
syslog
بخش syslog نحوهٔ ثبت وقایع از طریق syslog(3) را پیکربندی میکند. کلیدهای زیر شناخته میشوند:
- facility = string
- تسهیلات (facility)
سیلاگ در
صورت
استفاده از
syslog برای ثبت
وقایع.
پیشفرض
auth است.
تسهیلات syslog زیر پشتیبانی میشوند: authpriv (در صورت پشتیبانی سیستمعامل شما)، auth, daemon, user, local0, local1, local2, local3, local4, local5, local6 و local7.
- accept_priority = string
- اولویت syslog
مورد
استفاده
هنگامی که
کاربر مجاز
به اجرای
دستور است و
احراز هویت
موفقیتآمیز
بوده است.
پیشفرض
notice است.
اولویتهای syslog زیر پشتیبانی میشوند: alert, crit, debug, emerg, err, info, notice, warning و none. تنظیم آن روی مقدار none ثبت وقایع دستورات موفق را غیرفعال خواهد کرد.
- reject_priority = string
- اولویت syslog
مورد
استفاده
هنگامی که
کاربر مجاز
به اجرای
دستور نیست
یا احراز
هویت
ناموفق است.
پیشفرض
alert است.
برای فهرست اولویتهای syslog پشتیبانیشده، accept_priority را ببینید.
- alert_priority = string
- اولویت syslog
مورد
استفاده
برای
پیامهای
هشدار لاگ
رویداد
دریافتشده
از کلاینت.
پیشفرض
alert است.
برای فهرست اولویتهای syslog پشتیبانیشده، accept_priority را ببینید.
- maxlen = number
- روی بسیاری
از
سیستمها،
syslog(3)
دارای بافر
لاگ نسبتاً
کوچکی است.
سند IETF RFC 5424 بیان
میدارد که
سرورهای syslog
باید از
پیامهای
دستکم 480
بایتی
پشتیبانی
کنند و بهتر
است از
پیامهای
تا 2048 بایت
پشتیبانی
نمایند.
بهطور
پیشفرض،
sudo_logsrvdپیامهای لاگ تا 960 بایت ایجاد میکند که متناظر با پیادهسازی تاریخی syslog در BSD است که از یک بافر 1024 بایتی برای ذخیره پیام، تاریخ، نام میزبان و نام برنامه استفاده میکرد.جهت جلوگیری از کوتاه شدن پیامهای syslog، برنامهٔ
sudo_logsrvdپیامهای لاگ به سبک sudo را که بزرگتر از maxlen بایت باشند به چند بخش تقسیم خواهد کرد. هنگامی که پیامی تقسیم میشود، بخشهای اضافی شامل رشتهٔ “(command continued)” پس از نام کاربری و پیش از آرگومانهای ادامهیافته خط فرمان خواهند بود. ورودیهای لاگ با قالب JSON هرگز تقسیم نمیشوند و تحت تأثیر maxlen قرار نمیگیرند. - server_facility = string
- تسهیلات syslog در صورتی که از syslog برای پیامهای هشدار سرور استفاده شود. برای فهرستی از تسهیلات پشتیبانیشده به بالا مراجعه کنید. پیشفرض daemon است.
logfile
بخش logfile شامل تنظیمات مربوط به ثبت وقایع در یک فایل ساده (غیر از syslog) است. کلیدهای زیر شناخته میشوند:
- path = string
- مسیر فایل لاگ رویدادها. این مسیر باید کامل و مطلق بوده و با نویسهٔ ‘/’ آغاز شود. مقدار پیشفرض /var/log/sudo.log است.
- time_format = string
- رشتهٔ مورد
استفاده
هنگام
قالببندی
تاریخ و
زمان برای
لاگهای
رویداد
مبتنی بر
فایل.
قالببندی
از طریق
تابع
strftime(3)
سیستم
انجام
میشود،
بنابراین
هر توالی
گریزی که
توسط این
تابع
پشتیبانی
شود بسط
خواهد یافت.
مقدار
پیشفرض “%h %e
%T” است که
تاریخهایی
مانند “Oct 3 07:15:24”
را در
محلیسازی
(locale) ‘
C’ تولید میکند.
فایلها (FILES)
- /etc/sudo_logsrvd.conf
- فایل پیکربندی سرور ثبت وقایع sudo
مثالها (EXAMPLES)
#
# sudo logsrv daemon configuration
#
[server]
# The host name or IP address and port to listen on with an optional TLS
# flag. If no port is specified, port 30343 will be used for plaintext
# connections and port 30344 will be used to TLS connections.
# The following forms are accepted:
# listen_address = hostname(tls)
# listen_address = hostname:port(tls)
# listen_address = IPv4_address(tls)
# listen_address = IPv4_address:port(tls)
# listen_address = [IPv6_address](tls)
# listen_address = [IPv6_address]:port(tls)
#
# The (tls) suffix should be omitted for plaintext connections.
#
# Multiple listen_address settings may be specified.
# The default is to listen on all addresses.
#listen_address = *:30343
#listen_address = *:30344(tls)
# The file containing the ID of the running sudo_logsrvd process.
#pid_file = /run/sudo/sudo_logsrvd.pid
# Where to log server warnings: none, stderr, syslog, or a path name.
#server_log = syslog
# If true, enable the SO_KEEPALIVE socket option on client connections.
# Defaults to true.
#tcp_keepalive = true
# The amount of time, in seconds, the server will wait for the client to
# respond. A value of 0 will disable the timeout. The default value is 30.
#timeout = 30
# If true, the server will validate its own certificate at startup.
# Defaults to true.
#tls_verify = true
# If true, client certificates will be validated by the server;
# clients without a valid certificate will be unable to connect.
# By default, client certs are not checked.
#tls_checkpeer = false
# Path to a certificate authority bundle file in PEM format to use
# instead of the system's default certificate authority database.
#tls_cacert = /etc/ssl/sudo/cacert.pem
# Path to the server's certificate file in PEM format.
# Required for TLS connections.
#tls_cert = /etc/ssl/sudo/certs/logsrvd_cert.pem
# Path to the server's private key file in PEM format.
# Required for TLS connections.
#tls_key = /etc/ssl/sudo/private/logsrvd_key.pem
# TLS cipher list (see "CIPHER LIST FORMAT" in the openssl-ciphers manual).
# This setting is only effective if the negotiated protocol is TLS version
# 1.2. The default cipher list is HIGH:!aNULL.
#tls_ciphers_v12 = HIGH:!aNULL
# TLS cipher list if the negotiated protocol is TLS version 1.3.
# The default cipher list is TLS_AES_256_GCM_SHA384.
#tls_ciphers_v13 = TLS_AES_256_GCM_SHA384
# Path to the Diffie-Hellman parameter file in PEM format.
# If not set, the server will use the OpenSSL defaults.
#tls_dhparams = /etc/ssl/sudo/logsrvd_dhparams.pem
[relay]
# The host name or IP address and port to send logs to in relay mode.
# The syntax is identical to listen_address with the exception of
# the wild card ('*') syntax. When this setting is enabled, logs will
# be relayed to the specified host instead of being stored locally.
# This setting is not enabled by default.
#relay_host = relayhost.dom.ain
#relay_host = relayhost.dom.ain(tls)
# The amount of time, in seconds, the server will wait for a connection
# to the relay server to complete. A value of 0 will disable the timeout.
# The default value is 30.
#connect_timeout = 30
# The directory to store messages in before they are sent to the relay.
# Messages are stored in wire format.
# The default value is /var/log/sudo_logsrvd.
#relay_dir = /var/log/sudo_logsrvd
# The number of seconds to wait after a connection error before
# making a new attempt to forward a message to a relay host.
# The default value is 30.
#retry_interval = 30
# Whether to store the log before relaying it. If true, enable store
# and forward mode. If false, the client connection is immediately
# relayed. Defaults to false.
#store_first = true
# If true, enable the SO_KEEPALIVE socket option on relay connections.
# Defaults to true.
#tcp_keepalive = true
# The amount of time, in seconds, the server will wait for the relay to
# respond. A value of 0 will disable the timeout. The default value is 30.
#timeout = 30
# If true, the server's relay certificate will be verified at startup.
# The default is to use the value in the [server] section.
#tls_verify = true
# Whether to verify the relay's certificate for TLS connections.
# The default is to use the value in the [server] section.
#tls_checkpeer = false
# Path to a certificate authority bundle file in PEM format to use
# instead of the system's default certificate authority database.
# The default is to use the value in the [server] section.
#tls_cacert = /etc/ssl/sudo/cacert.pem
# Path to the server's certificate file in PEM format.
# The default is to use the certificate in the [server] section.
#tls_cert = /etc/ssl/sudo/certs/logsrvd_cert.pem
# Path to the server's private key file in PEM format.
# The default is to use the key in the [server] section.
#tls_key = /etc/ssl/sudo/private/logsrvd_key.pem
# TLS cipher list (see "CIPHER LIST FORMAT" in the openssl-ciphers manual).
# this setting is only effective if the negotiated protocol is TLS version
# 1.2. The default is to use the value in the [server] section.
#tls_ciphers_v12 = HIGH:!aNULL
# TLS cipher list if the negotiated protocol is TLS version 1.3.
# The default is to use the value in the [server] section.
#tls_ciphers_v13 = TLS_AES_256_GCM_SHA384
# Path to the Diffie-Hellman parameter file in PEM format.
# The default is to use the value in the [server] section.
#tls_dhparams = /etc/ssl/sudo/logsrvd_dhparams.pem
[iolog]
# The top-level directory to use when constructing the path name for the
# I/O log directory. The session sequence number, if any, is stored here.
#iolog_dir = /var/log/sudo-io
# The path name, relative to iolog_dir, in which to store I/O logs.
# It is possible for iolog_file to contain directory components.
#iolog_file = %{seq}
# If set, I/O logs will be compressed using zlib. Enabling compression can
# make it harder to view the logs in real-time as the program is executing.
#iolog_compress = false
# If set, I/O log data is flushed to disk after each write instead of
# buffering it. This makes it possible to view the logs in real-time
# as the program is executing but reduces the effectiveness of compression.
#iolog_flush = true
# The group to use when creating new I/O log files and directories.
# If iolog_group is not set, the primary group-ID of the user specified
# by iolog_user is used. If neither iolog_group nor iolog_user
# are set, I/O log files and directories are created with group-ID 0.
#iolog_group = wheel
# The user to use when setting the user-ID and group-ID of new I/O
# log files and directories. If iolog_group is set, it will be used
# instead of the user's primary group-ID. By default, I/O log files
# and directories are created with user and group-ID 0.
#iolog_user = root
# The file mode to use when creating I/O log files. The file permissions
# will always include the owner read and write bits, even if they are
# not present in the specified mode. When creating I/O log directories,
# search (execute) bits are added to match the read and write bits
# specified by iolog_mode.
#iolog_mode = 0600
# If disabled, sudo_logsrvd will attempt to avoid logging plaintext
# password in the terminal input using passprompt_regex.
#log_passwords = true
# The maximum sequence number that will be substituted for the "%{seq}"
# escape in the I/O log file. While the value substituted for "%{seq}"
# is in base 36, maxseq itself should be expressed in decimal. Values
# larger than 2176782336 (which corresponds to the base 36 sequence
# number "ZZZZZZ") will be silently truncated to 2176782336.
#maxseq = 2176782336
# One or more POSIX extended regular expressions used to match
# password prompts in the terminal output when log_passwords is
# disabled. Multiple passprompt_regex settings may be specified.
#passprompt_regex = [Pp]assword[: ]*
#passprompt_regex = [Pp]assword for [a-z0-9]+: *
[eventlog]
# Where to log accept, reject, exit, and alert events.
# Accepted values are syslog, logfile, or none.
# Defaults to syslog
#log_type = syslog
# Whether to log an event when a command exits or is terminated by a signal.
# Defaults to false
#log_exit = true
# Event log format.
# Currently only sudo-style event logs are supported.
#log_format = sudo
[syslog]
# The maximum length of a syslog payload.
# On many systems, syslog(3) has a relatively small log buffer.
# IETF RFC 5424 states that syslog servers must support messages
# of at least 480 bytes and should support messages up to 2048 bytes.
# Messages larger than this value will be split into multiple messages.
#maxlen = 960
# The syslog facility to use for event log messages.
# The following syslog facilities are supported: authpriv (if your OS
# supports it), auth, daemon, user, local0, local1, local2, local3,
# local4, local5, local6, and local7.
#facility = auth
# Syslog priority to use for event log accept messages, when the command
# is allowed by the security policy. The following syslog priorities are
# supported: alert, crit, debug, emerg, err, info, notice, warning, none.
#accept_priority = notice
# Syslog priority to use for event log reject messages, when the command
# is not allowed by the security policy.
#reject_priority = alert
# Syslog priority to use for event log alert messages reported by the
# client.
#alert_priority = alert
# The syslog facility to use for server warning messages.
# Defaults to daemon.
#server_facility = daemon
[logfile]
# The path to the file-based event log.
# This path must be fully-qualified and start with a '/' character.
#path = /var/log/sudo.log
# The format string used when formatting the date and time for
# file-based event logs. Formatting is performed via strftime(3) so
# any format string supported by that function is allowed.
#time_format = %h %e %T
همچنین ببینید (SEE ALSO)
strftime(3), sudo.conf(5), sudoers(5), sudo(8), sudo_logsrvd(8)
نویسندگان (AUTHORS)
افراد
بسیاری در
طول سالها
روی sudo
کار
کردهاند؛
این نگارش
عمدتاً از
کدهای
نوشتهشده
توسط افراد
زیر تشکیل
شده است:
برای
مشاهده
فهرست کامل
افرادی که
در sudo
مشارکت
داشتهاند،
فایل CONTRIBUTORS.md را
در توزیع
sudo (https://www.sudo.ws/about/contributors)
ببینید.
گزارش باگها (BUGS)
اگر فکر
میکنید
باگی در
sudo_logsrvd.conf
یافتهاید،
میتوانید
یک گزارش
اشکال در
پایگاه
داده
اشکالات sudo
در https://bugzilla.sudo.ws ثبت
کنید یا یک
مشکل در
https://github.com/sudo-project/sudo/issues باز
نمایید. اگر
ترجیح
میدهید از
رایانامه
استفاده
کنید،
پیامها
میتوانند
به فهرست
پستی sudo-workers در
https://www.sudo.ws/mailman/listinfo/sudo-workers
(عمومی) یا به
<sudo@sudo.ws> (خصوصی)
ارسال
شوند.
لطفاً آسیبپذیریهای امنیتی را از طریق مشکلات عمومی گیتهاب، پایگاه Bugzilla یا فهرستهای پستی گزارش ندهید. در عوض، آنها را از طریق رایانامه به <Todd.Miller@sudo.ws> ارسال نمایید. در صورت تمایل میتوانید پیام خود را با استفاده از کلید PGP موجود در https://www.sudo.ws/dist/PGPKEYS رمزگذاری کنید.
پشتیبانی (SUPPORT)
پشتیبانی رایگان محدود از طریق فهرست پستی sudo-users در دسترس است، برای اشتراک یا جستجو در بایگانی نشانی https://www.sudo.ws/mailman/listinfo/sudo-users را ببینید.
سلب مسئولیت (DISCLAIMER)
sudo
بهصورت
“همانی که
هست (AS IS)”
ارائه
میشود و
هرگونه
ضمانت صریح
یا ضمنی، از
جمله، اما
نه محدود
به،
ضمانتهای
ضمنی خرید و
فروش و
تناسب برای
یک هدف خاص
رد میشود.
برای
جزئیات
کامل فایل LICENSE.md
توزیعشده
با sudo یا
نشانی https://www.sudo.ws/about/license
را ملاحظه
فرمایید.
| March 9, 2024 | Sudo 1.9.17p2 |