.\" -*- mode: troff; coding: utf-8 -*- .\" Automatically generated by Pod::Man v6.0.2 (Pod::Simple 3.45) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>. .ie n \{\ . ds C` "" . ds C' "" 'br\} .el\{\ . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Required to disable full justification in groff 1.23.0. .if n .ds AD l .\" ======================================================================== .\" .IX Title "LR_ANONYMIZE.IN 1" .TH LR_ANONYMIZE.IN 1 2025-09-28 "Lire 2.1.1" "LogReport's Lire Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "نام (NAME)" lr_anonymize \- ناشناس‌سازی فایل ثبت وقایع (لاگ‌فایل) .SH "خلاصه دستور (SYNOPSIS)" .IX Header "SYNOPSIS" \&\fBlr_anonymize\fR \fIdumpfilestem\fR .SH "توضیحات (DESCRIPTION)" .IX Header "DESCRIPTION" دستور \&\fBlr_anonymize\fR معمولاً هنگام ارسال لاگ‌ها به یک پاسخ‌دهنده (responder) استفاده می‌شود. برای مثال‌های کاربردی، به بخش «ارسال فایل‌های گزارش ناشناس‌شده به پاسخ‌دهنده» در فصل «استفاده از پاسخ‌دهنده» در راهنمای کاربری Lire مراجعه کنید. .PP دستور \&\fBlr_anonymize\fR فایلی حاوی نشانی‌های ایمیل، شماره‌های IP و نام‌های میزبان (معمولاً یک فایل لاگ از یک سرویس اینترنتی) را از ورودی استاندارد (stdin) می‌خواند و نسخه «ناشناس‌شده» این فایل را در خروجی استاندارد (stdout) چاپ می‌کند. این ابزار اطلاعات لازم برای بازگردانی هویت («هویت‌بخشی» یا deanonymize) فایل با استفاده از \&\fBlr_deanonymize\fR\|(1) را در ۵ پایگاه داده Berkeley DB ذخیره می‌کند؛ نام فایل‌های نگهدارنده این پایگاه‌های داده با الحاق رشته‌های \*(Aqinaddr\*(Aq، \*(Aqmaildomain\*(Aq، \*(Aqemail\*(Aq، \*(Aqip\*(Aq و \*(Aqdomain\*(Aq به \&\fIdumpfilestem\fR ساخته می‌شود. \&\fIdumpfilestem\fR می‌تواند برای نمونه /tmp/dump، ../../var/dump یا dump باشد. فایل‌های دیتابیس ایجاد شده در صورت یافتن فایل‌های قدیمی، بدون اخطار روی آن‌ها بازنویسی می‌شوند. .PP این اسکریپت فایل‌های موقت می‌سازد. به‌طور پیش‌فرض، این فایل‌ها در /tmp ایجاد می‌شوند. کاربر می‌تواند با تنظیم متغیر محیطی TMPDIR این مسیر را بازنویسی کند. .SH "ارتباط با lr_deanonymize (CONNECTION WITH lr_deanonymize)" .IX Header "CONNECTION WITH lr_deanonymize" هنگام اجرای: .PP .Vb 2 \& $ lr_anonymize dump < log > log.anon \& $ lr_deanonymize dump < log.anon > log.new .Ve .PP آنگاه log و log.new محتوای یکسانی خواهند داشت (به‌جز تفاوت در بزرگی و کوچکی حروف، که می‌توانید با \&\fBdiff \-i\fR آن را بررسی کنید). .SH "نکات (NOTES)" .IX Header "NOTES" ما سعی کرده‌ایم این اسکریپت را از نظر میزان مصرف حافظه بهینه‌سازی کنیم. این موضوع این اشکال را دارد که هنگام ناشناس‌سازی یک لاگ‌فایل بزرگ، اجرای اسکریپت برای مدتی طول خواهد کشید. .PP ما این اسکریپت را روی یک فایل لاگ ۲۵ مگابایتی sendmail اجرا کرده‌ایم. .PP مقادیر معمول در چنین شرایطی حدود ۲۵۰۰ کیلوبایت کل حافظه فیزیکی مصرف‌شده، و ۱۵ دقیقه زمان واقعی (real)، ۸ دقیقه زمان کاربر (user) و ۲۲ ثانیه زمان سیستم (systime) صرف‌شده روی سیستمی با ۶۴ مگابایت حافظه و یک پردازنده ۳۰۰ مگاهرتزی پنتیوم ۲ است. بازگردانی هویت این فایل ۱۱ دقیقه زمان واقعی، ۸ دقیقه زمان کاربر و ۱۷ ثانیه زمان سیستم برده است. .PP ما دامنه‌های ایمیل را در فایل تخلیه ذخیره می‌کنیم. این اطلاعات توسط \&\fBlr_deanonymize\fR\|(1) استفاده می‌شوند، در صورتی که نشانی‌های ایمیل در فایل ورودی ما در فایلی که توسط \&\fBlr_deanonymize\fR\|(1) خوانده می‌شود به شکل تفکیک‌شده تکرار شوند؛ به این معنی که مثلاً joe.user@example.com هم به‌صورت joe.user@example.com و هم به‌صورت example.com در فایلی که قرار است هویت‌بخشی شود ظاهر گردد. .PP تمام اشیای تخلیه‌شده به حروف کوچک تبدیل می‌شوند. .SH "پیش‌زمینه (BACKGROUND)" .IX Header "BACKGROUND" جهت سهولت، بخشی از سند rfc822 را نقل می‌کنیم: .PP .Vb 10 \& SPACE = ; ( 40, 32.) \& CTL = ; ( 177, 127.) \& specials = "(" / ")" / "<" / ">" / "@" ; Must be in quoted\- \& / "," / ";" / ":" / "\e" / <"> ; string, to use \& / "." / "[" / "]" ; within a word. \& atom = 1* \& quoted\-string = <"> *(qtext/quoted\-pair) <">; Regular qtext or \& ; quoted chars. \& word = atom / quoted\-string \& domain\-ref = atom ; symbolic reference \& domain\-literal = "[" *(dtext / quoted\-pair) "]" \& sub\-domain = domain\-ref / domain\-literal \& domain = sub\-domain *("." sub\-domain) \& local\-part = word *("." word) ; uninterpreted \& ; case\-preserved \& addr\-spec = local\-part "@" domain ; global address .Ve .PP و بخشی از سند rfc 2181: .PP .Vb 5 \& The DNS itself places only one restriction on the particular labels \& that can be used to identify resource records. That one restriction \& relates to the length of the label and the full name. The length of \& any one label is limited to between 1 and 63 octets. A full domain \& name is limited to 255 octets (including the separators). .Ve .PP سند rfc1123: .PP .Vb 3 \& However, a valid host name can never \& have the dotted\-decimal form #.#.#.#, since at least the \& highest\-level component label will be alphabetic. .Ve .PP سند rfc819: .PP .Vb 9 \& ::= | "." \& ::= |
\& ::= \& ::= | \& ::= | \& ::= | | "\-" \& ::= any one of the 52 alphabetic characters A through Z in upper \& case and a through z in lower case \& ::= any one of the ten digits 0 through 9 .Ve .SH "مثال (EXAMPLE)" .IX Header "EXAMPLE" یک «فایل لاگ» مانند: .PP .Vb 8 \& blaat fkrf 1.2.3.4.in\-addr.arpa] pietje@bigcompany.com bla 1 2 3 lj;agas;gag \& blaat 1.2.3.4 fkrf 3.2.3.4.in\-addr.arpa] bla 1 www.hotsex.com 2 3 lj;agas;gag \& jan@blaat.frut.com agagag \& blaat fkrf 4.2.3.4.in\-addr.arpa] bla pietje@bigcompany.com www.hotsex.com \& 234.34.2.0 jan@blaat.frut.com 4.2.3.4.in\-addr.arpa1 2 3 lj;agas;gag \& blaat fkrf tweede 3.2.3.4.in\-addr.arpa] bla 1.2.3.4 1 blablabla.com \& 2 mdcc.cx \& 3 lj;agas;gag .Ve .PP به این صورت ناشناس‌سازی خواهد شد: .PP .Vb 8 \& blaat fkrf 1.0.0.10.in\-addr.arpa] john.doe.1@example.com bla 1 2 3 lj;agas;gag \& blaat 10.0.0.1 fkrf 2.0.0.10.in\-addr.arpa] bla 1 1.example.com 2 3 lj;agas;gag \& john.doe.2@example.com agagag \& blaat fkrf 3.0.0.10.in\-addr.arpa] bla john.doe.1@example.com 1.example.com \& 10.0.0.2 john.doe.2@example.com 3.0.0.10.in\-addr.arpa1 2 3 lj;agas;gag \& blaat fkrf tweede 2.0.0.10.in\-addr.arpa] bla 10.0.0.1 1 2.example.com \& 2 3.example.com \& 3 lj;agas;gag .Ve .PP فایل‌های تخلیه (dumps) چیزی شبیه به این خواهند بود: .PP .Vb 10 \& ip 234.34.2.0 10.0.0.2 \& ip 1.2.3.4 10.0.0.1 \& inaddr 3.2.3.4.in\-addr.arpa 2.0.0.10.in\-addr.arpa \& inaddr 1.2.3.4.in\-addr.arpa 1.0.0.10.in\-addr.arpa \& inaddr 4.2.3.4.in\-addr.arpa 3.0.0.10.in\-addr.arpa \& domain mdcc.cx 3.example.com \& domain blablabla.com 2.example.com \& domain www.hotsex.com 1.example.com \& email jan@blaat.frut.com john.doe.2@example.com \& email pietje@bigcompany.com john.doe.1@example.com .Ve .SH "اشکالات (BUGS)" .IX Header "BUGS" ما نمی‌توانیم فایل‌های حاوی نام‌های میزبان یا نشانی‌های ایمیل در دامنه example.com، نام‌های کاربری به صورت john.doe. یا شماره‌های IP در شبکه خصوصی تعریف‌شده در rfc 1918 یعنی 10.0.0.0 \- 10.255.255.255 (پیشوند 10/8) را مدیریت کنیم. .PP ما رشته‌های نقل‌قول‌شده (\*(Aqquoted-string\*(Aq) در نشانی‌های ایمیل را مدیریت نمی‌کنیم. ما مقادیر لفظی دامنه (\*(Aqdomain-literal\*(Aq) در دامنه نشانی‌های ایمیل را مدیریت نمی‌کنیم. .PP ما 999.999.999.999 را به عنوان یک نشانی IP در نظر می‌گیریم: محدودیت 255 را بررسی نمی‌کنیم. .PP ما نشانی‌های IP شبکه مانند 100.10.3 را به عنوان نشانی IP تلقی نمی‌کنیم. این موارد ناشناس \&\fIنخواهند\fR شد. .SH "همچنین ببینید (SEE ALSO)" .IX Header "SEE ALSO" \&\fBlr_deanonymize\fR\|(1)، فایل README.lire\-client در بسته توزیعی Lire. .SH "نسخه (VERSION)" .IX Header "VERSION" \&\f(CW$Id:\fR lr_anonymize.in,v 1.5 2006/07/23 13:16:32 vanbaal Exp $ .SH "حق نشر (COPYRIGHT)" .IX Header "COPYRIGHT" حق نشر \(co 2000\-2001 متعلق به Stichting LogReport Foundation LogReport@LogReport.org .PP این برنامه یک نرم‌افزار آزاد است؛ شما می‌توانید آن را تحت شرایط «پروانه عمومی همگانی گنو» (GNU General Public License) طبق آنچه بنیاد نرم‌افزارهای آزاد منتشر کرده است، چه نگارش ۲ پروانه یا (به انتخاب خودتان) هر نگارش جدیدتر دیگری، بازتوزیع کرده یا تغییر دهید. .PP این برنامه با این امید توزیع شده است که مفید واقع شود، اما بدون هرگونه ضمانت؛ حتی ضمانت ضمنی قابل فروش بودن یا مناسب بودن برای یک مقصود خاص. برای جزئیات بیشتر به «پروانه عمومی همگانی گنو» مراجعه فرمایید. .PP شما باید یک نسخه از پروانه عمومی همگانی گنو را به همراه این برنامه دریافت کرده باشید (پرونده COPYING را ببینید)؛ در غیر این صورت، به نشانی مراجعه کنید. .SH "نویسنده (AUTHOR)" .IX Header "AUTHOR" Joost van Baal