| PERL-NOCEM(8) | InterNetNews Documentation | PERL-NOCEM(8) |
نام (NAME)
perl-nocem - یک پیادهسازی NoCeM-on-spool برای INN 2.x
خلاصه دستور (SYNOPSIS)
perl-nocem [-hlu] [-b directory] [-c filename] [-g command] [-G command] [-i filename] [-k keyring] [-v level]
توضیحات (DESCRIPTION)
پروتکل NoCeM (که No See 'Em تلفظ میشود) پروتکلی است که به اشخاص ثالث احرازهویتشده امکان میدهد اعلانهایی صادر کنند که میتوان از آنها برای لغو مقالات ناخواسته (مانند هرزنامهها و مقالاتی در گروههای خبری دارای ناظر که توسط ناظران آنها تأیید نشدهاند) استفاده کرد. این پروتکل همچنین میتواند توسط خوانندگان به عنوان یک فایل حذفیات شخص ثالث (third-party killfile) استفاده شود. هدف از این پروتکل جایگزینی نهایی پروتکل پیامهای لغو شخص ثالث است؛ پیامهای لغوی که به دلیل عدم احراز هویت (برخلاف اعلانهای NoCeM) به سادگی قابل جعل هستند.
برنامهٔ perl-nocem اعلانهای لغو مقالات شخص ثالث و دارای امضای PGP را پردازش میکند. این امکان وجود دارد که تنها مجموعهٔ منتخبی از اعلانهای NoCeM پذیرفته و اجرا شوند، نه همهٔ آنها. شما میتوانید در پروندهٔ nocem.ctl واقع در pathetc فهرست صادرکنندگان مورد اعتماد NoCeM را پیکربندی کرده و کلیدهای عمومی PGP مربوطه را به جاکلیدی (keyring) NoCeM خود اضافه کنید (بهطور پیشفرض هیچ کلید PGPای نصب نشده است، بنابراین به هیچکس اعتماد نمیشود). تصمیمگیری در مورد پذیرش اعلانهای آنها، بر اساس معیارهایی که استفاده میکنند، به عهدهٔ شماست. توصیه میشود که بهطور منظم به ثبت رسمی NoCeM به نشانی https://rosalind.home.xs4all.nl/nocemreg/nocemreg.html مراجعه کنید تا صادرکنندگان جدید احتمالی NoCeM را برای افزودن بررسی کرده و خلاصهای از خطمشی آنها را مشاهده نمایید. خلاصهٔ روزانهٔ پیامهای NoCeM ارسالشده در نشانی https://www.novabbs.com/SEARCH/search_nocem.php?stats=daily نیز ممکن است مفید باشد.
برنامهٔ perl-nocem در ورودی استاندارد خود نشانههای ذخیرهسازی (storage tokens) یا نامهای پرونده را انتظار دارد. سپس مقالهٔ مربوطه را خوانده و پردازش میکند. در صورتی که امکانات syslog در دسترس نباشد یا پرچم -l بهطور صریح استفاده شده باشد، تمام پیامهای وضعیت را به پروندهٔ perl-nocem.log در pathlog اضافه میکند؛ در غیر این صورت، از امکانات syslog استفاده میشود که در این حالت پیامهای وضعیت به پروندهای که معمولاً news.notice در pathlog نام دارد، افزوده میشوند. (برخی از لاگها فقط در صورتی نوشته میشوند که سطح دیباگ برای ثبت از طریق syslog تنظیم شده باشد.)
پیکربندی (CONFIGURATION)
راهاندازی پردازش اعلانهای NoCeM آسان است:
- 1.
- در صورت عدم
نصب قبلی، GnuPG
یا یک
پیادهسازی
معادل از
استاندارد
OpenPGP را نصب
کنید تا
بتوانید
امضای
پیامهای NoCeM
را
راستیآزمایی
نمایید. این
بسته
برنامههای
gpg و gpgv را
فراهم
میکند. اگر
GnuPG در زمان
پیکربندی INN
از قبل نصب
بوده باشد،
مسیرهای
این
برنامهها
در نظر
گرفته
شدهاند. در
غیر این
صورت،
میتوانید
از
پرچمهای -g
و -G برای
تعیین (یا
حتی
جایگزینی)
دستوراتی
که perl-nocem برای
اجرای این
برنامهها
استفاده
میکند
بهره ببرید.
همهٔ صادرکنندگان NoCeM که هنوز فعال هستند از کلیدهای PGP نسبتاً مدرنی استفاده میکنند که توسط هر دو نسخهٔ 1.x و 2.x نرمافزار GnuPG پذیرفته میشوند. دیگر نیازی به استفادهٔ صریح از gpg1 برای پردازش اعلانهای NoCeM نیست.
- 2.
- کلیدهای
عمومی
صادرکنندگان
NoCeM مورد
اعتماد خود
را وارد (import)
کنید تا
اصالت
اعلانهای
آنها
بررسی شود.
میتوانید
دستور زیر
را اجرا
کنید:
gpg --no-default-keyring --allow-non-selfsigned-uid \ --primary-keyring <pathetc>/pgp/ncmring.gpg --no-options \ --no-permission-warning --batch --import <key-file> chmod 644 <pathetc>/pgp/ncmring.gpgکه در آن <pathetc> مقدار پارامتر pathetc تنظیمشده در inn.conf است و <key-file> پروندهٔ حاوی کلید(های) عمومی برای وارد کردن است. جاکلیدی بهطور پیشفرض در <pathetc>/pgp/ncmring.gpg قرار دارد؛ شما تنها باید پیش از استفاده از gpg دایرکتوری <pathetc>/pgp را ایجاد کنید (برنامه بهطور خودکار پروندهٔ ncmring.gpg را ایجاد خواهد کرد) و مطمئن شوید که کاربر news پس از ایجاد، دسترسی خواندن این پرونده را دارد. میتوانید از مکان و نام پروندهٔ دیگری برای جاکلیدی استفاده کنید و سپس perl-nocem را با پرچم -k اجرا نمایید.
کلیدهای عمومی صادرکنندگان NoCeM را میتوان در وبگاه The NoCeM Registry به نشانی https://rosalind.home.xs4all.nl/nocemreg/nocemreg.html یافت، جایی که حتی میتوانید یک پروندهٔ یکتا حاوی تمامی کلیدهای عمومی را بارگیری کنید.
- 3.
- پروندهٔ
پیکربندی
nocem.ctl را در pathetc
ایجاد یا
بهروزرسانی
کنید تا
صادرکنندگان
NoCeM و انواع
اعلانهایی
را که
میخواهید
دنبال کنید
مشخص
نمایید. این
پروندهٔ
مجوزها
شامل خطوطی
مانند زیر
است:
bleachbot@httrack.com:spam,site pgpmoose@killfile.org:pgpmoose-forged-moderation
این کار تمام مقالاتی را که صادرکننده (بخش اول خط، قبل از دو نقطه ":") برای آنها اعلانهای NoCeM از نوعی صادر کرده که در فهرست انواع جداشده با ویرگولِ بعد از دو نقطه وجود دارد، حذف خواهد کرد (استفاده از "*" امکانپذیر است و به این معنی است که همهٔ انواع پذیرفته میشوند).
خطوط خالی و خطوطی که با علامت هش ("#") آغاز میشوند نادیده گرفته میشوند. حروف کوچک و بزرگ تفاوتی ندارند (حساس به بزرگی و کوچکی حروف نیست). هر مدخلی که کلید عمومی PGP متناظری در جاکلیدی نداشته باشد، نادیده گرفته خواهد شد.
همچنین اطلاعات مربوط به صادرکنندگان را در وبگاه The NoCeM Registry خواهید یافت. توجه داشته باشید که INN به همراه یک پروندهٔ nocem.ctl بهروز عرضه میشود که از قبل با صادرکنندگان فعلی NoCeM پیکربندی شده است. (تنها کلیدهای عمومی PGP نصبشده در مرحلهٔ قبل در آن گنجانده نشدهاند، تا حق انتخاب در مورد اینکه به چه کسی اعتماد کنید برای شما باقی بماند و جدیدترین آنها را در صورت تغییر بارگیری نمایید.)
- 4.
- مدخلی
مانند زیر
را به
پروندهٔ newsfeeds
در pathetc اضافه
کنید تا
پیامهای NoCeM
ارسالشده
(یا
همرسانیشده)
به news.lists.filters (گروه
خبری عمومی
که
اعلانها
باید به آن
ارسال شوند)
را به perl-nocem
تغذیه کند:
nocem!\ :!*,news.lists.filters\ :Tc,Wf,Ap:<pathbin>/perl-nocemبا مسیر صحیح به perl-nocem واقع در <pathbin>، و هر پرچم اختیاری که میخواهید استفاده کنید. سپس دستور "inncheck" را اجرا کنید تا از درستی ساختار نحوی پروندهٔ اصلاحشدهٔ newsfeeds اطمینان حاصل نمایید، و آن را مجدداً بارگذاری کنید (از طریق "ctlinnd reload newsfeeds 'NoCeM channel feed'").
توجه داشته باشید که اگر میخواهید اعلانهای NoCeM را پردازش کنید، باید حداقل news.lists.filters (یا سایر گروههای خبری که اعلانهای NoCeM به آنها ارسال میشوند) را در سرور خبر خود میزبانی/حمل کنید.
- 5.
- اکنون همه
چیز باید
کار کند. با
این حال، در
آزمایش
دستی perl-nocem با
یک پیام NoCeM،
با استفاده
از یکی از
دستورهای
زیر تردید
نکنید:
grephistory '<Message-ID>' | perl-nocem -l -v 2 echo '/path/to/a/nocem/message' | perl-nocem -l -v 2
برنامهٔ perl-nocem نشانههای ذخیرهسازی یا نامهای پرونده را در ورودی استاندارد خود انتظار دارد (grephistory نشانهٔ ذخیرهسازی مقالهای را که با Message-ID آن مشخص شده بازمیگرداند).
لاگهای آن آزمایش را در perl-nocem.log در pathlog بررسی کنید.
همچنین میتوانید فهرست کلیدهای عمومی PGP نصبشده را با دستور زیر، متناسب با مکان جاکلیدی NoCeM بررسی کنید:
gpg --no-default-keyring --list-keys \ --primary-keyring <pathetc>/pgp/ncmring.gpg
گزینهها (OPTIONS)
- -b directory
- پشتیبانگیری
از مقالات
لغوشده در
پروندههایی
درون directory.
دایرکتوری
باید وجود
داشته باشد
و برای
کاربر news
قابل نوشتن
باشد.
پروندهها
به صورت issuer%type
نامگذاری
میشوند و
شامل
مقالاتی
هستند که در
عمل توسط
صادرکنندهٔ
NoCeM دادهشده
برای نوع
دادهشده
از
اعلانهای
NoCeM از مخزن
خبر (spool) شما
حذف
شدهاند.
مقالات
لغوشدهای
که هنگام
پردازش
اعلان در
مخزن خبر
شما ذخیره
نشدهاند
قابل
پشتیبانگیری
نیستند.
این پرچم عمدتاً برای حسابرسی موارد مثبت کاذب احتمالی در نظر گرفته شده است. از آنجا که نسخههای پشتیبان بهطور خودکار پاکسازی نمیشوند، باید پس از بررسی محتویات آنها، هر از چند گاهی آنها را هرس و پاکسازی کنید.
- -c filename
- بهطور پیشفرض، perl-nocem پروندهٔ پیکربندی با نام nocem.ctl را در pathetc میخواند. این پرچم امکان خواندن یک پروندهٔ پیکربندی دیگر را که با یک مسیر مطلق مشخص شده است، فراهم میکند.
- -g command
- بهطور
پیشفرض،
perl-nocem دودویی gpg(1)
را اجرا
میکند که
مسیر آن در
زمان
پیکربندی INN
تعیین شده
است. اگر GnuPG در
آن زمان نصب
نبوده باشد
یا اگر
بخواهید از
برنامهٔ
دیگری
استفاده
کنید، این
پرچم مفید
خواهد بود.
لطفاً
اطمینان
حاصل کنید
که حداقل
معادل
گزینههای
پیشفرض
دادهشده
به gpg در command
وجود داشته
باشد؛ در
غیر این
صورت ممکن
است perl-nocem
دچار نقص
عملکرد شود.
با فرض اینکه "/bin/gpg" متناظر با دودویی gpg باشد، حالت پیشفرض عبارت است از:
-g "/bin/gpg --status-fd=1 --verify --allow-weak-digest-algos"
- -G command
- بهطور
پیشفرض،
perl-nocem دودویی gpgv(1)
را اجرا
میکند که
مسیر آن در
زمان
پیکربندی INN
تعیین شده
است. اگر GnuPG در
آن زمان نصب
نبوده باشد
یا اگر
بخواهید از
برنامهٔ
دیگری
استفاده
کنید، این
پرچم مفید
خواهد بود.
لطفاً
اطمینان
حاصل کنید
که حداقل
معادل
گزینهٔ
پیشفرض
دادهشده
به gpgv در command
وجود داشته
باشد؛ در
غیر این
صورت ممکن
است perl-nocem
دچار نقص
عملکرد شود.
با فرض اینکه "/bin/gpgv" متناظر با دودویی gpgv باشد، حالت پیشفرض عبارت است از:
-G "/bin/gpgv --status-fd=1"
توجه داشته باشید هنگامی که هر دو در دسترس باشند، gpg با اولویت نسبت به gpgv استفاده خواهد شد، مگر اینکه به -g یک رشتهٔ خالی داده شود.
- -h
- چاپ پیام راهنمای نحوهٔ استفاده در خروجی استاندارد و خروج.
- -i filename
- هنگامی که
از این پرچم
استفاده
میشود، perl-nocem
یک اسکریپت
پرل خارجی
به نام filename را
که با مسیر
مطلق مشخص
شده است
فراخوانی و
وارد
میکند. این
پرچم امکان
بارگذاری
یک تابع
"local_want_cancel_id" با
قواعد محلی
را فراهم
میسازد تا
تعیین شود
کدام
مقالات
درون یک
اعلان NoCeM لغو
شوند. در
غیر این
صورت،
بهطور
پیشفرض
تمامی
مقالات
موجود در یک
اعلان NoCeM لغو
میشوند.
این تابع برای هر مقاله در اعلان فراخوانی میشود و به چندین متغیر دسترسی دارد: شناسهٔ پیام "$msgid" مربوط به پیام NoCeM، شناسهٔ پیام "$artid" مربوط به مقالهٔ مورد نظر برای لغو، فهرست جداشده با ویرگولِ گروههای خبری "$groups" که مقاله برای آنها ارسال شده بود، و مرجع درهمسازی (hash reference) به نام "$hdrs" به فیلدهای شبهسرایند اعلان NoCeM با مقادیر حروف کوچک. اگر تابع مقدار "0" را بازگرداند مقاله حفظ میشود و در غیر این صورت لغو میگردد.
در ادامه نمونهای از آنچه این تابع میتواند انجام دهد، در صورت تعریف در filename و استفاده از پرچم -i، آورده شده است:
sub local_want_cancel_id { my ($msgid, $artid, $groups, $hdrs) = @_; my $carried = 0; # پیمایش گروههای خبری که مقاله به آنها ارسال شده است. foreach my $group (split(/,/, $groups)) { # اگر به news.software.nntp ارسال شده است، آن را نگه دار. return 0 if $group eq "news.software.nntp"; # اگر به fr.* ارسال شده و صادرکننده "john" است، آن را نگه دار. return 0 if $group =~ /^fr\./ and $hdrs->{issuer} eq "john"; # مقاله حداقل به یک گروه خبری در سلسلهمراتب fr.* یا news.* # ارسال شده است. میتوانید در اینجا از یک عبارت منظم متناظر با # الگوی گروههای خبری که از فیدهای خود درخواست دریافت آنها را دارید استفاده کنید. $carried = 1 if $group =~ /^(fr|news)\./; } # در صورتی که سرور فقط fr.* و news.* را میزبانی کند، این قاعده اجازه میدهد # اعلانهای NoCeM مربوط به گروههای خبری میزبانینشده توسط سرور کنار گذاشته شوند، # و در نتیجه شناسهٔ پیام (Message-ID) مقالاتی که هرگز به سرور نمیرسند در پروندهٔ # تاریخچه پردازش یا ثبت نشوند. return 0 if not $carried; # اگر فقط به news.admin.net-abuse.usenet ارسال شده و نوع اعلان "spam" است، # آن را نگه دار. return 0 if $groups eq "news.admin.net-abuse.usenet" and $hdrs->{type} eq "spam"; # آن را لغو کن! return 1; }اگر هنگام بارگذاری تابع توسط پرل هرگونه مشکل نحوی رخ دهد، perl-nocem با خطا متوقف شده (die) و دلیل آن را در لاگها گزارش میکند. سپس باید تابع را اصلاح کنید.
- -k keyring
- بهطور
پیشفرض،
perl-nocem امضای
پیامهای NoCeM
را با
کلیدهای
عمومی PGP
موجود در
جاکلیدی به
نام ncmring.gpg در
دایرکتوری
pathetc/pgp
راستیآزمایی
میکند. این
پرچم امکان
استفاده از
یک جاکلیدی
دیگر را که
با مسیر
مطلق مشخص
شده است،
فراهم
میکند.
در این حالت پرچم --keyring= به همراه مقدار keyring به دستورات gpg(1) و gpgv(1) منتقل میشود، مگر اینکه keyring یک رشتهٔ خالی باشد.
- -l
- بهطور پیشفرض، perl-nocem لاگها را به syslog(3) ارسال میکند. در صورتی که امکانات syslog در دسترس نباشد یا از این پرچم استفاده شود، لاگها به perl-nocem.log در pathlog فرستاده میشوند. لاگهای سطح خطا (Error) در صورت در دسترس بودن، علاوه بر آن همچنان به syslog نیز ارسال خواهند شد.
- -u
- بهطور پیشفرض، innreport اعلانهای پردازشنشدهٔ NoCeM را در گزارشهای روزانهای که تولید میکند نمایش میدهد. هنگامی که از این پرچم استفاده شود، صادرکنندگان یا انواع اعلانهایی که در nocem.ctl پیکربندی نشدهاند همچنان در لاگها ذکر خواهند شد، اما خطوط لاگ متناظر توسط innreport تجزیه (parse) نخواهند شد.
- -v level
- افزایش میزان جزئیات گزارشگیری لاگ به آن level (سطح)، از ۱ تا ۳. مقدار پیشفرض "1" است.
پروندهها (FILES)
- pathbin/perl-nocem
- خود اسکریپت پرل که برای پردازش پیامهای NoCeM استفاده میشود.
- pathetc/nocem.ctl
- پروندهٔ پیکربندی که اعلانهای NoCeM مورد نظر برای پردازش را مشخص میکند. پروندهٔ دیگری را میتوان با پرچم -c مشخص کرد.
- pathetc/pgp/ncmring.gpg
- جاکلیدی حاوی کلیدهای عمومی صادرکنندگان مورد اعتماد NoCeM. پروندهٔ دیگری را میتوان با پرچم -k مشخص کرد.
- pathlog/perl-nocem.log
- پروندهٔ لاگ که در صورت در دسترس نبودن امکانات syslog یا استفاده از پرچم -l استفاده میشود.
نکات (NOTES)
صحت گروههای خبری که پس از Message-IDهای قابل لغو در بدنهٔ NoCeM آمدهاند بررسی نمیشود، و همچنین فیلد شبهسرایند Newsgroups در صورت وجود بررسی نمیگردد. خوب، از آنجا که ما پیشتر در مورد Message-IDهایی که صادرکنندهٔ اعلان به عنوان هرزنامه علامتگذاری میکند به او اعتماد کردهایم، بگذارید به گروههای خبری فهرستشده نیز اطمینان داشته باشیم.
تاریخچه (HISTORY)
حق نشر ۲۰۰۰ توسط Miquel van Smoorenburg <miquels@cistron.nl>.
حق نشر ۲۰۰۱ توسط Marco d'Itri <md@linux.it>.
همچنین ببینید (SEE ALSO)
gpg(1), gpgv(1), grephistory(1), inn.conf(5), innreport(8), newsfeeds(5), pgp(1).
| 2026-06-12 | INN 2.7.4 |