| LR_ANONYMIZE.IN(1) | LogReport's Lire Documentation | LR_ANONYMIZE.IN(1) |
نام (NAME)
lr_anonymize - ناشناسسازی فایل ثبت وقایع (لاگفایل)
خلاصه دستور (SYNOPSIS)
lr_anonymize dumpfilestem
توضیحات (DESCRIPTION)
دستور lr_anonymize معمولاً هنگام ارسال لاگها به یک پاسخدهنده (responder) استفاده میشود. برای مثالهای کاربردی، به بخش «ارسال فایلهای گزارش ناشناسشده به پاسخدهنده» در فصل «استفاده از پاسخدهنده» در راهنمای کاربری Lire مراجعه کنید.
دستور lr_anonymize فایلی حاوی نشانیهای ایمیل، شمارههای IP و نامهای میزبان (معمولاً یک فایل لاگ از یک سرویس اینترنتی) را از ورودی استاندارد (stdin) میخواند و نسخه «ناشناسشده» این فایل را در خروجی استاندارد (stdout) چاپ میکند. این ابزار اطلاعات لازم برای بازگردانی هویت («هویتبخشی» یا deanonymize) فایل با استفاده از lr_deanonymize(1) را در ۵ پایگاه داده Berkeley DB ذخیره میکند؛ نام فایلهای نگهدارنده این پایگاههای داده با الحاق رشتههای 'inaddr'، 'maildomain'، 'email'، 'ip' و 'domain' به dumpfilestem ساخته میشود. dumpfilestem میتواند برای نمونه /tmp/dump، ../../var/dump یا dump باشد. فایلهای دیتابیس ایجاد شده در صورت یافتن فایلهای قدیمی، بدون اخطار روی آنها بازنویسی میشوند.
این اسکریپت فایلهای موقت میسازد. بهطور پیشفرض، این فایلها در /tmp ایجاد میشوند. کاربر میتواند با تنظیم متغیر محیطی TMPDIR این مسیر را بازنویسی کند.
ارتباط با lr_deanonymize (CONNECTION WITH lr_deanonymize)
هنگام اجرای:
$ lr_anonymize dump < log > log.anon $ lr_deanonymize dump < log.anon > log.new
آنگاه log و log.new محتوای یکسانی خواهند داشت (بهجز تفاوت در بزرگی و کوچکی حروف، که میتوانید با diff -i آن را بررسی کنید).
نکات (NOTES)
ما سعی کردهایم این اسکریپت را از نظر میزان مصرف حافظه بهینهسازی کنیم. این موضوع این اشکال را دارد که هنگام ناشناسسازی یک لاگفایل بزرگ، اجرای اسکریپت برای مدتی طول خواهد کشید.
ما این اسکریپت را روی یک فایل لاگ ۲۵ مگابایتی sendmail اجرا کردهایم.
مقادیر معمول در چنین شرایطی حدود ۲۵۰۰ کیلوبایت کل حافظه فیزیکی مصرفشده، و ۱۵ دقیقه زمان واقعی (real)، ۸ دقیقه زمان کاربر (user) و ۲۲ ثانیه زمان سیستم (systime) صرفشده روی سیستمی با ۶۴ مگابایت حافظه و یک پردازنده ۳۰۰ مگاهرتزی پنتیوم ۲ است. بازگردانی هویت این فایل ۱۱ دقیقه زمان واقعی، ۸ دقیقه زمان کاربر و ۱۷ ثانیه زمان سیستم برده است.
ما دامنههای ایمیل را در فایل تخلیه ذخیره میکنیم. این اطلاعات توسط lr_deanonymize(1) استفاده میشوند، در صورتی که نشانیهای ایمیل در فایل ورودی ما در فایلی که توسط lr_deanonymize(1) خوانده میشود به شکل تفکیکشده تکرار شوند؛ به این معنی که مثلاً joe.user@example.com هم بهصورت joe.user@example.com و هم بهصورت example.com در فایلی که قرار است هویتبخشی شود ظاهر گردد.
تمام اشیای تخلیهشده به حروف کوچک تبدیل میشوند.
پیشزمینه (BACKGROUND)
جهت سهولت، بخشی از سند rfc822 را نقل میکنیم:
SPACE = <ASCII SP, space> ; ( 40, 32.)
CTL = <any ASCII control ; ( 0- 37, 0.- 31.)
character and DEL> ; ( 177, 127.)
specials = "(" / ")" / "<" / ">" / "@" ; Must be in quoted-
/ "," / ";" / ":" / "\" / <"> ; string, to use
/ "." / "[" / "]" ; within a word.
atom = 1*<any CHAR except specials, SPACE and CTLs>
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
و بخشی از سند rfc 2181:
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).
سند rfc1123:
However, a valid host name can never have the dotted-decimal form #.#.#.#, since at least the highest-level component label will be alphabetic.
سند rfc819:
<domain> ::= <naming-domain> | <naming-domain> "." <domain> <naming-domain> ::= <simple-name> | <address> <simple-name> ::= <a> <ldh-str> <let-dig> <ldh-str> ::= <let-dig-hyp> | <let-dig-hyp> <ldh-str> <let-dig> ::= <a> | <d> <let-dig-hyp> ::= <a> | <d> | "-" <a> ::= any one of the 52 alphabetic characters A through Z in upper case and a through z in lower case <d> ::= any one of the ten digits 0 through 9
مثال (EXAMPLE)
یک «فایل لاگ» مانند:
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
به این صورت ناشناسسازی خواهد شد:
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
فایلهای تخلیه (dumps) چیزی شبیه به این خواهند بود:
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
اشکالات (BUGS)
ما نمیتوانیم فایلهای حاوی نامهای میزبان یا نشانیهای ایمیل در دامنه example.com، نامهای کاربری به صورت john.doe.<someletters> یا شمارههای IP در شبکه خصوصی تعریفشده در rfc 1918 یعنی 10.0.0.0 - 10.255.255.255 (پیشوند 10/8) را مدیریت کنیم.
ما رشتههای نقلقولشده ('quoted-string') در نشانیهای ایمیل را مدیریت نمیکنیم. ما مقادیر لفظی دامنه ('domain-literal') در دامنه نشانیهای ایمیل را مدیریت نمیکنیم.
ما 999.999.999.999 را به عنوان یک نشانی IP در نظر میگیریم: محدودیت 255 را بررسی نمیکنیم.
ما نشانیهای IP شبکه مانند 100.10.3 را به عنوان نشانی IP تلقی نمیکنیم. این موارد ناشناس نخواهند شد.
همچنین ببینید (SEE ALSO)
lr_deanonymize(1)، فایل README.lire-client در بسته توزیعی Lire.
نسخه (VERSION)
$Id: lr_anonymize.in,v 1.5 2006/07/23 13:16:32 vanbaal Exp $
حق نشر (COPYRIGHT)
حق نشر © 2000-2001 متعلق به Stichting LogReport Foundation LogReport@LogReport.org
این برنامه یک نرمافزار آزاد است؛ شما میتوانید آن را تحت شرایط «پروانه عمومی همگانی گنو» (GNU General Public License) طبق آنچه بنیاد نرمافزارهای آزاد منتشر کرده است، چه نگارش ۲ پروانه یا (به انتخاب خودتان) هر نگارش جدیدتر دیگری، بازتوزیع کرده یا تغییر دهید.
این برنامه با این امید توزیع شده است که مفید واقع شود، اما بدون هرگونه ضمانت؛ حتی ضمانت ضمنی قابل فروش بودن یا مناسب بودن برای یک مقصود خاص. برای جزئیات بیشتر به «پروانه عمومی همگانی گنو» مراجعه فرمایید.
شما باید یک نسخه از پروانه عمومی همگانی گنو را به همراه این برنامه دریافت کرده باشید (پرونده COPYING را ببینید)؛ در غیر این صورت، به نشانی http://www.gnu.org/copyleft/gpl.html مراجعه کنید.
نویسنده (AUTHOR)
Joost van Baal <joostvb@logreport.org>
| 2025-09-28 | Lire 2.1.1 |